Dear authors,

I have reviewed draft-ietf-spring-cs-sr-policy-05 and have the following 
comments, listed below from <comment 1> to <comment 44>.
These comments mainly include the following:
a) Definition of CS-SR Policy is suggested to be more clear <comment 17>
b) Inconsistent description style used when describing SR-MPLS and SRv6,PCEP 
and BGP,PCC-initiated mode and PCE-initiated mode.
c) Some references are lost or not be updated to the latest status
d) Key words("MUST", "SHOULD", "RECOMMENDED"...) are suggested to be added in 
some places
e) Discussion on the terms used for recovery scheme in section 7.
f) Some texts are suggestion to be reconstructed for ease of reading  
g) Editorial nits
Line numbers is included from nits 
(https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-spring-cs-sr-policy-05.txt)
 to help identify where in the document the comment applies.

Regards,
Yao


13                       Circuit Style Segment Routing Policies
14                         draft-ietf-spring-cs-sr-policy-05

<comment 1><technical> "Circuit Style Segment Routing Policies" or ""Circuit 
Style Segment Routing Policy" ?  
I understand that when we are talking able more than one CS-SR Policy, the term 
"CS-SR Policies" should be used. But when refering to the new concept (a new 
type of SR policy), using "CS-SR Policy" may be better and the usage should be 
consistent throughout the document, taking examples from RFC8402.

94         However transport services (commonly referred to as "private lines")
95         are delivered via pseudowires (defined by the PWE3 and PALS
96         workgroups) and require:
<comment 2><technical> Suggest to use RFCs(e.g RFC3985) or documents as 
references for pseudowires instead of names of working groups.


141        *  LSPA : LSP attributes
<comment 3><editorial>   "attributes" should be "Attributes"

195        When using PCEP as the communication protocol on the headend routers,
196        the centralized entity is a stateful PCE defined in [RFC8231].  When
197        using a MPLS data plane [RFC8660], PCEP extensions defined in
198        [RFC8664] will be used.  When using a SRv6 data plane [RFC8754],
199        [RFC8986], PCEP extensions defined in [RFC9603] are used.

<comment 4><editorial> Inconsistent description style used when describing 
SR-MPLS and SRv6. Use "MPLS"&"IPv6", or "SR-MPLS"&"SRv6". And RFC8986 seems 
unnecessary. Similar comments apply for line 230.
Suggested text:
 When using the SR-MPLS data plane [RFC8660], PCEP extensions defined in 
[RFC8664] are used. When using the SRv6 data plane [RFC8754],PCEP extensions 
defined in [RFC9603] are used.


192        CS-SR Policies can be instantiated in the headend routers using
193        configuration, PCEP or BGP.

195        When using PCEP as the communication protocol on the headend routers,
196        the centralized entity is a stateful PCE defined in [RFC8231].  When
197        using a MPLS data plane [RFC8660], PCEP extensions defined in
198        [RFC8664] will be used.  When using a SRv6 data plane [RFC8754],
199        [RFC8986], PCEP extensions defined in [RFC9603] are used.

201        When using BGP as the communication protocol on the headend routers,
202        the BGP extensions defined in [I-D.ietf-idr-sr-policy-safi] are used.

204        When using configuration, the YANG model defined in
205        [I-D.ietf-spring-sr-policy-yang] does apply.

<comment 5><editorial> Suggest to adjust the structure of the above text to 
combine them as a whole paragraph.
Suggested text:
CS-SR Policies can be instantiated in the headend routers using PCEP,BGP or 
configuration.
*  When using PCEP as the communication protocol on the headend routers, the 
centralized entity is a stateful PCE defined in [RFC8231]. When using the 
SR-MPLS data plane [RFC8660], PCEP extensions defined in [RFC8664] are used. 
When using the SRv6 data plane [RFC8754], PCEP extensions defined in [RFC9603] 
are used.
*  When using BGP as the communication protocol on the headend routers, the BGP 
extensions defined in [I-D.ietf-idr-sr-policy-safi] are used.
*  When using configuration, the YANG model defined in 
[I-D.ietf-spring-sr-policy-yang] does apply.

210        *  An adjacency-SID which is:
212           -  Manually allocated or persistent: to ensure that its value does
213              not change after a node reload

<comment 6><technical><discussion> "Manually allocated or persistent" or 
"Manually allocated and  persistent" ? 

224        In a network with link bundles an adjacency-SID SHOULD be assigned to
225        each member-link ([RFC8668], [RFC9356]) to ensure deterministic
226        traffic placement onto physical links.

