Re: [tcpm] [Technical Errata Reported] RFC8257 (6697)

Vidhi Goel <vidhi_goel@apple.com> Thu, 04 November 2021 00:37 UTC

Return-Path: <vidhi_goel@apple.com>
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 622323A14F7; Wed, 3 Nov 2021 17:37:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.102
X-Spam-Level:
X-Spam-Status: No, score=-2.102 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
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 aZR9Wi6NrbI9; Wed, 3 Nov 2021 17:37:14 -0700 (PDT)
Received: from ma1-aaemail-dr-lapp02.apple.com (ma1-aaemail-dr-lapp02.apple.com [17.171.2.68]) (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 C5B4F3A14F6; Wed, 3 Nov 2021 17:37:13 -0700 (PDT)
Received: from pps.filterd (ma1-aaemail-dr-lapp02.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp02.apple.com (8.16.0.42/8.16.0.42) with SMTP id 1A40XUmU013223; Wed, 3 Nov 2021 17:37:04 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=6wbL6AU7t2VoUzJuh6rO5WTyqytmqA7IouwJJ1q/BuE=; b=a3IIUqs8CzUIODSlWUO0wF1VVXU67gCz99qtsi1CfPtissnr2sMaO60shdu12SSDXdA4 oh7qp1wBsvhj/Lr6StGJUhZB8ok8auVXvh/vHVUdEDZfYUtBZOlB/R1VkkU1x0JVMIuB ypm1KQQ7f2eH2rT6MZVePvXt+LOfmnF8CZo1/VGXYDnuWJA7euObBWTQR6LZO0981lEJ OeGaGUesL84cM7ZrwUTn1Rg32a5Rm8/V9XmsVelFuSokv1FItJkmpFrJK0D7slcSEKlr /0AFoNhdgGJJCiloB/l8zt5RkWoVebCG6I+9EKxfxHuCY5rpFDzGwyaOnjbt/Pm1lU2K gA==
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by ma1-aaemail-dr-lapp02.apple.com with ESMTP id 3c12quecpt-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Wed, 03 Nov 2021 17:37:04 -0700
Received: from rn-mailsvcp-mmp-lapp02.rno.apple.com (rn-mailsvcp-mmp-lapp02.rno.apple.com [17.179.253.15]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPS id <0R2000FHLV1REI60@rn-mailsvcp-mta-lapp02.rno.apple.com>; Wed, 03 Nov 2021 17:37:03 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp02.rno.apple.com by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) id <0R2000T00UV2U900@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Wed, 03 Nov 2021 17:37:03 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 0a0df360627395f724d6aa30e9ec8c7f
X-Va-E-CD: 1a0ff53b1cc9743547fae51364312ea2
X-Va-R-CD: b7a4a7f65cbf65b241f39fe55b06b74f
X-Va-CD: 0
X-Va-ID: bcb304cc-f508-4934-a8de-7638c52f521a
X-V-A:
X-V-T-CD: 0a0df360627395f724d6aa30e9ec8c7f
X-V-E-CD: 1a0ff53b1cc9743547fae51364312ea2
X-V-R-CD: b7a4a7f65cbf65b241f39fe55b06b74f
X-V-CD: 0
X-V-ID: 02d82b7c-b655-469e-919c-8908bed59035
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.790 definitions=2021-11-03_06:2021-11-03, 2021-11-03 signatures=0
Received: from smtpclient.apple (unknown [17.11.101.197]) by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPSA id <0R2000S9XV1QGR00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Wed, 03 Nov 2021 17:37:02 -0700 (PDT)
From: Vidhi Goel <vidhi_goel@apple.com>
Message-id: <DFE6EB68-DC06-4958-88A4-FD8ADF769226@apple.com>
Content-type: multipart/signed; boundary="Apple-Mail=_328F1A4C-8A1F-4A9E-9DE2-7936C9D32D71"; protocol="application/pkcs7-signature"; micalg="sha-256"
MIME-version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.11\))
Date: Wed, 03 Nov 2021 17:37:01 -0700
In-reply-to: <CB870F54-4E2B-43C4-9674-7D847081D96D@fh-muenster.de>
Cc: Bob Briscoe <ietf@bobbriscoe.net>, "tcpm-chairs@ietf.org" <tcpm-chairs@ietf.org>, RFC Errata System <rfc-editor@rfc-editor.org>, dthaler@microsoft.com, pravb@microsoft.com, lars@netapp.com, tcpm@ietf.org, "tsv-ads@ietf.org" <tsv-ads@ietf.org>, Neal Cardwell <ncardwell@google.com>
To: Michael Tuexen <tuexen@fh-muenster.de>
References: <20210928071818.BE0D7F40865@rfc-editor.org> <96ce4984-3678-9bdf-6b76-d7ba1bd42dcc@bobbriscoe.net> <CADVnQymMRzvs_4QRuSziYXfwu6ttKfak5cv5G=eBRvX8qOQKWw@mail.gmail.com> <d1514f76-fc40-fa73-c953-efcb70fe6901@bobbriscoe.net> <abd8609d-b643-2911-f082-9ce2ebe41bbd@bobbriscoe.net> <CB870F54-4E2B-43C4-9674-7D847081D96D@fh-muenster.de>
X-Mailer: Apple Mail (2.3654.100.0.2.11)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.790 definitions=2021-11-03_06:2021-11-03, 2021-11-03 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/HbUibBAoogJ3kDFGTmskXbLa8vs>
X-Mailman-Approved-At: Thu, 04 Nov 2021 08:34:35 -0700
Subject: Re: [tcpm] [Technical Errata Reported] RFC8257 (6697)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 04 Nov 2021 00:37:20 -0000

