[Pce] Review of draft-ietf-pce-segment-routing-policy-cp-15 from SR Policy Arch POV

Ketan Talaulikar <ketant.ietf@gmail.com> Mon, 08 April 2024 11:45 UTC

Return-Path: <ketant.ietf@gmail.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 92AA0C14F6A3; Mon, 8 Apr 2024 04:45:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.097
X-Spam-Level:
X-Spam-Status: No, score=-7.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 TL0woTOJUIS8; Mon, 8 Apr 2024 04:45:32 -0700 (PDT)
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 306FAC14F69C; Mon, 8 Apr 2024 04:45:32 -0700 (PDT)
Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-56e448d6f9cso713619a12.0; Mon, 08 Apr 2024 04:45:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712576730; x=1713181530; darn=ietf.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=05dcFE2EmQhqF2SFPlmQC9WnFH+gnQQKR4b9jqSl+6I=; b=EP6vrisQ2k/Vw7jrVksPucbtBVR8wsDcpqrv3CjFQEq3VCOTQIxYR2XGqKTjT/H6Q1 EOqJ7f+Jyfal9a8iirXnlpWKwOhuN1z1ncpBHHoSBgAdcYkgAvIJALkRDh5zWxV+gKkW LgrFjCanc+gdWKi1qc1Qt1b0EV3lv5aRdIYuXnhGe0n2+h8ORwVGshGeh03zxNjgnYvy j+quHxtInddCulEcYEjrPah59q8BwGQv1mUuSw28ATcmhzRnJhQzQSYYNl3fbUjX7dP9 37rXiY+yeHw/RKgwfyScVsgVh9C9wgK3UrNp63EQOsTpNHBGwhXBj75PzxnL+v0uCUN8 H07w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712576730; x=1713181530; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=05dcFE2EmQhqF2SFPlmQC9WnFH+gnQQKR4b9jqSl+6I=; b=XdvCZkIQ9qL3jokSelbEguPyh8tfritysBJGLejoMyhQWQtfDDkYFQQb1N2OfwHuOc 1msH4Rn6c9rgcUlnublSCDDLgFB8IAX8FGNGwcun1En3N9o8Xrs5jNEZuv5RSdPYrCBF QRAFJXhOcl/yXF+oO+nKwlm82vJ9hSRb49N8vEtpVhLZbA45o8ysyDn8/wX5YKDWvQPS v9/itYCzub+FdQNpumqOU3qMMsL88eXs9sBeCA57rW5nH/YgH30dpErFLE3iKZyAfH+N WLx1hepPqD2gtitYuvwrTN96OiE7RTVUEaQbnktAM+yR+zl6vQXAFCS22EOqndbvPEHX 4Wlg==
X-Forwarded-Encrypted: i=1; AJvYcCVQXz7PPv3d8hlWvdmpDK/Y0mXhGSfGNL+3Ay53I3Ei3W8kPv38Of2gNmHe9tnGft1XMmoz88INxNs9jXk66bj/sBAxxk+pKxRPNfIpNnNzFjBxt/6qa2wzGq4WuFoIVcHf
X-Gm-Message-State: AOJu0YxNS3pARLXVL47Qyi0E4Q0K6n94nuZuteLJfK9su6QzC/f4bOP4 XvI9pCF0FhexMihPJ3MHAdsxFOh7LL6P7npGvMPm8nhnFiLlsfqQvUg3wcrM6+WUhMJVm9TWHui SKcgrA5ku0IfeYklj3ss2QUmtPhw1DtyY4lM=
X-Google-Smtp-Source: AGHT+IEQ1UNUU/fiR6tHBkY8rKpfr6NnOJmrLbygpkoiyR76suIJWIS49lWvFhsm8NJiIcdOI3tkWeXHPYaWbNARCuA=
X-Received: by 2002:a17:907:7293:b0:a51:aebf:7e4c with SMTP id dt19-20020a170907729300b00a51aebf7e4cmr6069050ejc.9.1712576729861; Mon, 08 Apr 2024 04:45:29 -0700 (PDT)
MIME-Version: 1.0
From: Ketan Talaulikar <ketant.ietf@gmail.com>
Date: Mon, 08 Apr 2024 17:15:18 +0530
Message-ID: <CAH6gdPy_uh-ZdomgDmD83=gmBq_0OvA=H8_yXgzMtrZNbsySSQ@mail.gmail.com>
To: pce@ietf.org, draft-ietf-pce-segment-routing-policy-cp@ietf.org
Content-Type: multipart/alternative; boundary="000000000000a2589c06159457bb"
Archived-At: <https://mailarchive.ietf.org/arch/msg/pce/xExbrHXRsC66fGUdy5wtvQlbXc4>
Subject: [Pce] Review of draft-ietf-pce-segment-routing-policy-cp-15 from SR Policy Arch POV
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: Mon, 08 Apr 2024 11:45:34 -0000

