Subject: [Lsr] AD Review of draft-ietf-lsr-isis-srv6-extensions-11

From: Alvaro Retana <[email-masked]>
Date: Fri, 26 Feb 2021 10:19:48 -0800

Dear authors:

Please find below my review of this document.  I appreciate you and
the WG discussing the details, but there is more work needed to be
done before starting the IETF LC (details inline).

Just one high-level comment: It is not clear to me why all the
behaviors from rfc8986 are not covered in this document.  If some are
not applicable, or are covered elsewhere, please explain in the text.

Thanks!

Alvaro.

[Line numbers from idnits.]

...
16	Abstract

18	   Segment Routing (SR) allows for a flexible definition of end-to-end
19	   paths by encoding paths as sequences of topological sub-paths, called
20	   "segments".  Segment routing architecture can be implemented over an
21	   MPLS data plane as well as an IPv6 data plane.  This draft describes
22	   the IS-IS extensions required to support Segment Routing over an IPv6
23	   data plane.

[nit] s/Segment routing architecture/The Segment routing architecture

[nit] s/This draft/This document

...
108	1.  Introduction
...
119	   The network programming paradigm
120	   [I-D.ietf-spring-srv6-network-programming] is central to SRv6.  It
121	   describes how any behavior can be bound to a SID and how any network
122	   program can be expressed as a combination of SIDs.

[major] s/[I-D.ietf-spring-srv6-network-programming]/[RFC8986]/g

...
131	   This document defines one new top level IS-IS TLV and several new IS-
132	   IS sub-TLVs.

134	   The SRv6 Capabilities sub-TLV announces the ability to support SRv6.

136	   Several new sub-TLVs are defined to advertise various SRv6 Maximum
137	   SID Depths.

139	   The new SRv6 Locator top level TLV announces SRv6 locators - a form
140	   of summary address for the set of topology/algorithm specific SIDs
141	   instantiated at the node.

143	   The SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6
144	   LAN End.X SID sub-TLV are used to advertise which SIDs are
145	   instantiated at a node and what Endpoint behavior is bound to each
146	   instantiated SID.

[nit] There is some repetition in the last few paragraphs.  You talk
about the new work, the the TLV, sub-TLVs, TLV again, and then the
sub-TLVs.  A little consolidation would make this part read better.

148	2.  SRv6 Capabilities sub-TLV

150	   A node indicates that it supports the SR Segment Endpoint Node
151	   functionality as specified in [RFC8754] by advertising a new SRv6
152	   Capabilities sub-TLV of the router capabilities TLV [RFC7981].

[minor] What about the functionality in rfc8986?  I'm assuming that
you want the nodes advertising this new sub-TLV to support both.  It
may be implicit, but please make it explicit.

[minor] "router capabilities TLV [RFC7981]"  What should be the
flooding scope of the TLV that includes this new sub-TLV?

...
159	      0                   1                   2                   3
160	       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

[nit] Please align the numbering.  There's one other occurrence in this section.

...
180	           O-flag: If set, the router supports use of the O-bit
181	           in the Segment Routing Header(SRH) as defined in
182	           [I-D.ietf-6man-spring-srv6-oam].

[nit] s/Segment Routing Header(SRH)/Segment Routing Header (SRH)

[major] Please ask IANA to set up a registry for the Flags.

184	3.  Advertising Supported Algorithms

186	   SRv6 capable router indicates supported algorithm(s) by advertising
187	   the SR Algorithm TLV as defined in [RFC8667].

[nit] s/SRv6 capable router/An SRv6 capable router

[minor] s/SR Algorithm TLV/SR Algorithm sub-TLV

...
200	4.1.  Maximum Segments Left MSD Type

202	   The Maximum Segments Left MSD Type specifies the maximum value of the
203	   "SL" field [RFC8754] in the SRH of a received packet before applying
204	   the Endpoint behavior associated with a SID.

[minor] s/specifies/signals/g

[minor] Please expand SL.

206	      SRH Max SL Type: 41

208	      If no value is advertised the supported value is assumed to be 0.

[major] What exactly does this MSD type signal?  Is this the
expectation that the SL will be <= the value when received at the
advertiser?  Is there an example of its use?  I'm having a hard time
picturing when (for non PSP behaviors) the SL would be more than 0.

