Re: [rmcat] Following up on my ECN feedback question at the meeting today

"Michael Ramalho (mramalho)" <> Thu, 17 November 2016 14:59 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2EEE7129976 for <>; Thu, 17 Nov 2016 06:59:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -16.018
X-Spam-Status: No, score=-16.018 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.497, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id xsB93fhdDetv for <>; Thu, 17 Nov 2016 06:59:19 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 8DBF312942F for <>; Thu, 17 Nov 2016 06:59:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=7114; q=dns/txt; s=iport; t=1479394756; x=1480604356; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=0fZX+HZ3vkZCKtXxbr3Wyfk8uibDHhuh9iIDVomU1uY=; b=N/KeF4m4MiC26cb1PkYCqs7hXFgHp6//J61mzRGDX89pbW7gkVvialWm kWPlnHl0oNTIPiH/1UQQc4uPPUohTwNpScQGzW3KwTnetskdRLNEQg9EM W8PxGIADqM/bTp2xEwYBcxFN+puRHt9D1Fgt40pfvW7ZuzB9qu2L0eED1 Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.31,506,1473120000"; d="scan'208";a="349520256"
Received: from ([]) by with ESMTP/TLS/DHE-RSA-AES256-SHA; 17 Nov 2016 14:59:15 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id uAHExFo1007900 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 17 Nov 2016 14:59:15 GMT
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 17 Nov 2016 08:59:14 -0600
Received: from ([]) by ([]) with mapi id 15.00.1210.000; Thu, 17 Nov 2016 08:59:14 -0600
From: "Michael Ramalho (mramalho)" <>
To: "" <>, "" <>
Thread-Topic: [rmcat] Following up on my ECN feedback question at the meeting today
Date: Thu, 17 Nov 2016 14:59:14 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [rmcat] Following up on my ECN feedback question at the meeting today
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 17 Nov 2016 14:59:21 -0000

Hi Gorry,

Speaking for myself (and not necessarily all on the RMCAT Design Team), every proposal so far has the ability to report both ECN bits for ALL the packets the receiver received. Thus the sender, knowing what was sent and what was received, could determine any changes in these bits.

The proposals since the "01" draft have put the ECN information in different places - to attain the goal of trivial compression. Note that we have not come to closure if compression is needed (that was what Colin's presentation addressed).

In the proposal shown at the meeting - if all the ECN bits received were identical, one instance of those two bits appeared in the fixed body of the report (two bits stolen from where the end_seq was previously) along with a flag (another bit stolen from the same field) that stated that all received ECN bits were identical. If all received ECN bits were not identical, then ALL of the individual ECN bits for all packets received were reported elsewhere (in the "C bits" after all the arrival time offset fields).

There was discussion in one of the DT meetings that one might want disable the reporting of the individual ECN bits - perhaps dynamically via signaling - and I briefly mentioned that during my presentation. Such discussion has not been reflected in any consensus nor in any text. I think the option was discussed in the context of a low bandwidth stream (but I am not certain on this point).

However, if such an option to disable ECN reporting was desired and enabled - the format in the proposal shown had two ECN bit locations above as "a representative ECN". Again, this was not defined or discussed - but such could be the most prevalent ECN ... or the "worst-case" ECN (i.e., if there was congestion flagged in some of them) ... or [who knows].

In closing, we are not certain that we need compression. But we do know how to compress loss indications and individual ECN bits efficiently via run length encoding (perhaps using what is already defined in RTCP XR). My vote would be to compress the ECN (rather than disabling ECN reporting) if we ever decided that the reporting all ECN bits individually was too burdensome.

Again, those are my opinions and not necessarily all on the Design Team. I'll let Colin and others respond to the frequency and overhead portions of your comments.


Michael Ramalho

-----Original Message-----
From: rmcat [] On Behalf Of Gorry Fairhurst
Sent: Thursday, November 17, 2016 5:21 AM
Subject: [rmcat] Following up on my ECN feedback question at the meeting today

I have some follow-up comments on things relating to the transport use of ECNthat may relate to draft-dt-rmcat-feedback-message-01.

(1) My meeting comment on jabber was (I may have missed the point earlier in the talk) that I wanted to check if a new method could potentially hide the presence of a CE-Mark (specifically receiving a CE-marked packet and not reporting this seems like something we may wish to worry about and I could not work out is the proposal ever omitted ECN information).

(2) Now looking at the design team draft, this statement is of course OK with me:

[RFC3168] is used, it is necessary to report on the 2-bit ECN mark in received packets, indicating for each packet whether it is marked not-ECT, ECT(0), ECT(1), or ECN-CE."

And following this it seems to me that there are two very basic pieces of information that I'd love to be able to know as a sender when using an ECN-capable network:

(2a) It *can* be important to know that an ECT(?) codepoint is being received at the IP layer. A sender may well know that it is sending either ECT(0) or ECT(1), but doesn't definitely know these are being received unchanged (i.e., the path has not remarked these).
- Reporting all ECN marks would clearly satisfy this - read no further if you plan to always do this.
- A count of how many ECT marks were received is really helpful to know that the current ECN forwarding path is broken, it could even allow a sender to check that any chosen ECT(x) encoding is working, by independently setting x=0 or x=1, if it wishes.
- Knowing which specific ECT(?) is received is potentially useful information. This could perhaps be used in a method to determine which flavour of ECN-marking is supported by a path, and more info about whether ECN is being handled correctly by a network (knowing middleboxes don't do unwanted things can always utilise extra information). (As new info, the TSVWG is currently considering work proposing to eliminate the use of NONCE encoding where an apps sends ECT(0) and ECT(1) randomly. 
This could simplify the need to encode which ECT(?) codepoints were received - see draft-black-tsvwg-ecn-experimentation.)

(2b) A sender must *at least* know if there were any CE marks in a reporting interval.
- If you report each CE received than this is sufficient. But I have a word of caution. *If* an app looses a report with a CE-mark report it may never know, and does not impact user experience in terms of loss, but the CC still needs to respond to behave correctly for AQM, and may impact delay :-).
- It can be very valuable for the sender to know if ANY CE-marked packets were received, even if sending not-ECN capable packets at this moment (where it is an error that indicates ECT(?) is unreliable).
- Knowing how many CE-marks (or CE-marked bytes) per interval is probably really valuable for a CC. I'd think a sender could easily utilise more CE per packet information, and may need to do (e.g., to utilise L4S should that be wanted in future).
- Knowing each CE-mark is something that any CC can utilise and could be needed for L4S. It could also help to know about whether bursts are being marked, rather than average rate.
- Some AQMs may use shallow marking and that is something that COULD be nice to detect in future from per-packet CE-mark reports. (At the moment, I really think we don't completely know yet how to do this).

So to me, this suggests at least some counters per reporting interval are needed - and per-packet info will be much better.

(3) In relation to "Feedback Frequency and Overhead", section 4. I have one less useful comment:

Amortising overhead by reporting less often could perhaps result in a performance tradeoff. There may well be quite stringent timing implications if an RMCAT app wants to use "low latency" ECN - that's something to be watched as the transport as the L4S work in TSVWG progresses, but it would be nice to know that the report interval does not constrain our options. I'm arguing that the WG may need to note this (or consider this), but I for one, don't yet know how this will evolve in future.

In case anyone needs it, draft-ietf-aqm-ecn-benefits-08 may have some more info.

Best wishes,