Hello Authors/All,

I've reviewed the draft from the perspective of consistency with the SR
Policy Arch RFC9256 as well as the BGP SR Policy SAFI IDR draft. As such, I
find some issues that I think need to be addressed before publication.

Note that these may seem editorial (no change needed in PCEP signaling),
but they are semantically important for this document to convey the intent
and operations for these extensions.

My comments are embedded in the idnits format below.

Thanks,
Ketan


13 Path Computation Element Communication Protocol (PCEP) Extensions for
14              Segment Routing (SR) Policy Candidate Paths

*[major] A more appropriate title would be "PCEP Extensions for SR Policy" *
*since this is not just about CPs but support for SR Policy construct.*

15              draft-ietf-pce-segment-routing-policy-cp-15

17 Abstract

19   Segment Routing (SR) allows a node to steer a packet flow along any
20   path.  SR Policy is an ordered list of segments (i.e., instructions)
21   that represent a source-routed policy.  Packet flows are steered into
22   an SR Policy on a node where it is instantiated called a headend
23   node.  An SR Policy is made of one or more candidate paths.

25   This document specifies Path Computation Element Communication
26   Protocol (PCEP) extension to associate candidate paths of the SR
27   Policy.  Additionally, this document updates [RFC8231] to allow
28   stateful bringup of an SR LSP, without using PCReq/PCRep messages.
29   This document is applicable to both Segment Routing over MPLS and to
30   Segment Routing over IPv6 (SRv6).



*[major] This document has the specifications that actually align the
PCEPextensions (e.g. RFC8664) for SR defined prior to this document to the *
*SR Policy architecture RFC9256. This should be the most important thing to
call out and that this spec formally updates RFC8664 and *
*RFC-draft-ietf-pce-segment-routing-ipv6.*

112 1.  Introduction

114   [RFC8664] specifies extensions that allow PCEP to work with basic SR-
115   TE paths.  [RFC8697] introduces a generic mechanism to create a
116   grouping of LSPs, called an Association.  [RFC9256] introduces the SR
117   Policy construct as a grouping of SR Candidate Paths.

119   This document extends [RFC8664] to support signaling SR Policy
120   Candidate Paths and their attributes.  SR Policy is modeled in PCEP
121   as an Association, where the SR Candidate Paths are the members of
122   that Association.  Thus the PCE can take computation and control
123   decisions about the Candidate Paths, with the additional knowledge
124   that these Candidate Paths belong to the same SR Policy.





*[major] What RFC8664 did was to introduce a term called "SR Path" and
itssupport in PCEP. That term is not specified in RFC8402 and does match to
SRPolicy. So be it. It is important for the introduction to provide some
contextaround this and specify that it is this document that is introducing
thesupport for SR Policy construct in PCEP.*

126   Segment Routing Policy for Traffic Engineering [RFC9256] details the
127   concepts of SR Policy and approaches to steering traffic into an SR
128   Policy.

130   PCEP Extensions for Segment Routing [RFC8664] specifies extensions to
131   the Path Computation Element Protocol (PCEP) that allow a stateful
132   PCE to compute and initiate Traffic Engineering (TE) paths, as well
133   as a PCC to request a path subject to certain constraint(s) and
134   optimization criteria in SR networks.