210	4.2.  Maximum End Pop MSD Type

212	   The Maximum End Pop MSD Type specifies the maximum number of SIDs in
213	   the SRH to which the router can apply "PSP" or USP" behavior, as
214	   defined in [I-D.ietf-spring-srv6-network-programming] flavors.

[minor] Please expand PSP and USP.

...
221	4.3.  Maximum H.Encaps MSD Type

223	   The Maximum H.Encaps MSD Type specifies the maximum number of SIDs
224	   that can be included as part of the "H.Encaps" behavior as defined in
225	   [I-D.ietf-spring-srv6-network-programming].

[nit] s/included/pushed   That is the terminology used in rfc8986.

...
229	      If the advertised value is zero or no value is advertised
230	      then the router can apply H.Encaps only by encapsulating
231	      the incoming packet in another IPv6 header without SRH
232	      the same way IPinIP encapsulation is performed.

234	      If the advertised value is non-zero then the router supports both
235	      IPinIP and SRH encapsulation subject to the SID limitation
236	      specified by the advertised value.

[major] rfc8986 doesn't talk about IPinIP encapsulation, but is does say this:

   The push of the SRH MAY be omitted when the SRv6 Policy only contains
   one segment and there is no need to use any flag, tag or TLV.

Suggestion (to replace the last two paragraphs)>
    If the advertised value is zero or no value is advertised then the
    headend can apply an SR Policy that only contains one segment, by
    omitting the SRH push.

    A non-zero SRH Max H.encaps MSD indicates that the headend can push
    an SRH up to the advertised value.

238	4.4.  Maximum End D MSD Type

240	   The Maximum End D MSD Type specifies the maximum number of SIDs in an
241	   SRH when performing decapsulation associated with "End.Dx" behaviors
242	   (e.g., "End.DX6" and "End.DT6") as defined in
243	   [I-D.ietf-spring-srv6-network-programming].

[minor] "(e.g., "End.DX6" and "End.DT6")"  This MSD-Type only applies
to *.DX6, DT6 and DT46, right?  If so, please be specific about it.

245	      SRH Max End D Type: 45

247	      If the advertised value is zero or no value is advertised
248	      then it is assumed that the router cannot apply
249	      "End.DX6" or "End.DT6" behaviors if the outer IPv6 header
250	      contains an SRH.

[minor] What about End.DT46?

[major] What about other behaviors?  Are there no limitations to speak
of related to them?  Why?  rfc8986 says this:

   The IGP should also advertise the Maximum SID Depth (MSD) capability of
   the node for each type of SRv6 operation -- in particular, the SR source
   (e.g., H.Encaps), intermediate endpoint (e.g., End and End.X), and final
   endpoint (e.g., End.DX4 and End.DT6) behaviors.

252	5.  SRv6 SIDs and Reachability
...
269	   Locators are routable and MAY also be advertised in Prefix
270	   Reachability TLVs (236 or 237).

272	   Locators associated with Flexible Algorithms [I-D.ietf-lsr-flex-algo]
273	   SHOULD NOT be advertised in Prefix Reachability TLVs (236 or 237).

275	   Locators associated with algorithm 0 and 1 (for all supported
276	   topologies) SHOULD be advertised in a Prefix Reachability TLV (236 or
277	   237) so that legacy routers (i.e., routers which do NOT support SRv6)
278	   will install a forwarding entry for algorithm 0 and 1 SRv6 traffic.

280	   In cases where a locator advertisement is received in both a Prefix
281	   Reachability TLV and an SRv6 Locator TLV, the Prefix Reachability
282	   advertisement MUST be preferred when installing entries in the
283	   forwarding plane.  This is to prevent inconsistent forwarding entries
284	   between SRv6 capable and SRv6 incapable routers.

[] There is a confusing combination of normative behavior for the
locators in the last few paragraphs: "Locators...MAY also be
advertised...SHOULD NOT be advertised...SHOULD be advertised in a
Prefix Reachability TLV".  I realize that there are conditions
applied...perhaps reorder some of them.