<comment 7><technical> Some reference/example may help to understand what link 
bundle is. 
Suggested Text:
In a network with link bundles(i.e,Link Aggregation Group[IEEE802.1AX]), an 
adjacency-SID SHOULD be assigned to each member-link ([RFC8668], [RFC9356]) to 
ensure deterministic traffic placement onto physical links.


227        adjacency-SIDs representing parallel adjacencies Section 4.3 of
228        [RFC8402] SHOULD also be avoided.
<comment 8><technical> RFC8402 doesn't have section 4.3

235        When using a SRv6 data plane [RFC8754], [RFC8986] the IGP extensions
236        defined in [RFC9352], [RFC9513] and BGP-LS extensions in [RFC9514]
237        apply.
<comment 9><editorial> RFC8986 seems unnecessary. A few places in this document 
use "a SR...", should be "an SR..."
Suggested Text:
When using an SRv6 data plane [RFC8754], the IGP extensions defined in 
[RFC9352], [RFC9513] and BGP-LS extensions in [RFC9514] apply.


242        In a circuit switched network such as SONET/SDH, OTN or
243        DWDM resources (timeslots or a wavelength) are allocated
<comment 10><technical> The terms SONET/SDH, OTN and DWDM are neither listed in 
the terminology section nor with explanation attached.


245        In a packet switched network resources are
246        only allocated when communication is present, i.e. packets are to be
247        sent.  
<comment 11><editorial> Comma is lost in a few places, such as line 250,line 
349,line 406,line 429,line547,605,610
Suggested Text:
In a packet switched network, resources are only allocated when communication 
is present, i.e. when packets are to be sent. 


280        *  Use of dedicated manual unprotected adjacency-SIDs that are used
281           solely by CS-SR traffic.  Features like TI-LFA
282           [I-D.draft-ietf-rtgwg-segment-routing-ti-lfa] and microloop
283           avoidance [I-D.draft-bashandy-rtgwg-segment-routing-uloop] can use
284           dynamic unprotected adjancency-SIDs.

<comment 12><editorial> Start with an imperative sentence to keep it consistent 
with the previous graphes.
Suggested Text: Use dedicated persistent unprotected adjacency-SIDs solely for 
CS-SR policies. 
<comment 13><technical> I didn't quite understand what is the "dynamic 
unprotected adjancency-SIDs" here. If TI-LFA is used, it is a protected adj-sid.

286        The approach of allocating a Diffserv codepoint can leverage any of
287        the following Per Hop Behavior (PHB) strategies:

289        *  Use a Assured Forwarding (AF) class queue for CS-SR Policies and
290           limit the total utilization across all other queues to bandwidth O
291           by traffic policing or shaping and ensure that P - N - O >= C

293        *  Use a Expedited Forwarding (EF) class queue for CS-SR Policies and
294           limit the total utilization across all other EF queues of higher
295           or equal priority to bandwidth O by traffic policing or shaping
296           and ensure that P - N - O >= C

298        *  Use a Expedited Forwarding (EF) class queue for CS-SR Policies
299           with a priority higher than all other EF queues and limit the
300           utilization of the CS-SR Policy EF queue by traffic policing to C
301           <= P - N

<comment 14><editorial> Per Hop Behavior--> Per-Hop Behavior     as mentioned 
in line220 and RFC3246.

<comment 15><technical> reference should be added for AF(RFC2597) and 
EF(RFC3246)

<comment 16><technical> considering that the whole text is the expansion of the 
Diffserv codepoint allocating method, and the meaning  P, N and C are not 
mentioned in the previous Diffserv codepoint allocating method part. It is 
suggestion to add the explanation for them at the beginning of this part for 
ease of understanding.
OLD:
The approach of allocating a Diffserv codepoint can leverage any of the 
following Per Hop Behavior (PHB) strategies:
Suggested NEW Text:
The approach of allocating a Diffserv codepoint can leverage any of the 
following Per Hop Behavior (PHB) strategies below, where P is the the bandwidth 
of physical link, N is the bandwidth allocated for network control and C is  
the bandwidth reserved for CS-SR policies.


120        SR Policies that satisfy those requirements are called "Circuit-
121        Style" SR Policies (CS-SR Policies).

311     5.  CS-SR Policy Characteristics
313        A CS-SR Policy has the following characteristics:
317        *  Bidirectional co-routed: a CS-SR Policy between A and Z is an
318           association of an SR Policy from A to Z and an SR Policy from Z to
319           A following the same path(s)

