[Cake] Announce - possible new feature - DSCP cleaning

Dave Taht dave.taht at gmail.com
Mon Nov 16 10:03:17 EST 2015


I have not been doing any active development until... tomorrow.

A goal I have for today is to actually build a version of openwrt +
all this stuff for the linksys ac1200.

I was not particularly huge on using another field (q->squash) to
trigger squashing, and I cannot come up with a use case that makes
sense to me.

Under what circumstances do you think separating these two functions
to be useful?

Dave Täht
Let's go make home routers and wifi faster! With better software!
https://www.gofundme.com/savewifi


On Mon, Nov 16, 2015 at 3:59 PM, Kevin Darbyshire-Bryant
<kevin at darbyshire-bryant.me.uk> wrote:
> Does anyone have any feedback on this?  Good idea/bad idea?  Good/bad
> implementation?
>
> Any reason why 'squash' branches of both sch-cake & tc-adv shouldn't be
> merged?
>
> On 10/11/15 15:00, Kevin Darbyshire-Bryant wrote:
>> Greetings :-)
>>
>> A bit of a blast from the past this one, but one Sebastian Moeller of
>> this list fame wrote a while ago "
>>
>> Just played a bit with the shiny new squash option. For my limited testing it seems to work. I do wonder whether the automatic default to besteffort is the ideal behavior though. For example on egress it would be nice to be able to use the internal set DSCP markings but clean them from the outgoing packets as not to leak “information” to the ISP, similarly but more contrived the same could be agued for ingress  "
>>
>> Well Mr Moeller, today is your lucky day because I've just pushed 'squash' branches to both cake & tc-adv that separate the 'DSCP squashing' behaviour from diffserv behaviour.  Specifying 'squash' sets diffserv mode to 'besteffort' (ie 1 tin only) and squashes DSCP as before, however if you specify something like 'diffserv4 squash' then DSCP codings are noted at qdisc enqueue so tins/bandwidths are used as marked, then the DSCP marking is squashed so on dequeue DSCP has been removed.
>>
>> The active bit of the change is (diff):
>>
>>         /* extract the Diffserv Precedence field, if it exists */
>> -       if (q->tin_mode != CAKE_MODE_SQUASH) {
>> +       if (q->tin_mode != CAKE_MODE_BESTEFFORT) {
>>                 tin = q->tin_index[cake_get_diffserv(skb)];
>>                 if (unlikely(tin >= q->tin_cnt))
>>                         tin = 0;
>>         } else {
>> -               cake_squash_diffserv(skb);
>>                 tin = 0;
>>         }
>>
>> +       /* now clear DSCP bits if squashing */
>> +       if (q->squash)
>> +               cake_squash_diffserv(skb);
>>
>>
>> https://github.com/dtaht/sch_cake/tree/squash  &  https://github.com/dtaht/tc-adv/tree/squash
>>
>> Needs testing (I've not managed to break it yet) and *thought before merging*
>>
>>
>>
>>
>>
>> _______________________________________________
>> Cake mailing list
>> Cake at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/cake
>
>
>
> _______________________________________________
> Cake mailing list
> Cake at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
>



More information about the Cake mailing list