Suggestion (to replace the last 4 paragraphs)>

   Locators associated with algorithm 0 and 1 (for all supported
   topologies) SHOULD be advertised in a Prefix Reachability TLV (236 or
   237) so that legacy routers (i.e., routers which do not support SRv6)
   will install a forwarding entry for algorithm 0 and 1 SRv6 traffic.

   In cases where a locator advertisement is received in both a Prefix
   Reachability TLV and an SRv6 Locator TLV, the Prefix Reachability
   advertisement MUST be preferred when installing entries in the
   forwarding plane.  This is to prevent inconsistent forwarding entries
   between SRv6 capable and SRv6 incapable routers.

   Locators associated with Flexible Algorithms (see Section 4,
   [I-D.ietf-lsr-flex-algo]) SHOULD NOT be advertised in Prefix Reachability
   TLVs (236 or 237).

[major] "locator advertisement is received in both a Prefix
Reachability TLV and an SRv6 Locator TLV"  What information results in
these being an advertisement for the same locator?  Is only the
locator (prefix length, etc.) considered, or should the algorithm,
metric, etc. also match?

[major] "the Prefix Reachability advertisement MUST be preferred when
installing entries in the forwarding plane"   Ok, but what about the
rest of the information in the SRv6 Locator TLV?  How should that be
considered?  For example, I'm assuming that the information in the
sub-TLVs is still needed.

[major] When is it ok to advertise locators in Prefix Reachability
TLVs when associated with Flexible Algorithms?  IOW, why it it only
recommended to do so and not required?  I assume the answer has to do
with the possibility of routers implementing flex-algo and not SRv6 in
the network -- please mention that.

[major] The SRv6 Locator TLV is a new TLV.  If no Prefix Reachability
TLVs are present, how should the new TLV be used for route
calculation/installation?  The text above suggests its use, but there
is no specification.

...
291	   SRv6 SIDs are not directly routable and MUST NOT be installed in the
292	   forwarding plane.  Reachability to SRv6 SIDs depends upon the
293	   existence of a covering locator.

[major] "MUST NOT be installed"  This action depends on how the SIDs
are advertised.  For example, if they are included in a Prefix
Reachability TLV then the receiver will install them.  IOW, this
action should be specified from the point of view of the sender; for
example, "SIDs MUST be advertised in the sub-TLVs...[or maybe]...MUST
NOT be advertised in another TLV...".

[major] If some SIDs are advertised as "sub-TLVs in TLVs 22, 23, 222,
223, and 141", how can the "MUST NOT be installed" be satisfied?

...
302	   In order for forwarding to work correctly, the locator associated
303	   with SRv6 SID advertisements MUST be the longest match prefix
304	   installed in the forwarding plane for those SIDs.  There are a number
305	   of ways in which this requirement could be compromised.  In order to
306	   ensure correct forwarding, network operators should take steps to
307	   make sure that this requirement is not compromised.

309	   o  Another locator associated with a different topology/algorithm is
310	      the longest match

312	   o  A prefix advertisement (i.e., from TLV 236 or 237) is the longest
313	      match

[major] "MUST be the longest match prefix installed"  s/MUST/must
This is not a normative statement.

[minor] The last two sentences in the paragraph sound redundant to me.

Suggestion>
   In order to ensure correct forwarding, network operators should take
   steps to make sure that this requirement is not compromised.  For
   example, the following situations should be avoided:

315	6.  Advertising Anycast Property
...
322	   A new flag in "Bit Values for Prefix Attribute Flags Sub-TLV"
323	   registry [RFC7794] is defined to advertise the anycast property:

[major nit] The flag is defined in the sub-TLV, not the registry.

NEW>
   A new flag in Prefix Attribute Flags Sub-TLV [RFC7794] is defined to
   advertise the anycast property:

...
328	       When the prefix/SRv6 locator is configured as anycast, the A-flag
329	       SHOULD be set. Otherwise, this flag MUST be clear.

[major] When is it ok to not set the flag if advertising an anycast
prefix?  IOW, why is setting the flag recommended and not required?

331	   The A-flag MUST be preserved when leaked between levels.

[minor] s/preserved when leaked/preserved when the advertisement is leaked

333	   The A-flag and the N-flag MUST NOT both be set.

335	   If both N-flag and A-flag are set in the prefix/SRv6 Locator
336	   advertisement, the receiving routers MUST ignore the N-flag.