<comment 17><technical><discussion> Just to confirm that a CS-SR Policy is 
consist of two unidirection SR policies that are co-routed, right? 
If the above understanding is right,let's look back at the definition of CS-SR 
Policy in the introduction section(line 120, line 121), the definition is not 
that accurate.
A "normal" SR Policy is unidirectioanal, so there wouldn't be an single SR 
Policy can satisfy all the requirements listed in the introduction section 
along and can be called a CS-SR Policy.
It is suggested to re-consider the definition of the CS-SR Policy in the 
introduction section to make it more clear and aligned with the characteristics 
in section 5, such as, A "Circuit-Style" SR Policy (CS-SR Policy)" is an 
association of two co-routed unidirectioanal SR Policies, and it satisfies the 
above requirements. 


328        *  Multiple candidate paths in case of protection/restoration:
<comment 18><technical> This description may lead to misunderstanding that 
there must be multiple candidate paths in a CS-SR Policy.
Suggested NEW Text:
More than one candidate path may appear in case of protection/restoration

342        *  Connectivity verification and performance measurement is activated
343           on each candidate path (Section 8)
<comment 19><editorial> 
NEW
Connectivity verification and performance measurement are activated on each 
candidate path (Section 8)

353        Both nodes A and Z act as PCC and delegate path computation to the
354        PCE using PCEP with the extensions defined in [RFC8664] and the
355        procedure described in Section 5.7.1 of [RFC8231].  SRv6 specific
356        extensions are defined in [RFC9603].

<comment 20><editorial> re-construct the paragraph to make parallel 
descriptions for SR-MPLS and SRv6
Suggested new text
           Both node A and Z act as PCC and delegate path computation to the
           PCE using PCEP with the procedure described in Section 5.7.1 of 
[RFC8231].
           For SR-MPLS, the extensions defined in [RFC8664] are used. And SRv6 
specific
           extensions are defined in [RFC9603].
           
358        The PCRpt message sent from the headends to the PCE contains the
359        following parameters:           
<comment 21><technical> Is a "SHOULD" needed here? 
Suggested New Text
The PCRpt message sent from the headends to the PCE SHOULD contain the 
following parameters:

347     6.1.  Policy Creation when using PCEP

413        In addition to the above described PCC-initiated mode of operation,
414        The SR Policies can be instantiated in the network by a PCE using
415        PCE-initiated procedures.
<comment 22><technical><major> The PCC-initiated procedures are described 
detailly and takes up most of section 6.1, while the PCE-initiated procedures 
are only mentioned in the above paragraph, which seems not clear enough as a 
guidance for implementing PCE-initiated mode. It is suggested to expand the 
PCE-initiated procedures, either as paragraphs in section 6.1 or as a 
sub-section (e.g section6.1.1 for PCC-initiated mode and section6.1.2 for 
PCE-initiated mode). For the description of PCE-initiated mode, if some 
procedures are just the same as those for PCC-initiated mode,a concise 
description can be used or just refering to the PCC-initiated mode, but it 
should not be omitted.

423        The centralized controller is instructed (i.e. by an application via
424        an API call)
<comment 23><technical> By using "i.e", it indicates that the only way to 
instruct the controller is by an application via an API call. "e.g" seems 
better since there may be other choices such as direct configuration on the 
controller. 

423        The centralized controller is instructed (i.e. by an application via
424        an API call) to create the CS-SR Policy, for which the controller
425        does perform path computation and is requesting headend A via BGP to
426        instantiate a SR Policy (with Z as endpoint) and requesting headend Z
427        via BGP to instantiate a SR Policy (with Z as endpoint).
<comment 24><editorial> I'm not a native English speaker, but  "is requesting" 
used here seems a little bit strange, and two "and" are used in one sentence.
Suggested New Text:
        for which the controller performs path computation and requests the 
headends via BGP to instantiate the corresponding SR Policies on them, e.g,  
headend A is requested via BGP to instantiate an SR Policy with Z as the 
endpoint and headend Z is requested  via BGP to instantiate an SR Policy with A 
as the endpoint.
        
460     6.3.  Maximum SID Depth
<comment 25><technical> Suggest to use "Maximum SID Depth Constraint " as the 
title to make the theme clear at the first glance.

466        When using SR-MPLS this constraint is called "Base MPLS Imposition
467        MSD" and is advertised via IS-IS [RFC8491], OSPF [RFC8476], BGP-LS
468        [RFC8814] and PCEP [RFC8664].

470        When using SRv6 this constraint is called "SRH Max H.encaps" and is
471        advertised via IS-IS [RFC9352], OSPF [RFC9513], BGP-LS [RFC9514] and
472        PCEP [RFC9603]
<comment 26><technical> Suggest to use "SRH Max H.encaps MSD" to be aligned 
with "Base MPLS Imposition MSD" in MPLS.