136   PCEP Extensions for Establishing Relationships Between Sets of LSPs
137   [RFC8697] introduces a generic mechanism to create a grouping of LSPs
138   which can then be used to define associations between a set of LSPs
139   and a set of attributes (such as configuration parameters or
140   behaviors) and is equally applicable to stateful PCE (active and
141   passive modes) and stateless PCE.



*[major] It may be somewhat misleading to give an impression that
thepurpose for introducing the SRPA is "to create a grouping of LSPs". *


*For sure, the SRPA enables the  grouping of CPs associated with a single
SR Policy. However, SRPA is  absolutely necessary even when signaling a
single SR Policy CP as it is  indicating the Color of the SR Policy and
the identifiers of the SR Policy CP  **as per RFC9256.*

143   This document extends [RFC8664] to support signaling SR Policy
144   Candidate Paths and their attributes.  SR Policy is modeled in PCEP
145   as an Association, where the SR Candidate Paths are the members of
146   that Association.  Thus the PCE can take computation and control
147   decisions about the Candidate Paths, with the additional knowledge
148   that these Candidate Paths belong to the same SR Policy.  This is





*[minor] Not sure what this "additional knowledge" serves as the purpose
forthe PCE. Can someone please give an example? My concern here is that the
keysemantics on why the extensions in the spec are absolutely critical for
SRPolicy are being missed out for things that are of perhaps secondary
ortertiary importance.*

149   accomplished via the use of the PCEP Association object with a new
150   association type and several new TLVs.

152 2.  Terminology

154   The following terminologies are used in this document:



*[minor] suggest to introduce here all the SR Policy CP identifiers with
areference to specific sections of RFC9256. Just a reference to RFC9256
hasbeen found to be difficult for readers for other documents. This is done*
*later in the document for some sections so consistency would be good.*


156   Endpoint:  The IPv4 or IPv6 endpoint address of the SR Policy in
157      question, as described in [RFC9256].

159   SRPA:  SR Policy Association.  A new association type 'SR Policy
160      Association' is used to group candidate paths belonging to the SR
161      Policy.  Depending on discussion context, it can refer to the PCEP
162      ASSOCIATION object of SR Policy type or to a group of LSPs that
163      belong to the association.

165   Association Parameters:  As described in [RFC8697], refers to the key
166      data, that uniquely identifies the Association.

168   Association Information:  As described in [RFC8697], refers to the
169      non-key information about the Association.

171 3.  Overview












*[major] What we are missing here is some text about the motivation for
whythese extensions are a MUST have for SR Policy signaling via PCEP. I
will try tosummarize:a) To align with SR Policy construct per RFC9256b) To
ensure that the headend is able to "associated" a SR Policy CP signaledvia
PCEP with other CPs of the same SR Policy from other sources - e.g.,locally
configured or via BGP.c) To indicate the intent of the SR Policy via
"color" that can then be usedon the headend for steering BGP service routes
over the SR Policy provisionedvia PCEP (PCE initiated).None of these were
possible without this extension for certain deploymentdesigns - especially
PCE initiated.*

173   The SR Policy is represented by a new type of PCEP Association,
174   called the SR Policy Association (SRPA).  The SR Candidate Paths of
175   an SR Policy are the PCEP LSPs within the same SRPA.  The subject of
176   encoding multiple Segment Lists within an SR Policy Candidate Path is
177   described in [I-D.ietf-pce-multipath].

179   The SRPA carries three pieces of information: SR Policy Identifier,
180   SR Policy Candidate Path Identifier, and SR Policy Candidate Path
181   Attribute(s).

183   This document also specifies some additional information that is not
184   encoded as part of SRPA: Computation Priority, Explicit Null Label
185   Policy, Drop-upon-invalid behavior, and Specified-BSID-only.

187 3.1.  SR Policy Identifier

189   SR Policy Identifier uniquely identifies the SR Policy [RFC9256]
190   within the network.  SR Policy Identifier MUST be the same for all SR
191   Policy Candidate Paths in the same SRPA.  SR Policy Identifier MUST
192   NOT change for a given SR Policy Candidate Path during its lifetime.
193   SR Policy Identifier MUST be different for different SRPAs.  When
194   these rules are not satisfied, the PCEP speaker MUST send a PCErr
195   message with Error-Type = 26 "Association Error", Error Value = 20
196   "SR Policy Identifier Mismatch".  SR Policy Identifier consist of:

