Re: [tcpm] Reminder: WGLC for draft-ietf-tcpm-accurate-ecn-26

Markku Kojo <kojo@cs.helsinki.fi> Fri, 17 November 2023 17:34 UTC

Return-Path: <kojo@cs.helsinki.fi>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC125C14CEFE for <tcpm@ietfa.amsl.com>; Fri, 17 Nov 2023 09:34:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.007
X-Spam-Level:
X-Spam-Status: No, score=-2.007 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_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.helsinki.fi
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 91e69Ag88NZr for <tcpm@ietfa.amsl.com>; Fri, 17 Nov 2023 09:34:54 -0800 (PST)
Received: from script.cs.helsinki.fi (script.cs.helsinki.fi [128.214.11.1]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1A297C151536 for <tcpm@ietf.org>; Fri, 17 Nov 2023 09:34:53 -0800 (PST)
X-DKIM: Courier DKIM Filter v0.50+pk-2017-10-25 mail.cs.helsinki.fi Fri, 17 Nov 2023 19:34:47 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.helsinki.fi; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type:content-id; s=dkim20130528; bh=knbL2l yu5B75AQyuQbPz70XwouvxUzNUu8MpoyYgRJA=; b=LUrg1mFk1I6hqzEjGtQ6HM +V1FBDoGyRhk2tgbxTw7dyU4gOWYFtYZFT5knpu12XPcrKxE/OKLYiuQdW9WrUXz QpEuLt1e75jt7VWiVSthASFaO5LRO2TWqDmkKzLzkrhc6uEbTI44e3E1cKBY2xji p9R5YXp8jYjs2V+iw6D6o=
Received: from hp8x-60.cs.helsinki.fi (85-76-40-153-nat.elisa-mobile.fi [85.76.40.153]) (AUTH: PLAIN kojo, TLS: TLSv1/SSLv3,256bits,AES256-GCM-SHA384) by mail.cs.helsinki.fi with ESMTPSA; Fri, 17 Nov 2023 19:34:46 +0200 id 00000000005A1C79.000000006557A436.00003A1B
Date: Fri, 17 Nov 2023 19:34:45 +0200
From: Markku Kojo <kojo@cs.helsinki.fi>
To: Bob Briscoe <in=40bobbriscoe.net@dmarc.ietf.org>
cc: tuexen@fh-muenster.de, tcpm IETF list <tcpm@ietf.org>
In-Reply-To: <032c3a88-22d7-4c87-b924-f5728084a39b@bobbriscoe.net>
Message-ID: <be433655-1f8a-ccb5-a3a5-4cd0e8e3c2ee@cs.helsinki.fi>
References: <1204E97B-9524-4C9F-8D06-7F81E1F28A6F@fh-muenster.de> <347C33E0-FDFD-4ED9-93FD-397AE361D6DE@cs.helsinki.fi> <fffb488d-913c-4a01-b88b-f9dbb02f4a62@gmx.at> <8F99166D-0DF3-49E0-81A2-72FDD510DAFF@fh-muenster.de> <bd7b276-d1e-b6b0-261f-d8d8e8451f59@cs.helsinki.fi> <032c3a88-22d7-4c87-b924-f5728084a39b@bobbriscoe.net>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_script-14899-1700242487-0001-2"
Content-ID: <a1b14d39-9231-81e1-b374-1ba7fbb6a420@cs.helsinki.fi>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/f5-cc0l6I2CEvtNEJUHaJ-tYyz8>
Subject: Re: [tcpm] Reminder: WGLC for draft-ietf-tcpm-accurate-ecn-26
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Nov 2023 17:34:58 -0000

Bob,

Thanks for addressing these as well. A quick answer with clarifying 
question to one of the points below (see [MK] towards the end). It is an 
important clarification in order to come up with scenarious showing 
correct AccECN behaviour. I'll come back to the others points later, so 
please do not consider them addressed and agreed yet.

On Thu, 16 Nov 2023, Bob Briscoe wrote:

> Markku,
> 
> Michael has broken out your 6 main points. But, in your original long email, there were some more points at the
> end about wording in the draft, which I believe were correct. So pls see [BB] inline...
> 
> On 07/11/2023 01:39, Markku Kojo wrote:
>       Hi Michael, Richard, all,
>
>       [snip 6 items that Michael has broken out into separated threads on the list]
>
>       Note that the items 1-3 specify operation for an experimental feature (Acks of Acks) in a stds
>       track document (if specified in AccECN RFC). In addition, appropriately specifying all the above
>       items would require an update in a number of stds track specs and would need to be carefully
>       validated and experimented. Therefore, it is hard to see that such a specification could be mature
>       enough to become a stds track specification soon, particularly when all this is only needed to make
>       AccECN to operate correctly with an experimental feature (enabling ECN on pure Acks and reacting to
>       CE on pure Acks). In addition, currently there are no stds track CC algos that could use such a
>       feature, not even experimental.
>
>       Moreover, IMHO it is not quite correctly stated in the current draft that sending timely Acks of
>       Acks is mandatory:
>
>        "... the increment-triggered ACK rule makes it mandatory for A to
>         emit ACKs of ACKs."
>
>       because no current stds CC algo (nor experimental) requires or benefits for doing so. TCP Prague is
>       to my undersanding the only CC algo that possibly could take advantage of the Ack-of-Acks over the
>       global Internet. But it has not been conclusively demonstrated. Therefore, it would be more than
>       appropriate to first specify all that is needed for Ack of Acks in experimental spec(s).
> 
> 
> [BB] Already asked and answered.
> 
> The AccECN spec states how to respond to incoming packets whether or not sending them has been or will ever be
> standardized. This is best practice in writing protocol specs. Similarly, RFC793 and RFC 9293 give long lists
> of what to do in response to all possible incoming packets.
> 
>
>       In addition, crucial pieces missing/requiring clarification in the spec that specifies injecting
>       Acks of Acks (currently AccECN draft) are:
>
>       1) injecting Acks of Acks is in conflict with RFC 5681. Therefore, a draft which specifies an algo
>       that sends such Acks must include justification in doing so. Currently ECN++ has some such text but
>       it is in the wrong draft; an implementor of the rule in AccECN draft that injects Acks of Acks is
>       not expected to read ECN++ draft but the draft she/he is implementing (if she/he would be expected
>       to read and ECN++, then citing ECN++ is a downref. In addtion, if the issue is not addressed and
>       justified in the AccECN draft, it will result in conflicting stds track specifications (again).
> 
> 
> [BB] This was intentional. It is quite in order to have normative specification of an implementation in one
> RFC, and a reference to informative justification of it in another (where it is deemed more relevant).
> 
>
>       2) Currently AccECN draft specifies the rule to send Acks of Acks as an action of a Data Receiver
>       in Sec 3.2.2.5.1:
>
>        "An AccECN Data Receiver MUST emit an ACK if 'n' CE marks have
>         arrived since the previous ACK."
>
>       This is very ambiguous because this is not an operation of a Data Receiver in the first place but
>       that of a Data Sender. The Data Receiver injects Acks of Acks only if the ping-pong effect of
>       Ack-of-Acks gets triggered. Therefore, the piece of rule for injecting Acks of Acks should be under
>       of its own heading (for both Data Sender and Data Receiver) for clarity.
> 
> 
> [BB] Good point. I don't think it would be useful to split the rule into two nearly identical repetitions for
> the two cases. The problem is the section heading - it needs to say packet receiver, not data receiver.
> 
> Also, in the example scenario further down the section it's also not appropriate to call hosts A & B the Data
> Receiver and the Data Sender, when the direction of data alternates. I'll fix that.
> 
>
>       Finally, the draft uses expression "newly delivered data" for "data segment". Why? No other TCP
>       spec uses "newly delivered data" and we have an established expression for it in the RFC series
>       (i.e., data segment). Using the established expression would be unambiguous.
> 
> 
> [BB] Fine. Will change, as below...
> 
> CURRENT:
>  3.2.2.5.1. Data Receiver Safety Procedures
> 
> The following rules define when a Data Receiver in AccECN mode emits an ACK:
> 
> Change-Triggered ACKs: An AccECN Data Receiver SHOULD emit an ACK whenever a data packet marked CE arrives
> after the previous packet was not CE.
> ...
>
>   Increment-Triggered ACKs:    An AccECN Data Receiver MUST emit an ACK if 'n' CE marks have arrived since the
>   previous ACK. If there is newly delivered data to acknowledge, 'n' SHOULD be 2. If there is no newly
>   delivered data to acknowledge, 'n' SHOULD be 3 and MUST be no less than 3. In either case, 'n' MUST be no
>   greater than 7.
> 
> ...
> In a scenario where both endpoints support AccECN, if the Data Receiver (B) has chosen to use ECN-capable pure
> ACKs (as allowed in [RFC8311] experiments) and enough of these ACKs become CE-marked, then the
> 'Increment-Triggered ACKs' rule ensures that the Data Sender (A) gives B sufficient feedback about this
> congestion on the ACKs from B to A.
> ...
> Although TCP normally only ACKs newly delivered data,...
> 
> PROPOSED:
>  3.2.2.5.1. Packet Receiver Safety Procedures
> 
> The following rules define when the receiver of a packet in AccECN mode emits an ACK:
> 
> Change-Triggered ACKs: An AccECN Data Receiver SHOULD emit an ACK whenever a data packet marked CE arrives
> after the previous packet was not CE.
> ...
> Increment-Triggered ACKs:   An AccECN receiver of a packet MUST emit an ACK if 'n' CE marks have arrived since
> the previous ACK. If there is data to acknowledge, 'n' SHOULD be 2. If there is no data to acknowledge, 'n'
> SHOULD be 3 and MUST be no less  than 3. In either case, 'n' MUST be no greater than 7.</t>
> ...

