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

"De Schepper, Koen (Nokia - BE)" <koen.de_schepper@nokia-bell-labs.com> Wed, 03 August 2016 09:57 UTC

Return-Path: <koen.de_schepper@nokia-bell-labs.com>
X-Original-To: tcpprague@ietfa.amsl.com
Delivered-To: tcpprague@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5027312D0F5; Wed, 3 Aug 2016 02:57:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.902
X-Spam-Level:
X-Spam-Status: No, score=-6.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F1tNE7bABlWl; Wed, 3 Aug 2016 02:57:15 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0988E12D0DD; Wed, 3 Aug 2016 02:57:14 -0700 (PDT)
Received: from fr712umx3.dmz.alcatel-lucent.com (unknown [135.245.210.42]) by Websense Email Security Gateway with ESMTPS id DB2858303D26F; Wed, 3 Aug 2016 09:57:10 +0000 (GMT)
Received: from fr711usmtp1.zeu.alcatel-lucent.com (fr711usmtp1.zeu.alcatel-lucent.com [135.239.2.122]) by fr712umx3.dmz.alcatel-lucent.com (GMO-o) with ESMTP id u739vDAk013665 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 3 Aug 2016 09:57:13 GMT
Received: from FR711WXCHHUB01.zeu.alcatel-lucent.com (fr711wxchhub01.zeu.alcatel-lucent.com [135.239.2.111]) by fr711usmtp1.zeu.alcatel-lucent.com (GMO) with ESMTP id u739vAMF012602 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 3 Aug 2016 11:57:12 +0200
Received: from FR711WXCHMBA05.zeu.alcatel-lucent.com ([169.254.1.89]) by FR711WXCHHUB01.zeu.alcatel-lucent.com ([135.239.2.111]) with mapi id 14.03.0195.001; Wed, 3 Aug 2016 11:56:53 +0200
From: "De Schepper, Koen (Nokia - BE)" <koen.de_schepper@nokia-bell-labs.com>
To: Dave Taht <dave.taht@gmail.com>, "aqm@ietf.org" <aqm@ietf.org>, "tcpprague@ietf.org" <tcpprague@ietf.org>, bloat <bloat@lists.bufferbloat.net>
Thread-Topic: [aqm] what is the correct linux tc u32 match to ignore ecn but preserve tos?
Thread-Index: AQHR6PVIooXbg2d9UUSb998dmwbSQKA3AyfQ
Date: Wed, 03 Aug 2016 09:56:53 +0000
Message-ID: <BF6B00CC65FD2D45A326E74492B2C19FB76E4967@FR711WXCHMBA05.zeu.alcatel-lucent.com>
References: <CAA93jw48xb7g-q839iixUadRG9GH9e_W5KvjPtpKKij=UmOJvg@mail.gmail.com>
In-Reply-To: <CAA93jw48xb7g-q839iixUadRG9GH9e_W5KvjPtpKKij=UmOJvg@mail.gmail.com>
Accept-Language: nl-BE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [135.239.27.41]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpprague/I5M9gnpx0tApeg5YZV-alMIUDYo>
Subject: Re: [tcpPrague] [aqm] what is the correct linux tc u32 match to ignore ecn but preserve tos?
X-BeenThere: tcpprague@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "To coordinate implementation and standardisation of TCP Prague across platforms. TCP Prague will be an evolution of DCTCP designed to live alongside other TCP variants and derivatives." <tcpprague.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpprague>, <mailto:tcpprague-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpprague/>
List-Post: <mailto:tcpprague@ietf.org>
List-Help: <mailto:tcpprague-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpprague>, <mailto:tcpprague-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Aug 2016 09:57:17 -0000

See inline:

> -----Original Message-----
> From: aqm [mailto:aqm-bounces@ietf.org] On Behalf Of Dave Taht
> Sent: donderdag 28 juli 2016 19:27
> To: aqm@ietf.org; tcpprague@ietf.org; 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
> aqm@ietf.org
> https://www.ietf.org/mailman/listinfo/aqm