198   *  Headend router where the SR Policy originates.

200   *  Color of SR Policy.

202   *  Endpoint of SR Policy.


*[minor] It would be helpful to give specific section references in RFC9256
forthe above.*

204 3.2.  SR Policy Candidate Path Identifier

206   SR Policy Candidate Path Identifier uniquely identifies the SR Policy
207   Candidate Path within the context of an SR Policy.  SR Policy
208   Candidate Path Identifier MUST NOT change for a given LSP during its
209   lifetime.  SR Policy Candidate Path Identifier MUST be different for
210   distinct Candidate Paths within the same SRPA.  When these rules are
211   not satisfied, the PCEP speaker MUST send a PCErr message with Error-
212   Type = 26 "Association Error", Error Value = 21 "SR Policy Candidate
213   Path Identifier Mismatch".  SR Policy Candidate Path Identifier
214   consist of:




*[major] The document should mention the purpose of these parameters (as
alsothe preference in sec 3.3 below) for the tiebreaking at the headend
byreference to the RFC9256 section 2.9.*
216   *  Protocol Origin.

218   *  Originator.

220   *  Discriminator.



*[minor] Same as the previous comment - please provide references to
sections inRFC9256.*
222 3.3.  SR Policy Candidate Path Attributes

224   SR Policy Candidate Path Attributes carry non-key information about
225   the Candidate Path and MAY change during the lifetime of the LSP.  SR
226   Policy Candidate Path Attributes consist of:

228   *  Preference.

*[minor] Preference is also optional - perhaps remove "Optionally" from the*
*2 below?*

230   *  Optionally, the SR Policy Candidate Path name.

232   *  Optionally, the SR Policy name.

264 4.1.  Association Parameters

266   As per [RFC9256], an SR Policy is identified through the tuple
267   <headend, color, endpoint>.  The headend is encoded in the
268   'Association Source' field in the ASSOCIATION object and the color
269   and endpoint are encoded as part of the Extended Association ID TLV.

271   The Association Parameters (see Section 2) consist of:

273   *  Association Type: set to 6 "SR Policy Association".

275   *  Association Source (IPv4/IPv6): set to the headend IP address.

277   *  Association ID (16-bit): set to "1" (this 16-bit field is not
278      utilized, just set to a fixed value).

280   *  Extended Association ID TLV: encodes the Color and Endpoint of the
281      SR Policy.


*[minor] The above is repeated below but using normative text. Is the
abovereally necessary? Could they be combined?*

283   The Association Source MUST be set to the headend value of the SR
284   Policy, as defined in [RFC9256] Section 2.1.

286   The 16-bit Association ID field in the ASSOCIATION object MUST be set
287   to the value of "1".

289   The Extended Association ID TLV MUST be included and it MUST be in
290   the following format:

292       0                   1                   2                   3
293       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
294      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
295      |           Type = 31           |       Length = 8 or 20        |
296      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
297      |                             Color                             |
298      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
299      ~                           Endpoint                            ~
300      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

302                Figure 1: Extended Association ID TLV format

304   Type: Extended Association ID TLV, type = 31 [RFC8697].

306   Length: Either 8 or 20, depending on whether IPv4 or IPv6 address is
307   encoded in the Endpoint field.

309   Color: SR Policy color value, non-zero as per [RFC9256] Section 2.1.

311   Endpoint: can be either IPv4 or IPv6.  This value MAY be different
312   from the one contained in the Destination address field in the END-
313   POINTS object, or in the Tunnel Endpoint Address field in the LSP-
314   IDENTIFIERS TLV.

316   If the PCEP speaker receives an SRPA object whose Association
317   Parameters do not follow the above specification, then the PCEP
318   speaker MUST send PCErr message with Error-Type = 26 "Association
319   Error", Error-Value = 20 "SR Policy Identifier Mismatch".

321   The purpose of choosing the Association Parameters in this way is to
322   guarantee that there is no possibility of a race condition when
323   multiple PCEP speakers want to associate the same SR Policy at the
324   same time.  By adhering to this format, all PCEP speakers come up
325   with the same Association Parameters independently of each other
326   based on the SR Policy [RFC9256] parameters.  Thus, there is no
327   chance that different PCEP speakers will come up with different
328   Association Parameters for the same SR Policy.

