[Cake] Announce - possible new feature - DSCP cleaning

Sebastian Moeller moeller0 at gmx.de
Mon Nov 16 10:33:08 EST 2015

Hi Dave,

On Nov 16, 2015, at 16:03 , Dave Taht <dave.taht at gmail.com> wrote:

> 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?

	Well, if I want to use DSCP values internally on my egress interface, but do not want to leak them out to my ISP. Totally contrived example, I might want to keep bit torrent at CS1/BK internally but do not want to make it easier for the ISP to differentially restrict my bit torrent traffic (I neither use bit torrent enough nor do know whether ISPs actually still throttle). More realistically it would be nice to separate the 6 DSCP bits into two groups of 3, one for sender intent and one for current network usage, and then copy the intent bits to the local bits on egress or remap local bits to zero, but I digress.
	And similarly on ingress I might want to use DSCP markings but remap them to zero on ingress so that no internal AP does the VO/VI/BE/BK qos thing on air (there are certainly better ways to assure such behavior).

Best Regards

> 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
> _______________________________________________
> Cake mailing list
> Cake at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake

More information about the Cake mailing list