Re: [Isis-wg] AD review of draft-ietf-isis-l2bundles-03

Alia Atlas <akatlas@gmail.com> Fri, 07 April 2017 00:54 UTC

Return-Path: <akatlas@gmail.com>
X-Original-To: isis-wg@ietfa.amsl.com
Delivered-To: isis-wg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C39D31296C9; Thu, 6 Apr 2017 17:54:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 FrF6V-7tHuea; Thu, 6 Apr 2017 17:54:02 -0700 (PDT)
Received: from mail-wr0-x229.google.com (mail-wr0-x229.google.com [IPv6:2a00:1450:400c:c0c::229]) (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 5E44F128896; Thu, 6 Apr 2017 17:53:56 -0700 (PDT)
Received: by mail-wr0-x229.google.com with SMTP id o21so57594189wrb.2; Thu, 06 Apr 2017 17:53:56 -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=h/fC1M78jvE+kq0zzypzCxmKqGt+AhUq3WEgBU1IdGM=; b=IeHwkcTt3lHXTmp1npLR/fZmDuNMmAvS4oFmqfjh4Xe9tnyqTxBKo4kti2r0jQBQiT eKAiqcsrw/qiL5jrRnxb+LC7Ew8o+X4iUmBsdGOzbr3izk3rqFuIYjIn+dsZki5xRBXv 6uwKUusrm2AhEYDHncIOsekmwvkAzgEosSc0GSP1Ap9FyWdsOxo0QTA6yjHiX3H6rM7x jqOJRn0+OOB4l1kA7a3i6y8Wn2Xe5//6Pd7eZjXdUplBzT4Ci571V++7hiGHqlyBvYsO SHvfU4Ah25AHzdDmcG8L6l3jQTWDAeFAowI8XVIeXdST3r3nfMXb8ND83/NddLPcbiD4 Jt4w==
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=h/fC1M78jvE+kq0zzypzCxmKqGt+AhUq3WEgBU1IdGM=; b=OgX5rxnr0HUIALa8lN5uLSbl/Q1qDpLkFXWd5pfH1zjq3ujNIgckQn/8uGgvxq4JKF ZRQgOGdM1ue+shPPc7/EunLNGbYdUX6Z/NSevtPNJCAi8H/lKCVMOIGwerUM/B4flpDL ouvGqZwdTU7C7hjDhpBXHWmqll2FcbqxFIWxlnG2uKS6DaM8/eZcbgffshBWCBVOGp65 tGhXQ/KnJCrSxU9LFkGTSBmNYZQEZd8hpNb9Jq6sjfg5pVTLlvotbHt7QJaSrB+fJyjX pc93bNbmD76aEc0NCsyZs3oIxDvEyAPHjMf+HqDap7XADrnvGxOyDPOpkTCijXVUPLen aRvg==
X-Gm-Message-State: AFeK/H2K4IuFMpUcG/CtayaBLLSzEx2tWi6ziLH1P4wHe//si8uabczAA0eHOY3Hswqz/U36S5MEQ8O0UOGYCA==
X-Received: by 10.28.86.68 with SMTP id k65mr26501819wmb.112.1491526434557; Thu, 06 Apr 2017 17:53:54 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.135.17 with HTTP; Thu, 6 Apr 2017 17:53:54 -0700 (PDT)
In-Reply-To: <b502ec803d3747cca0bccb189d1204c8@XCH-ALN-001.cisco.com>
References: <CAG4d1rcv9mwE78VjFTcnWK_XcM-U-JujNXrkCxhaRNV+j9YOLA@mail.gmail.com> <b502ec803d3747cca0bccb189d1204c8@XCH-ALN-001.cisco.com>
From: Alia Atlas <akatlas@gmail.com>
Date: Thu, 06 Apr 2017 20:53:54 -0400
Message-ID: <CAG4d1rcB2OR6QztEh0x_akCixDwtfD0Yvc-t_u7zyeWSpt1csw@mail.gmail.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Cc: "isis-wg@ietf.org" <isis-wg@ietf.org>, "draft-ietf-isis-l2bundles@ietf.org" <draft-ietf-isis-l2bundles@ietf.org>
Content-Type: multipart/alternative; boundary="001a11453e564e16d8054c890f2c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/isis-wg/b_wFQBTSufMs3Utz8gJ1Yf80fcA>
Subject: Re: [Isis-wg] AD review of draft-ietf-isis-l2bundles-03
X-BeenThere: isis-wg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF IS-IS working group <isis-wg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/isis-wg>, <mailto:isis-wg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/isis-wg/>
List-Post: <mailto:isis-wg@ietf.org>
List-Help: <mailto:isis-wg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/isis-wg>, <mailto:isis-wg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Apr 2017 00:54:07 -0000

On Thu, Apr 6, 2017 at 8:30 PM, Les Ginsberg (ginsberg) <ginsberg@cisco.com>
wrote:

> Alia –
>
>
>
> Thanx for the (as always) careful review.
>
> Comments inline.
>
>
>
> *From:* Alia Atlas [mailto:akatlas@gmail.com]
> *Sent:* Thursday, April 06, 2017 1:57 PM
> *To:* isis-wg@ietf.org; draft-ietf-isis-l2bundles@ietf.org
> *Subject:* AD review of draft-ietf-isis-l2bundles-03
>
>
>
> As is customary, I have done my AD review of draft-ietf-isis-l2bundles-03.
>   First, I would like to thank the authors - Les, Ahmed, Clarence, Stefano,
> Mohan and Ebben - for their work on this document.
>
>
>
> Based upon the urgency expressed at IETF 98 for this document, of course,
> I would very much like to get it moving through the IETF process as rapidly
> as possible.  Regrettably, the document has 6 authors which is above the
> limit.  I would welcome either having a subset selected as the editor(s) or
> reducing the authorship to no more than 5.   It is most irksome to have to
> serve as the enforcement arm in this matter with authors and WG Chairs who
> have long experience with the IETF publication process and are surely aware
> and able to handle this issue without waiting for AD enforcement.
>
>
>
> *[Les:] I will negotiate with the authors and get this addressed.*
>

[Alia] Thank you.


>
>
> Assuming that the author limit issue is rapidly resolved, I do also have a
> number of technical concerns and minor improvements.  None of these are
> expected to be blocking - but they do need to be resolved.    I am
> targeting this for the IESG telechat on April 27 which means that it needs
> to ideally enter into IETF Last Call tomorrow to allow adequate time for
> the IESG and directorate review.   Knowing the speed with which some of the
> authors respond, I am confident that this is possible.
>
>
>
> As discussed at IETF 98, I will call attention to this draft and that it
> will be entering IETF Last Call to WGs (rtgwg, ospf, idr) that may be
> interested.
>
>
>
> Major:
>
>
>
> a) The assumption that bandwidth is only a shared attribute (and similarly
> weight in the new Adj-SID sub-TLV) is very concerning.  While I believe
> that standardized LACP only supports the same link speeds, I know that
> there are some routers and switches from different vendors that do allow
> different speeds.  This functionality is something that could meet some of
> the needs for RFC 7226 where the composite-links are assumed to have
> different speeds.   A solution to this for the bandwidth, for instance,
> could be to have a section describing how to take a previously defined
> sub-TLV and then modify it into a general sub-TLV that can apply to the L2
> bundle members.  The draft even has an existing example of doing this for
> the Adj-SID sub-TLV.
>
>
>
> *[Les:] You have misinterpreted text. *
>
> *There are two categories of sub-TLVs:*
>
>
>
> *1)Those that can be shared among multiple bundle members*
>
> *As stated in the draft this includes *
>
>
>
> *“All existing sub-TLVs defined in the IANA Sub-TLVs for TLVs 22, 23,*
>
> *   141, 222, and 223 registry are in the category of shared attribute*
>
> *   sub-TLVs unless otherwise specified in this document.”*
>
>
>
> *NOTE: NO exceptions are specified*
>
>
>
> *2)Those that cannot be shared among multiple bundle members. These
> include the new sub-TLVs defined:*
>
>
>
> *L2 Bundle Member Adjacency Segment Identifier sub-TLV*
>
> *L2 Bundle Member LAN Adjacency Segment Identifier sub-TLV*
>
>
>
> *And the draft states:*
>
>
>
> *“The two new sub-TLVs defined in the following sections do not fall*
>
> *   into the category of shared attribute sub-TLVs.”*
>
>
>
> *The fact that an attribute CAN be shared does not mean that it MUST be
> shared.*
>
> *If we have links with different bandwidths in a bundle then multiple sets
> of bundle members (i.e. multiple  L2 Bundle Attribute Descriptors) are
> used, one for each set of bundle members which share a given (set of)
> attributes.*
>