330   The last hop of the computed SR Policy Candidate Path MAY differ from
331   the Endpoint contained in the <headend, color, endpoint> tuple.  An
332   example use case is to terminate the SR Policy before reaching the
333   Endpoint and have decapsulated traffic go the rest of the way to the
334   Endpoint node using the native IGP path(s).  In this example, the
335   destination of the SR Policy Candidate Paths will be some node before
336   the Endpoint, but the Endpoint value is still used at the head-end to
337   steer traffic with that Endpoint IP into the SR Policy.  Destination
338   of the SR Policy Candidate Path is signaled using the END-POINTS
339   object and/or LSP-IDENTIFIERS TLV, as per the usual PCEP procedures.
340   When neither END-POINTS object nor LSP-IDENTIFIERS TLV is present,
341   the PCEP speaker MUST extract the destination from the Endpoint field
342   in the SRPA Extended Association ID TLV.

*[major] What about the null endpoint support?*


394 4.2.2.  SR Policy Candidate Path Identifier TLV

396   The SRPOLICY-CPATH-ID TLV is a mandatory TLV for the SRPA object.

398       0                   1                   2                   3
399       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
400      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
401      |             Type              |             Length            |
402      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
403      | Proto. Origin |                      MBZ                      |
404      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
405      |                         Originator ASN                        |
406      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
407      |                                                               |
408      |                       Originator Address                      |
409      |                                                               |
410      |                                                               |
411      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
412      |                         Discriminator                         |
413      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

415                 Figure 3: The SRPOLICY-CPATH-ID TLV format

417   Type: 57 for "SRPOLICY-CPATH-ID" TLV.

419   Length: 28.

421   Protocol Origin: 8-bit value that encodes the protocol origin, as
422   specified in Section 6.5.  Note that in PCInitiate message [RFC8281],
423   the Protocol Origin is always set to 10 (PCEP).

425   MBZ: Must be zero.

427   Originator ASN: Represented as 4-byte number, part of the originator
428   identifier, as specified in [RFC9256] Section 2.4.  If 2-byte ASNs
429   are in use, the low-order 16 bits is used, and the high-order bits
430   are set to 0.  When sending PCInitiate message [RFC8281], the PCE is
431   acting as the originator and therefore MUST set this to an ASN that
432   it belongs to.



*[major] This is an unnecessary restriction on PCEP which does not use
ASN.RFC9256 section 2.4 allows the value of 0 to be used by PCEP when ASN
is notavailable/known.*

434   Originator Address: Represented as 128-bit value where IPv4 address
435   is encoded in lowest 32 bits and high-order bits are set to 0, part
436   of the originator identifier, as specified in [RFC9256] Section 2.4.
437   When sending PCInitiate message, the PCE is acting as the originator
438   and therefore MUST set this to an address that it owns.

440   Discriminator: 32-bit value that encodes the Discriminator of the
441   Candidate Path, as specified in [RFC9256] Section 2.5.  This is the
442   field that mainly distinguishes different SR Candidate Paths, coming
443   from the same originator.  It is allowed to be any number in the
444   32-bit range.


506 5.1.  SR Policy Capability TLV

508   The SRPOLICY-CAPABILITY TLV is an optional TLV for the OPEN object.
509   It is used at session establishment time to learn the other PCEP
510   peer's capabilities with respect to SR Policy.

*[major] I would have preferred if this draft had some text that strongly*
*RECOMMENDS implementations that support SR to support specific aspects *
*in this document (e.g., this capability, SRPA, etc. - the minimal set) *
*to confirm and align **with the SR Policy architecture. This guidance is*
*important for smooth **interop. Most things are "optional" per PCEP, but*
*what is mandatory for alignment with SR Policy Architecture is not clear.*

512       0                   1                   2                   3
513       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
514      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
515      |             Type              |             Length            |
516      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
517      |                             Flags                   |L|S|I|E|P|
518      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

520                Figure 6: The SRPOLICY-CAPABILITY TLV format

