Re: [Pce] AD review of draft-ietf-pce-segment-routing-ipv6-20

Cheng Li <c.l@huawei.com> Wed, 31 January 2024 17:03 UTC

Return-Path: <c.l@huawei.com>
X-Original-To: pce@ietfa.amsl.com
Delivered-To: pce@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 58D8AC14F705; Wed, 31 Jan 2024 09:03:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.894
X-Spam-Level:
X-Spam-Status: No, score=-6.894 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_HTML_ATTACH=0.01, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nlt5JdhcMzqh; Wed, 31 Jan 2024 09:03:02 -0800 (PST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 65EF2C14F5FC; Wed, 31 Jan 2024 09:03:01 -0800 (PST)
Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TQ7Yy6Jzjz6K963; Thu, 1 Feb 2024 00:59:50 +0800 (CST)
Received: from lhrpeml100004.china.huawei.com (unknown [7.191.162.219]) by mail.maildlp.com (Postfix) with ESMTPS id A501F1404FC; Thu, 1 Feb 2024 01:02:57 +0800 (CST)
Received: from dggpemm100008.china.huawei.com (7.185.36.125) by lhrpeml100004.china.huawei.com (7.191.162.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 31 Jan 2024 17:02:56 +0000
Received: from dggpemm500003.china.huawei.com (7.185.36.56) by dggpemm100008.china.huawei.com (7.185.36.125) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 1 Feb 2024 01:02:54 +0800
Received: from dggpemm500003.china.huawei.com ([7.185.36.56]) by dggpemm500003.china.huawei.com ([7.185.36.56]) with mapi id 15.01.2507.035; Thu, 1 Feb 2024 01:02:54 +0800
From: Cheng Li <c.l@huawei.com>
To: John Scudder <jgs@juniper.net>, "draft-ietf-pce-segment-routing-ipv6@ietf.org" <draft-ietf-pce-segment-routing-ipv6@ietf.org>
CC: "pce@ietf.org" <pce@ietf.org>
Thread-Topic: AD review of draft-ietf-pce-segment-routing-ipv6-20
Thread-Index: AQHaTx/aQ+1FdjqnUkKpMHq+N+EYa7D0L6Ag
Date: Wed, 31 Jan 2024 17:02:54 +0000
Message-ID: <78d0701540a24c8b835a765b4a137777@huawei.com>
References: <C0BD27CC-C794-4240-A9E5-DCFB1D526A51@juniper.net>
In-Reply-To: <C0BD27CC-C794-4240-A9E5-DCFB1D526A51@juniper.net>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.221.205.154]
Content-Type: multipart/mixed; boundary="_003_78d0701540a24c8b835a765b4a137777huaweicom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/pce/xa75XY1X58cEqbo5y8CwymqAFzs>
Subject: Re: [Pce] AD review of draft-ietf-pce-segment-routing-ipv6-20
X-BeenThere: pce@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Path Computation Element <pce.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pce>, <mailto:pce-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pce/>
List-Post: <mailto:pce@ietf.org>
List-Help: <mailto:pce-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pce>, <mailto:pce-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 31 Jan 2024 17:03:07 -0000

Hi John,

Thank you so much for your comments, we think they are very helpful.
We have modified the draft to address your comments accordingly, please review it again. 
If they can address your comments, we will update the draft very soon.

Thanks,
Cheng



-----Original Message-----
From: John Scudder <jgs@juniper.net> 
Sent: Thursday, January 25, 2024 12:49 AM
To: draft-ietf-pce-segment-routing-ipv6@ietf.org
Cc: pce@ietf.org
Subject: AD review of draft-ietf-pce-segment-routing-ipv6-20

Hi Authors, WG,

Thanks for this document.

I’ve supplied my questions and comments in the form of an edited copy of the draft. Minor editorial suggestions I’ve made in place without further comment, more substantive questions and comments are done in-line and prefixed with “jgs:”. You can use your favorite diff tool to review them; I’ve attached the iddiff output for your convenience if you’d like to use it. I’ve also pasted a traditional diff below in case you want to use it for in-line reply.

One further point regarding “minor editorial suggestions”. While I did make a few, I didn’t do exhaustive copy-editing of this draft, and of course, the RFC Editor will do their usual comprehensive job. However, I did notice a pervasive need for a few particular kinds of changes (for example definite articles, agreement in number) that mar what’s otherwise a high-quality document and are likely to bother some reviewers. It’s optional, but it wouldn’t be a bad idea for you to pass the document through a grammar checker before we send it for IETF Review. Your call.

Thanks,

—John

--- draft-ietf-pce-segment-routing-ipv6-20.txt	2024-01-24 14:39:13.000000000 -0500
+++ draft-ietf-pce-segment-routing-ipv6-20-jgs-comments.txt	2024-01-24 18:40:57.000000000 -0500
@@ -29,12 +29,15 @@
    A Segment Routed Path can be derived from a variety of mechanisms,
    including an IGP Shortest Path Tree (SPT), explicit configuration, or
    a PCE.
+--
+jgs: I think it would be appropriate to expand PCE.
+--
 
    Since SR can be applied to both MPLS and IPv6 forwarding planes, a
-   PCE should be able to compute SR-Path for both MPLS and IPv6
+   PCE should be able to compute an SR path for both MPLS and IPv6
    forwarding planes.  The PCEP extension and mechanisms to support SR-
    MPLS have been defined.  This document describes the extensions
-   required for SR support for IPv6 data plane in the Path Computation
+   required for SR support for the IPv6 data plane in the Path 
+ Computation
    Element communication Protocol (PCEP).
 
 Status of This Memo
@@ -151,7 +154,7 @@
    [RFC8754].
 
    An SR path can be derived from an IGP Shortest Path Tree (SPT), but
-   SR-TE (Segment Routing Traffic Engineering) paths may not follow IGP
+   SR-TE (Segment Routing Traffic Engineering) paths might not follow 
+ IGP
    SPT.  Such paths may be chosen by a suitable network planning tool,
    or a PCE and provisioned on the ingress node.
 
@@ -186,7 +189,7 @@
    stateful PCE for computing one or more SR-TE paths taking into
    account various constraints and objective functions.  Once a path is
    chosen, the stateful PCE can initiate an SR-TE path on a PCC using
-   PCEP extensions specified in [RFC8281] using the SR specific PCEP
+   PCEP extensions specified in [RFC8281] and the SR-specific PCEP
    extensions specified in [RFC8664].  [RFC8664] specifies PCEP
    extensions for supporting a SR-TE LSP for the MPLS data plane.  This
    document extends [RFC8664] to support SR for the IPv6 data plane.
@@ -228,6 +231,16 @@
 
    The message formats in this document are specified using Routing
    Backus-Naur Format (RBNF) encoding as specified in [RFC5511].
+--
+jgs: as far as I can tell, no they are not. Either remove this 
+paragraph, and the normative reference, or help me understand why I am 
+wrong.
+
+Speaking of RBNF, the fact this spec doesn't use it seems to put it out 
+of step with some of the other PCE document set. I'm assuming it's the 
+consensus of the WG that this is fine. (I don't have a problem with the 
+style used here.)
+--
 
    Further, following terms are used in the document,
 
@@ -240,6 +253,11 @@
    SID:  Segment Identifier.
 
    SRv6:  Segment Routing for IPv6 forwarding plane.
+--
+jgs: in the introduction you expanded this as "Segment Routing over 
+IPv6 data plane", which seems like a better expansion to me. But either 
+way, please pick one and stick with it.
+--
 
    SRH:  IPv6 Segment Routing Header.
 
@@ -255,6 +273,14 @@
    Basic operations for PCEP speakers are as per [RFC8664].  SRv6 Paths
    computed by a PCE can be represented as an ordered list of SRv6
    segments of 128-bit value.
+--
+jgs: probably just "128 bit SRv6 segments", or if you feel that's not 
+explicit enough, "SRv6 segments, each of which is 128 bits in length."
+(The problem with the current version is that first, 128 bits is the 
+length of the segment, not the value of it, and second, there's 
+possible ambiguity as to whether 128 bits is the length of the list, or 
+the length of each individual segment.)
+--
 
    [RFC8664] defined a new Explicit Route Object (ERO) subobject denoted
    by "SR-ERO subobject" capable of carrying a SID as well as the @@ -271,6 +297,16 @@
 
    This document defines new subobjects "SRv6-ERO" and "SRv6-RRO" in the
    ERO and the RRO respectively to carry the SRv6 SID (IPv6 Address).
+--
+jgs: it's not at all clear to me that it's formally correct to say an
+SRv6 SID is the same as an IPv6 address; for example, the abstract of
+draft-ietf-6man-sids-05 tells me that "Segment Identifiers (SIDs) used 
+by SRv6 *can resemble* IPv6 addresses and behave like them while 
+exhibiting *slightly different* behaviors in some situations" (my 
+emphasis).
+
+Probably the best fix is just to remove the text inside the parentheses.
+--
    SRv6-capable PCEP speakers MUST be able to generate and/or process
    these subobjects.
 
