> On Jul 28, 2018, at 8:12 PM, Toke Høiland-Jørgensen <[email protected]> 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
- 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
_______________________________________________
Cake mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cake