522   Type: 71 for "SRPOLICY-CAPABILITY TLV.

524   Length: 4.

526   P-flag: If set to '1' by a PCEP speaker, the P flag indicates that
527   the PCEP speaker supports the handling of COMPUTATION-PRIORITY TLV
528   for the SR Policy, see Section 5.2.  If this flag is not set, then
529   the PCEP speaker MUST NOT send the COMPUTATION-PRIORITY TLV and
530   SHOULD ignore it on receipt.

532   E-Flag: If set to '1' by a PCEP speaker, the E flag indicates that
533   the PCEP speaker supports the handling of ENLP TLV for the SR Policy,
534   see Section 5.3.  If this flag is not set, then the PCEP speaker MUST
535   NOT send the ENLP TLV and SHOULD ignore it on receipt.

537   I-Flag: If set to '1' by a PCEP speaker, the I flag indicates that
538   the PCEP speaker supports the handling of INVALIDATION TLV for the SR
539   Policy, see Section 5.4.  If this flag is not set, then the PCEP
540   speaker MUST NOT send the INVALIDATION TLV and SHOULD ignore it on
541   receipt.

543   S-Flag: If set to '1' by a PCEP speaker, the S flag indicates that
544   the PCEP speaker supports the handling of "Specified-BSID-only"
545   behavior for the SR Policy, see Section 5.5.  If this flag is not
546   set, then the PCEP speaker MUST NOT set the Specified-BSID-only flag
547   in the TE-PATH-BINDING TLV and SHOULD ignore it on receipt.

549   L-Flag: If set to '1' by a PCEP speaker, the L flag indicates that
550   the PCEP speaker supports the stateless (PCReq/PCRep) operations for
551   the SR Policy, see Section 5.6.  If the PCE did not set this flag
552   then the PCC SHOULD NOT send PCReq messages to this PCE for the SR
553   Policy.

555   Unassigned bits MUST be set to '0' on transmission and MUST be
556   ignored on receipt.


622 5.4.  Invalidation TLV

624   The INVALIDATION TLV is an optional TLV for the LSP object.  It is
625   used to control traffic steering into the LSP during the time when
626   the LSP is operationally down/invalid.  In the context of SR Policy,
627   this TLV facilitates the Drop-upon-invalid behavior, specified in
628   Section 8.2 of [RFC9256].  Normally, if the LSP is down/invalid then
629   it stops attracting traffic and traffic that would have been destined
630   to that LSP is redirected somewhere else, such as via IGP or via
631   another LSP.  The Drop-upon-invalid behavior specifies that the LSP
632   keeps attracting traffic and the traffic has to be dropped at the
633   head-end.  Such an LSP is said to be "in drop state".  While in the
634   drop state, the LSP operational state is "UP", as indicated by the
635   O-flag in the LSP object.  However the ERO object MAY be empty, if no
636   valid path has been computed.

638   The INVALIDATION TLV is used in both directions between PCEP peers:

640   *  PCE -> PCC: PCE specifies to the PCC whether to enable or disable
641      Drop-upon-invalid (Config).

643   *  PCC -> PCE: PCC reports the current setting of the Drop-upon-
644      invalid (Config) and also whether the LSP is currently in the drop
645      state (Oper).

647       0                   1                   2                   3
648       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
649      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
650      |             Type              |             Length            |
651      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
652      |   Oper        |   Config      |              MBZ              |
653      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
654                   Figure 9: The INVALIDATION TLV format

656   Type: 70 for "INVALIDATION" TLV.

658   Length: 4.

660   Oper: encodes the current state of the LSP, i.e., whether it is
661   actively dropping traffic right now.  This field can be set to non-
662   zero values only by the PCC, it MUST be set to 0 by the PCE and
663   SHOULD be ignored by the PCC.

665                               0 1 2 3 4 5 6 7
666                              +-+-+-+-+-+-+-+-+
667                              |             |D|
668                              +-+-+-+-+-+-+-+-+

670             Figure 10: Oper state of Drop-upon-invalid feature

672   *  D: dropping - the LSP is currently attracting traffic and actively
673      dropping it.