@@ -304,6 +340,15 @@
    necessary information to guide the packets from the ingress node to
    the egress node of the path, and hence there is no need for any
    signaling protocol.
+--
+jgs: that last clause can't possibly be right as written. SR networks 
+aren't completely devoid of any and all signaling... consider that PCEP 
+itself is a signaling protocol of sorts. While it would be possible to 
+expand and rewrite the clause more precisely to be formally correct, I 
+think the easiest fix is just to delete it, since it's not directly 
+relevant to the subject at hand. (I see this language may have been 
+inherited from RFC 8664; I think it's wrong there too.)
+--
 
    For the use of an IPv6 control plane but an MPLS data plane,
    mechanism remains the same as specified in [RFC8664].
@@ -412,6 +457,10 @@
          SRv6-SID.
 
       -  Unassigned bits MUST be set to 0 and ignored on receipt.
+--
+jgs: I think this should be "set to 0 on transmission and ignored on 
+receipt", right?
+--
 
       A pair of (MSD-Type, MSD-Value): Where MSD-Type (1 octet) is as
       per the IGP MSD Type registry created by [RFC8491] and populated @@ -426,12 +475,29 @@
    to ensure those midpoints are able to correctly process their
    segments and for the tailend to dispose of the SRv6 encapsulation.
    The SRv6 MSD capabilities of these other nodes MAY be learned as part
+--
+jgs: The above RFC 2119 style "MAY" should probably be "may", or better 
+still "might", I don't think you're stating a requirement here (or in 
+this case, since "MAY", a non-requirement). I assume you'd take the 
+position that it's beyond the scope of this specification to say how 
+the capabilities of the other nodes have to be learned.
+--
    of the topology information via IGP/BGP-LS or via PCEP if the PCE
    also happens to have PCEP sessions to those nodes.
+--
+jgs: you need a reference for BGP-LS.
+--
 
    It is RECOMMENDED that the SRv6 MSD information be not included in
    the SRv6-PCE-Capability sub-TLV in deployments where the PCE is able
    to obtain this via IGP/BGP-LS as part of the topology information.
+--
+jgs: By using the RFC 2119 style "RECOMMENDED" you're making this an 
+almost-MUST. Do you intend that? If so, please consider providing 
+guidance as to when the requirement can be disregarded.
+
+But I think probably you mean "recommended".
+--
 
 4.2.  The RP/SRP Object
 
@@ -478,6 +544,12 @@
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
                     Figure 2: SRv6-ERO Subobject Format
+--
+jgs: the fields marked "optional" aren't really completely optional, 
+are they? I'm not aware of a totally standard pattern for this kind of 
+field, but I have seen the term "conditional" used in such a context, 
+or even "conditional, see below".
+--
 
    The fields in the SRv6-ERO subobject are as follows:
 
@@ -511,6 +583,13 @@
    below) then the NT field has no meaning and MUST be ignored by the
    receiver.  This document reuses NT types defined in [RFC8664], but
    assigns them new meanings appropriate to SRv6.
