[Cake] Backporting 'tc class' support

Toke Høiland-Jørgensen toke at toke.dk
Sun Jul 15 16:23:43 EDT 2018


Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> writes:

>> On 15 Jul 2018, at 10:48, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
>> 
>> Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> writes:
>> 
>>>> On 14 Jul 2018, at 22:50, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
>>>> 
>>>> Now that CAKE has been accepted upstream, I figured it was a good time
>>>> to backport the 'tc class' support. So I did, back to kernel v4.9.
>>>> 
>>>> This is in the master branch; anyone feel like testing? With this, the
>>>> version of CAKE in the master branch should be identical to the version
>>>> that will be in Linux 4.19 :)
>>> 
>>> I need the attached patch to get it to build on openwrt - it looks
>>> like an include guard order thing.
>> 
>> Ah, right, thanks! Fixed in master :)
>
> And now that I’ve run it, with Georgios’ help (I’ve never played with
> tc filters before!) I’ve fallen over a wrinkle:
>
> So using sqm-scripts I have my standard cake instances on eth0 and
> ifb4eth0, both using diffserv3 <<— diffserv3 is important. This
> creates according to tc -s qdisc Bulk, Best Effort & Voice tins.
> (where is he going with this?)
>
> For ‘fun’ I wanted to classify stuff incoming to my bittorrent port as
> Bulk.  So you’d think that "tc filter add dev ifb4eth0 parent 8011:
> protocol ip u32 match ip dport 6981 0xffff action skbedit priority
> 8011:1” would do the trick.  8011:1 being the target tin.  Whilst
> syntactically correct you’d be disappointed by the result
> ‘cos…..diffserv3 & 4 put the bulk traffic in tin 2 although tc
> displays it as the first tin.

Yeah, the tins are displayed in a different order than they are indexed.
See the bulk_order and normal_order definitions. Basically, the first
two are switched.

It's not actually obvious which is the right thing to do here? Use the
classifier output as the tin index, or modify it by the tin order... In
fact, I'm not quite sure what the purpose of the tin_order is in the
first place...

Jonathan, care to comment? :)

-Toke


More information about the Cake mailing list