675   *  The unassigned bits in the Flag octet MUST be set to zero upon
676      transmission and MUST be ignored upon receipt.

678   Config: encodes the current setting of the Drop-upon-invalid feature.

680                               0 1 2 3 4 5 6 7
681                              +-+-+-+-+-+-+-+-+
682                              |             |D|
683                              +-+-+-+-+-+-+-+-+

685            Figure 11: Config state of Drop-upon-invalid feature

687   *  D: drop enabled - the Candidate Path has Drop-upon-invalid feature
688      enabled.

690   *  The unassigned bits in the Flag octet MUST be set to zero upon
691      transmission and MUST be ignored upon receipt.



*[major] Was there a specific reason to specify this as a boolean instead
ofbits/flags?*

833 6.5.  SR Policy Candidate Path Protocol Origin field

835   This document requests IANA to maintain a new registry under "Segment
836   Routing" registry group.  New values are to be assigned by "Standards
837   Action" [RFC8126].  The new subregistry is requested to be created
838   under it be called "SR Policy Protocol Origin".  The subregistry
839   contains the following codepoints, with initial values, to be
840   assigned by IANA with the reference set to this document:



*[major] As shared on a separate email thread, the IANA section needs to
bealigned with draft-ietf-idr-sr-policy-safi*
842   +------------+------------------------------------------------------+
843   | Value        | Description                                        |
844   +--------------+----------------------------------------------------+
845   | 0            | Reserved (not to be used)                          |
846   +--------------+----------------------------------------------------+
847   | 1-9          | Unassigned                                         |
848   +--------------+----------------------------------------------------+
849   | 10           | PCEP                                               |
850   +--------------+----------------------------------------------------+
851   | 11-19        | Unassigned                                         |
852   +--------------+----------------------------------------------------+
853   | 20           | BGP SR Policy                                      |
854   +--------------+----------------------------------------------------+
855   | 21-29        | Unassigned                                         |
856   +--------------+----------------------------------------------------+
857   | 30           | Configuration (CLI, YANG model via NETCONF, etc.)  |
858   +--------------+----------------------------------------------------+
859   | 31-250       | Unassigned                                         |
860   +--------------+----------------------------------------------------+
861   | 251 - 255    | Private Use (not to be assigned by IANA)           |
862   +--------------+----------------------------------------------------+

864 6.6.  SR Policy Explicit Null Label Policy field

866   This document requests IANA to maintain a new registry under "Segment
867   Routing" registry group.  New values are to be assigned by "Standards
868   Action" [RFC8126].  The new subregistry is requested to be created
869   under it be called "SR Policy Explicit Null Label Policy".  The
870   subregistry contains the following codepoints, with initial values,
871   to be assigned by IANA with the reference set to this document:

*[major] Even this IANA allocation needs alignment with the *
*draft-ietf-idr-sr-policy-safi - the action is though on the IDR draft*

*authors (I will take that AI as co-author of that document).*
873   +----------+--------------------------------------------------------+
874   | Value    | Description                                            |
875   +----------+--------------------------------------------------------+
876   | 0        | Reserved (not to be used).                             |
877   +----------+--------------------------------------------------------+
878   | 1        | Push an IPv4 Explicit NULL label on an unlabeled IPv4  |
879   |          | packet, but do not push an IPv6 Explicit NULL label on |
880   |          | an unlabeled IPv6 packet.                              |
881   +----------+--------------------------------------------------------+
882   | 2        | Push an IPv6 Explicit NULL label on an unlabeled IPv6  |
883   |          | packet, but do not push an IPv4 Explicit NULL label on |
884   |          | an unlabeled IPv4 packet.                              |
885   +----------+--------------------------------------------------------+
886   | 3        | Push an IPv4 Explicit NULL label on an unlabeled IPv4  |
887   |          | packet, and push an IPv6 Explicit NULL label on an     |
888   |          | unlabeled IPv6 packet.                                 |
889   +----------+--------------------------------------------------------+
890   | 4        | Do not push an Explicit NULL label.                    |
891   +----------+--------------------------------------------------------+
892   | 5 - 255  | Reserved.                                              |
893   +----------+--------------------------------------------------------+

< end of review >