Subject: Re: [tcpPrague] [aqm] what is the correct linux tc u32 match to ignore ecn but preserve tos?

From: "De Schepper, Koen (Nokia - BE)" <[email-masked]>
Date: Wed, 3 Aug 2016 09:56:53 +0000

See inline:

> -----Original Message-----
> From: aqm [mailto:[email-masked]] On Behalf Of Dave Taht
> Sent: donderdag 28 juli 2016 19:27
> To: [email-masked]; [email-masked]; bloat
> Subject: [aqm] what is the correct linux tc u32 match to ignore ecn but
> preserve tos?
> 
> I can't ever get my endianess straight, and I figure that someone here
> might "just know"
> 
> Do I use match u8 0xfc or 0xcf?
> 
> tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
>       match ip tos 0x10 0xff  flowid 1:10
> 
> (am trying to revise this from in front of a mac:
> https://www.bufferbloat.net/projects/cerowrt/wiki/Wondershaper_Must_Die/
> )
> 
> Bonus points if you can come up with the right tc filter line for ipv6.
> 
> What I would probably do is have a filter chain to then classify the
> thing further for L4s, but I don't understand how or where I'd direct
> CE markings correctly. (?)
> 
> How does it happen in the pi2 code? is that on github somewhere?

Pi2 code is in https://github.com/olgabo/dualpi2

We don't use tc filters to classify, the classification and dualq is part of the aqm. From a tc point of view, it is a single qdisc.

The L4S classifier is only one bit: the least significant one in the ecn (and also tos) field. This way both ect(1) and ce are treated as L4S. Default the current pi2 will classify also ect(0), to work with DCTCP. You can use the option "ect1_scal" to treat only ect1 as a scalable CC (so to support classic ecn). Also per default no DualQ is enabled. For DCTCP with DualQ, specify the "dualq" option, which puts also ect(0) in the L4S queue. The option dualq_ect1 puts only ect(1) and ce in the L4S queue and ect(0) in the classic queue.

Koen.

> 
> --
> Dave Täht
> Let's go make home routers and wifi faster! With better software!
> http://blog.cerowrt.org㯝㯟
> 
> _______________________________________________
> aqm mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/aqm