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

Neal Cardwell <ncardwell@google.com> Thu, 30 September 2021 15:44 UTC

Return-Path: <ncardwell@google.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 CC2053A0D55 for <tcpm@ietfa.amsl.com>; Thu, 30 Sep 2021 08:44:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -18.097
X-Spam-Level:
X-Spam-Status: No, score=-18.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.499, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 JcxhUyzxLO4U for <tcpm@ietfa.amsl.com>; Thu, 30 Sep 2021 08:44:15 -0700 (PDT)
Received: from mail-qt1-x834.google.com (mail-qt1-x834.google.com [IPv6:2607:f8b0:4864:20::834]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A37623A0D79 for <tcpm@ietf.org>; Thu, 30 Sep 2021 08:44:15 -0700 (PDT)
Received: by mail-qt1-x834.google.com with SMTP id r16so6052145qtw.11 for <tcpm@ietf.org>; Thu, 30 Sep 2021 08:44:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GzrLOjmee0aoXjK6QmdCWsKYI8yPBPWKb078Zaaps5k=; b=Aiss+cT8vfl0bslo3b5GzQmoGquORMP7DMI8PBj1DPzoerz2DCQ8PP69FSyXDBYjfN Ir2WdpzvTjXSJFznn47JvKw0k2zZPORThM1DGp7KYUP9bhRrfrFq2NQ7pmmSIhvf7dPg QxQBBJK6OIpDmYghpdTmbNdLHFWp479jcOGkwnoho9t6D39FVol8SnzoaibK72BeX/Va InIpIqAqmAM7MTNJ8z9ISzzlE7KaglT3gku8Y8VICVjnQGLxRxKb9/d8+cLMfXbLUQdz PBBiqNfseDnZGB70MfJ70eU3Iy6Y8JjDtUEbUsIHb6DFqXgSuEH3CSTKG/rJZXpGjWt4 KO3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GzrLOjmee0aoXjK6QmdCWsKYI8yPBPWKb078Zaaps5k=; b=BZxTGpf4FSME1A+MIEtpv6LKCiXU/srErmcZVBewmPd93PzJEo0F9dr4DIy7FvEgOC sLDkkCnU7qd65HnePgTGlmlPOy6e2uGc947HSg9PA2vvecVcENLUkifCFzMdCOb4gun7 0EQI0tAv2d+RIFFakxptkclc6W6EdlZQL7VNSY6LhhcQeMn+I/H3UZvkdzfarcMWvpck fs0M+aCBKhSDf/iaYoQRfWtK7p5XCIw99ulLpdRXwbJoQc0mgCttWOpuSOsNsLZFPZ/2 oY3BvSxVgsYxK3WKyQkjNpaklQ7Z8EAhbg6uB46Ph6NXAH29229bLu5je8HUlPfJ5Koj UPbQ==
X-Gm-Message-State: AOAM532JaJdFcS8jTWREC3L3+/VIMyopXs7JZYMkZgtQRzRBm077uIpl 0RUeSHB8MtsO0thYSWa8l5PrwdyXR9Zn1NMGHOVqeA==
X-Google-Smtp-Source: ABdhPJxMLMfPlDEa3FawuQHyhJ643ndZYEotrUvC9sx9KYwpCLOmVkLSc25CTKQHRGOYVjlrad125utB/rGOGc9/MbY=
X-Received: by 2002:ac8:564d:: with SMTP id 13mr7482797qtt.228.1633016654022; Thu, 30 Sep 2021 08:44:14 -0700 (PDT)
MIME-Version: 1.0
References: <20210928071818.BE0D7F40865@rfc-editor.org> <96ce4984-3678-9bdf-6b76-d7ba1bd42dcc@bobbriscoe.net>
In-Reply-To: <96ce4984-3678-9bdf-6b76-d7ba1bd42dcc@bobbriscoe.net>
From: Neal Cardwell <ncardwell@google.com>
Date: Thu, 30 Sep 2021 11:43:57 -0400
Message-ID: <CADVnQymMRzvs_4QRuSziYXfwu6ttKfak5cv5G=eBRvX8qOQKWw@mail.gmail.com>
To: Bob Briscoe <in@bobbriscoe.net>
Cc: RFC Errata System <rfc-editor@rfc-editor.org>, sbens@microsoft.com, dthaler@microsoft.com, pravb@microsoft.com, lars@netapp.com, glenn.judd@morganstanley.com, martin.h.duke@gmail.com, Zaheduzzaman.Sarker@ericsson.com, Michael.Scharf@hs-esslingen.de, tuexen@fh-muenster.de, nsd.ietf@gmail.com, tcpm@ietf.org
Content-Type: multipart/alternative; boundary="00000000000093bb4405cd385131"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/bsiY4nGttPKN-yBzuOPhDvfblpI>
X-Mailman-Approved-At: Thu, 30 Sep 2021 14:33:37 -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, 30 Sep 2021 15:44:21 -0000

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/. 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> <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 listtcpm@ietf.orghttps://www.ietf.org/mailman/listinfo/tcpm
>
>
> --
> ________________________________________________________________
> Bob Briscoe                               http://bobbriscoe.net/
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>