From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Pete Heist <pete@heistp.net>
Cc: Dave Taht <dave.taht@gmail.com>, Cake List <cake@lists.bufferbloat.net>
Subject: Re: [Cake] Using cake to shape 1000’s of users.
Date: Sun, 29 Jul 2018 21:14:47 +0200 [thread overview]
Message-ID: <87r2jlzwew.fsf@toke.dk> (raw)
In-Reply-To: <EAF56FCF-5241-4A88-ACC0-71B181B157F3@heistp.net>
Pete Heist <pete@heistp.net> writes:
>> On Jul 28, 2018, at 8:12 PM, Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>>
>> Priority field sets tin, class sets flow. Both need the qdisc is as its major number, iirc. And both can be set from the same bpf filter which can be run in direct action mode...
>
> This works for me. :)
>
> I only tested so far by setting classid with u32 to map 3 macs to two members IDs, then verified fairness:
>
> # IFACE is cake’s interface
> # MAJOR_ID is from cake
> while read mac id; do
> tc filter add dev $IFACE parent $MAJOR_ID: \
> u32 match ether src $mac classid $MAJOR_ID:$id
> done << EOF
> aa:bb:cc:11:22:33 1
> bb:cc:dd:22:33:44 1
> cc:dd:ee:33:44:55 2
> EOF
>
> This should use eBPF and a map lookup for performance, so I’ll see if I can make that work.
>
> Caveats that I know of:
> - Limited to 1024 members
> - No fairness between flows
You could assign more than one queue per customer and hash traffic
between them in BPF...
> - Non-member traffic would have to be dealt with somehow, maybe put in
> its own queue or split among multiple queues, otherwise there can be
> hash collisions with member queues
Yeah, an "overflow queue" is definitely needed in this kind of
deployment :)
I actually wrote an eBPF classifier a few months back, that can lookup
subnets in a BPF map and map them into different classes:
https://github.com/tohojo/tc-classifier
-Toke
next prev parent reply other threads:[~2018-07-29 19:14 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-17 7:24 Felix Resch
2018-07-17 16:59 ` Dave Taht
2018-07-26 15:46 ` Dan Siemon
2018-07-26 15:48 ` Dave Taht
2018-07-26 18:07 ` Dan Siemon
2018-07-28 15:51 ` Dave Taht
2018-07-28 16:11 ` Jonathan Morton
2018-07-28 16:36 ` Dave Taht
2018-07-26 17:42 ` Toke Høiland-Jørgensen
2018-07-26 18:10 ` Dan Siemon
2018-07-26 21:09 ` Toke Høiland-Jørgensen
2018-07-26 21:38 ` Jonathan Morton
2018-07-27 9:25 ` Pete Heist
2018-07-27 14:04 ` Dan Siemon
2018-07-27 18:58 ` Jonathan Morton
2018-07-28 8:56 ` Toke Høiland-Jørgensen
2018-07-28 15:04 ` Dave Taht
2018-07-28 16:19 ` Jonathan Morton
2018-07-28 16:39 ` Dave Taht
2018-07-28 17:01 ` Pete Heist
2018-07-28 17:37 ` Pete Heist
2018-07-28 17:52 ` Dave Taht
2018-07-28 17:56 ` Dave Taht
2018-07-28 18:12 ` Toke Høiland-Jørgensen
2018-07-29 0:17 ` Pete Heist
2018-07-29 19:14 ` Toke Høiland-Jørgensen [this message]
2018-07-30 9:14 ` Pete Heist
2018-07-30 10:09 ` Sebastian Moeller
2018-07-30 10:55 ` Toke Høiland-Jørgensen
2018-07-30 11:05 ` Pete Heist
2018-07-30 11:28 ` Toke Høiland-Jørgensen
2018-07-30 22:10 ` Pete Heist
2018-07-30 22:17 ` Toke Høiland-Jørgensen
2018-07-31 7:31 ` Jonathan Morton
2018-07-30 10:55 ` Pete Heist
2018-07-30 11:05 ` Jonathan Morton
2018-07-28 17:53 ` Jonathan Morton
2018-07-28 18:07 ` Dave Taht
2018-07-28 18:17 ` Toke Høiland-Jørgensen
2018-07-28 19:35 ` [Cake] 1000s " Dave Taht
2018-07-29 23:24 ` [Cake] Using cake to shape 1000’s " Dave Taht
2018-08-07 1:46 ` Dan Siemon
2018-07-28 7:18 ` Pete Heist
2018-07-28 8:06 ` Jonathan Morton
2018-07-28 16:41 ` Pete Heist
2018-07-28 17:32 ` [Cake] isp economics Dave Taht
2018-07-28 18:39 ` Pete Heist
2018-07-28 19:03 ` Dave Taht
2018-07-28 20:00 ` Pete Heist
2018-07-29 5:49 ` Loganaden Velvindron
2018-07-28 19:09 ` Dave Taht
-- strict thread matches above, loose matches on Subject: below --
2018-07-16 18:39 [Cake] Using cake to shape 1000’s of users Mike
2018-07-16 19:01 ` Jonathan Morton
2018-07-16 19:13 ` Michel Blais
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r2jlzwew.fsf@toke.dk \
--to=toke@toke.dk \
--cc=cake@lists.bufferbloat.net \
--cc=dave.taht@gmail.com \
--cc=pete@heistp.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox