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

Donald Eastlake <d3e3e3@gmail.com> Thu, 26 January 2017 22:09 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 C3CFE129C0C; Thu, 26 Jan 2017 14:09:44 -0800 (PST)
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, RCVD_IN_DNSWL_LOW=-0.7, 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=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 k_IHjQA6rFsb; Thu, 26 Jan 2017 14:09:42 -0800 (PST)
Received: from mail-it0-x244.google.com (mail-it0-x244.google.com [IPv6:2607:f8b0:4001:c0b::244]) (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 8D9EC129BFD; Thu, 26 Jan 2017 14:09:42 -0800 (PST)
Received: by mail-it0-x244.google.com with SMTP id 203so6527973ith.2; Thu, 26 Jan 2017 14:09:42 -0800 (PST)
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=KkjBNeRZSH1uG2dsrAjIqV+NEEhtOgMabN1sHfP/ix8=; b=FOPWjxG6P4SUDR3UYaK88yKTcinYie37IR5Z1nN/4/TiIu5s993rrBcJX5DVuHC7fI 6r+DhOC1Xcl1EJCIJGPmo7Z8fdEWwztcLt5H9lL6x9OsL8Lkz0VJa+Xf1hFkoG2S72yR oPBvgyzKQ6E7eSJWa9RuifjEzXwzGoBdi+3xNxH2JG7Co5I6IKNNpTD2eubF7BWP+7re Lgtg8UgTIbpi0W19hLOEigRPkFYA+Drs1nrWCtT38tVhP7E43Qtr4CxuUzjJJtTp6vOs fzoJMaK62MXT+eCoqWWIhBQctooMwab9tKCkRozYRLV7qvJYZpi04HTm8mDjcsNAPYW+ gdNg==
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=KkjBNeRZSH1uG2dsrAjIqV+NEEhtOgMabN1sHfP/ix8=; b=BMF2Q0UG/lXOp4x/SH6zCmI2kTIndaWXS0cVZj4LiUzGAOPaJYdOpg8DvUeU2q/5PH 9D1loBh90ASmBSvg6pqOAUfzmtudeD395Dy6YNVdR/dRJRn58uTCHgDOSlegiMdDSuGs arkdoTd5aCzNVroeavtqJnUDSfdClPr6zLX9ccI29kR/5Md82vRA1tNTxNfr656scVBY VwDtKTJEH6NMYx9pkkXO2eQxzM72xciYNrTmZ7noxDeIYYFFb1UlnOr3dttTZKrxUWWR ksVe7X3G38fiVnmRVBKbPU66e4K1DAGIQ/yXHzl8I0C2rHE+jZXjAKFPO0g3TjS3QWgF lTrA==
X-Gm-Message-State: AIkVDXIfabK9JzFZHPU+z3Yaz6j7asBh4KWAvD7Y/ogDsNWumYjVu8VwKVtpqXBG3x4jcFHbj0LtlosD6H9a4w==
X-Received: by 10.36.170.68 with SMTP id y4mr689740iti.7.1485468581571; Thu, 26 Jan 2017 14:09:41 -0800 (PST)
MIME-Version: 1.0
Received: by 10.107.41.72 with HTTP; Thu, 26 Jan 2017 14:09:26 -0800 (PST)
In-Reply-To: <e32f157e-c466-ec37-56aa-ebabdac91464@pi.nu>
References: <e32f157e-c466-ec37-56aa-ebabdac91464@pi.nu>
From: Donald Eastlake <d3e3e3@gmail.com>
Date: Thu, 26 Jan 2017 17:09:26 -0500
Message-ID: <CAF4+nEH6zSpV=S2W68DSz53c4d0TRnnJt_cech11anuVXryXCw@mail.gmail.com>
To: Loa Andersson <loa@pi.nu>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/trill/I1KEs-Zvz6Mx5voyfOaLwr0pydA>
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: Thu, 26 Jan 2017 22:09:45 -0000

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