[nit] Join the last two paragraphs.

338	   The same prefix/SRv6 Locator can be advertised by multiple routers.
339	   If at least one of them sets the A-Flag in its advertisement, the
340	   prefix/SRv6 Locator SHOULD be considered as anycast.

[major] "SHOULD be considered as anycast"  Just to make sure I
understand, the A-flag is informational -- there is no action taken by
the receiving router, right?   If so, then there's no interoperability
requirement reflected here.  s/SHOULD/should

342	   A prefix/SRv6 Locator that is advertised by a single node and without
343	   an A-Flag SHOULD be interpreted as a node specific locator.

[major] "advertised by a single node and without an A-Flag"  This is
equivalent to the current behavior of a prefix being "advertised by a
single node and without an A-Flag".  IOW, you seem to be specifying
behavior that a node that doesn't implement (or even know about) this
document is expected to follow.

[major] Related... What is a "node specific locator"?  The A-flag
functionality could be used in a network that otherwise doesn't
implement SRv6, so calling it a "locator" doesn't seem right.

[major] "SHOULD be interpreted"  Interpreting is not really an
interoperability-requiring action.  Is there anything here resulting
from the interpretation that requires normative language?

...
349	   The Prefix Attribute Flags Sub-TLV can be carried in the SRv6 Locator
350	   TLV as well as the Prefix Reachability TLVs.  When a router
351	   originates both the Prefix Reachability TLV and the SRv6 Locator TLV
352	   for a given prefix, and the router is originating the Prefix
353	   Attribute Flags Sub-TLV in one of the TLVs, the router SHOULD
354	   advertise identical versions of the Prefix Attribute Flags Sub-TLV in
355	   both TLVs.

[minor] This paragraph doesn't seem necessary given this text in §5:

   In cases where a locator advertisement is received in both a Prefix
   Reachability TLV and an SRv6 Locator TLV, the Prefix Reachability
   advertisement MUST be preferred when installing entries in the
   forwarding plane.

[major] If you decide to keep it...  "SHOULD advertise
identical...Prefix Attribute Flags Sub-TLV"   When is it ok to not do
so?  Again, given that the Prefix Reachability TLVs are preferred,
this statement doesn't seem to matter, or carry interoperability
weight.  s/SHOULD/should

[] This point is related to Gunter's recent e-mail [1].

[1] https://mailarchive.ietf.org/arch/msg/lsr/AlglGZ8UsZSaPGwwTeA1qyDWQL0/

...
365	7.1.  SRv6 Locator TLV Format
...
369	    0                   1                   2                   3
370	    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
371	   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
372	   |   Type        |     Length    |R|R|R|R|    MTID               |
373	   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

[minor] Please add Figure numbers/names for all packet formats.

...
382	     MTID: Multitopology Identifier as defined in [RFC5120].
383	     Note that the value 0 is legal.

[major] s/MTID/MT ID/g

[] Is the note necessary?

[major] What should the receiver do if the MT ID is outside the valid range?

...
403	       0
404	       0 1 2 3 4 5 6 7
405	      +-+-+-+-+-+-+-+-+
406	      |D|    Reserved |
407	      +-+-+-+-+-+-+-+-+

[major] How should these reserved flags be managed?  Please create a registry.

409	      where:
410	        D bit: When the Locator is leaked from level-2 to level-1, the D
411	        bit MUST be set.  Otherwise, this bit MUST be clear.  Locators
412	        with the D bit set MUST NOT be leaked from level-1 to level-2.
413	        This is to prevent looping.

[major] Is there any difference between this bit and the up/down bit
defined in rfc5305?   To reuse functionality, generalize (to multiple
levels), and avoid redefining please point to the definition in
rfc5305.

...
418	     Algorithm: 1 octet. Associated algorithm. Algorithm values
419	      are defined in the IGP Algorithm Type registry.

[major] Use this text for all the Algorithm fields.

NEW>
   Algorithm: 1 octet. As defined in rfc8665.

Add a Normative reference.

421	     Loc-Size: 1 octet. Number of bits in the SRv6 Locator field.
422	     (1 - 128)

[major] What should the receiver do if the Loc-Size is not in that range?

...
429	     Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs

