Dear authors:

As part of the adoption call I have comments related to this draft.
Please see details in-line.

Thanks!

Alvaro.


[Line numbers from idnits.]


...
137     3.  Terminology

139           Link MTU: As per [RFC4821], the Maximum Transmission Unit, i.e.,
140           maximum IP packet size in bytes, that can be conveyed in one piece
141           over a link.  This includes the IP header, but excludes link layer
142           headers and other framing that is not part of IP or the IP
143           payload.  In case of MPLS, it also includes the label stack and in
144           case of IPv6, it includes IPv6 extension headers (including SRH).

[major] rfc4821's definition of "Link MTU" was Updated by rfc8899
(Packetization Layer Path MTU Discovery for Datagram Transports).  If
referring to that definition, please use the updated reference.  Also,
please don't repeat the definition (unless doing so in quotations) to
avoid possibly getting out of sync.


[major] The definition in rfc4821/rfc8899 refers to IP networks, not
MPLS networks.  I looked and found a definition in rfc3988 (MTU
Signalling Extensions for LDP), an Experimental RFC.  §3/rfc3032 (MPLS
Label Stack Encoding) covers "Fragmentation and Path MTU Discovery",
but doesn't have a definition for Link MTU.



146           Path MTU, or PMTU: The minimum link MTU of all the links in a path
147           between a source node and a destination node.  In the scope of
148           this document, this is also called SR-PMTU for the SR paths and
149           policies.  Note that the link MTU takes the SR overhead (label
150           stack or SRH) into consideration.

[major] This definition matches the one in rfc4821.  Same comment as
above about the Update in rfc8899 and the definition by reference.


[minor] "Note that the link MTU takes the SR overhead (label stack or
SRH) into consideration."

This sentence seems unnecessary as Link MTU was defined above.  Also,
even though this is the only place where "SR overhead" is used, it may
be worth defining it as a term for this document.



152     4.  SR-PMTU Definition for SR Policy

154        Segment Routing policy architecture is specified in [RFC9256].  An SR
155        Policy is associated with one or more candidate paths.  A candidate
156        path is selected when it is valid and it is determined to be the best
157        path of the SR Policy.  The selected path is referred to as the
158        "active path" of the SR policy.  A candidate path is either dynamic,
159        explicit, or composite.  The related concepts with the SR-PMTU
160        definition in this document are listed as follows.

[nit] s/Segment Routing policy architecture/The Segment Routing policy
architecture