Yes - you are absolutely right.  I was down in the details and forgot that
one could have different members of the same L2 Bundle advertised in
separate descriptors to make this work.   Could you add a simple example to
explain/show this?  I fell into the assumption that each LAG would be
represented as a single L2 bundle in the signaling, and of course, that
isn't necessary and this mechanism provides the needed flexibility.


> *Weight in the ADJ-SID is treated in the same way except that weight isn’t
> a sub-TLV on its own – rather we follow the adj-sid format for L3 links in
> draft-ietf-isis-segment-routing-extensions – but again if there are bundle
> members with different weights then they are advertised using multiple L2
> Bundle Attribute Descriptors.*
>
>
>
> *In the course of writing the draft we evaluated multiple options for the
> encoding.*
>
>
>
> *The simplest encoding is to advertise attributes per L2 bundle member –
> but this is very inefficient as it can be expected that a given attribute
> (bandwidth is a good example) is very likely to be common for many bundle
> members.*
>
>
>
> *The most efficient encoding would have involved mixing shared and
> unshared attributes under a single L2 Bundle Attribute Descriptor – but
> this proved to be overly complex.*
>
>
>
> *We chose a middle ground where we group bundle members into a group that
> shares attributes (adj-sids being the exception case).*
>
>
>
> b)  draft-ietf-isis-segment-routing-extensions needs to be a Normative
> reference.
>
>
>
> *[Les:] *Ack
>
>
>
> Minor:
>
>
>
> 1) In Sec 2, the definition of the TLV would be greatly improved with a
> figure that shows the actual layout.   Take a look at RFC5308 for a decent
> example.  It takes careful reading to figure out what layouts are
> possible.  I think that it is something like:
>
>
>
>  0                   1                   2                   3
>
>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> | Type 25?      |  Length       |   Neighbor System ID          |  Parent
> L3
>
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> |       Neighbor System ID continued                            |
>  Neighbor
>
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> |  Pseudonode   |P|R|R|R|R|R|R|R| if P, sub-TLV 4, 6, or 12     |
>  Descriptor
>
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> ~  if P, sub-TLV 4, 6, or 12                                     ~
>
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
>
>
> etc.   For instance, I can't tell whether the "L2 Attribute Parent
> Descriptor"
>
> is more than just a length octet plus the nested contents.  I assume that
> is all,
>
> but it would be much better to see it written out.  If doing a layout
> figure is too
>
> painful - then a more detailed (think c-structure with bit-fields)
> description would
>
> help.  It shouldn't take cross-referencing different sections to figure
> out the bits.
>
>
>
> *[Les:] Sigh…I tried this and found the result unsatisfactory – too many
> “…” embedded in too many places to make it helpful.*
>
> *I’ll give it another try – but if I still don’t like it …*
>
>
>
> *As regards "L2 Attribute Parent Descriptor" the text states (follow the
> indenting):*
>
>
>
> *Parent L3 Neighbor Descriptor*
>
> *        L3 Neighbor System ID + pseudonode ID (7 octets)*
>
> *        Flags: 1 octet field of following flags:*
>
>
>
> *There is no length here – just descriptor and flags.*
>
> *Length is not needed because:*
>
>
>
> *NOTE: Only one Parent L3 Neighbor Descriptor is present in a given*
>
> *   TLV.  Multiple L2 Bundle Attribute Descriptors may be present in a*
>
> *   single TLV.*
>
>
[Alia]  Right - when I started to write it out myself, I realized exactly
how annoying it was to do as a bit layout.
What do you think about the idea of describing it via the equivalent of a
structure or such?  I'm thinking towards pseudo-code.
Granted, I don't go stare at IS-IS code that frequently and I could
basically parse it out, but it wasn't trivial and I'd prefer the RFC to
be slightly clearer.  My request is better clarity - how you figure out to
accomplish that is not forced to the layout.