[nit] Note that the name of the field in the packet format shown above
is written as "Sub-tlv-len".  Please be consistent!

[major] Please indicate which sub-TLVs are applicable/can be included
with this new TLV.  I know that §12.1.2 updates the registry, but that
is not normative with respect to the operation of the protocol.  This
seems like a simple (one-sentence) addition since all the sub-TLVs
seem applicable.

431	     Optional sub-TLVs.

[] This seems to be leftover text.

433	7.2.  SRv6 End SID sub-TLV

435	   The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment
436	   Identifiers (SID) with Endpoint behaviors which do not require a
437	   particular neighbor in order to be correctly applied
438	   [I-D.ietf-spring-srv6-network-programming].  SRv6 SIDs associated
439	   with a neighbor are advertised using the sub-TLVs defined in
440	   Section 8.

[minor] "which do not require a particular neighbor in order to be
correctly applied"  Which behaviors are those?   I didn't find in
rfc8986 any similar phrasing.  You may want to put a reference to
Section 10 instead.

...
470	      Flags: 1 octet.  No flags are currently defined.

[minor] How will these flags be managed?  Do you want to define a new registry?

472	      Endpoint Behavior: 2 octets, as defined in [I-D.ietf-spring-srv6-
473	      network-programming].  Legal behavior values for this sub-TLV are
474	      defined in Section 10 of this document.

[major] What should the receiver do if an illegal value is received?

[nit] s/Legal/Allowed

...
478	      Sub-sub-TLV-length: 1 octet.  Number of octets used by sub-sub-
479	      TLVs.

[nit] Note that the name of the field in the packet format shown above
is written as "Sub-sub-tlv-len".  Please be consistent!

481	      Optional sub-sub-TLVs.

[] Leftover text.

483	   The SRv6 End SID MUST be a subnet of the associated Locator.  SRv6
484	   End SIDs which are NOT a subnet of the associated locator MUST be
485	   ignored.

[minor] s/NOT/not/g   This is not an rfc2119 keyword.

...
494	8.  Advertising SRv6 Adjacency SIDs
...
508	   All End.X SIDs MUST be a subnet of a Locator with matching topology
509	   and algorithm which is advertised by the same node in an SRv6 Locator
510	   TLV.  End.X SIDs which do not meet this requirement MUST be ignored.

512	   All End.X and LAN End.X SIDs MUST be subsumed by the subnet of a
513	   Locator with the matching algorithm which is advertised by the same
514	   node in an SRv6 Locator TLV.  End.X SIDs which do not meet this
515	   requirement MUST be ignored.  This ensures that the node advertising
516	   the End.X or LAN End.X SID is also advertising its corresponding
517	   Locator with the algorithm that will be used for computing paths
518	   destined to the SID.

[minor] There is repetition in the last two paragraphs.

[minor] "All End.X SIDs..."  It looks like you're talking about all
SIDs that can be included in the End.X or LAN End.X sub-TLVs, and not
just about End.X (the behavior) SIDs, is that correct?   Please be
specific.

520	8.1.  SRv6 End.X SID sub-TLV
...
561	         B-Flag: Backup flag.  If set, the End.X SID is eligible for
562	         protection (e.g., using IPFRR) as described in [RFC8355].

[minor] "End.X SID"   As mentioned above, the use of this terminology
creates confusion because you should be talking about the SID (in the
End.X SID sub-TLV) and not the End.X SID.

564	         S-Flag.  Set flag.  When set, the S-Flag indicates that the
565	         End.X SID refers to a set of adjacencies (and therefore MAY be
566	         assigned to other adjacencies as well).

[major] What should a receiver do if a SID is advertised in multiple
sub-TLVs (associated to different adjacencies) without the S-Flag set?
  What about the case where the SID was first advertised without the
S-Flag set and a second sub-TLV (for a different adjacency) has it
set?  Is this Flag only informational?

...
573	         Reserved bits: MUST be zero when originated and ignored when
574	         received.

[major] How should these bits be managed?  Please set up a new registry.

...
579	      Weight: 1 octet.  The value represents the weight of the End.X SID
580	      for the purpose of load balancing.  The use of the weight is
581	      defined in [RFC8402].