>> The status of this erratum is 'Reported'. I think some consensus was reached on the list. What happens now? Who is meant to propose updated text for the erratum based on the discussion?
> Hi Bob,
> 
> as far as I know, the WG chairs can't change erratas. That might be possible for AD, I think,
> but I'm not sure.

I am a bit new to the errata process and would like to understand a bit more about next steps. Based on Bob’s suggestion about updated text and feedback from others, how do we proceed to make the necessary change to the RFC 8257?
Is the only thing we can do now is somehow update the Suggestion in errata itself? When would the update me applied to the RFC?


Thanks,
Vidhi

> On Nov 3, 2021, at 12:02 PM, tuexen@fh-muenster.de wrote:
> 
>> On 3. Nov 2021, at 19:09, Bob Briscoe <ietf@bobbriscoe.net> wrote:
>> 
>> TCPM chairs,
>> 
>> The status of this erratum is 'Reported'. I think some consensus was reached on the list. What happens now? Who is meant to propose updated text for the erratum based on the discussion?
> Hi Bob,
> 
> as far as I know, the WG chairs can't change erratas. That might be possible for AD, I think,
> but I'm not sure.
> 
> Best regards
> Michael
>> 
>> 
>> Bob
>> 
>> On 01/10/2021 14:12, Bob Briscoe wrote:
>>> Neal,
>>> 
>>> On 30/09/2021 16:43, Neal Cardwell wrote:
>>>> I agree with the points made by Vidhi and Bob, and really like Bob's text.
>>>> 
>>>> In the suggested text there may be a typo; I believe we want s/SND.UNA/SND.NXT/.
>>> 
>>> [BB] Agree (and your next point about solely ECN indications).
>>> 
>>> I only said SND.UNA 'cos I was looking back at this earlier sentence in the RFC, and I copied the idea without engaging brain:
>>>   o  DCTCP.WindowEnd: the TCP sequence number threshold when one
>>>      observation window ends and another is to begin; initialized to
>>>      SND.UNA.
>>> 
>>> Why does this say SND.UNA? Is this another erratum? I believe the Linux code initializes to SND.NXT in dctcp_reset(), which is called from dctcp_init():
>>> https://elixir.bootlin.com/linux/v4.7/source/net/ipv4/tcp_dctcp.c#L78
>>> 
>>> BTW, step 7 correctly says SND.NXT:
>>>   7.  Determine the end of the next observation window:
>>> 
>>>          DCTCP.WindowEnd = SND.NXT
>>> 
>>> 
>>> 
>>> 
>>> Bob
>>> 
>>>> And probably we want to be more specific about only suppressing further ECN-based reductions (further loss-triggered reductions would be good to allow). I'm posting my suggested tweaks in blue, starting from Bob's nice green text:
>>>> 
>>>> SUGGESTED:
>>>> ==========
>>>> 
>>>> 3.4. Congestion Window Reduction
>>>>   Rather than always halving the congestion window as described in
>>>>   [RFC3168]
>>>> , on the arrival of ECN congestion feedback,
>>>> the sender SHOULD 
>>>>   update cwnd as follows:
>>>> 
>>>>      cwnd = cwnd * (1 - DCTCP.Alpha / 2)
>>>> 
>>>>   Just as specified in [RFC3168], DCTCP does not react to congestion
>>>>   indications more than once for every window of data. 
>>>> Therefore, as 
>>>>   for RFC3168 ECN, it sets the variable for the end of congestion
>>>>   window reduced (CWR) state to 
>>>> SND.NXT
>>>> and suppresses further
>>>> 
>>>> ECN-triggered
>>>> reductions until this TCP sequence number is acknowledged. Periods
>>>>   of CWR state are triggered by congestion feedback, and therefore
>>>>   occur at times unrelated to the continuous cycle of observation
>>>>   windows used to update DCTCP.Alpha in Section 3.3.
>>>> 
>>>> 
>>>>   The setting of the CWR bit is also as per [RFC3168].  This is 
>>>>   required for interoperation with classic ECN receivers due to 
>>>>   potential misconfigurations.
>>>> 
>>>> 3.
>>>> 5.  Handling of Congestion Window Growth...
>>>> 
>>>> neal
>>>> 
>>>> 
>>>> On Thu, Sep 30, 2021 at 11:22 AM Bob Briscoe <in@bobbriscoe.net> wrote:
>>>> Vidhi,
>>>> 
>>>> You're right. It's incorrect to have the window reduction hanging off the end of the list of steps for updating the EWMA.
>>>> 
>>>> To make this concrete, here's some specific additional text (in green for those with HTML mail readers). Also, rather than splitting into sub-subsections, I have suggested that Item 9. of the list in subsection 3.3 is moved out of the list, and instead forms the basis of a new subsection 3.4. entitled "Congestion Window Reduction". 
>>>> 
>>>> CURRENT:
>>>> ========
>>>>   9.  Rather than always halving the congestion window as described in
>>>>       [RFC3168], the sender SHOULD update cwnd as follows:
>>>> 
>>>>          cwnd = cwnd * (1 - DCTCP.Alpha / 2)
>>>> 
>>>>   Just as specified in [RFC3168], DCTCP does not react to congestion
>>>>   indications more than once for every window of data.  The setting of
>>>>   the CWR bit is also as per [RFC3168].  This is required for
>>>>   interoperation with classic ECN receivers due to potential
>>>>   misconfigurations.
>>>> 
>>>> 
>>>> 3.4
>>>> .  Handling of Congestion Window Growth...
>>>> 
>>>> 
>>>> SUGGESTED:
>>>> ==========
>>>> 
>>>> 3.4. Congestion Window Reduction
>>>>   Rather than always halving the congestion window as described in
>>>>   [RFC3168]
>>>> , on the arrival of congestion feedback,
>>>> the sender SHOULD 
>>>>   update cwnd as follows:
>>>> 
>>>>      cwnd = cwnd * (1 - DCTCP.Alpha / 2)
>>>> 
>>>>   Just as specified in [RFC3168], DCTCP does not react to congestion
>>>>   indications more than once for every window of data. 
>>>> Therefore, as 
>>>>   for RFC3168 ECN, it sets the variable for the end of congestion
>>>>   window reduced (CWR) state to SND.UNA and suppresses further
>>>>   reductions until this TCP sequence number is acknowledged. Periods
>>>>   of CWR state are triggered by congestion feedback, and therefore
>>>>   occur at times unrelated to the continuous cycle of observation
>>>>   windows used to update DCTCP.Alpha in Section 3.3.
>>>> 
>>>> 
>>>>   The setting of the CWR bit is also as per [RFC3168].  This is 
>>>>   required for interoperation with classic ECN receivers due to 
>>>>   potential misconfigurations.
>>>> 
>>>> 
>>>> 3.5.  Handling of Congestion Window Growth...
>>>> 
>>>> Then the of numbering all subsequent subsections of section 3. will increment by 0.1.
>>>> 
>>>> 
>>>> 
>>>> Bob
>>>> 
>>>> On 28/09/2021 08:18, RFC Errata System wrote:
>>>>> The following errata report has been submitted for RFC8257,
>>>>> "Data Center TCP (DCTCP): TCP Congestion Control for Data Centers".
>>>>> 
>>>>> --------------------------------------
>>>>> You may review the report below and at:
>>>>> 
>>>>> https://www.rfc-editor.org/errata/eid6697
>>>>> 
>>>>> 
>>>>> --------------------------------------
>>>>> Type: Technical
>>>>> Reported by: Vidhi Goel 
>>>>> <vidhi_goel@apple.com>
>>>>> 
>>>>> 
>>>>> Section: 3.3
>>>>> 
>>>>> Original Text
>>>>> -------------
>>>>> The below pseudocode follows after DCTCP.Alpha is updated on ACK processing. This is wrong as cwnd should only be reduced using DCTCP.Alpha when ECE is received. 
>>>>> 
>>>>> 9. Rather than always halving the congestion window as described in
>>>>>       [RFC3168], the sender SHOULD update cwnd as follows:
>>>>> 
>>>>>          cwnd = cwnd * (1 - DCTCP.Alpha / 2)
>>>>> 
>>>>> Corrected Text
>>>>> --------------
>>>>> Instead, a new paragraph for Congestion Response to ECN feedback would be much clearer. First start with RFC 3168's response to ECE and then provide DCTCP's response to ECE.
>>>>> 
>>>>> I am thinking splitting section 3.3 into two sub-sections - 
>>>>> 3.3.1 Computation of DCTCP.Alpha
>>>>> 3.3.2 Congestion Response to ECE at sender
>>>>> 
>>>>> 
>>>>> 
>>>>> Notes
>>>>> -----
>>>>> Although RFC 8257 refers to RFC 3168 congestion window halving at step 9, but it is confusing to put it right after step 8.
>>>>> 
>>>>> Instructions:
>>>>> -------------
>>>>> This erratum is currently posted as "Reported". If necessary, please
>>>>> use "Reply All" to discuss whether it should be verified or
>>>>> rejected. When a decision is reached, the verifying party  
>>>>> can log in to change the status and edit the report, if necessary. 
>>>>> 
>>>>> --------------------------------------
>>>>> RFC8257 (draft-ietf-tcpm-dctcp-10)
>>>>> --------------------------------------
>>>>> Title               : Data Center TCP (DCTCP): TCP Congestion Control for Data Centers
>>>>> Publication Date    : October 2017
>>>>> Author(s)           : S. Bensley, D. Thaler, P. Balasubramanian, L. Eggert, G. Judd
>>>>> Category            : INFORMATIONAL
>>>>> Source              : TCP Maintenance and Minor Extensions
>>>>> Area                : Transport
>>>>> Stream              : IETF
>>>>> Verifying Party     : IESG
>>>>> 
>>>>> _______________________________________________
>>>>> tcpm mailing list
>>>>> 
>>>>> tcpm@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/tcpm
>>>> 
>>>> -- 
>>>> ________________________________________________________________
>>>> Bob Briscoe                               
>>>> http://bobbriscoe.net/
>>>> _______________________________________________
>>>> tcpm mailing list
>>>> tcpm@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/tcpm
>>> 
>>> -- 
>>> ________________________________________________________________
>>> Bob Briscoe                               
>>> http://bobbriscoe.net/
>> 
>> -- 
>> ________________________________________________________________
>> Bob Briscoe                               
>> http://bobbriscoe.net/
>