473        The MSD constraint is typically resolved by leveraging a label stack
474        reduction technique, such as using Node SIDs and/or BSIDs (SR
475        architecture [RFC8402]) in a segment list, which represents one or
476        many hops in a given path.
<comment 27><technical> "label stack" ---> "segment list"



500     7.  Recovery Schemes

502        Various protection and restoration schemes can be implemented.  The
503        terms "protection" and "restoration" are used with the same subtle
504        distinctions outlined in section 1 of [RFC4872], [RFC4427] and
505        [RFC3386] respectively.
<comment 28><technical>When refering to the difference between "protection" and 
"restoration", 3 RFCs are used for reference. Section 1 of [RFC4872] only says 
that, to check [RFC4427] to see the difference, this reference is unnecessary. 
And RFC4427 kind of makes the definition and use "protection" and "restoration" 
more clear since RFC3386 uses these two terms interchangeably although it is 
(probably)the first RFC defines them. So is it enough if RFC4427 is used as the 
only reference here? And this paragraph is suggested to be re-constructed for 
ease of understanding.
Suggested Text:
        Various recovery(protection and restoration) schemes can be implemented 
for CS-SR Policy. As described in RFC4427 section 4.3,  there's subtle 
distinction between the terms "protection" and "restoration", based on the 
resource allocation done during the recovery path establishment. Same 
definitions apply for the CS-SR Policy recovery schemes, wherein,
        Protection: another candidate path is computed and fully established in 
the data plane and ready to carry traffic
        Restoration: a candidate path may be computed and may be partially 
established but is not ready to carry traffic


513        The term "failure" is used to represent both "hard failures" such
514        complete loss of connectivity detected by connectivity verification
515        described in Section 8.1 or degradation, a packet loss ratio, beyond
516        a configured acceptable threshold.
<comment 29><editorial>
Suggested Text:
           The term "failure" is used to represent both "hard failures" such as
           complete loss of connectivity detected by connectivity verification
           described in Section 8.1 and degradation, i.e, when the packet loss 
ratio beyond
           a configured acceptable threshold.
           
518     7.1.  Unprotected          