[major] What is the relationship between the Weight and the S-Flag?
If the S-Flag is set (in multiple sub-TLVs for different adjacencies),
should a Weight value also be present?   What should the receiver do
if only one of the sub-TLVs includes a weight?

583	      Endpoint Behavior: 2 octets.  As defined in [I-D.ietf-spring-srv6-
584	      network-programming] Legal behavior values for this sub-TLV are
585	      defined in Section 10.

[major] What should the receiver do if an illegal value is received?

[nit] s/Legal/Allowed

[nit] s/] Legal/]. Legal

...
596	8.2.  SRv6 LAN End.X SID sub-TLV

[] Some of the comments form the previous section apply here as well.

598	   This sub-TLV is used to advertise an SRv6 SID associated with a LAN
599	   adjacency.  Since the parent TLV is advertising an adjacency to the
600	   Designated Intermediate System(DIS) for the LAN, it is necessary to
601	   include the System ID of the physical neighbor on the LAN with which
602	   the SRv6 SID is associated.  Given that a large number of neighbors
603	   may exist on a given LAN a large number of SRv6 LAN END.X SID sub-
604	   TLVs may be associated with the same LAN.  Note that multiple TLVs
605	   for the same DIS neighbor may be required in order to advertise all
606	   of the SRv6 End.X SIDs associated with that neighbor.

[nit] s/System(DIS)/System (DIS)

...
666	9.  SRv6 SID Structure Sub-Sub-TLV

[] I don't understand what this sub-sub-TV is used for.  Can you
please explain?  Is there a relationship between it and the SID that
is advertised in the sub-TLVs?  For example, I would assume that the
SID would have the bits that correspond to the argument set to 0 --
what if they're not?  What is the purpose of this information?   [Of
course, none of the supported behaviors take an ARG...]

...
707	   The sum of all four sizes advertised in ISIS SRv6 SID Structure Sub-
708	   Sub-TLV must be lower or equal to 128 bits.  If the sum of all four
709	   sizes advertised in the ISIS SRv6 SID Structure Sub-Sub-TLV is larger
710	   than 128 bits, the parent Sub-TLV MUST be ignored by the receiver.

[major] s/must be lower/MUST be lower

712	10.  Advertising Endpoint Behaviors

714	   Endpoint behaviors are defined in
715	   [I-D.ietf-spring-srv6-network-programming].  The codepoints for the
716	   Endpoint behaviors are defined in the "SRv6 Endpoint Behaviors"
717	   registry defined in [I-D.ietf-spring-srv6-network-programming].  This
718	   section lists the Endpoint behaviors which MAY be advertised by ISIS,
719	   together with their codepoints.  If this behavior is advertised it
720	   MUST only be advertised in the TLV[s] as indicated by "Y" in the
721	   table below, and MUST NOT be advertised in the TLV[s] as indicated by
722	   "N" in the table below.

[minor] The second sentence is redundant (and inaccurate), please take it out.

[major] What about other behaviors from rfc8986?  If they are not
applicable, please explain why.

724	     Endpoint             |Endpoint          | End | End.X | Lan End.X |
725	     Behavior             |Behavior Codepoint| SID | SID   |   SID     |
726	    ----------------------|------------------|-----|-------|-----------|
727	     End   (PSP, USP, USD)| 1-4, 28-31       |  Y  |   N   |    N      |
728	    ----------------------|------------------|-----|-------|-----------|
729	     End.X (PSP, USP, USD)| 5-8, 32-35       |  N  |   Y   |    Y      |
730	    ----------------------|------------------|-----|-------|-----------|
731	     End.DX6              | 16               |  N  |   Y   |    Y      |
732	    ----------------------|------------------|-----|-------|-----------|
733	     End.DX4              | 17               |  N  |   Y   |    Y      |
734	    ----------------------|------------------|-----|-------|-----------|
735	     End.DT6              | 18               |  Y  |   N   |    N      |
736	    ----------------------|------------------|-----|-------|-----------|
737	     End.DT4              | 19               |  Y  |   N   |    N      |
738	    ----------------------|------------------|-----|-------|-----------|
739	     End.DT64             | 20               |  Y  |   N   |    N      |

[minor] s/End.DT64/End.DT46

741	11.  Implementation Status
...
752	      Types of SID supported: End, End.X, LAN End.X, END.OP

