Hi Alvaro,

thanks for the review, please see inline (##PP):

On 26/02/2021 19:19, Alvaro Retana wrote:
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.

##PP
not all behaviors from rfc8986 are applicable to IGPs. Section 10 ("Advertising Endpoint Behaviors") lists the ones that are applicable to ISIS.



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

##PP
fixed


[nit] s/This draft/This document

##PP
fixed



...
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

##PP
replaced all references to RFC8986


...
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.

##PP
Reordered and got rid of one of the paragraphs.




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.

##PP
there are many behaviors specified in rfc8986, and we are not making that part of the capability. So we can not say the ISIS SRv6 capability means the support of entire rfc8986.



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

##PP
It's up to the originator to set the S bit or not. We are not limiting it here.



...
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.

##PP
done



...
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)

##PP
fixed



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

##PP
Les has started a separate thread with you on this point. I will wait till that discussion is closed.



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

##PP
fixed


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

##PP
fixed



...
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

#PP
fixed


[minor] Please expand SL.

##PP
done



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.


##PP

Yes, you are correct. As described in the paragraph right above it, this MSD type specifies what is the maximum value of the "Segments Left" field in the received SRH that this node is capable of processing. A simple example: an ingress PE encapsulates a packet with a new IPv6 and SRH. The SRH contains three segments. The Segments Left value of that SRH is set as per RFC8754 4.1, which in this case is equal to 2. The router processing the first segment in the segment list, must support as a minimum an SRH Max SL MSD value of 2 in order to be able to process such packet.



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.

##PP
done



...
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.

##PP
fixed.



...
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.

##PP
done, but used "insert" instead of "push".



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.

##PP

This MSD applies to any SID Behaviors that result in the outer IPv6 header being removed and inner packet forwarded (e.g., End.DX4, End.DX6, End.DT4, End.DT6, End.DT46, End with USD, …).

I have updated the text to:

"The Maximum End D MSD Type specifies the maximum number of SIDs present in an SRH when performing decapsulation. These includes, but not limited to, End.DX6, End.DT4, End.DT46, End with USD, End.X with USD as defined in [RFC8986].





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?

##PP
This also applies to End.DT46 as clarified in the previous answer.

I have updated the text to:
  “If the advertised value is zero or no value is advertised
   then it is assumed that the router cannot apply
   any behavior that results in decapsulation and forwarding
   of the inner packet if the other IPv6 header contains an SRH.”



[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.

##PP
the MSD types we defined do cover all SRv6 operations



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).


##PP
done



[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?

##PP
it's just prefix/mask. I added some text to clarify that.




[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.

##PP
yes, there is no impact to the rest of the data in the Locator TLV.
Added sentence to clarify.



[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.

##PP
Advertising the FA locator in regular Prefix Reachability would make the forwarding for it to follow algo 0 path. I don't know what this could be good for, but we did not want to preclude that. I added the text about it.



[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.

#PP
The locator TLV advertises the prefix, same way as the Prefix Reachability. The calculation and installation of the prefix reachability is equal to what is done for regular Prefix Reachability.
I added the following text to one of the above paragraphs:

"The processing of the prefix advertised in the SRv6 Locator TLV,
the calculation of its reachability and the installation in the forwarding plane is similar to one used for Prefix Reachability TLV (236 or 237)."




...
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;

##PP
This section talks about received SRv6 SIDs, not locators. SIDs are not advertised in Prefix Reachability TLV. Remote SIDs are never installed in the forwarding.

I updated the text to say "SRv6 SIDs received from other nodes..."

for
example, "SIDs MUST be advertised in the sub-TLVs...[or maybe]...MUST
NOT be advertised in another TLV...".

##PP
the previous section talks about how SIDs are advertised, which is the only way.




[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?

##PP
above is the only way how SIDs are advertised.



...
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.

##PP
ok, changed to must.



[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:

##PP
done



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:

##PP
done


thanks,
Peter


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


_______________________________________________
Lsr mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to