Re: [trill] QA review of draft-ietf-trill-ecn-support

Donald Eastlake <d3e3e3@gmail.com> Sun, 12 March 2017 21:43 UTC

Return-Path: <d3e3e3@gmail.com>
X-Original-To: trill@ietfa.amsl.com
Delivered-To: trill@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D7AD2129503; Sun, 12 Mar 2017 14:43:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.449
X-Spam-Level:
X-Spam-Status: No, score=-2.449 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 T0Drol9FSeQS; Sun, 12 Mar 2017 14:43:08 -0700 (PDT)
Received: from mail-io0-x235.google.com (mail-io0-x235.google.com [IPv6:2607:f8b0:4001:c06::235]) (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 C7A3E1294B0; Sun, 12 Mar 2017 14:43:04 -0700 (PDT)
Received: by mail-io0-x235.google.com with SMTP id l7so74262295ioe.3; Sun, 12 Mar 2017 14:43:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/chdG33t3R+6Cr0AG8WPlY4SwKd6Pb6MmjjNRnW/BTM=; b=TiGtfLgKGz7hrCdVCXZUEdQOPIeSzHQXYCw3Ag+XUR6ESHjpNBzTFKzAKsVaj3AgLW 9++bv/Mb8E+E82VMew/uENeAWr+UqGQ/ceaQTzDe+Mu97XceyT6C/9iEuLynsDGMlhBg 2AzIxFX+Wdod2yxQ/9zUhf8xg7cOAJWpNzDtcQFdsXN3pruUX2M8awlCKP4CWwPJSjwW kvPBOAiPAb9InBhJ3FPVSBhmXZdmtbKhkcmgM8VRcLTex3kANk4GAoBKO2kHeCbDes7R WxFIeYimveR5FQ293bMpxFqW0ah+iQGhPQCavnE5UMV/wvi8HY29TXNAgEQGIVYSgdf5 Ol1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=/chdG33t3R+6Cr0AG8WPlY4SwKd6Pb6MmjjNRnW/BTM=; b=KXWsRVAzObu6bupdKE/17QRz8uWpzuNcG3quTQLsk1GScAumUm+lOOGaw6tBj7TEHZ QanJr71ZWixsos9MvxUiQLijqwkZUY7yOcQCdUPdITUh96t/8glkGllcDTNTYIw91ygV uHL6haU2YUlz2cxOqQqWoAGjuexuB1Q+IfxN4J3O/PfaqQ6fDljAcd7jtKKeGo7FoH5D F04D55Zpvvs9O9aayma48QnLZd3sCHay/K2rHSoXLDA0zKgDeo56Uw4yWYSofCxFs1Tf pSle2hy5skgNj8hwCWRvemnDA/BcN3M3lrZIdoB53I1jDp9xRaFtXsOFAfxQpJ7iY7fJ AYUw==
X-Gm-Message-State: AMke39l+0gRm45UYuPd95aTfybyx6Nqs9V2kANConx73Ux8QBX+sL500ug6qZqsorxh2yi6P1pUP+HRjNIR+1g==
X-Received: by 10.107.30.3 with SMTP id e3mr23663710ioe.12.1489354983939; Sun, 12 Mar 2017 14:43:03 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.135.215 with HTTP; Sun, 12 Mar 2017 14:42:48 -0700 (PDT)
In-Reply-To: <2a67b907-bba6-31c9-2d53-7581df97cac4@pi.nu>
References: <e32f157e-c466-ec37-56aa-ebabdac91464@pi.nu> <CAF4+nEH6zSpV=S2W68DSz53c4d0TRnnJt_cech11anuVXryXCw@mail.gmail.com> <2a67b907-bba6-31c9-2d53-7581df97cac4@pi.nu>
From: Donald Eastlake <d3e3e3@gmail.com>
Date: Sun, 12 Mar 2017 17:42:48 -0400
Message-ID: <CAF4+nEGcim-2J6uRXo+FxFhXVLJh9M-BOFRwmi1uyrwwuT4q5Q@mail.gmail.com>
To: Loa Andersson <loa@pi.nu>
Content-Type: multipart/alternative; boundary="001a11408e4ec328e4054a8f7a39"
Archived-At: <https://mailarchive.ietf.org/arch/msg/trill/hn6qA9sh3vhbbajQxR1TBRJIFyo>
Cc: "rtg-dir@ietf.org" <rtg-dir@ietf.org>, draft-ietf-trill-ecn-support@ietf.org, "trill-chairs@ietf.org" <trill-chairs@ietf.org>, "Yemin (Amy" <amy.yemin@huawei.com>, "trill@ietf.org" <trill@ietf.org>
Subject: Re: [trill] QA review of draft-ietf-trill-ecn-support
X-BeenThere: trill@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Developing a hybrid router/bridge." <trill.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trill>, <mailto:trill-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trill/>
List-Post: <mailto:trill@ietf.org>
List-Help: <mailto:trill-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trill>, <mailto:trill-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 12 Mar 2017 21:43:11 -0000

Hi Loa,

The -02 version of draft-ietf-trill-ecn-support, just posted, included the
improvements we have discussed.

Thanks,
Donald
===============================
 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 155 Beaver Street, Milford, MA 01757 USA
 d3e3e3@gmail.com

On Sat, Jan 28, 2017 at 3:44 AM, Loa Andersson <loa@pi.nu> wrote:

> Donald,
>
> I'm pretty happy with your response on my comments. I think that the
> agreed updates will go a long way to improve readability of the
> document.
>
> /Loa
>
>
> On 2017-01-27 06:09, Donald Eastlake wrote:
>
>> Hi Loa,
>>
>> Thanks for your comments. See below
>>
>> On Sat, Jan 21, 2017 at 12:02 AM, Loa Andersson <loa@pi.nu> wrote:
>>
>>> Authors,
>>>
>>> I have been asked to do a Routing Area Directorate QA review of
>>> draft-ietf-trill-ecn-support.
>>>
>>> Caveat - I'm not a congestion control expert, and this will show up in
>>> my comments. The place where I ask for clarifications might be perfectly
>>> clear for a reader that is up to speed in the area.
>>>
>>> Summary:
>>>
>>> I think the document is on the right track, for a reader not an
>>> expert in the area there are a lot of abbreviations that are not
>>> properly expanded. I also think that it would be a good idea to more
>>> clearly make the the case why the document is needed (abstract
>>> and/or introduction).
>>>
>>> After a while I stop trying to distinguish between "Minor issues"
>>> and "Nits" and placed everything as Minor Issues. I guess I could
>>> have done everything as Nits :).
>>>
>>
>> OK :-)
>>
>> Other than the Comment/Minor Issues I find the document pretty solid,
>>>
>>
>> Thanks.
>>
>> though I sometimes found it hard to parse sentences.
>>> If you want I can take a look at that aspect once what is in this
>>> review has been addressed.
>>>
>>> Comments:
>>>
>>> Last paragraph of the Introduction
>>> ----------------------------------
>>>
>>>    Whichever RBridges do not support ECN, this
>>>    specification ensures congestion notification will propagate safely
>>>    to Destination because the packet will be dropped if explicit
>>>    congestion notification cannot be propagated and drop is itself an
>>>    implicit form of congestion notification.
>>>
>>> Is this logic really watertight? What if the packet is dropped because
>>> of a
>>> checksum error?
>>>
>>
>> I think the point of that paragraph is to overcome the presumption
>> many readers might have that ECN marking would be useless if the
>> Destination does not understand ECN marking.
>>
>> Major Issues:
>>>
>>>
>>> Minor Issues:
>>>
>>> Abstract
>>> --------
>>> I find the Abstract a bit meager, a little more context would be good.
>>>
>>>    Maybe lead with some short words about what ECN is good for.
>>>
>>> And maybe use this from the Introduction:
>>>
>>>    This specification provides for any ECN marking in the traffic at the
>>>    ingress to be copied into the TRILL Extension Header Flags Word. It
>>>    also enables congestion marking by a congested RBridge such as RBn or
>>>    RB1 above in the TRILL Header Extension Flags Word [RFC7179].
>>>
>>
>> OK. How about this:
>>
>>    Explicit congestion notification (ECN) allows a forwarding element
>>    to notify downstream devices, including the destination, of the
>>    onset of congestion without having to drop packets. This can
>>    improve network efficiency through better flow control without
>>    packet drops. This document extends ECN to TRILL switches,
>>    including integration with IP ECN, and provides for ECN marking in
>>    the TRILL Header Extension Flags Word (see RFC 7179).
>>
>> ECNencapGuide
>>> -------------
>>>
>>> This reference has expired, probably not a problem since Bob is a
>>> co-author of both documents.
>>>
>>> TRILL Header
>>> ------------
>>>
>>> Referred to in section in the Introduction, I think a reference would be
>>> good.
>>>
>>
>> OK.
>>
>> The ECN Specific Extended Header Flags
>>> --------------------------------------
>>>
>>> The pictures is less than intuitive, it took me quite some time de-code
>>> it.
>>> I did the following:
>>> Critical (?) flags
>>>  0 - CRHbH (no expansion found in document)
>>>  1 - CRItE (no expansion found in document)
>>>  2 - CRRsv (no expansion found in document)
>>>
>>> CHbH flags (Critical Hop by Hop flags - no expansion found in document)
>>>  3 - unassigned
>>>  4 - unassigned
>>>  5 - unassigned
>>>  6 - unassigned
>>>  7 - CRCAF (no expansion found in document)
>>>
>>> NCHbH flags = Non-Critical Hop-by-Hop flags
>>>  8 - NCCAF (no expansion found in document)
>>>  9 - unassigned
>>> 10 - unassigned
>>> 11 - unassigned
>>> -------------------------------------------
>>> 12 - ECN = Explicit Congestion Notification
>>> 13   (two bit flags)
>>> -------------------------------------------
>>>
>>> CRSV flags (no expansion found in document)
>>> -------------------------------------------
>>> 14 - Ext Hop Cnt (no expansion found in document)
>>> 15   three bit field
>>> 16
>>> ------------------------------------------
>>>
>>> NCRSV flags (no expansion found in document)
>>> 17 - unassigned
>>> 18 - unassigned
>>> 19 - unassigned
>>> 20 - unassigned
>>> ------------------------------------------
>>>
>>> CItE flags = Critical Ingress-to-Egress
>>> ------------------------------------------
>>> 21 - unassigned
>>> 22 - unassigned
>>> 23 - unassigned
>>> 24 - unassigned
>>> 25 - unassigned
>>> 26 - CCE = Critical Congestion Experienced
>>> ------------------------------------------
>>>
>>> NCItE flags = Non Critical Ingress-to-Egress
>>> --------------------------------------------
>>> 27 - Ext Clr (no expansion found in document)
>>> 28   two bit field
>>> --------------------------------------------
>>> 29 - unassigned
>>> 30 - unassigned
>>> 31 - unassigned
>>>
>>
>> I'm not sure how much explanation/definition needs to appear in this
>> document for bits that are irrelevant to the document. All of your "no
>> expansion found in document" comments are true and probably a bit more
>> should be said but the draft does, in connection with bits other than
>> those it specifies, say
>>
>>    See [RFC7780] and [RFC7179] for the meaning of the other
>>    bits.
>>
>> The format seems moderately clear and is the same as in Section 10.2
>> of RFC 7780. Adding a mention that the TRILL Header Extension Flags
>> Word is 32-bits and the bit numbers are across the top might
>> help. Also, for those wishing to see a more tabular presentation, a
>> pointer to the IANA Registry
>> http://www.iana.org/assignments/trill-parameters/trill-
>> parameters.xhtml#extended-header-flags
>> might help.
>>
>> Multi-bit flags
>>> ---------------
>>>
>>> In the context I've been active "flags" are one bit, if there are
>>> multiple
>>> bits they are called fields. I understand that in the context
>>> this is written there are multiple bit flags.
>>>
>>
>> At the beginning of Section 2, it says "a two-bit TRILL-ECN
>> field". Since the name of the TRILL Header "Extension Flags Word" is
>> now embedded in multiple RFCs, I don't think that should be changed
>> but I wouldn't have any problem reviewing the draft to see that
>> multi-bit regions of that 32-bit word are consistently referred to as
>> fields.
>>
>> Bit 11 and 12
>>> -------------
>>>
>>> Bit 11 and 12 has the following code points:
>>>
>>>           Binary  Name     Meaning
>>>           ------  -------  -----------------------------------
>>>             00     Not-ECT Not ECN-Capable Transport
>>>             01     ECT(1)  ECN-Capable Transport (1)
>>>             10     ECT(0)  ECN-Capable Transport (0)
>>>             11     NCCE    Non-Critical Congestion Experienced
>>>
>>>                     Table 1. TRILL-ECN Field Codepoints
>>>
>>> There is no good explanation what ECT(0) and ECT(1) means, even though
>>> it is (page 9) said that "ECT(1) as a lesser severity level, termed the
>>> Threshold-Marked (ThM) codepoint". It could be inferred that ECT(0) is
>>> a higher severity level, but this should be clearly spelled out.
>>>
>>
>> That distinction between ECT(0) and ECT(1) only applies if the PCN
>> variant of ECN is in use which is why the text you quote is in a
>> subsection of Section 4 (TRILL Support for ECN Variants). There is a
>> reference to RFC 6660 which talks about this. Perhaps we can make that
>> clearer.
>>
>> RFC 3168 does not make the distinction between ECT(0) and ECT(1), but
>>> says that it will be done in future RFCs; since this is about 3000 RFCs
>>> ago it might have happened but I couldn't find it. If this has been done
>>> I think a reference would be good.
>>>
>>
>> This distincition is in RFC 6660 on PCN (Pre-Congestion Notification).
>>
>> Code Point 0b11
>>> ---------------
>>> The text above Table 1 says:
>>> OLD
>>> "However codepoint 11 is called Non-Critical Congestion Experienced
>>> (NCCE)..."
>>> I think this should be:
>>> However code point 0b11 is called Non-Critical Congestion Experienced
>>> (NCCE)..."
>>>
>>
>> OK.
>>
>> The text further says that the code point is call NCCE to distinguish
>>> it from Congestion Experienced in IP. The question I have is why it is
>>> necessary to distinguish code point 0b11, but not 0b00, 0b01 and 0b10?
>>>
>>
>> Because the meaning of the other three code points is the same in
>> TRILL and IP.
>>
>> ECN SUpport
>>> -----------
>>>
>>> The first paragraph has "logically" at three places, what would be the
>>> difference if these "logically" are dropped?
>>>
>>
>> Probably not. I think that word was included to be careful not to
>> overly constrain the order of processing within a TRILL switch.
>>
>> First sentence in sectuion 3.1
>>> ------------------------------
>>>
>>> The sentence says:
>>> "The ingress behavior is as follows:"
>>>
>>> I would say
>>> "The behavior of an ingress RBridge is as follows:"
>>> or even
>>> "The behavior of an ingress RBridge MUST be as follows:"
>>>
>>
>> OK.
>>
>> cleared vs set to zero
>>> ----------------------
>>> The last sub-bullet in the first main bullet of section 3.1 says:
>>> "ensure the CCE flag is cleared to zero (Flags Word bit 26)." I would
>>> have used "cleared" or "swt to zero".
>>>
>>
>> I think "set to zero" is clearer.
>>
>> First line section 3,2
>>> ----------------------
>>> s/ahow/shown
>>> Caveat I normally don't English grammar reviews, but sometimes I can't
>>> stop
>>> myself :)
>>>
>>
>> OK.
>>
>> Second line first main bullet in section 3.2
>>> --------------------------------------------
>>>
>>> I prefer the format "guidelines in RFC 7567 [RFC7567]"
>>>
>>
>> I really don't see any benefit to that and I think "RFC xxxx
>> [RFCxxxx]" is not used in TRILL RFCs.
>>
>> Third sub-bullet in the third main bullet of section 3.2
>>> ---------------------------------------------------------
>>>
>>> It says:
>>> "+  set the TRILL-ECN field to Not-ECT (00);"
>>>
>>> Here you use "field" instead of "flag", which is fine, but the document
>>> should be consistent. Either:
>>> +  set the TRILL-ECN field to Not-ECT (0b00);
>>> or
>>> +  set the TRILL-ECN flag to Not-ECT (0b00);
>>>
>>
>> I agree with your earlier comment that "field" is generally better.
>>
>> Egress ECN Support
>>> ------------------
>>> First sentence:
>>>   "If the egress RBridge does not support ECN, it will ignore bits 12
>>>    and 13 of any Flags Word that is present, because it does not contain
>>>    any special ECN logic."
>>>
>>> in "it will ignore" what does "it" refer to?
>>>
>>> SHould it be:
>>>
>>>   "If the egress RBridge does not support ECN, the RBridge will ignore
>>>    the TRILL-ECN field (bits 12 and 13) if a Flags Word that is
>>>    present, because it has no ECN logic."
>>>
>>
>> Yes, although it might be even clearer in the first line to say
>> "... ECN, that RBridge will ..."
>>
>> TRILL Support for ECN Variants
>>> ------------------------------
>>> The second sentence of section four says:
>>>
>>>    Section 3 specifies interworking between TRILL and the original
>>>    standardized form of ECN in IP [RFC3168].
>>>
>>> RFC 3168 is updated by RFC 4301, RFC 6040, does section 3 relate to
>>> RFC 3168 or does the updates come into plan. IF the updates are in
>>> scope I think the sentence should say:
>>>
>>>    Section 3 specifies interworking between TRILL and the original
>>>    standardized form of ECN in IP RFC 3168 [RFC3168], and the updates
>>>    in RFC4310 [RFC4301] and RFC 6040 [6040].
>>>
>>
>> Interestingly, although RFC Editor meta-data consistencly shows RFC
>> 4301 as updating RFC 3168, this is not indicated on the first page of
>> RFC 4301. While ECN is mentioned a number of times in RFC 4301 and
>> that RFC could be viewed as extending ECN, I'm not quite sure what, if
>> any, change RFC 4301 makes to the behavior standardized RFC in 3168.
>>
>> I'll look at this more closely but I think the text currently in the
>> draft is OK and need not refer to either RFC 4301 or RFC 6040.
>>
>> Nits:
>>>
>>> Codepoints
>>> ----------
>>> at several places "codepoint(s)" I think the words IANA and the
>>> RFC Editor use is "code point(s)"
>>>
>>
>> While I didn't to an exhaustive search, everywhere I looked in the ECN
>> and PCN RFCs, "codepoint" is used so I would prefer to leave this
>> unchanged for now.
>>
>> Thanks,
>> Donald
>> ===============================
>>  Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
>>  155 Beaver Street, Milford, MA 01757 USA
>>  d3e3e3@gmail.com
>>
>> /Loa
>>> --
>>>
>>> Loa Andersson                        email: loa@mail01.huawei.com
>>> Senior MPLS Expert                          loa@pi.nu
>>> Huawei Technologies (consultant)     phone: +46 739 81 21 64
>>>
>>
> --
>
>
> Loa Andersson                        email: loa@mail01.huawei.com
> Senior MPLS Expert                          loa@pi.nu
> Huawei Technologies (consultant)     phone: +46 739 81 21 64
>