>
> 2) In Sec 2, it states " NOTE: An L2 Bundle Member Descriptor is a Link
> Local Identifier as defined in [RFC5307]."
>
> but RFC5307 merely uses the Link Local Identifier and specifies that it is
> defined in rfc4202 Section-2.1.
>
>
>
> What about instead
>
> "NOTE: An L2 Bundle Descriptor is a Link Local Identifier as defined in
> Section 2.1 of [RFC4202] and used as a value in
>
> sub-TLV type=4 defined in [RFC5307]."   That makes it clearer.  I feel
> there is some lack of clarity because what is defined in
>
> RFC5307 and - without a clear bit layout - it takes some assumptions
> (looking at the length computation) to be clear that what
>
> is included for the L2 Bundle Member Descriptor isn't a sub-TLV type=4,
> but rather just the 4 octet local link identifier."  Frankly,
>
> I'm not positive why it wasn't deemed useful to also include the Link
> Remote Identifier for each L2 member; clearly correlating
>
> will be non-trivial, but understanding that the draft is implemented, I am
> merely requested a bit of explanatory text also in the draft.
>
>
>
> *[Les:] I think changing the reference to RFC 4202 is all that is
> required.*
>
> *As regards the remote identifier, we do not know what it is per bundle
> member – the protocol only knows the remote identifier for the L3 link –
> not the L2 bundle members.*
>