[] "END.OP" is not defined.  Also, the others are not types of SIDs,
but sub-TLVs.

...
808	12.1.  SRv6 Locator TLV

810	   This document makes the following registrations in the the IS-IS TLV
811	   Codepoints registry:

813	      Type: 27

815	      Description: SRv6 Locator TLV.

817	      Reference: This document (Section 7.1).

[major] Include all the information related to the message types (IIH,
LSP, SNP, Purge).

819	   A Locator TLV shares sub-TLV space with existing "Sub-TLVs for TLVs
820	   135, 235, 236 and 237 registry".  The name of this registry needs to
821	   be changed to "Sub-TLVs for TLVs 27, 135, 235, 236 and 237 registry".

[major] Use the complete name of the registry.

NEW>
   The SRv6 Locator TLV shares sub-TLV space with TLVs 135, 235, 236 and 237.
   IANA is requested to update the name of the "Sub-TLVs for TLVs 135, 235,
   236, and 237 (Extended IP reachability, MT IP. Reach, IPv6 IP. Reach, and
   MT IPv6 IP. Reach TLVs)" registry to "Sub-TLVs for TLVs 27, 135, 235, 236,
   and 237 (SRv6 Locator, Extended IP reachability, MT IP. Reach, IPv6 IP.
   Reach, and MT IPv6 IP. Reach TLVs)".

Also, this action (renaming) should be moved to a common section with
the new SRv6 End SID sub-TLV (§12.1.1) and the updated table
(§12.1.2).  The action of allocating the SRv6 Locator TLV is
independent (different registry, etc.).

...
834	12.1.2.  Revised sub-TLV table
...
839	      Type  27 135 235 236 237

841	      1     y   y   y   y   y
842	      2     y   y   y   y   y
843	      3     n   y   y   y   y
844	      4     y   y   y   y   y
845	      5     y   n   n   n   n
846	      6     n   y   y   y   y
847	      11    y   y   y   y   y
848	      12    y   y   y   y   y
849	      32    n   y   y   y   y

[major] Because the structure of the registry is changed, this
document should formally Update rfc7370 (where the current registry
was defined).

[minor] Please name and number all tables.

851	12.2.  SRv6 Capabilities sub-TLV

853	   This document makes the following registrations in the "Sub- TLVs for
854	   TLV 242 registry":

[major] s/"Sub- TLVs for TLV 242 registry"/"Sub-TLVs for TLV 242
(IS-IS Router CAPABILITY TLV)" registry

...
862	   This document requests the creation of a new IANA managed registry
863	   for sub-sub-TLVs of the SRv6 Capability sub-TLV.  The registration
864	   procedure is "Expert Review" as defined in [RFC8126].  Suggested
865	   registry name is "sub-sub-TLVs for SRv6 Capability sub-TLV".  No sub-
866	   sub-TLVs are defined by this document except for the reserved value.

[major] Please indicate tat it should be part of "IS-IS TLV Codepoints".

[major] ""Expert Review" as defined in [RFC8126]"  Please add that the
guidance for the Designated Experts is provided in rfc7310.

...
872	12.3.  SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs

874	   This document makes the following registrations in the "sub- TLVs for
875	   TLV 22, 23, 25, 141, 222 and 223 registry":

[major] s/"sub- TLVs for TLV 22, 23, 25, 141, 222 and 223
registry"/"Sub-TLVs for TLVs 22, 23, 25, 141, 222, and 223 (Extended
IS reachability, IS Neighbor Attribute, L2 Bundle Member Attributes,
inter-AS reachability information, MT-ISN, and MT IS Neighbor
Attribute TLVs)"

Yes, I know that's a long name, but that is the name.

...
894	12.4.  MSD Types

896	   This document makes the following registrations in the IGP MSD Types
897	   registry:

[minor] s/MSD Types/MSD-Types

899	   Type  Description
900	   ------------------
901	    41    SRH Max SL
902	    42    SRH Max End Pop
903	    44    SRH Max H.encaps
904	    45    SRH Max End D

[minor] This table should have 3 columns: Value, Name and Reference.

906	12.5.  Sub-Sub-TLVs for SID Sub-TLVs

