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

Loa Andersson <loa@pi.nu> Sat, 28 January 2017 08:44 UTC

Return-Path: <loa@pi.nu>
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 1C146129453; Sat, 28 Jan 2017 00:44:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.098
X-Spam-Level:
X-Spam-Status: No, score=-5.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-3.199, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 LvLivUpzPZFe; Sat, 28 Jan 2017 00:44:55 -0800 (PST)
Received: from pipi.pi.nu (pipi.pi.nu [83.168.239.141]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AFE6512946C; Sat, 28 Jan 2017 00:44:54 -0800 (PST)
Received: from [192.168.1.11] (unknown [122.52.28.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: loa@pi.nu) by pipi.pi.nu (Postfix) with ESMTPSA id D57FE18013DA; Sat, 28 Jan 2017 09:44:49 +0100 (CET)
To: Donald Eastlake <d3e3e3@gmail.com>
References: <e32f157e-c466-ec37-56aa-ebabdac91464@pi.nu> <CAF4+nEH6zSpV=S2W68DSz53c4d0TRnnJt_cech11anuVXryXCw@mail.gmail.com>
From: Loa Andersson <loa@pi.nu>
Message-ID: <2a67b907-bba6-31c9-2d53-7581df97cac4@pi.nu>
Date: Sat, 28 Jan 2017 16:44:40 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0
MIME-Version: 1.0
In-Reply-To: <CAF4+nEH6zSpV=S2W68DSz53c4d0TRnnJt_cech11anuVXryXCw@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/trill/vlCde3ch9WCf0R57Xjc25gpdgSo>
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: Sat, 28 Jan 2017 08:44:58 -0000

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