+--
+jgs: I feel very uncomfortable about being told that you're using an 
+existing registry, but assigning different semantics to 
+already-allocated code points. I think the most straightforward fix to 
+this would be to create a new "PCEP SRv6-ERO NAI Types" registry, 
+populated with values 0, 2, 4 and 6, defined however you like.
+--
 
       If NT value is 0, the NAI MUST NOT be included.
 
@@ -531,6 +610,11 @@
       identify the IPv6 Adjacency and used with the SRv6 Adj-SID.
 
       SR-MPLS specific NT types are not valid in SRv6-ERO.
+--
+jgs: if you take my suggestion of creating a new registry, the above 
+line becomes unnecessary. There would be no SR-MPLS specific NT types 
+in your new registry.
+--
 
    Flags: Used to carry additional information pertaining to the
    SRv6-SID.  This document defines the following flag bits.  The other @@ -575,9 +659,23 @@
    is recommended to signal it always if possible.  It could be used for
    maintainability and diagnostic purpose.  If behavior is not known,
    the opaque value '0xFFFF' is used [RFC8986].
+--
+jgs: please be explicit that the behavior values are taken from the 
+registry "SRv6 Endpoint Behaviors".
+
+It sure seems strange to me to choose to use a reserved value called 
+"opaque" to signal "behavior not known" instead of having a registered 
+value called "behavior not known". But, it's probably too late to 
+change this now.
+--
 
    SRv6 SID: SRv6 Identifier is an 128-bit IPv6 address representing the
    SRv6 segment.
