Re: [Lsr] AD review of draft-ietf-lsr-flex-algo-20

Peter Psenak <ppsenak@cisco.com> Wed, 31 August 2022 14:23 UTC

Return-Path: <ppsenak@cisco.com>
X-Original-To: lsr@ietfa.amsl.com
Delivered-To: lsr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 348ADC14F726; Wed, 31 Aug 2022 07:23:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.177
X-Spam-Level:
X-Spam-Status: No, score=-5.177 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.571, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, GB_SUMOF=5, NICE_REPLY_A=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id liC4lvkcOf5M; Wed, 31 Aug 2022 07:23:36 -0700 (PDT)
Received: from aer-iport-5.cisco.com (aer-iport-5.cisco.com [173.38.203.67]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E63D0C1524CC; Wed, 31 Aug 2022 07:23:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=55335; q=dns/txt; s=iport; t=1661955816; x=1663165416; h=message-id:date:mime-version:from:subject:to:references: in-reply-to:content-transfer-encoding; bh=YTPBvItTLAg2znbgRL9R4SdBCkwN8K/aBpiyJx1tT3w=; b=P44RZSJlph+viAeYJGc7yvzi0d1NnoQJYPXNABwmg6/+Gtno+Iw+t/5j 7+WgLKglLRs0f6wKdSSKO3C52ayqoJT9VkXc8oRD1d9OtaUNJxDYgPq7I aaGtism9KJfWp/Uua/MTkEF0OnAmHQLMAa5RLBh2u6szXNFIruVAnlgcQ 4=;
X-IPAS-Result: A0ABAABwbg9jlxbLJq1QChoBAQEBAQEBAQEBAwEBAQESAQEBAQICAQEBAUCBOwUBAQEBCwGBe4EpViwSRYROiB9fiBEDkFyMJxSBaAsBAQEPNwsEAQGFBwKEZSY0CQ4BAgQBAQEBAwIDAQEBAQEBAwEBBQEBAQIBBwQUAQEBAQEBAQE2BRA1hTsBLA2GQwECAw4MAQgPAQUtAgQJFQkCEgYCAiYCAkkOBgEMCAEBF4IKWAGDIgMQQ40gmxx6gTGBAYNmQYN2gV8GgREsAYtdhDhDgUlEgRQBJ4EVbYEBPoJiAQECAYEXDA0ED0aDKoJlBJFXaoRxJgQOAxorHkICAQt3AxcDFAMFJAcDGQ8jDQ0EFgcMAwMFJQMCAhsHAgIDAgYVBQICFzY4CAQIBCskDwUCBy8FBC8CHgQFBhEIAhYCBgQEBAQVAhAIAggmFwcNBhgbGQEFWRAJIRYGCgQaDQUGEwMgRyYFCjsPKDI1OSIJHRsKgRIqCR8VAwQEAwIGEwMDIgIQLDEUBikTEi0HK3UJAgMiaAUDAwQoLAMJIR8HKCY8BQVZEigBBAMDECI9BgMJAwInXXsClhiBEwsECx0+BgEBFRsyBA0LChAGAxYCBBAODR4CAQYBBh4KDAczCQMDDgEUBQIBCQUMEgEBCgIJAgQskXUUEgQJjiifM4E1g1yEJIcHlGYGDwQug3aMUIY0MJBSepQyglUgjRmUbwQVAwEYhQSBMDE6gVszGggbFTuCZ1EZD4M8hESGKQMNCYEEAQeHWIVMQjECATgCBgEKAQEDCYgKLIIcAQE
IronPort-Data: A9a23:ssWv1aOReyGA89rvrR3Kl8FynXyQoLVcMsEvi/4bfWQNrUon02ZRz GVOXmGOb/mMMWanKot/aI229hsD68LczIUwG3M5pCpnJ55oRWUpJjg4wmPYZX76whjrFRo/h ykmQoCcaphyFBcwnz/1WlTbhSEUOZqgG/ytU4YoBggrHVU+EHd60Eo58wIEqtcAbeaRUlvlV eza+6UzCHf9s9KjGjtJg04rgEoHUMXa4Fv0jHRnDRx4lAO2e00uMX4qDfrZw00U7WVjNrXSq +7rlNlV945ClvsnIovNfr3TKiXmTlNOVOSDoiI+ZkSsvvRNji82wp8yPtEbUHpe1GSvgctzl 9QKvKXlHG/FPoWU8AgcexBVCWR1OrdLveOBKnmkusvVxErDG5fu66wxVwdtbctCor0xWzsmG f8wcFjhajibn/m7xru4YuJtnc8kasLsOevzv1k5lGmIXap+KXzFa4TGu/Jg2m8ZvM1fNq3FN ttBNDh/XS2VNnWjPX9OWM5hw49EnELXdyZCgFOYuaRx5HLcpCR9yrHjLJ/Ud8CEAMFOhAOWo m/Wum39DRYyNdGDx3yC6H3Eru3AhnanAIAPEryg++QshlCP7mAWAQcdE1q2vff/jVSxM++zM GQd9zBrrLA17lDuSNDhGRa5u3WD+BUbXrK8DtHW9imOzrrt6gyyAVE5R2EQTsI9tpA3AjUTg wrhc8zSORRjt7icSHS4/7iSrC+vNSV9EVLudRPoXiNevIa++NBbYgbnC4c8QPTs37UZDBmpm 2jSxBXSkYn/miLi6klawbwlq2/0znQqZldrjukyYo5CxlkkDLNJn6TytTDmAQ9ode51tGWps nkegNS55+sTF5yLnyHlaLxTQuj5t6rfa2eN0QAH83wdG9KFpi/LkWd4vWEWGauVGppslcLBO RWK4loBuPe/wlPzM/cpC25ONyja5fGwSYu6PhwlRtFPeZN2PBSW5z1jYFX44oweuBZErE3LA r/CKZzEJS9DUcxPlWPmL9rxJJd2n0jSM0uIHsulp/lmuJLDDEOopUAtawPVM7hht/vc+m04M b93bqO39vmWa8WmCgG/zGLZBQliwaQTbXwul/FqSw==
IronPort-HdrOrdr: A9a23:ApW4d66IZUjaJO7SNQPXwPPXdLJyesId70hD6qkDc202TiX+rb HIoB17726RtN9/YhwdcLy7VpVoBEmskKKdgrN8AV7BZmPbUQKTRekI0WKh+UyCJ8SUzI9gPM lbE5SWROeeMbC/5vyKmTVR1L0bsb+6zJw=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.93,278,1654560000"; d="scan'208";a="1109840"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 31 Aug 2022 14:23:30 +0000
Received: from [10.209.207.177] ([10.209.207.177]) by aer-core-4.cisco.com (8.15.2/8.15.2) with ESMTP id 27VENTYB005465; Wed, 31 Aug 2022 14:23:30 GMT
Message-ID: <6a2d5625-4bfd-c9b4-5d44-e2185f117435@cisco.com>
Date: Wed, 31 Aug 2022 16:23:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.13.0
From: Peter Psenak <ppsenak@cisco.com>
To: John Scudder <jgs=40juniper.net@dmarc.ietf.org>, "draft-ietf-lsr-flex-algo@ietf.org" <draft-ietf-lsr-flex-algo@ietf.org>, "lsr@ietf.org" <lsr@ietf.org>
References: <F9AAEF51-34DC-4FE6-B340-12B4CB99F445@juniper.net>
Content-Language: en-US
In-Reply-To: <F9AAEF51-34DC-4FE6-B340-12B4CB99F445@juniper.net>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Outbound-SMTP-Client: 10.209.207.177, [10.209.207.177]
X-Outbound-Node: aer-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/lsr/oXUeBFPkKAHYlWZbws5Sx4iKhM4>
Subject: Re: [Lsr] AD review of draft-ietf-lsr-flex-algo-20
X-BeenThere: lsr@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Link State Routing Working Group <lsr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lsr>, <mailto:lsr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lsr/>
List-Post: <mailto:lsr@ietf.org>
List-Help: <mailto:lsr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lsr>, <mailto:lsr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 31 Aug 2022 14:23:41 -0000

Hi John,

thanks a lot for the thorough review.

I incorporated all your edits and almost all of your comments.

For the few that I have not, please see inline (loop for ##PP):


On 16/08/2022 23:45, John Scudder wrote:
> Dear Authors,
> 
> Thanks for you patience as this document sat in my queue for too long. 
> :-( Here’s my review.
> 
> I’ve supplied my comments in the form of an edited copy of the draft. 
> Minor editorial suggestions I’ve made in place without further comment, 
> more substantive comments are done in-line and prefixed with “jgs:”. You 
> can use your favorite diff tool to review them; I’ve attached a PDF of 
> the iddiff output for your convenience if you’d like to use it. I’ve 
> also pasted a traditional diff below in case you want to use it for 
> in-line reply. I’d appreciate feedback regarding whether you found this 
> a useful way to receive my comments as compared to a more traditional 
> numbered list of comments with selective quotation from the draft.
> 
> Thanks,
> 
> —John
> 
> 
> 
> --- draft-ietf-lsr-flex-algo-20.txt     2022-08-16 11:12:37.000000000 -0400
> +++ draft-ietf-lsr-flex-algo-20-jgs-comments.txt        2022-08-16 
> 17:37:22.000000000 -0400
> @@ -24,7 +24,7 @@
>      on the IGP metric assigned to the links.  Many network deployments
>      use RSVP-TE based or Segment Routing based Traffic Engineering to
>      steer traffic over a path that is computed using different metrics or
> -   constraints than the shortest IGP path.  This document proposes a
> +   constraints than the shortest IGP path.  This document specifies a
>      solution that allows IGPs themselves to compute constraint-based
>      paths over the network.  This document also specifies a way of using
>      Segment Routing (SR) Prefix-SIDs and SRv6 locators to steer packets
> @@ -155,12 +155,12 @@
> 
>   1.  Introduction
> 
> -   An IGP-computed path based on the shortest IGP metric is often be
> -   replaced by a traffic-engineered path due to the traffic requirements
> +   An IGP-computed path based on the shortest IGP metric is often
> +   replaced by a traffic-engineered path due to requirements
>      which are not reflected by the IGP metric.  Some networks engineer
>      the IGP metric assignments in a way that the IGP metric reflects the
> -   link bandwidth or delay.  If, for example, the IGP metric is
> -   reflecting the bandwidth on the link and the user traffic is delay
> +   link bandwidth or delay.  If, for example, the IGP metric
> +   reflects the bandwidth on the link and user traffic is delay
> 
> 
> 
> @@ -171,7 +171,10 @@
> 
> 
>      sensitive, the best IGP path may not reflect the best path from such
> -   users' perspective.
> +   a user's perspective.
> +
> +jgs: or "from such users' perspectives" but as it was written, there was a
> +disagreement in number, so I made it singular 'user'.
> 
>      To overcome this limitation, various sorts of traffic engineering
>      have been deployed, including RSVP-TE and SR-TE, in which case the TE
> @@ -179,7 +182,7 @@
>      metrics and/or constraints.  Such paths need to be installed in the
>      forwarding tables in addition to, or as a replacement for, the
>      original paths computed by IGPs.  Tunnels are often used to represent
> -   the engineered paths and mechanisms like one described in [RFC3906]
> +   the engineered paths and mechanisms like the one described in [RFC3906]
>      are used to replace the native IGP paths with such tunnel paths.
> 
>      This document specifies a set of extensions to IS-IS, OSPFv2, and
> @@ -193,10 +196,29 @@
>      of calculation-type, metric-type, and constraints.
> 
>      This document also specifies a way for a router to use IGPs to
> -   associate one or more SR Prefix-SIDs or SRv6 locators with a
> +   associate one or more Segment Routing (SR) Prefix-SIDs or Segment 
> Routing over IPv6 (SRv6) locators with a
>      particular Flex-Algorithm.  Each such Prefix-SID or SRv6 locator then
>      represents a path that is computed according to the identified Flex-
>      Algorithm.
> +
> +jgs: "SR" is in the well-known abbreviations list
> +(https://www.rfc-editor.org/materials/abbrev.expansion.txt 
> <https://www.rfc-editor.org/materials/abbrev.expansion.txt>), but "SRv6"
> +isn't. We could suggest the RFC Editor add "SRv6", but really it seems
> +reader-friendly to expand these on first use anyway, as I've done with the
> +text above.
> +
> +jgs: Making this edit also led me to wonder -- does "SR" above really mean
> +"SR-MPLS"? Because "SR" as such is an architecture, right, not an
> +instantiation? (SR-MPLS is also not in the well-known abbreviations 
> list...)
> +
> +jgs: Please provide references for Prefix-SID and SRv6 locator?
> +
> +jgs: Finally, it seems to me as though a useful piece of context for the
> +new reader is something like what I'm suggesting below:
> +
> +   Not all routers in a given network need to participate in a given
> +   Flexible Algorithm. The Flexible Algorithm(s) a given router
> +   participates in is determined by configuration.

##PP
we can certainly add this to the document, but I don't think 
Introduction is the right place. I added your proposed text to the 
Terminology section where the "Flexible Algorithm Participation" is 
described.

> 
>   2.  Requirements Language
> 
> @@ -238,7 +260,7 @@
> 
>      IGP Algorithm - value from the the "IGP Algorithm Types" registry
>      defined under "Interior Gateway Protocol (IGP) Parameters" IANA
> -   registries.  IGP Algorithms represents the triplet (Calculation Type,
> +   registry grouping.  IGP Algorithms represents the triplet 
> (Calculation Type,
>      Metric, Constraints), where the second and third elements of the
>      triple MAY be unspecified.
> 
> @@ -258,7 +280,7 @@
>      also possible.  Combinations of these are also possible.
> 
>      To provide maximum flexibility, we want to provide a mechanism that
> -   allows a router to (a) identify a particular calculation-type, (b)
> +   allows a router to (a) identify a particular calculation-type and (b)
>      metric-type, (c) describe a particular set of constraints, and (d)
>      assign a numeric identifier, referred to as Flex-Algorithm, to the
>      combination of that calculation-type, metric-type, and those
> @@ -283,22 +305,26 @@
> 
> 
>      Flexible-Algorithm is a numeric identifier in the range 128-255 that
> -   is associated via configuratin with the Flexible-Algorithm
> +   is associated via configuration with the Flexible-Algorithm
>      Definition.
> 
> -   IANA "IGP Algorithm Types" registry defines the set of values for IGP
> -   Algorithms.  We propose to allocate the following values for Flex-
> -   Algorithms from this registry:
> +   The IANA "IGP Algorithm Types" registry defines the set of values 
> for IGP
> +   Algorithms.  The following values area allocated from this registry 
> for Flex-
> +   Algorithms:
> 
>         128-255 - Flex-Algorithms
> 
>   5.  Flexible Algorithm Definition Advertisement
> 
> -   To guarantee the loop-free forwarding for paths computed for a
> +   To guarantee loop-free forwarding for paths computed for a
>      particular Flex-Algorithm, all routers that (a) are configured to
>      participate in a particular Flex-Algorithm, and (b) are in the same
>      Flex-Algorithm definition advertisement scope MUST agree on the
>      definition of the Flex-Algorithm.
> +
> +jgs: It would be correct -- wouldn't it? -- to add "The following 
> procedures
> +ensure this condition is fulfilled." If that's not wrong, I think it would
> +help the new reader.
> 
>   5.1.  IS-IS Flexible Algorithm Definition Sub-TLV
> 
> @@ -341,7 +367,7 @@
>         Flex-Algorithm: Single octet value between 128 and 255 inclusive.
> 
>         Metric-Type: Type of metric to be used during the calculation.
> -      Following values are defined:
> +      The following values are defined:
> 
>            0: IGP Metric
> 
> @@ -362,9 +388,16 @@
>         The Metric/Constraints MUST NOT be inherited.  If the required
>         calculation type is Shortest Path First, the value 0 SHOULD appear
>         in this field.
> +
> +jgs: Why isn't the SHOULD a MUST? If SHOULD is appropriate, it would be
> +desirable to explain the anticipated exception cases here.
> 
>         Priority: Value between 0 and 255 inclusive that specifies the
> -      priority of the advertisement.
> +      priority of the advertisement.  Numerically greater values are
> +      preferred.
> +
> +jgs: I see that in 5.3 (1) you tell us that this is a higher-better value.
> +It might be nice to mention that here. I've suggested text above.
> 
>         Sub-TLVs - optional sub-TLVs.
> 
> @@ -375,15 +408,15 @@
>      The IS-IS FAD Sub-TLV has an area scope.  The Router Capability TLV
>      in which the FAD Sub-TLV is present MUST have the S-bit clear.
> 
> -   IS-IS L1/L2 router MAY be configured to re-generate the winning FAD
> -   from level 2, without any modification to it, to level 1 area.  The
> +   An IS-IS L1/L2 router MAY be configured to re-generate the winning FAD
> +   from level 2, without any modification to it, to the level 1 area.  The
>      re-generation of the FAD Sub-TLV from level 2 to level 1 is
>      determined by the L1/L2 router, not by the originator of the FAD
> -   advertisement in the level 2.  In such case, the re-generated FAD
> +   advertisement in the level 2.  In such a case, the re-generated FAD
>      Sub-TLV will be advertised in the level 1 Router Capability TLV
>      originated by the L1/L2 router.
> 
> -   L1/L2 router MUST NOT re-generate any FAD Sub-TLV from level 1 to
> +   An L1/L2 router MUST NOT re-generate any FAD Sub-TLV from level 1 to
>      level 2.
> 
> 
> @@ -396,10 +429,10 @@
> 
>   5.2.  OSPF Flexible Algorithm Definition TLV
> 
> -   OSPF FAD TLV is advertised as a top-level TLV of the RI LSA that is
> +   The OSPF FAD TLV is advertised as a top-level TLV of the Router 
> Information (RI) LSA that is
>      defined in [RFC7770].
> 
> -   OSPF FAD TLV has the following format:
> +   The OSPF FAD TLV has the following format:
> 
> 
>         0                   1                   2                   3
> @@ -426,7 +459,7 @@
>         inclusive.
> 
>         Metric-Type: Type of metric to be used during the calculation.
> -      Following values are defined:
> +      The following values are defined:
> 
>            0: IGP Metric
> 
> @@ -467,7 +500,7 @@
>      The RI LSA can be advertised at any of the defined opaque flooding
>      scopes (link, area, or Autonomous System (AS)).  For the purpose of
>      OSPF FAD TLV advertisement, area-scoped flooding is REQUIRED.  The
> -   Autonomous System flooding scope SHOULD NOT be used by default unless
> +   Autonomous System flooding scope SHOULD NOT be used unless
>      local configuration policy on the originating router indicates domain
>      wide flooding.
> 
> @@ -485,17 +518,17 @@
> 
>      Every router, that is configured to participate in a particular Flex-
>      Algorithm, MUST select the Flex-Algorithm definition based on the
> -   following ordered rules.  This allows for the consistent Flex-
> +   following ordered rules.  This allows for consistent Flex-
>      Algorithm definition selection in cases where different routers
>      advertise different definitions for a given Flex-Algorithm:
> 
>         1.  From the advertisements of the FAD in the area (including both
>         locally generated advertisements and received advertisements)
> -      select the one(s) with the highest priority value.
> +      select the one(s) with the numerically greatest priority value.
> 
>         2.  If there are multiple advertisements of the FAD with the same
> -      highest priority, select the one that is originated from the
> -      router with the highest System-ID, in the case of IS-IS, or Router
> +      numerically greatest priority, select the one that is originated 
> from the
> +      router with the numerically greatest System-ID, in the case of 
> IS-IS, or Router
>         ID, in the case of OSPFv2 and OSPFv3.  For IS-IS, the System-ID is
> 
> 
> @@ -508,6 +541,12 @@
> 
>         described in [ISO10589].  For OSPFv2 and OSPFv3, standard Router
>         ID is described in [RFC2328] and [RFC5340] respectively.
> +
> +   The FAD selected according to these rules is also known as the
> +   "winning FAD".
> +
> +jgs: I suggested the above text because you refer to the "winning FAD" 
> multiple
> +places but don't formally define that term.
> 
>      A router that is not configured to participate in a particular Flex-
>      Algorithm MUST ignore FAD Sub-TLVs advertisements for such Flex-
> @@ -515,13 +554,17 @@
> 
>      A router that is not participating in a particular Flex-Algorithm is
>      allowed to advertise FAD for such Flex-Algorithm.  Receiving routers
> -   MUST consider FAD advertisement regardless of the Flex-Algorithm
> -   participation of the FAD originator.
> +   MUST consider a received FAD advertisement regardless of the 
> Flex-Algorithm
> +   participation of that FAD advertisement's originator.
> 
>      Any change in the Flex-Algorithm definition may result in temporary
>      disruption of traffic that is forwarded based on such Flex-Algorithm
>      paths.  The impact is similar to any other event that requires
>      network-wide convergence.
> +
> +jgs: IMO this would merit discussion in the Operational Considerations
> +section.  In particular, is there any advice regarding how to
> +stage/sequence FAD config changes in order to minimize disruption?

##PP
I don't really see much to add here. FAD changes the constraints used 
during the algo specific SPF and as such any change in it requires all 
routers to recompute the entire topology. In terms of the order of 
changes, I don't see why that would be significant and why someone would 
not want to advertise all changes at once if there are any multiple 
changes in the FAD.

> 
>      If a node is configured to participate in a particular Flexible-
>      Algorithm, but there is no valid Flex-Algorithm definition available
> @@ -545,14 +588,14 @@
>      maximum length supported by a single FAD sub-TLV.  In such cases, the
>      FAD may be split into multiple such sub-TLVs and the content of the
>      multiple FAD sub-TLVs combined to provide a complete FAD for the
> -   Flex-Algorithm.  In such case, the fixed portion of the FAD (see
> +   Flex-Algorithm.  In such a case, the fixed portion of the FAD (see
>      Section 5.1) MUST be identical in all FAD sub-TLVs for a given Flex-
>      Algorithm from a given IS.  In case the fixed portion of such FAD
>      Sub-TLVs differ, the values in the fixed portion in the FAD sub-TLV
>      in the first occurrence in the lowest numbered LSP from a given IS
>      MUST be used.
> 
> -   Any specification that introduces a new ISIS FAD sub-sub-TLV MUST
> +   Any specification that introduces a new IS-IS FAD sub-sub-TLV MUST
>      specify whether the FAD sub-TLV may appear multiple times in the set
> 
> 
> @@ -604,7 +647,7 @@
> 
>      The IS-IS FAEAG Sub-TLV MUST NOT appear more than once in the set of
>      FAD sub-TLVs for a given Flex-Algorithm from a given IS.  If it
> -   appears more than once in such set, the IS-IS FAEAG Sub-TLV in the
> +   appears more than once in such a set, the IS-IS FAEAG Sub-TLV in the
>      first occurrence in the lowest numbered LSP from a given IS MUST be
>      used and any other occurrences MUST be ignored.
> 
> @@ -625,7 +668,7 @@
>      computation.
> 
>      The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV is used
> -   to advertise include-any rule that is used during the Flex-Algorithm
> +   to advertise the include-any rule that is used during the Flex-Algorithm
>      path calculation as specified in Section 13.
> 
>      The format of the IS-IS Flexible Algorithm Include-Any Admin Group
> @@ -642,7 +685,7 @@
> 
>      The IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV MUST NOT
>      appear more than once in the set of FAD sub-TLVs for a given Flex-
> -   Algorithm from a given IS.  If it appears more than once in such set,
> +   Algorithm from a given IS.  If it appears more than once in such a set,
>      the IS-IS Flexible Algorithm Include-Any Admin Group Sub-TLV in the
>      first occurrence in the lowest numbered LSP from a given IS MUST be
>      used and any other occurrences MUST be ignored.
> @@ -650,11 +693,11 @@
>   6.3.  IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV
> 
>      The Flexible Algorithm definition can specify 'colors' that are used
> -   by the operator to include link during the Flex-Algorithm path
> +   by the operator to include links during the Flex-Algorithm path
>      computation.
> 
>      The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV is used
> -   to advertise include-all rule that is used during the Flex-Algorithm
> +   to advertise the include-all rule that is used during the Flex-Algorithm
>      path calculation as specified in Section 13.
> 
>      The format of the IS-IS Flexible Algorithm Include-All Admin Group
> @@ -679,7 +722,7 @@
> 
>      The IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV MUST NOT
>      appear more than once in the set of FAD sub-TLVs for a given Flex-
> -   Algorithm from a given IS.  If it appears more than once in such set,
> +   Algorithm from a given IS.  If it appears more than once in such a set,
>      the IS-IS Flexible Algorithm Include-All Admin Group Sub-TLV in the
>      first occurrence in the lowest numbered LSP from a given IS MUST be
>      used and any other occurrences MUST be ignored.
> @@ -703,6 +746,13 @@
>         Type: 4
> 
>         Length: variable, non-zero number of octets of the Flags field
> +
> +jgs: Is it fine if the length is not a multiple of four? If so, why the
> +difference from the way you define length in §6.1?

##PP
yes, the length is not required to be number of four (similar to rfc7794).
For EAG, we are following rfc7308 that mandates the multiple of 4 bytes 
for EAG advertisement.


> +
> +Also, this is the only Length field in this document that specifies
> +it must be non-zero. That makes me think all the other Length fields
> +MAY be zero. Is that right? Or, should they also say "non-zero"?

##PP
I removed the "non-zero" part from the above.
If the length of the TLV in ISIS is 0, there will be no flags advertised 
in it and as such will be useless. I looked at the rfc7794 that 
specifies the Prefix Attribute Flags and it does not talk about the 0 
length sub-TLV treatment specifically.


> 
>         Flags:
> 
> @@ -739,7 +789,7 @@
> 
>      The IS-IS FADF Sub-TLV MUST NOT appear more than once in the set of
>      FAD sub-TLVs for a given Flex-Algorithm from a given IS.  If it
> -   appears more than once in such set, the IS-IS FADF Sub-TLV in the
> +   appears more than once in such a set, the IS-IS FADF Sub-TLV in the
>      first occurrence in the lowest numbered LSP from a given IS MUST be
>      used and any other occurrences MUST be ignored.
> 
> @@ -801,7 +851,7 @@
>      sub-TLVs for a given Flex-Algorithm from a given IS.  This may be
>      necessary in cases where the total number of SRLG values which are
>      specified cause the FAD sub-TLV to exceed the maximum length of a
> -   single FAD sub-TLV.  In such case the receiver MUST use the union of
> +   single FAD sub-TLV.  In such a case the receiver MUST use the union of
>      all values across all IS-IS FAESRLG Sub-TLVs from such set.
> 
>   7.  Sub-TLVs of OSPF FAD TLV
> @@ -809,7 +859,7 @@
>   7.1.  OSPF Flexible Algorithm Exclude Admin Group Sub-TLV
> 
>      The Flexible Algorithm Exclude Admin Group Sub-TLV (FAEAG Sub-TLV) is
> -   a Sub-TLV of the OSPF FAD TLV.  It's usage is described in
> +   a Sub-TLV of the OSPF FAD TLV.  Its usage is described in
>      Section 6.1.  It has the following format:
> 
>       0                   1                   2                   3
> @@ -1082,9 +1132,9 @@
> 
>         Length: 8 octets
> 
> -      Flex-Algorithm: Single octet value between 128 and 255 inclusive.
> +      Flex-Algorithm: Single octet, value between 128 and 255 inclusive.
> 
> -      Flags: single octet value
> +      Flags: One octet
> 
>                    0 1 2 3 4 5 6 7
>                   +-+-+-+-+-+-+-+-+
> @@ -1094,12 +1144,26 @@
>            E bit : position 0: The type of external metric.  If bit is
>            set, the metric specified is a Type 2 external metric.  This
>            bit is applicable only to OSPF External and NSSA external
> -         prefixes.  This is semantically the same as E bit in section
> +         prefixes.  This is semantically the same as the E bit in section
>            A.4.5 of [RFC2328] and section A.4.7 of [RFC5340] for OSPFv2
>            and OSPFv3 respectively.
> 
>            Bits 1 through 7: MUST be cleared by sender and ignored by
>            receiver.
> +
> +jgs: Are "sender" and "receiver" sufficiently clear to OSPF practitioners
> +that there would be no ambiguity? I can think of two different ways
> +to read them -- one is that the "sender" is the router that
> +originates the LSA, and the "receiver" is any router that processes
> +the LSA. I think that's what you mean. The other, pedantic, reading,
> +is the "sender" is any router that puts the LSA on the wire, and the
> +"receiver" is any router that takes the LSA from the wire, so anyone
> +participating in flooding would be both a "sender" and a "receiver"
> +at times.
> +
> +If this is how people write OSPF specs and talk about OSPF, fine.
> +But if there are more precise terms than "sender" and "receiver" in
> +use, it would be nice to use them.

##PP
send/receive is the standard term used, e.g 
https://datatracker.ietf.org/doc/html/rfc8665#section-5

I can replace sender with originator, if you prefer, but receiver would 
remain.

> 
>         Reserved: Must be set to 0, ignored at reception.
> 
> @@ -1140,7 +1204,7 @@
>      LSA is equivalent to the fixed format Type 4 Summary LSA [RFC2328].
>      Unlike the Type 4 Summary LSA, the LSID of the EIA-ASBR LSA does not
>      carry the ASBR Router-ID - the ASBR Router-ID is carried in the body
> -   of the LSA.  OSPFv2 EIA-ASBR LSA is advertised by an OSPFv2 ABR and
> +   of the LSA.  The OSPFv2 EIA-ASBR LSA is advertised by an OSPFv2 ABR and
>      its flooding is defined to be area-scoped only.
> 
>      An OSPFv2 ABR generates the EIA-ASBR LSA for an ASBR when it is
> @@ -1194,15 +1258,36 @@
>        |                                                               |
>        +-                            TLVs                             -+
>        |                             ...                               |
> +
> +jgs: Maybe add something like
> 
> +   Other than where specified below, these fields' definitions are as
> +   given in [RFC2328] Section A.4.1.

##PP
RFC2328 does not use TLVs, so that would not be correct.

> 
> -   The Opaque Type used by the OSPFv2 EIA-ASBR LSA is TBD (suggested
> +   The Opaque Type used by the OSPFv2 EIA-ASBR LSA is TBD1 (suggested
>      value 11).  The Opaque Type is used to differentiate the various
>      types of OSPFv2 Opaque LSAs and is described in Section 3 of
>      [RFC5250].  The LS Type MUST be 10, indicating that the Opaque LSA
>      flooding scope is area-local [RFC5250].  The LSA Length field
>      [RFC2328] represents the total length (in octets) of the Opaque LSA,
>      including the LSA header and all TLVs (including padding).
> +
> +jgs: The way you've written "The LSA Length field [RFC2328]" is a little
> +confusing. The reference makes it sound as though you're simply relying
> +on the RFC 2328 definition, and I guess you basically are since the
> +TLVs portion is just the balance of "the LSA". But RFC 2328 doesn't
> +define a Length field (so capitalized) which makes unpacking this
> +harder than it needs to be.
> +
> +Since the Length field is just exactly what RFC 2328 says it is, the
> +easiest fix would be to remove that entire sentence. No need to
> +redefine something that's already defined, unless it's needed for
> +clarity.
> +
> +If you do feel it's needed for clarity, then I suggest something like
> +"The Length field is as defined in [RFC2328] Section A.4.1. It
> +represents the total length (in octets) of the Opaque LSA, including
> +the LSA header and all TLVs (including padding)."
> 
>      The Opaque ID field is an arbitrary value used to maintain multiple
>      OSPFv2 EIA-ASBR LSAs.  For OSPFv2 EIA-ASBR LSAs, the Opaque ID has no
> @@ -1220,11 +1305,28 @@
>      TLV is padded to 4-octet alignment; padding is not included in the
>      Length field (so a 3-octet value would have a length of 3, but the
>      total size of the TLV would be 8 octets).  Nested TLVs are also
> -   32-bit aligned.  For example, a 1-byte value would have the Length
> +   32-bit aligned.  For example, a 1-octet value would have the Length
>      field set to 1, and 3 octets of padding would be added to the end of
>      the value portion of the TLV.  The padding is composed of zeros.
> -
> -
> +
> +jgs: I have mixed feelings about how you cut-and-paste the definition from
> +RFC 3630 Section 2.3.2 instead of just referencing it. On one hand, the
> +material starting with "for example" is new, provides more clarity, and
> +the requirement for padding to be zeroes is new. On the other hand, your
> +reference to the Length field, which makes sense in the original context
> +of RFC 3630 §2.3.2, is confusing here -- you have a diagram above with a
> +field called Length, but that is NOT what you're talking about here.
> +In 3630 there's a TLV diagram that makes it clear at a glance what's
> +being talked about.
> +
> +Again I think the easiest fix is to leave the first sentence (adding
> +"Section 2.3.2" to the reference) and remove the rest, although if it's
> +important to specify zero-padding then leave that sentence.
> +
> +On the other hand if you feel the full detail is needed for clarity,
> +then go all the way and make this its own subsection and don't just
> +copy-paste the definition portion from 3630, copy the TLV diagram too,
> +so the reader isn't led astray.

##PP
I replaced “Length field” with “TLV length field”, as suggested by Acee. 
That should clarify it, I believe.
> 
> 
> 
> @@ -1271,7 +1373,7 @@
>      other than the first one in an LSA.
> 
>      OSPFv2 EIA-ASBR TLV MUST be present inside an OSPFv2 EIA-ASBR LSA
> -   with at least a single sub-TLV included, otherwise the OSPFv2 EIA-
> +   and must include at least a single sub-TLV, otherwise the OSPFv2 EIA-
>      ASBR LSA MUST be ignored by the receiver.
> 
>   10.2.  OSPF Flexible Algorithm ASBR Metric Sub-TLV
> @@ -1308,13 +1410,13 @@
> 
>      where:
> 
> -      Type: 1 for OSPFv2, TBD (suggested value 30) for OSPFv3
> +      Type: 1 for OSPFv2, TBD2 (suggested value 30) for OSPFv3
> 
>         Length: 8 octets
> 
>         Flex-Algorithm: Single octet value between 128 and 255 inclusive.
> 
> -      Reserved: Must be set to 0, ignored at reception.
> +      Reserved: Three octets. Must be set to 0, ignored at reception.
> 
>         Metric: 4 octets of metric information
> 
> @@ -1324,9 +1426,9 @@
>      ignored.
> 
>      The advertisement of the ASBR reachability using the OSPF FAAM Sub-
> -   TLV inside the OSPFv2 EIA-ASBR LSA follows the section 12.4.3 of
> -   [RFC2328] and inside the OSPFv3 E-Inter-Area-Router LSA follows the
> -   section 4.8.5 of [RFC5340].  The reachability of the ASBR is
> +   TLV inside the OSPFv2 EIA-ASBR LSA follows Section 12.4.3 of
> +   [RFC2328] and inside the OSPFv3 E-Inter-Area-Router LSA follows
> +   Section 4.8.5 of [RFC5340].  The reachability of the ASBR is
>      evaluated in the context of the specific Flex-Algorithm.
> 
>      The FAAM computed by the ABR will be equal to the metric to reach the
> @@ -1350,7 +1452,7 @@
>      specific Flex-Algorithm.
> 
>      An OSPF ABR MUST include the OSPF FAAM Sub-TLVs as part of the ASBR
> -   reachability advertisement between areas for the Flex-Algorithm for
> +   reachability advertisement between areas for any Flex-Algorithm for
>      which the winning FAD includes the M-flag and the ASBR is reachable
>      in the context of that specific Flex-Algorithm.
> 
> @@ -1364,8 +1466,8 @@
>      specified in section 16.2 of [RFC2328] and section 4.8.5 of [RFC5340]
>      for OSPFv2 and OSPFv3 respectively.
> 
> -   The processing of the new or changed OSPF FAAM Sub-TLV triggers the
> -   processing of the External routes similar to what is described in
> +   The processing of a new or changed OSPF FAAM Sub-TLV triggers the
> +   processing of External routes similar to what is described in
>      section 16.5 of the [RFC2328] for OSPFv2 and section 4.8.5 of
>      [RFC5340] for OSPFv3 for the specific Flex-Algorithm.  The External
>      and NSSA External route calculation should be limited to Flex-
> @@ -1382,6 +1484,11 @@
>      presence of the base LSA is not mandatory for the usage of the
>      extended LSA with the OSPF FAAM Sub-TLV.  This means that the order
>      in which these LSAs are received is not significant.
> +
> +jgs: The "it is expected" leads me to wonder, what is the consequence if
> +that expectation is violated. Should this be a mandate ("MUST advertise
> +the reachability of the same ASBR in...") rather than just an
> +expectation?
> 
##PP
I removed that sentence that includes "expected" as well as the last 
sentence of that paragraph.

>   11.  Advertisement of Node Participation in a Flex-Algorithm
> 
> @@ -1403,17 +1510,17 @@
> 
> 
>      Flex-Algorithm for each data-plane.  Some data-planes may share a
> -   common participation advertisement (e.g.  SR MPLS and SRv6).
> +   common participation advertisement (e.g.  SR-MPLS and SRv6).
> 
>   11.1.  Advertisement of Node Participation for Segment Routing
> 
>      [RFC8667], [RFC8665], and [RFC8666] (IGP Segment Routing extensions)
>      describe how the SR-Algorithm is used to compute the IGP best path.
> 
> -   Routers advertise the support for the SR-Algorithm as a node
> -   capability as described in the above mentioned IGP Segment Routing
> +   Routers advertise support for the SR-Algorithm as a node
> +   capability as described in the above-mentioned IGP Segment Routing
>      extensions.  To advertise participation for a particular Flex-
> -   Algorithm for Segment Routing, including both SR MPLS and SRv6, the
> +   Algorithm for Segment Routing, including both SR-MPLS and SRv6, the
>      Flex-Algorithm value MUST be advertised in the SR-Algorithm TLV
>      (OSPF) or sub-TLV (IS-IS).
> 
> @@ -1477,10 +1584,46 @@
>      Administrative Group encodings.  If the Administrative Group encoding
>      is used, then the first 32 bits of the corresponding FAD sub-TLVs are
>      mapped to the link attribute advertisements as specified in RFC 7308.
> +
> +jgs: I think "the first 32 bits of the corresponding FAD sub-TLVs" can't
> +possibly be strictly the correct wording. But before you read the rest
> +of this long (ish) comment, keep in mind that my preferred solution is
> +to drop the final sentence -- if you agree then we're done. If not, read
> +on.
> +
> +First, I think you must be talking about the various admin group
> +sub-TLVs (so, exclude admin group, include-any admin group, include-all
> +admin group) and this is what you mean by "the corresponding FAD
> +sub-TLVs"? If so, please be more specific, for example by listing the
> +sub-TLV types explicitly.
> +
> +Second, I guess you don't mean strictly the first 32 bits, but rather
> +the first 32 bits of the value portion?
> +
> +Finally, when you say "mapped... as specified in RFC 7308" I'm more
> +confused than if you'd said nothing (or I think I am!). As I read 7308
> +Section 3.2.1, we have these options:
> +
> +What's present  How to interpret
> +--------------  ----------------
> +AG              Bits 0-31 from AG
> +EAG             Bits 0-N from EAG
> +AG + EAG        Bits 0-31 from AG
> +                Bits 32-N from EAG (ignoring bits 0-31 other than
> +                                    possibly logging mismatches)
> +
> +Since the value portion of the various FAD admin group sub-TLVs
> +doesn't have variant encodings, I wouldn't think there is a need to
> +talk about how to map those bits (which are unambiguously 0-N).
> +And RFC 7308 is already clear about how to different combinations
> +of AG and EAG are mapped.
> +
> +If you mean something different from the above, let's please
> +discuss.
> 
>      A receiver supporting this specification MUST accept both ASLA
>      Administrative Group and Extended Administrative Group TLVs as
> -   defined in [RFC8919] or [RFC8920].  In the case of ISIS, if the
> +   defined in [RFC8919] or [RFC8920].  In the case of IS-IS, if the
>      L-Flag is set in ASLA advertisement, as defined in [RFC8919]
>      Section 4.2, then the receiver MUST be able to accept both
>      Administrative Group TLV as defined in [RFC5305] and Extended
> @@ -1501,6 +1644,13 @@
>      Algorithm MUST be advertised on a per data-plane basis.  Calculation
>      of the paths for any particular Flex-Algorithm MUST be data-plane
>      specific.
> +
> +jgs: I don't understand your use of MUST above, regarding calculation of
> +paths. Computing paths on a data-plane basis seems like it's fundamental
> +to this spec -- is there some other choice you think an implementor
> +might even make? I would think changing the MUST to (for example) "is"
> +would keep the sense of what's being said without causing surprise to
> +the reader.
> 
>      Multiple data-planes MAY use the same Flex-Algorithm value at the
>      same time, and and as such, share the FAD for it.  Traffic for each
> @@ -1523,9 +1673,13 @@
>      calculation, then when computing paths for a given Flex-Algorithm,
>      all nodes that do not advertise participation for that Flex-Algorithm
>      in their data-plane specific advertisements MUST be pruned from the
> -   topology.  Segment Routing, including both SR MPLS and SRv6, are
> +   topology.  Segment Routing, including both SR-MPLS and SRv6, are
>      data-planes that MUST use such pruning when computing Flex-Algorithm
>      paths.
> +
> +jgs: As I mentioned much earlier in this review, Segment Routing references
> +seem to be in order. The fact you're making quite specific requirements
> +on those data planes re-emphasizes that need.
> 
>      When computing the path for a given Flex-Algorithm, the metric-type
>      that is part of the Flex-Algorithm definition (Section 5) MUST be
> @@ -1538,11 +1692,26 @@
>      Various link include or exclude rules can be part of the Flex-
>      Algorithm definition.  To refer to a particular bit within an AG or
>      EAG we use the term 'color'.
> +
> +jgs: Please expand AG and EAG on first use, or place in the terminology 
> section.
> 
>      Rules, in the order as specified below, MUST be used to prune links
>      from the topology during the Flex-Algorithm computation.
> +
> +jgs: Since the rules are a sieve (each rule reduces the size of the set 
> left
> +by the previous rule) the order of applying them appears to be irrelevant.
> 
>      For all links in the topology:
> +
> +jgs: So, perhaps the previous two paragraphs could be condensed 
> something like,
> +
> +   Prior to running the Flex-Algorithm computation, the topology is
> +   pruned as follows:
> +
> +(You could write "MUST be pruned" if you feel the need for an RFC 2119
> +keyword, although honestly I don't think it's crucial -- similar to my
> +earlier comment, it's hard to imagine an implementor making a different
> +choice.)

##PP
Though I agree that the order is not important for now, one can imagine 
that in the future there could be rules added for which the order would 
be important. I feel numbering these rules and keep them in the strict 
order would help in such case. And mandating the order from the 
beginning does not make any harm. So I would prefer to keep it as it is.


> 
>         1.  Check if any exclude AG rule is part of the Flex-Algorithm
>         definition.  If such exclude rule exists, check if any color that
> @@ -1580,7 +1749,7 @@
>         (Section 5), and such metric is not advertised for the particular
>         link in a topology for which the computation is done, such link
>         MUST be pruned from the computation.  A metric of value 0 MUST NOT
> -      be assumed in such case.
> +      be assumed in such a case.
> 
>   13.1.  Multi-area and Multi-domain Considerations
> 
> @@ -1647,6 +1816,9 @@
>      Algorithm (with FAD selected includes the M-Flag) where the
>      advertising ASBR is in a remote area, the metric will be the sum of
>      the following:
> +
> +jgs: I don't understand what the words in parentheses are trying to 
> say, can
> +you explain?

##PP
it means that the "winning" FAD includes the M-bit.

thanks,
Peter

> 
>      o  the FAPM for that Flex-Algorithm advertised with the external
>         route by the ASBR
> @@ -1684,8 +1856,14 @@
> 
>      conclude whether the ABR or ASBR has reachability to the inter-area
>      or inter-domain prefix for a given Flex-Algorithm in the next area or
> -   domain.  Sending the Flex-Algoritm traffic for such prefix towards
> +   domain.  Sending the Flex-Algoritm traffic for such a prefix towards
>      the ABR or ASBR may result in traffic looping or black-holing.
> +
> +jgs: I think we've discussed in the context of a different draft recently,
> +that there's some desire to consider terms other than "black-holing".
> +One reason is that although it's a familiar term to many of us, it
> +still may be an obstacle to understanding for people unfamiliar with
> +the idiom. Perhaps consider "persistent traffic loss"?
> 
>      During the route computation, it is possible for the Flex-Algorithm
>      specific metric to exceed the maximum value that can be stored in an
> @@ -1698,7 +1876,7 @@
>      advertised for these route-types, it MUST be ignored during the
>      prefix reachability calculation.
> 
> -   The M-flag in FAD is not applicable to prefixes advertised as SRv6
> +   The M-flag in the FAD is not applicable to prefixes advertised as SRv6
>      locators.  The IS-IS SRv6 Locator TLV
>      [I-D.ietf-lsr-isis-srv6-extensions] includes the Algorithm and Metric
>      fields.  When the SRv6 Locator is advertised between areas or
> @@ -1740,6 +1918,12 @@
> 
>      to avoid such partitioning by providing enough redundancy inside the
>      area for each Flex-Algorithm being used.
> +
> +jgs: Instead of "the algorithm 0", how about "the base algorithm"?
> +
> +The warning seems on point, but the recommendation at the end made me a
> +little sad, since it amounts to "don't build bad networks". At minimum,
> +maybe change "avoid" to "minimize the risk of"?
> 
>   14.  Flex-Algorithm and Forwarding Plane
> 
> @@ -1748,7 +1932,7 @@
> 
>   14.1.  Segment Routing MPLS Forwarding for Flex-Algorithm
> 
> -   This section describes how Flex-Algorithm paths are used with SR MPLS
> +   This section describes how Flex-Algorithm paths are used with SR-MPLS
>      forwarding.
> 
>      Prefix SID advertisements include an SR-Algorithm value and, as such,
> @@ -1774,9 +1958,11 @@
>      advertised specifically for the given algorithm.  LFA paths MUST NOT
>      use an Adjacency-SID that belongs to a link that has been pruned from
>      the Flex-Algorithm computation.
> +
> +jgs: Maybe supply a reference for LFA.
> 
>      If LFA protection is being used to protect a given Flex-Algorithm
> -   paths, all routers in the area participating in the given Flex-
> +   path, all routers in the area participating in the given Flex-
>      Algorithm SHOULD advertise at least one Flex-Algorithm specific Node-
>      SID.  These Node-SIDs are used to steer traffic over the LFA computed
>      backup path.
> @@ -1794,15 +1980,21 @@
>   Internet-Draft           IGP Flexible Algorithm                 May 2022
> 
> 
> -   In SRv6 a node is provisioned with topology/algorithm specific
> -   locators for each of the topology/algorithm pairs supported by that
> +   In SRv6 a node is provisioned with a topology/algorithm specific
> +   locator for each topology/algorithm pair supported by that
>      node.  Each locator is an aggregate prefix for all SIDs provisioned
>      on that node which have the matching topology/algorithm.
> +
> +jgs: If the usage "topology/algorithm" isn't already widespread, may I
> +suggest "(topology, algorithm)" instead? I tend to read the slash
> +as either/or, whereas what you mean is a pair.
> +
> +It's not a big deal and if the ship has sailed already, fine.
> 
>      The SRv6 locator advertisement in IS-IS
>      [I-D.ietf-lsr-isis-srv6-extensions] includes the MTID value that
>      associates the locator with a specific topology.  SRv6 locator
> -   advertisements also includes an Algorithm value that explicitly
> +   advertisements also include an Algorithm value that explicitly
>      associates the locator with a specific algorithm.  When the algorithm
>      value advertised with a locator represents a Flex-Algorithm, the
>      paths to the locator prefix MUST be calculated using the specified
> @@ -1857,7 +2049,7 @@
>      The scope of the Flex-Algorithm computation is an area, so is the
>      scope of the FAD.  In IS-IS, the Router Capability TLV in which the
>      FAD Sub-TLV is advertised MUST have the S-bit clear, which prevents
> -   it to be flooded outside of the level in which it was originated.
> +   it from being flooded outside of the level in which it was originated.
>      Even though in OSPF the FAD Sub-TLV can be flooded in an RI LSA that
>      has AS flooding scope, the FAD selection is performed for each
>      individual area in which it is being used.
> @@ -1879,7 +2071,7 @@
>      RI LSA in which the FAD Sub-TLV for the particular Flex-Algoritm is
>      advertised.
> 
> -   Re-generation of FAD from a level 1 area to the level 2 area is not
> +   Re-generation of the FAD from a level 1 area to the level 2 area is not
>      supported in IS-IS, so if the intent is to regenerate the FAD between
>      IS-IS levels, the FAD MUST be defined on router(s) that are in level
>      2.  In OSPF, the FAD definition can be done in any area and be
> @@ -1947,7 +2139,7 @@
> 
>      This extension brings no new backward compatibility issues.  IS-IS,
>      OSPFv2 and OSPFv3 all have well defined handling of unrecognized TLVs
> -   and sub-TLVs that allows the introduction of the new extensions,
> +   and sub-TLVs that allows the introduction of new extensions,
>      similar to those defined here, without introducing any
>      interoperability issues.
> 
> @@ -1996,8 +2188,8 @@
>   18.1.2.  IGP Metric-Type Registry
> 
>      IANA is requested to set up a registry called "IGP Metric-Type
> -   Registry" under an "Interior Gateway Protocol (IGP) Parameters" IANA
> -   registries.  The registration policy for this registry is "Standards
> +   Registry" under the "Interior Gateway Protocol (IGP) Parameters" IANA
> +   grouping.  The registration policy for this registry is "Standards
>      Action" ([RFC8126] and [RFC7120]).
> 
>      Values in this registry come from the range 0-255.
> @@ -2036,9 +2228,12 @@
>   18.2.  Flexible Algorithm Definition Flags Registry
> 
>      IANA is requested to set up a registry called "IS-IS Flexible
> -   Algorithm Definition Flags Registry" under an "Interior Gateway
> -   Protocol (IGP) Parameters" IANA registries.  The registration policy
> +   Algorithm Definition Flags Registry" under the "Interior Gateway
> +   Protocol (IGP) Parameters" IANA grouping.  The registration policy
>      for this registry is "Standards Action" ([RFC8126] and [RFC7120]).
> +
> +   New registrations should be assigned in ascending bit order (see
> +   Section 6.4).
> 
>      This document defines the following single bit in Flexible Algorithm
>      Definition Flags registry:
> @@ -2052,14 +2247,18 @@
> 
>   18.3.  IS-IS IANA Considerations
> 
> -18.3.1.  Sub TLVs for Type 242
> +18.3.1.  IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV
> 
> -   This document makes the following registrations in the "sub-TLVs for
> -   TLV 242" registry.
> +   This document makes the following registrations in the "IS-IS Sub-TLVs
> +   for IS-IS Router CAPABILITY TLV" registry.
> 
>         Type: 26.
> 
> -      Description: Flexible Algorithm Definition.
> +      Description: Flexible Algorithm Definition (FAD).
> +
> +jgs: Since this is frequently referred to in this spec as "FAD" I've 
> suggested
> +updating its description to include that. I've done similarly below for
> +OSPF and for a few other acronyms.
> 
>         Reference: This document (Section 5.1).
> 
> @@ -2074,24 +2273,33 @@
>   Internet-Draft           IGP Flexible Algorithm                 May 2022
> 
> 
> -18.3.2.  Sub TLVs for for TLVs 135, 235, 236, and 237
> +18.3.2.  IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability
> 
> -   This document makes the following registrations in the "Sub-TLVs for
> -   for TLVs 135, 235, 236, and 237" registry.
> +   This document makes the following registrations in the "IS-IS 
> Sub-TLVs for
> +   TLVs Advertising Prefix Reachability" registry.
> 
>         Type: 6
> 
> -      Description: Flexible Algorithm Prefix Metric.
> +      Description: Flexible Algorithm Prefix Metric (FAPM).
> 
>         Reference: This document (Section 8).
> 
>   18.3.3.  Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
> 
> -   This document creates the following Sub-Sub-TLV Registry:
> +   This document creates the following Sub-Sub-TLV Registry, under the
> +   IS-IS TLV Codepoints grouping.
> 
>         Registry: Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
> 
>         Registration Procedure: Expert review
> +
> +jgs: You might want to preemptively mention here that the IS-IS grouping
> +already contains expert review guidance for all Expert Review registries
> +under it. Your choice, might save you some review queries though. Text
> +if you want it:
> +
> +         (Note that the IS-IS TLV Codepoints grouping includes Expert
> +         Review guidance that applies to all registries thereunder.)
> 
>         Reference: This document (Section 5.1)
> 
> @@ -2140,12 +2348,13 @@
> 
>   18.4.1.  OSPF Router Information (RI) TLVs Registry
> 
> -   This specification updates the OSPF Router Information (RI) TLVs
> +   This specification makes the following registration in
> +   the OSPF Router Information (RI) TLVs
>      Registry.
> 
>         Type: 16
> 
> -      Description: Flexible Algorithm Definition TLV.
> +      Description: Flexible Algorithm Definition (FAD) TLV.
> 
>         Reference: This document (Section 5.2).
> 
> @@ -2156,7 +2365,7 @@
> 
>         Type: 3
> 
> -      Description: Flexible Algorithm Prefix Metric.
> +      Description: Flexible Algorithm Prefix Metric (FAPM).
> 
>         Reference: This document (Section 9).
> 
> @@ -2167,11 +2376,11 @@
> 
>         Type: 26
> 
> -      Description: Flexible Algorithm Prefix Metric.
> +      Description: Flexible Algorithm Prefix Metric (FAPM).
> 
>         Reference: This document (Section 9).
> 
> -      Type: TBD (suggested value 30)
> +      Type: TBD2 (suggested value 30)
> 
>         Description: OSPF Flexible Algorithm ASBR Metric Sub-TLV
> 
> @@ -2188,8 +2397,9 @@
> 
>   18.4.4.  OSPF Flex-Algorithm Prefix Metric Bits
> 
> -   This specification requests creation of "OSPF Flex-Algorithm Prefix
> -   Metric Bits" registry under the OSPF Parameters Registry with the
> +   This specification requests creation of the "OSPF Flex-Algorithm Prefix
> +   Metric Bits" registry under the "Open Shortest Path First (OSPF) 
> Parameters"
> +   grouping, with the
>      following initial values.
> 
>         Bit Number: 0
> @@ -2203,16 +2413,17 @@
> 
>   18.4.5.  OSPF Opaque LSA Option Types
> 
> -   This document makes the following registrations in the "OSPF Opaque
> -   LSA Option Types" registry.
> +   This document makes the following registrations in the "Opaque 
> Link-State
> +   Advertisements (LSA) Option Types" registry under the "Open Shortest 
> Path
> +   First (OSPF) Opaque Link-State Advertisements (LSA) Option Types" 
> grouping.
> 
> -      Value: TBD (suggested value 11)
> +      Value: TBD1 (suggested value 11)
> 
> -      Description: OSPFv2 Extended Inter-Area ASBR LSA
> +      Description: OSPFv2 Extended Inter-Area ASBR (EIA-ASBR) LSA
> 
>         Reference: This document (Section 10.1).
> 
> -18.4.6.  OSPFv2 Externded Inter-Area ASBR TLVs
> +18.4.6.  OSPFv2 Extended Inter-Area ASBR TLVs
> 
>      This specification requests creation of "OSPFv2 Extended Inter-Area
>      ASBR TLVs" registry under the OSPFv2 Parameters Registry with the
> @@ -2231,8 +2442,9 @@
> 
>   18.4.7.  OSPFv2 Inter-Area ASBR Sub-TLVs
> 
> -   This specification requests creation of "OSPFv2 Extended Inter-Area
> -   ASBR Sub-TLVs" registry under the OSPFv2 Parameters Registry with the
> +   This specification requests creation of the "OSPFv2 Extended Inter-Area
> +   ASBR Sub-TLVs" registry under the "Open Shortest Path First v2 (OSPFv2)
> +   Parameters" grouping, with the
>      following initial values.
> 
> 
> @@ -2255,7 +2467,8 @@
> 
>   18.4.8.  OSPF Flexible Algorithm Definition TLV Sub-TLV Registry
> 
> -   This document creates the following registry:
> +   This document creates the following registry under the "Open Shortest
> +   Path First (OSPF) Parameters" grouping.
> 
>         Registry: OSPF Flexible Algorithm Definition TLV sub-TLV
> 
> @@ -2265,12 +2478,26 @@
> 
>      The "OSPF Flexible Algorithm Definition TLV sub-TLV" registry will
>      define sub-TLVs at any level of nesting for the Flexible Algorithm
> -   TLV and should be added to the "Open Shortest Path First (OSPF)
> -   Parameters" registries group.  New values can be allocated via IETF
> +   TLV. New values can be allocated via IETF
>      Review or IESG Approval.
> +
> +jgs: I made the minor edit of moving the grouping request for consistency
> +with the other requests.
> +
> +Less trivially, you have a conflict -- the "Registration Procedure"
> +line says "Expert review", but then the paragraph right above says "IETF
> +Review or IESG Approval". What do you want the registration policy to be?
> +Also, if the policy really is Expert Review, you'll need to provide some
> +guidance for the expert, since the OSPF grouping doesn't include blanket
> +guidance. See RFC 8126 §4.5 for details.
> 
> -   This document registers following Sub-TLVs in the "TLVs for Flexible
> +   This document registers the following Sub-TLVs in the "TLVs for Flexible
>      Algorithm Definition TLV" registry:
> +
> +jgs: What is the real name of the registry? Is it "OSPF Flexible Algorithm
> +Definition TLV sub-TLV" which is what you mention first, or is it "TLVs
> +for Flexible Algorithm Definition TLV" as immediately above? Probably
> +the former but you make the call and do the edit, please.
> 
>         Type: 1
> 
> @@ -2312,6 +2539,11 @@
> 
>      Types in the range 32768-33023 are for experimental use; these will
>      not be registered with IANA, and MUST NOT be mentioned by RFCs.
> +
> +jgs: I see what you're trying to do here but I don't think it's really 
> suitable to
> +put directions to RFC authors in the IANA Considerations section. This
> +restriction is kind of implicit in the Experimental status anyway. You 
> might
> +also want to take a look at RFC 8126 §4.2.
> 
>      Types in the range 33024-65535 are not to be assigned at this time.
>      Before any assignments can be made in the 33024-65535 range, there
>