Re: [tcpm] Possible error in accurate-ecn

Mirja Kuehlewind <> Tue, 10 November 2020 10:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 432A63A0E85 for <>; Tue, 10 Nov 2020 02:08:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id f-lymDkH7SqZ for <>; Tue, 10 Nov 2020 02:08:07 -0800 (PST)
Received: from ( [IPv6:2a01:488:42:1000:50ed:8223::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 5FD313A0E83 for <>; Tue, 10 Nov 2020 02:08:07 -0800 (PST)
Received: from ([2003:de:e707:b600:c59:cd27:c374:f47a]); authenticated by running ExIM with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) id 1kcQZH-0004BN-UI; Tue, 10 Nov 2020 11:08:03 +0100
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.\))
From: Mirja Kuehlewind <>
In-Reply-To: <>
Date: Tue, 10 Nov 2020 11:08:03 +0100
Cc: Richard Scheffenegger <>, Ilpo Järvinen <>, tcpm IETF list <>
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <>
To: Bob Briscoe <>
X-Mailer: Apple Mail (2.3608.
Archived-At: <>
Subject: Re: [tcpm] Possible error in accurate-ecn
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 10 Nov 2020 10:08:09 -0000

Hi Bob,

Please see below.

> On 10. Nov 2020, at 01:31, Bob Briscoe <> wrote:
> Mirja, Richard, Ilpo, tcpm list,
> I've just been reading through the accurate-ecn draft to double-check. I think there's a problem with the following text...
>  Data Receiver Safety Procedures
>    An AccECN Data Receiver:
>    o  SHOULD immediately send an ACK whenever a data packet marked CE
>       arrives after the previous [data] packet was not CE.
>    o  MUST immediately send an ACK once 'n' CE marks have arrived since
>       the previous ACK, where 'n' SHOULD be 2 and MUST be no greater
>       than 6.
> ...
>    For the avoidance of doubt, the change-triggered ACK mechanism is
>    deliberately worded to solely apply to data packets, and to ignore
>    the arrival of a control packet with no payload, because it is
>    important that TCP does not acknowledge pure ACKs.  
> In the first bullet, I think it doesn't matter whether the previous packet marked CE was a data packet or a pure ACK (i.e we should remove the second occurrence of 'data' that I have put in [square brackets].

I believe it does matter. If the previous packet was a pure ACK and was CE marked, you didn’t send an ACK and so you should immediately send one now. If the previous packet was a data packet and CE marked, you don’t need to send an immediate ACK because you already did this with the previous packet. However, it text might be a but ambiguous because what is meant is “if the previous packet was a data packet and CE marked”. So this does not apply if we e.g. have a CE-marked data packets, then a pure ACK that is not CE marked, and then another CE-marked data packet.  

> The second bullet doesn't consider the possibility that the 'n'th  CE mark might arrive on a pure ACK. Then, the wording as it stands says the Data Receiver MUST immediately ACK a pure ACK. I know TCP never ACKs a pure ACK, but I'm not actually sure it does any harm to do so in this case (it cannot cause an infinite loop of ACKs). However, given it would be unorthodox, we maybe ought to rule it out by rewording anyway?

I think we also can leave this as it is because if that ’n’ packet is a pure ACK that still means that you have unacked data packets with CE marks and you should trigger an ACK for those packet now (rather than waiting for the delayed ACK timer to expire). However this case is less important. Also we should probably make sure that this doesn’t apply if there are only pure ACKs with CE marks, maybe by add “if unacknowledged data are outstanding” or something.


> Thoughts anyone?
> Bob
> --
> ________________________________________________________________
> Bob Briscoe