Subject: [tsvwg] [Errata Verified] RFC3168 (5966)

From: RFC Errata System <[email-masked]>
Date: Mon, 20 Apr 2020 08:42:05 -0700 (PDT)

The following errata report has been verified for RFC3168,
"The Addition of Explicit Congestion Notification (ECN) to IP". 

--------------------------------------
You may review the report below and at:
https://www.rfc-editor.org/errata/eid5966

--------------------------------------
Status: Verified
Type: Editorial

Reported by: Richard Scheffenegger <[email-masked]>
Date Reported: 2020-01-26
Verified by: Martin Duke (IESG)

Section: 6.1

Original Text
-------------
Section 6.1 states:

      * The sender sets the CWR flag in the TCP header of the next
        packet sent to the receiver to acknowledge its receipt of and
        reaction to the ECN-Echo flag.

section 6.1.2 clarifies:

   We ensure that the "Congestion Window Reduced" information is
   reliably delivered to the TCP receiver.  This comes about from the
   fact that if the new data packet carrying the CWR flag is dropped,
   then the TCP sender will have to again reduce its congestion window,
   and send another new data packet with the CWR flag set.  Thus, the
   CWR bit in the TCP header SHOULD NOT be set on retransmitted packets.

   When the TCP data sender is ready to set the CWR bit after reducing
   the congestion window, it SHOULD set the CWR bit only on the first
   new data packet that it transmits.

Corrected Text
--------------
Section 6.1 should say:

      * The sender sets the CWR flag in the TCP header of the next new 
        data packet sent to the receiver to acknowledge its receipt of and
        reaction to the ECN-Echo flag.

Notes
-----
Discrepancies in the above text lead to poorly interoperating implementations. In NetBSD (and derived implementationd), the "SHOULD set CWR on new data" was used liberal in setting CWR on the very next packet to be sent, regardless of type. While at the same time the Linux implementation performed very stingent tests on the receiver side, if the sender was complying with the "SHOULD" like a "MUST". In request-response session with frequently changing data direction, this leads to a collapse of the congestion window, as the *BSD side will continue to interpret the still latched ECE flag as an indication of another RTT of congestion.

== Reviewer note: The original report recommended a requirement that TCP receivers MUST process CWR on any packet, data or otherwise. While this would be helpful to interoperate implementations that are incorrect due to this erratum, it is a slight change in the intent of the document.

--------------------------------------
RFC3168 (draft-ietf-tsvwg-ecn-04)
--------------------------------------
Title               : The Addition of Explicit Congestion Notification (ECN) to IP
Publication Date    : September 2001
Author(s)           : K. Ramakrishnan, S. Floyd, D. Black
Category            : PROPOSED STANDARD
Source              : Transport Area Working Group
Area                : Transport
Stream              : IETF
Verifying Party     : IESG