525        When using PCEP, a PCRpt message is sent from the PCC to the PCE with
526        the O field in the LSP object set to 2.
<comment 30><technical>Add reference for the O field(rfc8231#section-7.3)
<comment 31><technical>Explain the meaning of value 2 to be aligned with the 
description for BGP-LS, same suggestion applies for the following sections 
where the value of O field is described.
Suggested Text:
   When using PCEP, a PCRpt message is sent from the PCC to the PCE with
   the O field in the LSP object[RFC8231] set to 2 to indicate the candidate 
path is active and carrying traffic.   


545     7.2.  1:1 Protection   
558        Appropriate routing of the protect path diverse from the working path
559        can be requested from the PCE by using the "Disjointness Association"
560        object (type 2) defined in [RFC8800] in the PCRpt messages.  The
561        disjoint requirements are communicated in the "DISJOINTNESS-
562        CONFIGURATION TLV"

564        *  L bit set to 1 for link diversity
565        *  N bit set to 1 for node diversity

567        *  S bit set to 1 for SRLG diversity

569        *  T bit set to enforce strict diversity

571        The P bit may be set for first candidate path to allow for finding
572        the best working path that does satisfy all constraints without
573        considering diversity to the protect path.   

<comment 32><technical> The term "first candidate path" in line 571, is it the 
primary candidate path with the higher priority?  
Suggested Text:
For the primary candidate path, the P bit may be set to allow for finding the 
best working path that does satisfy all constraints without considering 
diversity to the protect path. 

654     7.3.1.  1+R Restoration
<comment 33><technical> Why it is called 1+R restoration since only one 
candidate path is used for protection in this section

837     8.  Operations, Administration, and Maintenance (OAM)
<comment 34><technical><discussion>The whole section using STAMP for OAM 
purpose, can other mechanism be used, e.g, BFD for connectivity validation?

841        The proper operation of each segment list is validated by both
842        headends using STAMP in loopback measurement mode as described in
843        section 4.2.3 of [I-D.ietf-spring-stamp-srpm].
<comment 35><technical> no section 4.2.3 in [I-D.ietf-spring-stamp-srpm] now
<comment 36><technical> is there a "SHOULD"/"MAY"/“RECOMMANDED" missing ? And I 
don't quite understand why use "The proper operation" ,can we just state that 
it's connectivity verification operation 
Suggested Text(taking “RECOMMENDED" as an example with reconstruction) :
The connectivity verification for each segment list on both headends is 
RECOMMENDED to be done using STAMP in loopback measurement mode as described in 
section 6 of [I-D.ietf-spring-stamp-srpm].

845        As the STAMP test packets are including both the segment list of the
846        forward and reverse path, standard segment routing data plane
847        operations will make those packets get switched along the forward
848        path to the tailend and along the reverse path back to the headend.

850        When using PCEP, the headend forms the bidirectional SR Policy
851        association using the procedure described in
852        [I-D.ietf-pce-sr-bidir-path] and receives the information about the
853        reverse segment list from the PCE as described in section 4.5 of
854        [I-D.ietf-pce-multipath]

856        When using BGP, the controller does inform the headend routers about
857        the reverse segment list using the Reverse Segment List Sub-TLV
858        defined in section 4.1 of [I-D.ietf-idr-sr-policy-path-segment].
<comment 37><technical> For SRv6, packets wouldn't get switched just forwarded.
Suggested Text:
As the STAMP test packets carry both the segment list of the forward and 
reverse path, standard segment routing data plane operations will make those 
packets get forwarded along the forward path to the tailend and along the 
reverse path back to the headend.
<comment 38><technical> Before talking about the PCEP and BGP, it feels like 
something is missing to explain why the headend need to know the reverse 
segment list information.
Suggested Text:
        In order to be able to send STAMP test packets for loopback measurement 
mode, the STAMP Session-Sender(i.e, the headend) needs to acquire the segment 
list information of the reverse path:
                * PCEP part...
                * BGP part....

865     8.2.  Performance Measurement

867        The same STAMP session is used to estimate round-trip loss as
868        described in section 5 of [I-D.ietf-spring-stamp-srpm].

870        The same STAMP session used for connectivity verification can be used
871        to measure delay.  As loopback mode is used only round-trip delay is
872        measured and one-way has to be derived by dividing the round-trip
873        delay by two.

<comment 39><editorial> The first paragraph seems redundant since the beginning 
of the second paragraph repeated the same thing.                
<comment 40><technical><discussion> Is the one-way delay always half of the 
round-trip delay? Or in other words, is the delay of the forward path always 
equal to the reverse path ?


875     8.3.  Candidate Path Validity Verification

877        A stateful PCE/controller is in sync with the network topology and
878        the CS-SR Policies provisioned on the headend routers.  As described
879        in Section 5 a path must not be automatically recomputed after or
880        optimized for topology changes.  However, there may be a requirement
881        for the stateful PCE/controller to tear down a path if the path no
882        longer satisfies the original requirements, detected by stateful PCE/
883        controller, such as insufficient bandwidth, diversity constraint no
884        longer met or latency constraint exceeded.

<comment 41><editorial>I try to reconstruction the paragraph 
Suggested Text:
           A stateful PCE/controller is in sync with the headend routers in 
           the network topology and the CS-SR Policies provisioned on them.  As 
described
           in Section 5, a path MUST not be automatically recomputed after or
           optimized for topology changes.  However, there may be a requirement
           for the stateful PCE/controller to tear down a path if the path no
           longer satisfies the original requirements, as detected by stateful 
PCE/
           controller, such as insufficient bandwidth, diversity constraint no
           longer met or latency constraint exceeded.

886        The headend may measure the actual bandwidth utilization of a CS-SR
887        Policy to take local action and/or report it as requested bandwidth
888        via PCEP or BGP-LS to the stateful PCE/controller.  Typical actions
889        are raising alarms or adjusting the reserved bandwidth.      
<comment 42><technical> The measured  bandwidth utilization(e.g,10GB/s) can be 
reported to the controller to influence the bandwidth adjustment, but I don't 
quite understand why the measured bandwidth can be used as the requested 
bandwidth.(Its bandwidth measured is already 10GB/s, why requesting a 10GB/s 
bandwidth to the controller ).

895     9.  External Commands
<comment 43><technical> It's not clearly stated who would support these 
external commands (I believe it's the controller) and are these commands 
mandatory or optional. Maybe change the title(such as External Commands 
Recommended of the  controller) or add some description under the title(such 
as, this section recommends some external commands on the controller). 

897     9.1.  Candidate Path Switchover


901                                                                             
     Operator triggered
902        switching between candidate paths is unidirectional and has to be
903        requested on both headends.
<comment 44><editorial> reconstruction the text for ease of reading. And is 
there a "SHOULD" needed here?
Suggested New Text:
Since switch between candidate paths triggered by the operator is 
unidirectional, the candidate path switch commands SHOULD be executed for both 
headends of a CS-SR policy.
_______________________________________________
spring mailing list -- spring@ietf.org
To unsubscribe send an email to spring-le...@ietf.org

Reply via email to