[minor] The second and third sentences ("A candidate path is
selected..."active path" of the SR policy.") are a word-by-word copy
of text in rfc9256.  Given that "active path" is only used here and in
§4.3 (where the same text is copied), it seems that you don't need to
copy these sentences -- the reference to rfc9256 should be enough.



162        An explicit/dynamic candidate path is expressed as a Segment-List or
163        a set of Segment-Lists directly or by computation.  If a candidate
164        path is associated with a set of Segment-Lists, each Segment-List is
165        associated with weight for weighted load balancing.  The default
166        weight is 1.

168        A composite candidate path acts as a container for grouping SR
169        Policies.  The composite candidate path construct enables the
170        combination of SR Policies, each with explicit candidate paths and/or
171        dynamic candidate paths with potentially different optimization
172        objectives and constraints, for load-balanced steering of packet
173        flows over its constituent SR Policies [RFC9256].

[minor] These two paragraphs are the same as in §2.2/rfc9256.  Does
the text need to be copied here?  Even though the previous paragraph
said that "related concepts with the SR-PMTU definition", that is not
the case.



175     4.1.  SR-PMTU of a Segment List

177        A Segment-List represents a specific source-routed path to send
178        traffic from the headend to the endpoint of the corresponding SR
179        policy [RFC9256].  The SR-PMTU of a segment list is defined as the
180        minimum link MTU of all the links in a path between a source node and
181        a destination node.  Refer Section 5.2 for specific handling for
182        Node, Adjacency and Binding SID (as well as their combinations).

[nit] s/link MTU/Link MTU/g

To refer to the definition.


[nit] s/Refer Section 5.2/Refer to Section 5.2



184     4.2.  SR-PMTU of a Candidate Path
...
196        In the case of a composite candidate path, then the SR-PMTU of the
197        composite candidate path is defined as the minimum SR-PMTU of all the
198        constituent SR Policies of this composite candidate path.  The SR-
199        PMTU of each SR Policy is defined in Section 4.3.

[nit] s/In the case of a composite candidate path, then the SR-PMTU of
the composite candidate path is defined as the minimum SR-PMTU of all
the constituent SR Policies of this composite candidate path./In the
case of a composite candidate path, then the SR-PMTU is defined as the
minimum SR-PMTU of all the constituent SR Policies.



...
239     5.1.  Link MTU Collection

241        SR-PMTU is defined as the minimum link MTU of all the links in a path
242        between a source node and a destination node.  The link MTU needs to
243        be first collected.  The link MTU can be collected through various
244        protocols such as IGP [I-D.hu-lsr-igp-path-mtu] and BGP-LS
245        [I-D.ietf-idr-bgp-ls-link-mtu], etc.

[nit] The definition from §4.1 is repeated here.  The problem with
repeating normative text (or any text) is that it may fall out of
sync.  A better solution is to reference it.

Suggestion>

   The SR-PMTU is defined in function of the Link MTU (Section 4.1). The
   Link MTU can be collected through various mechanisms such as the ones
   defined in [I-D.hu-lsr-igp-path-mtu] and [I-D.ietf-idr-bgp-ls-link-mtu].



247     5.2.  SR-PMTU Computation

249        The collected link MTU of all the related links are sent to the
250        network controller where the SR-PMTU is computed.  Depending upon the
251        path type, the computation methods are different, which are described
252        in the following subsections.

[major] Figure 1 and §5.1 imply that the collection can be done "in
the network": using an IGP and collecting the information at the
headend.  But the description above only talks about using a
controller.  Either the general framework, the examples in §5.1, or
this section need to be updated.

Is using a controller the only valid place to compute the SR-PMTU?



254     5.2.1.  Loose TE Path

256        In a loose TE path [RFC7855], only Node SIDs are used along the path.
257        Between two adjacent Node SIDs, generally, there are equal-cost
258        multipaths (ECMP).  The SR-PMTU of the loose TE path is computed by
259        finding out the minimum SR-PMTU of all the ECMPs between two adjacent
260        Node SIDs along the loose TE path.

[] It's sad that none of the SR documents talk about loose and strict paths. :-(

The use of the SR-PMTU is not limited to TE applications.  Reading
into §3.3/rfc7855, the TE requirements refer explicitly to loose and
strict route options...so I think we can safely use "loose/strict
path" (no TE).


[minor] s/Node SID/Node-SID/g   [rfc8402]


[minor] s/finding out/finding/g



262        Note that an implementation could maintain the SR-PMTU value
263        associated with Node SIDs at the time of best path computation.  The
264        details of which are out of the scope of this document.

[?] I don't know what you mean by "an implementation could maintain".



266     5.2.2.  Strict TE Path

268        In a strict TE path [RFC7855], only Adj SIDs are used along the path.
269        Since the link MTU of all the links being indicated by the Adj SIDs
270        of the strict TE path are known to the network controller, the SR-
271        PMTU of the strict SR-TE path is computed by finding out the minimum
272        link MTU of all the links in the strict SR-TE path between its source
273        node and destination node.

[minor] s/Adj SID/Adj-SID/g   [rfc8402]



275     5.2.3.  Mixed Path

277        In a mixed path, both Node SIDs and Adj SIDs are used along the path.
278        The PMTU of the mixed TE path is computed by finding out the minimum
279        value of all the ECMPs between two adjacent Node SIDs and the link
280        MTU of all the links indicated by the Adj SIDs.

[major] s/minimum value of all the ECMPs/minimum SR-PMTU of all the ECMPs



282     5.2.4.  Binding Path

284        The Binding SID (BSID) [RFC8402] is bound to an SR Policy,
285        instantiation of which may involve a list of SIDs.  The SR-PMTU of
286        the binding path is the same as that of an SR Policy as specified in
287        the above section modulo that it also includes the encapsulation
288        overhead associated with it (i.e. in case of SR-MPLS, the additional
289        label stack pushed in case of SR-MPLS and the outer IPv6 header with
290        its own SRH in case of SRv6).  This is done to make sure the headend
291        of the SR path that includes a BSID is able to compute the SR-PMTU
292        correctly by taking the correct SR-PMTU of the binding path into
293        consideration along with other SIDs in the SR path.

[nit] s/in case of SR-MPLS, the additional/the additional



295     5.2.5.  TI-LFA

297        Topology Independent Loop-free Alternate Fast Re-route (TI-LFA)
298        [I-D.ietf-rtgwg-segment-routing-ti-lfa], aimed at providing
299        protection of node and adjacency segments within the SR framework.
300        The repair path is to pre-compute SPT_new(R,X) for each destination,
301        that is, the Shortest Path Tree rooted at node R in the state of the
302        network after the resource X has failed.  An implementation is free
303        to use any local optimization to provide smaller SID lists by
304        combining Node SIDs and Adjacency SIDs.  In addition, the usage of
305        Node-SIDs allows to maximize ECMPs over the repair path.  Note that
306        while the PMTU of repair path might be different from the original
307        path, which could lead to fragmentation while the repair path is in
308        use.  When the controller has computed the new path, its new PMTU
309        would be updated to the headend.

[nit] s/while the PMTU of/the PMTU of


[] "...which could lead to fragmentation while the repair path is in
use.  When the controller has computed the new path, its new PMTU
would be updated to the headend."

This sounds counter to the motivation (§1.1): "avoid fragmentation"
and "When fragmentation is unavoidable, the ability to do it correctly
at the headend."  When the repair path is in use neither goals are
met.



311        Note that it is possible for the headend implementation to take an
312        FRR overhead into consideration when determining if fragmentation
313        would be needed for the SR Path with TI-LFA enabled.  If this is
314        used, an implementation SHOULD allow the value to be configured by an
315        operator.

[major] "SHOULD allow the value to be configured"

Which value?  In other cases the information seems to be collected
from the path, not manually configured.  Why is this change needed?

Why is the ability to configure not required?  Or is the configuration
beyond the collection?



317     5.2.6.  Others

319        All other types of path can be considered here in future updates.

[] This section is superfluous.



321     5.3.  SR-PMTU Enforcement
...
349        When there are multiple paths that can be selected, the one with the
350        highest SR-PMTU will be enforced in order to avoid fragmentation on
351        the headend.

[minor] s/multiple paths that can be selected, the one with the
highest SR-PMTU will be enforced/... used



...
356     5.4.  Handling behaviors on the headend

358        After the SR-PMTU is computed and enforced on the headend, the
359        headend is going to perform the handling behaviors such as
360        encapsulation, fragmentation, etc.  Note that this behavior is
361        similar to the existing behavior of MPLS and IPv6 dataplane.

[] Enforcing the SR-PMTU already implies fragmentation.

Suggestion>

   After the SR-PMTU is computed, the headend performs the handling
   behaviors such as encapsulation and fragmentation, if needed. Note
   that this behavior is similar to the existing behaviors of MPLS
   and IPv6 dataplane.



363     5.4.1.  SR-PMTU Constraints and Optimization

365        Generally, considering its services being carried, the operators set
366        an SR-PMTU limit aiming for a proper path selection that fulfills
367        packet size requirements hence avoiding fragmentation.  Furthermore,
368        the encapsulation on the headend will introduce the overhead on top
369        of the packet to be encapsulated.  Generally, the encapsulation
370        overhead has to be estimated according to the possible path hops and
371        sometimes the repair paths.  Therefore, the SR-PMTU constraint is set
372        considering both the carried services and the encapsulation overhead.

[nit] s/considering its services being carried/considering the
services being carried


[] "the operators set an SR-PMTU limit"

In §5.1 the collection is implied to be done through network
mechanisms (IGP, BGP-LS, etc.).  Perhaps include the possibility of
manual configuration.

The text should be updated to reflect the in-network collection.  For
example, an IGP is going to report the MTU on an interface without
knowledge of the services.



374        When SR-PMTU-based path optimization is done, PCE will select the
375        path with the highest SR-PMTU among all the possible paths.

377        Even if the SR-PMTU is not considered by the PCE at the time of path
378        computation, the computed SR-PMTU is useful at the headend for the
379        reasons already stated in Section 1.1.

381        Once the SR-PMTU constraint is set on the headend, it is supposed to
382        be the lowest bound of the SR-PMTUs of all the paths being computed
383        locally or enforced by the controller in order to avoid
384        fragmentation.

[] The paragraph above says that the "lowest bound of the SR-PMTUs" is
used, but two paragraphs above it says that the "PCE will select the
path with the highest SR-PMTU".

What's the difference between the "SR-PMTU constraint" and the SR-PMTU
of the SR policy?  I know I'm missing something, I just don't know
what it is.  Is the "SR-PMTU limit" mentioned in the first paragraph
of this section the same as the "SR-PMTU constraint"?



386     5.4.2.  Fragmentation processing

388        If the SR-PMTU of all the paths being computed locally or enforced by
389        the controller is smaller than the SR-PMTU constraint set on the
390        headend, the fragmentation will have to be handled.  If fragmentation
391        is not possible, the headend could generate the ICMP messages to
392        notify the traffic source.

[major] "the headend could generate the ICMP messages"

Please reference the ICMP RFC.



394        Over this selected path, on the headend, the packets are fragmented
395        in order to guarantee the size of the encapsulated packets is smaller
396        than the PMTU of the selected path.

[] This paragraph seems to say the same thing as the previous one.



...
406     7.  Security Considerations

408        [RFC9256] specifies in detail the SR Policy construct (introduced
409        [RFC8402]) and its security consideration.  The additional SR-MTU
410        attribute information can be sensitive in some deployments and could
411        be used to influence SR path setup and selection with adverse effect.
412        The protocol extensions that include SR-PMTU need to take this into
413        consideration.  This document does not define any new protocol
414        extensions and thus does not introduce any further security
415        considerations.

[nit] s/introduced [RFC8402]/introduced in [RFC8402]


[nit] s/security consideration/security considerations



...
474     10.2.  Informative References

476        [RFC4821]  Mathis, M. and J. Heffner, "Packetization Layer Path MTU
477                   Discovery", RFC 4821, DOI 10.17487/RFC4821, March 2007,
478                   <https://www.rfc-editor.org/info/rfc4821>.

[major] This reference should be Normative because the terminology
comes from it.  Look at other related comments.



...
486        [RFC8201]  McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed.,
487                   "Path MTU Discovery for IP version 6", STD 87, RFC 8201,
488                   DOI 10.17487/RFC8201, July 2017,
489                   <https://www.rfc-editor.org/info/rfc8201>.

[major] This reference should be Normative.



...
505        [I-D.ietf-idr-sr-policy-path-mtu]
506                   Li, C., Zhu, Y., El Sawaf, A., and Z. Li, "Segment Routing
507                   Path MTU in BGP", Work in Progress, Internet-Draft, draft-
508                   ietf-idr-sr-policy-path-mtu-08, 19 October 2023,
509                   <https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
510                   policy-path-mtu-08>.

[major] This reference should be Normative because it is where the
Path MTU is added to the SR Policy.

[EoR-03]

_______________________________________________
spring mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to