[Alia] Right - I was thinking that if one ran, say, BFD across each bundle
member, or even a ping with extensions, then the far-side ifIndex could be
learned
and that would be helpful for selecting bundle members that give
resiliency.  (For instance, having a bundle member on a different remote
line card for a particular
SR path that wants to be diverse from another selected SR path for
edge-to-edge diversity.)  Given your explanation earlier, I suppose this
could be done for
each member of the L2 bundle using the appropriate sub-TLV; it would just
be highly inefficient.


> 3) In Sec 2.2: "If multiple copies of a given  sub-TLV are present both
> MUST be ignored."   Substitute "all copies" instead of "both".
>
> *[Les:] Agreed.*
>
>
>
> 4) In Sec 2.2: "All existing sub-TLVs defined in the IANA Sub-TLVs for
> TLVs 22, 23,   141, 222, and 223 registry are in the category of shared
> attribute
>    sub-TLVs unless otherwise specified in this document."   This is not a
> useful statement for going forward as an RFC.   Do you mean
>
> "At the time this document is published, all sub-TVLs are shared attribute
> sub-TLVs unless otherwise specified in this document.  For future sub-TLVs
>
> to not be considered shared attribute sub-TLVs, this MUST be explicitly
> defined when those sub-TLVs are defined?"  Or do you intend to add a field
>
> to the IANA registry indicating whether it is not a shared attribute - so
> that the question is asked every time a new sub-TLV is added?  Or do you
> mean
>
> that there will be no need for sub-TLVs that aren't shared attribute
> except as in this document (reasoning please)?    This document needs to
> provide
>
> sufficient information to be sustainable.
>
>
>
> *[Les:] Yes – this categorization would have to be incorporated into the
> IANA registry to make us future-proof.*
>
> *Good catch.*
>
>
>
>
>
> 5) In Sec 3.1 and Sec 3.2: It looks like the flags definitions are
> intended to be the same as in [draft-ietf-isis-segment-routing-extensions,
> Sec 2.1.1].  If so, then please
>
> say so and simply refer to  [draft-ietf-isis-segment-routing-extensions,
> Sec 2.1.1] instead of redefining them!
>
>
>
> 6) In Sec 3.1 and Sec 3.2:  For " L2 Bundle Member Adj-SID Descriptors." -
> first it looks like the details are duplicating definition in [SR].  Again
> a direct reference with - at most - quoting is better.   Second, please add
> text on how to associate each of the Adj-SID Descriptors with the L2 Bundle
> members.  YES - I realize that it is probably assuming a consistently
> ordered list and 1-to-1 mapping, but there is no text that says so.
>
>
>
> *[Les:] Although we are trying to be as consistent as we can be to the L3
> counterparts, encoding is NOT identical. Not all flags defined for L3 are
> applicable for L2 – though we did try to use the same bit values in cases
> where the flags provide the same functionality. Hence:*
>
>
>
> ** - Is a flag used in the L3 Adj-SID sub-TLV but which is NOT*
>
> *           used in this sub-TLV. These bits SHOULD be sent as 0 and MUST*
>
> *           be ignored on receipt*
>
>
>
> *So we cannot simply reference L3 draft.*
>
> *I can add a statement that the flags – whenever possible – share bit
> positions with their L3 counterparts.*
>

[Alia] Right - I saw that difference.  What would be helpful would be to
have a reference to [SR] and say that the flags are defined as in [SR]
except for the following
changes....   Where the same flag definitions are repeated twice in this
draft and in [SR], I think it would be better to be extremely clear on the
differences.  The chance
for problems for changes in the future or folks assuming the same behavior
when there are differences is high.

Nits:
>
>
>
> 1) In Sec 1: "In order to do so link attribute information about
> individual bundle members is required - but currently IS-IS only supports
> advertising link
>    attributes for the Layer 3 interfaces on which it operates."
>
>    Rephrase "currently" to "without the TLV defined in this document" or
> something equivalent.   Time to rephrase for it being an RFC.
>
>
>
> *[Les:] *Ack
>
>
>
> *   Les*
>
>
>

Thanks very much for the rapid (as always) response.

Regards,
Alia