908	   This document requests a new IANA registry be created under the IS-IS
909	   TLV Codepoints Registry to control the assignment of sub-TLV types
910	   for the SID Sub-TLVs specified in this document - Section 7.2,
911	   Section 8.1, Section 8.2.  The suggested name of the new registry is
912	   "Sub-Sub-TLVs for SID Sub-TLVs".  The registration procedure is
913	   "Expert Review" as defined in [RFC8126].  The following assignments
914	   are made by this document:

[minor] In line with the name of other registries; suggestion:
"Sub-sub-TLVs for sub-TLVs 5, 43 and 44 (SRv6 End SID , SRv6 End.X SID
and SRv6 LAN End.X SID)".

[major] ""Expert Review" as defined in [RFC8126]"  Please add that the
guidance for the Designated Experts is provided in rfc7310.

916	      0: Reserved

918	      1: SRv6 SID Structure Sub-Sub-TLV (Section 9).

[minor] Please create a table and include the unassigned range.

920	12.6.  Prefix Attribute Flags Sub-TLV
...
927	      Description: A bit

[major] Can we please have the registry show "Anycast Flag (A-flag)"?

...
931	13.  Security Considerations

933	   Security concerns for IS-IS are addressed in [ISO10589], [RFC5304],
934	   and [RFC5310].

<sigh> Well, at least it is not explicitly claimed that no new
security considerations exist. <sigh>

[minor] Please copy the first paragraph of the Security Consideration
from rfc8919.

[major] Let's add some more meat.

Suggestion>
   This document describes the IS-IS extensions required to support Segment
   Routing over an IPv6 data plane.  The security considerations for Segment
   Routing are discussed in [RFC8402].  [RFC8986] defines the SRv6 Network
   Programming concept and specifies the main Segment Routing behaviors to
   enable the creation of interoperable overlays; the security considerations
   from that document apply too.

[major] Are there new security issues/risks created by this document?
Sure!  Note that even if the risk existed before, adding new ways to
exploit it is a new attack vector.

(1) Suggestion>
   The advertisement of an incorrect MSD value may have negative
   consequences, see rfc8491 for additional considerations.

(2) The interaction in §5 between the Prefix Reachability TLV and SRv6
Locator TLV is not completely clear.  Depending on the answers to my
questions, there may be cases where inconsistent information can be
present resulting in unexpected forwarding.

(3) Not following the operational considerations at the end of §5
could also result in unexpected forwarding.

What else?

...
982	15.1.  Normative References
...
997	   [ISO10589]
998	              Standardization", I. ". O. F., "Intermediate system to
999	              Intermediate system intra-domain routeing information
1000	              exchange protocol for use in conjunction with the protocol
1001	              for providing the connectionless-mode Network Service (ISO
1002	              8473), ISO/IEC 10589:2002, Second Edition.", Nov 2002.

[minor] Please use this as the reference:

[ISO10589]

    ISO, "Information technology -- Telecommunications and information
    exchange between systems -- Intermediate System to Intermediate System
    intra-domain routeing information exchange protocol for use in
    conjunction with the protocol for providing the connectionless-mode
    network service (ISO 8473)", ISO/IEC 10589:2002, Second Edition,
    November 2002.

...
1015	   [RFC5304]  Li, T. and R. Atkinson, "IS-IS Cryptographic
1016	              Authentication", RFC 5304, DOI 10.17487/RFC5304, October
1017	              2008, <https://www.rfc-editor.org/info/rfc5304>.

[minor] This reference can be Informative.

...
1023	   [RFC5310]  Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
1024	              and M. Fanto, "IS-IS Generic Cryptographic
1025	              Authentication", RFC 5310, DOI 10.17487/RFC5310, February
1026	              2009, <https://www.rfc-editor.org/info/rfc5310>.

[minor] This reference can be Informative.

...
1067	15.2.  Informative References

1069	   [I-D.ietf-lsr-flex-algo]
1070	              Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and
1071	              A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex-
1072	              algo-12 (work in progress), October 2020.

[major] This reference should be Normative.

...
1080	   [RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
1081	              Decraene, B., Litkowski, S., and R. Shakir, "Segment
1082	              Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
1083	              July 2018, <https://www.rfc-editor.org/info/rfc8402>.

[major] This reference should be Normative.

[End of Review]