+--
+jgs: but is it in fact an address? See my comment with reference to
+draft-ietf-6man-sids-05 earlier on. An easy fix would be to replace
+"IPv6 address" with "value".
+--
 
    NAI: The NAI associated with the SRv6-SID.  The NAI's format depends
    on the value in the NT field, and is described in [RFC8664].
@@ -650,7 +748,7 @@
    validation of SRv6 SIDs being instantiated in the network and checked
    for conformance to the SRv6 SID allocation scheme chosen by the
    operator as described in Section 3.2 of [RFC8986].  In the future,
-   PCE can also be utilized to verify and automate the security of the
+   PCE might also be utilized to verify and automate the security of 
+ the
    SRv6 domain by provisioning filtering rules at the domain boundaries
    as described in Section 5 of [RFC8754].  The details of these
    potential applications are outside the scope of this document.
@@ -811,7 +909,7 @@
 5.2.1.  SRv6 ERO Validation
 
    If a PCC does not support the SRv6 PCE Capability and thus cannot
-   recognize the SRv6-ERO or SRv6-RRO subobjects.  It should respond
+   recognize the SRv6-ERO or SRv6-RRO subobjects, it should respond
    according to the rules for a malformed object as described in
    [RFC5440].
 
@@ -832,6 +930,11 @@
       MUST be 48, otherwise the Length MUST be 64.
 
    *  NT types (1,3, and 5) are not valid for SRv6.
+--
+jgs: If you take my suggestion to set up a separate registry, you won't 
+need the above bullet, because NT types 1, 3, and 5 won't exist in that 
+registry.
+--
 
    *  If T bit is 1, then S bit MUST be zero.
 
@@ -963,10 +1066,15 @@
 7.2.  Information and Data Models
 
    The PCEP YANG module is out of the scope of this document and defined
-   in other drafts.  An augmented YANG module for SRv6 is also specified
-   in another draft that allows for SRv6 capability and MSD
+   in other documents.  An augmented YANG module for SRv6 is also specified
+   in another document that allows for SRv6 capability and MSD
    configurations as well as to monitor the SRv6 paths set in the
    network.
+--
+jgs: please provide informative references to the "other documents" and 
+"another document" (which I've edited from "other drafts" and "another 
+draft").
+--
 
 7.3.  Liveness Detection and Monitoring