[MK] I am afraid this still reads ambiguous to me. What does "if there is 
data" exactly mean? Where does 'there' refer to: 1) data pkt or 2) AccECN 
pkt receiver? To me there are two equally likely interpretations:

1) Arriving packet is data packet (carries data to acknowledge). In this 
case it should read something like "When a data packet arrives, 'n' SHOULD 
be 2." to make it unambiguous.

2) There is unacknowledged data at the receiver when a new packet arrives 
(either a data packet or non-data packet). For example, the following 
scenario fulfills the criteria for this interpretation:

  0. Data packet marked CE arrives and gets Acked
  1. Data packet marked CE arrives but is not Acked (due to
     delayed Ack mechanism and because no AckECN rule requires it)
  2. Pure ACK marked CE arrives and gets Acked because there is data
     to acknowledge and n=2.

I believe item 1) is the intended interpretation but the previous text as 
well as the new proposed text allows for me the interpretation in the item 
2) as well.

Thanks,

/Markku

> In a scenario where both endpoints support AccECN, if host B has chosen to use ECN-capable pure ACKs (as
> allowed in [RFC8311] experiments) and enough of these ACKs become CE-marked, then the 'Increment-Triggered
> ACKs' rule ensures that its peer (host A) gives B sufficient feedback about this congestion on the ACKs from B
> to A.
> ...
> Although TCP normally only ACKs data segments,...
> 
> 
> Bob
> 
> 
>
>       Thanks,
>
>       /Markku
>
>             Best regards
>             Michael
>
>                   Richard
> 
>
>                   Am 06.11.2023 um 11:09 schrieb Markku Kojo:
>                         Hi Michael,
>
>                         catching up…
>
>                         I am afraid that the crucial piece not addressed is that this
>                         approach assumes that by enabling SACK would also enable DSACK
>                         in full which is not the case. Therefore, the suggested rule in
>                         ECN++ does not result in correct operation for RACK-TLP and
>                         F-RTO. It requires correct impöementation at both ends.
>
>                         I’ve already tried to explain this earlier but try to come up
>                         with a detailed list clarifying the actions needed at each end
>                         later today.
>
>                         Thanks,
>
>                         /Markku
> 
>
>                               tuexen@fh-muenster.de kirjoitti 27.10.2023 kello
>                               19.35:
> 
> 
>
>                                     On Sep 21, 2023, at 19:51,
>                                     tuexen@fh-muenster.de wrote:
>
>                                     Dear all,
>
>                                     this e-mail is a gentle reminder for
>                                     the 2nd working group last call for
>                                     draft-ietf-tcpm-accurate-ecn-26.
>
>                                     The WGLC runs until Friday, September
>                                     22nd 2023.
>
>                                     Please send any comments, including
>                                     indications to support this document,
>                                     to the TCMP mailing list by then.
>
>                                     In particular, if you have made
>                                     comments during the first WGLC,
>                                     indicate whether
>                                     the comments have been addressed or
>                                     not.
>
>                                     The ID is available at
>                                     https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-26.html
>
>                               Dear all,
>
>                               based on the feedback, the WG chairs have declared
>                               consensus on this document.
>                               We do understand that not all all feedback provided
>                               was addressed in a way
>                               expected by the person giving the feedback.
>
>                               Best regards
>                               Michael
>
>                                     Best regards
>                                     Michael
> 
>
>                               _______________________________________________
>                               tcpm mailing list
>                               tcpm@ietf.org
>                               https://www.ietf.org/mailman/listinfo/tcpm
> 
>
>                         _______________________________________________
>                         tcpm mailing list
>                         tcpm@ietf.org
>                         https://www.ietf.org/mailman/listinfo/tcpm
> 
>
>                   _______________________________________________
>                   tcpm mailing list
>                   tcpm@ietf.org
>                   https://www.ietf.org/mailman/listinfo/tcpm
> 
> 
> 
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
> 
> 
> -- 
> ________________________________________________________________
> Bob Briscoe                               http://bobbriscoe.net/
> 
>