rfc9933v1.txt   rfc9933.txt 
skipping to change at line 122 skipping to change at line 122
[RFC5440] describes the Path Computation Element Communication [RFC5440] describes the Path Computation Element Communication
Protocol (PCEP) for communication between a Path Computation Client Protocol (PCEP) for communication between a Path Computation Client
(PCC) and a Path Computation Element (PCE) or between a pair of PCEs. (PCC) and a Path Computation Element (PCE) or between a pair of PCEs.
[RFC8664] and [RFC9603] specify PCEP extensions to support Segment [RFC8664] and [RFC9603] specify PCEP extensions to support Segment
Routing (SR) over MPLS and IPv6 data planes, respectively. Routing (SR) over MPLS and IPv6 data planes, respectively.
This document specifies extensions to PCEP to enhance support for SR This document specifies extensions to PCEP to enhance support for SR
Traffic Engineering (TE). Specifically, it focuses on the use of Traffic Engineering (TE). Specifically, it focuses on the use of
Segment Identifiers (SIDs) and SR-Algorithms. An SR-Algorithm Segment Identifiers (SIDs) and SR-Algorithms. An SR-Algorithm
associated with a SID defines the path computation algorithm used by associated with a SID defines the path computation algorithm used by
Interior Gateway Protocols (IGPs). IGPs.
The PCEP extensions specified in this document are as follows: The PCEP extensions specified in this document are as follows:
Signaling SR-Algorithm in ERO and RRO: Mechanisms are introduced for Signaling SR-Algorithm in ERO and RRO: Mechanisms are introduced for
PCEP peers to exchange information about the SR-Algorithm PCEP peers to exchange information about the SR-Algorithm
associated with each SID. This includes extending SR-ERO, SR-RRO, associated with each SID. This includes extending SR-ERO, SR-RRO,
SRv6-ERO, and SRv6-RRO subobjects to carry an Algorithm field. SRv6-ERO, and SRv6-RRO subobjects to carry an Algorithm field.
This document updates [RFC8664] and [RFC9603] to enable such This document updates [RFC8664] and [RFC9603] to enable such
encoding. encoding.
SR-Algorithm Constraint for Path Computation: Mechanisms are defined SR-Algorithm Constraint for Path Computation: Mechanisms are defined
for signaling a specific SR-Algorithm as a constraint to the PCE for signaling a specific SR-Algorithm as a constraint to the PCE
for path computation. This includes a new SR-Algorithm TLV for path computation. This includes a new SR-Algorithm TLV
carried in the Label Switched Path Attributes (LSPA) Object. carried in the Label Switched Path Attributes (LSPA) object.
Extensions to METRIC Object: Several new metric types are introduced Extensions to METRIC object: Several new metric types are introduced
for the METRIC Object to support optimization metrics derived from for the METRIC object to support optimization metrics derived from
Flexible Algorithm Definitions (FADs) during Flexible Algorithm Flexible Algorithm Definitions (FADs) during Flexible Algorithm
path computation; their application is not restricted to Flexible path computation; their application is not restricted to Flexible
Algorithms, and they may be used with Label Switched Paths (LSPs) Algorithms, and they may be used with Label Switched Paths (LSPs)
set up using different Path Setup Types. set up using different Path Setup Types (PSTs).
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2. Terminology 2. Terminology
skipping to change at line 177 skipping to change at line 177
This document uses the following terms defined in [RFC8664]: Node or This document uses the following terms defined in [RFC8664]: Node or
Adjacency Identifier (NAI) and Segment Routing Database (SR-DB). Adjacency Identifier (NAI) and Segment Routing Database (SR-DB).
This document uses the following terms defined in [RFC9350]: Flexible This document uses the following terms defined in [RFC9350]: Flexible
Algorithm Definition (FAD) and winning FAD. Algorithm Definition (FAD) and winning FAD.
Note that the base PCEP specification [RFC4655] originally defined Note that the base PCEP specification [RFC4655] originally defined
the use of the PCE architecture for MPLS and GMPLS networks with LSPs the use of the PCE architecture for MPLS and GMPLS networks with LSPs
instantiated using the RSVP-TE signaling protocol. Over time, instantiated using the RSVP-TE signaling protocol. Over time,
support for additional Path Setup Types, such as SRv6, has been support for additional PSTs, such as SRv6, has been introduced
introduced [RFC9603]. The term "LSP" is used extensively in PCEP [RFC9603]. The term "LSP" is used extensively in PCEP specifications
specifications and, in the context of this document, refers to a and, in the context of this document, refers to a Candidate Path
Candidate Path within an SR Policy, which may be an SRv6 path (still within an SR Policy, which may be an SRv6 path (still represented
represented using the LSP Object as specified in [RFC8231]). using the LSP object as specified in [RFC8231]).
The term "extension block" is used in this document to identify the The term "extension block" is used in this document to identify the
additional bytes appended to a PCEP Object, which may exist depending additional bytes appended to a PCEP object, which may exist depending
on the inclusion of a flag in that object on the inclusion of a flag in that object
The following terminologies are used in this document: The following terminologies are used in this document:
P2MP: Point-to-Multipoint P2MP: Point-to-Multipoint
Subobject Extension Block: Optional, variable-length extension block Subobject Extension Block: Optional, variable-length extension block
for SR-ERO and SR-RRO subobjects defined in Section 4.2.1 of this for SR-ERO and SR-RRO subobjects defined in Section 4.2.1 of this
document. document.
skipping to change at line 212 skipping to change at line 212
negotiate SR-Algorithm capabilities and constraints. This limits the negotiate SR-Algorithm capabilities and constraints. This limits the
ability of PCEs to make informed path computation decisions based on ability of PCEs to make informed path computation decisions based on
the specific SR-Algorithms supported and desired within the network. the specific SR-Algorithms supported and desired within the network.
The absence of an explicit SR-Algorithm specification in PCEP The absence of an explicit SR-Algorithm specification in PCEP
messages implied no specific constraint on the SR-Algorithm to be messages implied no specific constraint on the SR-Algorithm to be
used for path computation, effectively allowing the use of SIDs with used for path computation, effectively allowing the use of SIDs with
any SR-Algorithm. any SR-Algorithm.
A primary motivation for these extensions is to enable the PCE to A primary motivation for these extensions is to enable the PCE to
leverage the path computation logic and topological information leverage the path computation logic and topological information
derived from Interior Gateway Protocols (IGPs), including Flexible derived from IGPs, including Flexible Algorithms. Aligning PCE path
Algorithms. Aligning PCE path computation with these IGP algorithms computation with these IGP algorithms enables network operators to
enables network operators to obtain paths that are congruent with the obtain paths that are congruent with the underlying routing behavior,
underlying routing behavior, which can result in segment lists with a which can result in segment lists with a reduced number of SIDs. The
reduced number of SIDs. The support for SR-Algorithm constraints in support for SR-Algorithm constraints in PCE path computation
PCE path computation simplifies the deployment and management of simplifies the deployment and management of Flexible Algorithm paths
Flexible Algorithm paths in multi-domain network scenarios. in multi-domain network scenarios.
The PCE and the PCC may independently compute SR-TE paths with The PCE and the PCC may independently compute SR-TE paths with
different SR-Algorithms. This information needs to be exchanged different SR-Algorithms. This information needs to be exchanged
between PCEP peers for purposes such as network monitoring and between PCEP peers for purposes such as network monitoring and
troubleshooting. In scenarios involving multiple PCEs, when a PCC troubleshooting. In scenarios involving multiple PCEs, when a PCC
receives a path from the primary PCE, it needs to be able to report receives a path from the primary PCE, it needs to be able to report
the complete path information, including the SR-Algorithm, to a the complete path information, including the SR-Algorithm, to a
backup PCE. This is essential for high availability (HA) scenarios, backup PCE. This is essential for high availability (HA) scenarios,
ensuring that the backup PCE can correctly verify Prefix SIDs. ensuring that the backup PCE can correctly verify Prefix SIDs.
skipping to change at line 247 skipping to change at line 247
* SID types without algorithm specified - Certain SID types, such as * SID types without algorithm specified - Certain SID types, such as
Binding SIDs (BSIDs) [RFC8402], may not have an SR-Algorithm Binding SIDs (BSIDs) [RFC8402], may not have an SR-Algorithm
specified. It may be inaccurate to state that an entire end-to- specified. It may be inaccurate to state that an entire end-to-
end path adheres to a specific algorithm if it includes a BSID end path adheres to a specific algorithm if it includes a BSID
from another policy. Note: In SRv6, the BSID can be allocated from another policy. Note: In SRv6, the BSID can be allocated
from an algorithm-specific SRv6 Locator, which will result in the from an algorithm-specific SRv6 Locator, which will result in the
path to that BSID PCC node following that algorithm-specific path. path to that BSID PCC node following that algorithm-specific path.
However, the implicit algorithm of BSID is independent of the SR- However, the implicit algorithm of BSID is independent of the SR-
Algorithm used for the SR Policy associated with that BSID. Algorithm used for the SR Policy associated with that BSID.
* Topologies with two Interior Gateway Protocol (IGP) domains, each * Topologies with two IGP domains, each using the same FAD but with
using the same FAD but with differing algorithm numbers. differing algorithm numbers.
4. Object Formats 4. Object Formats
4.1. OPEN Object 4.1. OPEN Object
4.1.1. SR PCE Capability Sub-TLV 4.1.1. SR PCE Capability Sub-TLV
The SR-PCE-CAPABILITY sub-TLV is defined in Section 4.1.2 of The SR-PCE-CAPABILITY sub-TLV is defined in Section 4.1.2 of
[RFC8664] to be included in the PATH-SETUP-TYPE-CAPABILITY TLV. [RFC8664] to be included in the PATH-SETUP-TYPE-CAPABILITY TLV.
This document defines the following flag in the SR-PCE-CAPABILITY This document defines the following flag in the SR-PCE-CAPABILITY
Sub-TLV Flags field: Sub-TLV Flags field:
S (SR-Algorithm Capability) - bit 5: If the S flag is set to 1, a S (SR-Algorithm Capability) - bit 5: If the S flag is set to 1, a
PCEP speaker indicates support for the Algorithm field and the PCEP speaker indicates support for the Algorithm field and the
Subobject Extension Block in the SR-ERO subobject described in Subobject Extension Block in the SR-ERO subobject described in
Section 4.2 and the SR-Algorithm TLV described in Section 4.4 for Section 4.2 and the SR-Algorithm TLV described in Section 4.4 for
LSPs set up using Path Setup Type 1 (Segment Routing) [RFC8664]. LSPs set up using PST 1 (Segment Routing) [RFC8664]. It does not
It does not indicate support for these extensions for other Path indicate support for these extensions for other PSTs. If the S
Setup Types. If the S flag is set to 0, behavior reverts to the flag is set to 0, behavior reverts to the procedures defined in
procedures defined in existing specifications prior to the existing specifications prior to the introduction of this
introduction of this extension. extension.
4.1.2. SRv6 PCE Capability Sub-TLV 4.1.2. SRv6 PCE Capability Sub-TLV
The SRv6-PCE-CAPABILITY sub-TLV is defined in Section 4.1.1 of The SRv6-PCE-CAPABILITY sub-TLV is defined in Section 4.1.1 of
[RFC9603] to be included in the PATH-SETUP-TYPE-CAPABILITY TLV. [RFC9603] to be included in the PATH-SETUP-TYPE-CAPABILITY TLV.
This document defines the following flag in the SRv6-PCE-CAPABILITY This document defines the following flag in the SRv6-PCE-CAPABILITY
Sub-TLV Flags field: Sub-TLV Flags field:
SR-Algorithm Capability (S) - bit 13: If the S flag is set to 1, a SR-Algorithm Capability (S) - bit 13: If the S flag is set to 1, a
PCEP speaker indicates support for the Algorithm field in the PCEP speaker indicates support for the Algorithm field in the
SRv6-ERO subobject described in Section 4.3 and the SR-Algorithm SRv6-ERO subobject described in Section 4.3 and the SR-Algorithm
TLV described in Section 4.4 for LSPs set up using Path Setup Type TLV described in Section 4.4 for LSPs set up using PST 3 (SRv6)
3 (SRv6) [RFC9603]. It does not indicate support for these [RFC9603]. It does not indicate support for these extensions for
extensions for other Path Setup Types. If the S flag is set to 0, other PSTs. If the S flag is set to 0, behavior reverts to the
behavior reverts to the procedures defined in existing procedures defined in existing specifications prior to the
specifications prior to the introduction of this extension. introduction of this extension.
4.2. SR-ERO Subobject 4.2. SR-ERO Subobject
This document updates the SR-ERO subobject format defined in This document updates the SR-ERO subobject format defined in
Section 4.3.1 of [RFC8664] with a new optional, variable-length Section 4.3.1 of [RFC8664] with a new optional, variable-length
Subobject Extension Block field. The block is used to convey Subobject Extension Block field. The block is used to convey
additional information, such as the Algorithm field, and is designed additional information, such as the Algorithm field, and is designed
to allow future extensibility. Further, a new A flag in the Flags to allow future extensibility. Further, a new A flag in the Flags
field is introduced as shown in Figure 1. field is introduced as shown in Figure 1.
skipping to change at line 481 skipping to change at line 481
Future enhancements extending the Subobject Extension Block must: Future enhancements extending the Subobject Extension Block must:
* Define a new SEBF in the Flags field to indicate the presence of a * Define a new SEBF in the Flags field to indicate the presence of a
new extension and specify the corresponding capability signaling new extension and specify the corresponding capability signaling
for that extension. for that extension.
* Specify which parts of the reserved/extension block are used and * Specify which parts of the reserved/extension block are used and
how the block length is calculated when their extension is how the block length is calculated when their extension is
present. present.
* The reserved bits in the initial 4 bytes are used when possible, * Ensure the reserved bits in the initial 4 bytes are used when
and the block is extended only when additional space is necessary. possible and the block is extended only when additional space is
necessary.
* Future extensions may define additional SEBFs and corresponding * Have future extensions define additional SEBFs and corresponding
fields, allowing the block to be increased in size beyond the fields, allowing the block to be increased in size beyond the
initial 4 bytes as needed. initial 4 bytes as needed.
Example: Future extension introducing a Z flag and a new Z field (8 Example: Future extension introducing a Z flag and a new Z field (8
bits): bits):
* If the A flag and/or the Z flag are set, the Subobject Extension * If the A flag and/or the Z flag are set, the Subobject Extension
Block is included. The Z field may use 8 bits of the reserved Block is included. The Z field may use 8 bits of the reserved
portion. A field is only considered valid if its corresponding portion. A field is only considered valid if its corresponding
flag is set. For example, if the Z flag is set to 1 but the A flag is set. For example, if the Z flag is set to 1 but the A
skipping to change at line 552 skipping to change at line 553
the "Interior Gateway Protocol (IGP) Parameters" registry group. the "Interior Gateway Protocol (IGP) Parameters" registry group.
Note: The Subobject Extension Block is applicable to the SRv6-ERO Note: The Subobject Extension Block is applicable to the SRv6-ERO
subobject but is not required by this specific specification as subobject but is not required by this specific specification as
existing reserved space is used. When additional space is needed in existing reserved space is used. When additional space is needed in
the SRv6-ERO subobject, the future extensions SHOULD specify the the SRv6-ERO subobject, the future extensions SHOULD specify the
usage of the Subobject Extension Block for the SRv6-ERO subobject. usage of the Subobject Extension Block for the SRv6-ERO subobject.
4.4. SR-Algorithm TLV 4.4. SR-Algorithm TLV
A new TLV for the LSPA Object is introduced to carry the SR-Algorithm A new TLV for the LSPA object is introduced to carry the SR-Algorithm
constraint (Section 5.2). This TLV MUST only be used when Path Setup constraint (Section 5.2). This TLV MUST only be used when PST = 1 or
Type (PST) = 1 or 3 for SR-MPLS and SRv6, respectively. Only the 3 for SR-MPLS and SRv6, respectively. Only the first instance of
first instance of this TLV MUST be processed; subsequent instances this TLV MUST be processed; subsequent instances MUST be ignored.
MUST be ignored.
The format of the SR-Algorithm TLV is as follows: The format of the SR-Algorithm TLV is as follows:
0 1 2 3 0 1 2 3
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=66 | Length=4 | | Type=66 | Length=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Flags |S| Algorithm | | Reserved | Flags |S| Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at line 603 skipping to change at line 603
computation (see Section 5.2). computation (see Section 5.2).
4.5. Extensions to METRIC Object 4.5. Extensions to METRIC Object
The METRIC object is defined in Section 7.8 of [RFC5440]. This The METRIC object is defined in Section 7.8 of [RFC5440]. This
document specifies additional types for the METRIC object to enable document specifies additional types for the METRIC object to enable
the encoding of optimization metric types derived from the FAD during the encoding of optimization metric types derived from the FAD during
Flexible Algorithm path computation (see Section 5.2.2). While these Flexible Algorithm path computation (see Section 5.2.2). While these
new metric types are defined to support this specific use case, their new metric types are defined to support this specific use case, their
use is not restricted to Flexible Algorithm path computation or to use is not restricted to Flexible Algorithm path computation or to
any specific Path Setup Type. any specific PST.
* T=22: Path Min Delay Metric (Section 4.5.1.1) * T=22: Path Min Delay metric (Section 4.5.1.1)
* T=23: P2MP Path Min Delay Metric (Section 4.5.1.2) * T=23: P2MP Path Min Delay metric (Section 4.5.1.2)
* T=24: Path Bandwidth Metric (Section 4.5.2.1) * T=24: Path Bandwidth metric (Section 4.5.2.1)
* T=25: P2MP Path Bandwidth Metric (Section 4.5.2.2) * T=25: P2MP Path Bandwidth metric (Section 4.5.2.2)
* T=128-255: User-Defined Metric (Section 4.5.3) * T=128-255: User-defined metric (Section 4.5.3)
The following terminology is used and expanded along the way. The following terminology is used and expanded along the way.
* A network comprises a set of N links {Li, (i=1...N)}. * A network comprises a set of N links {Li, (i=1...N)}.
* A path P of a point-to-point (P2P) LSP is a list of K links * A path P of a point-to-point (P2P) LSP is a list of K links
{Lpi,(i=1...K)}. {Lpi,(i=1...K)}.
* A P2MP tree T comprises a set of M destinations * A P2MP tree T comprises a set of M destinations
{Dest_j,(j=1...M)}. {Dest_j,(j=1...M)}.
4.5.1. Path Min Delay Metric 4.5.1. Path Min Delay Metric
[RFC7471] and [RFC8570] define the "Min/Max Unidirectional Link [RFC7471] and [RFC8570] define the "Min/Max Unidirectional Link
Delay" sub-TLV to advertise the link minimum and maximum delay in Delay" sub-TLV to advertise the link minimum and maximum delay in
microseconds in a 24-bit field. microseconds in a 24-bit field.
[RFC5440] defines the METRIC object with a 32-bit metric value [RFC5440] defines the METRIC object with a 32-bit metric value
encoded in IEEE floating point format (see [IEEE.754.2008]). encoded in IEEE floating point format (see [IEEE.754.2019]).
The encoding for the Path Min Delay metric value is quantified in The encoding for the Path Min Delay metric value is quantified in
units of microseconds and encoded in IEEE floating point format. units of microseconds and encoded in IEEE floating point format.
For use in the PCEP METRIC object, the 24-bit unsigned integer delay For use in the PCEP METRIC object, the 24-bit unsigned integer delay
value is converted to a 32-bit IEEE floating point value. This value is converted to a 32-bit IEEE floating point value. This
conversion follows the procedure specified in [IEEE.754.2008]. conversion follows the procedure specified in [IEEE.754.2019].
4.5.1.1. P2P Path Min Delay Metric 4.5.1.1. P2P Path Min Delay Metric
The minimum Link Delay metric is defined in [RFC7471] and [RFC8570] The minimum Link Delay metric is defined in [RFC7471] and [RFC8570]
as "Min Unidirectional Link Delay". The Path Min Link Delay metric as "Min Unidirectional Link Delay". The Path Min Link Delay metric
represents the measured minimum link delay value over a configurable represents the measured minimum link delay value over a configurable
interval. interval.
The Path Min Delay metric type of the METRIC object in PCEP The Path Min Delay metric type of the METRIC object in PCEP
represents the sum of the Min Link Delay metric of all links along a represents the sum of the Min Link Delay metric of all links along a
skipping to change at line 672 skipping to change at line 672
of the P2MP tree. of the P2MP tree.
* The P2P Path Min Delay metric of the path to destination Dest_j is * The P2P Path Min Delay metric of the path to destination Dest_j is
denoted by PMDM(Dest_j). denoted by PMDM(Dest_j).
* The P2MP Path Min Delay metric for the P2MP tree T = * The P2MP Path Min Delay metric for the P2MP tree T =
Maximum{PMDM(Dest_j), (j=1...M)}. Maximum{PMDM(Dest_j), (j=1...M)}.
4.5.2. Path Bandwidth Metric 4.5.2. Path Bandwidth Metric
Section 4 of [RFC9843] defines a new metric type, "Bandwidth Metric", Section 4 of [RFC9843] defines a new metric type, "Bandwidth metric",
which may be advertised in their link metric advertisements. which may be advertised in their link metric advertisements.
When performing Flexible Algorithm path computation as described in When performing Flexible Algorithm path computation as described in
Section 5.2.2, procedures described in Sections 4.1 and 5 from Section 5.2.2, procedures described in Sections 4.1 and 5 from
[RFC9843] MUST be followed with automatic metric calculation. [RFC9843] MUST be followed with automatic metric calculation.
For path computations in contexts other than Flexible Algorithm For path computations in contexts other than Flexible Algorithm
(including Path Setup Types other than 1 or 3 for SR-MPLS and SRv6, (including PSTs other than 1 or 3 for SR-MPLS and SRv6,
respectively), if the Generic Metric sub-TLV with the Bandwidth respectively), if the Generic Metric sub-TLV with the Bandwidth
metric type is not advertised for a link, the PCE implementation MAY metric type is not advertised for a link, the PCE implementation MAY
apply a local policy to derive a metric value (similar to the apply a local policy to derive a metric value (similar to the
procedures in Sections 4.1.3 and 4.1.4 of [RFC9843]) or the link MAY procedures in Sections 4.1.3 and 4.1.4 of [RFC9843]) or the link MAY
be treated as if the metric value is unavailable (e.g., by using a be treated as if the metric value is unavailable (e.g., by using a
default value). If the Bandwidth metric value is advertised for a default value). If the Bandwidth metric value is advertised for a
link, the PCE MUST use the advertised value to compute the path link, the PCE MUST use the advertised value to compute the path
metric in accordance with Sections 4.5.2.1 and 4.5.2.2. metric in accordance with Sections 4.5.2.1 and 4.5.2.2.
The Path Bandwidth metric value is encoded in IEEE floating point The Path Bandwidth metric value is encoded in IEEE floating point
format (see [IEEE.754.2008]). format (see [IEEE.754.2019]).
For use in the PCEP METRIC object, the 24-bit unsigned integer delay For use in the PCEP METRIC object, the 24-bit unsigned integer delay
value is converted to a 32-bit IEEE floating point value. This value is converted to a 32-bit IEEE floating point value. This
conversion follows the procedure specified in [IEEE.754.2008]. conversion follows the procedure specified in [IEEE.754.2019].
4.5.2.1. P2P Path Bandwidth Metric 4.5.2.1. P2P Path Bandwidth Metric
The Path Bandwidth metric type of the METRIC object in PCEP The Path Bandwidth metric type of the METRIC object in PCEP
represents the sum of the Bandwidth Metric of all links along a P2P represents the sum of the Bandwidth metric of all links along a P2P
path. Note: The link Bandwidth Metric utilized in the formula may be path. Note: The link Bandwidth metric utilized in the formula may be
the original metric advertised on the link, which may have a value the original metric advertised on the link, which may have a value
inversely proportional to the link capacity. inversely proportional to the link capacity.
* A Bandwidth Metric of link L is denoted by B(L). * A Bandwidth metric of link L is denoted by B(L).
* A Path Bandwidth metric for the P2P path P = Sum {B(Lpi), * A Path Bandwidth metric for the P2P path P = Sum {B(Lpi),
(i=1...K)}. (i=1...K)}.
4.5.2.2. P2MP Path Bandwidth Metric 4.5.2.2. P2MP Path Bandwidth Metric
The Bandwidth metric type of the METRIC object in PCEP encodes the The Bandwidth metric type of the METRIC object in PCEP encodes the
Path Bandwidth metric for the destination that observes the worst Path Bandwidth metric for the destination that observes the worst
bandwidth metric among all destinations of the P2MP tree. Bandwidth metric among all destinations of the P2MP tree.
* The P2P Bandwidth metric of the path to destination Dest_j is * The P2P Bandwidth metric of the path to destination Dest_j is
denoted by BM(Dest_j). denoted by BM(Dest_j).
* The P2MP Path Bandwidth metric for the P2MP tree T = * The P2MP Path Bandwidth metric for the P2MP tree T =
Maximum{BM(Dest_j), (j=1...M)}. Maximum{BM(Dest_j), (j=1...M)}.
4.5.3. User-Defined Metric 4.5.3. User-Defined Metric
Section 2 of [RFC9843] defined a new metric type range for "user- Section 2 of [RFC9843] defined a new metric type range for "User-
defined metric", which may be advertised in their link metric defined metric", which may be advertised in their link metric
advertisements. These are user defined and can be assigned by an advertisements. These are user defined and can be assigned by an
operator for local use. operator for local use.
User-defined metric values are encoded using the IEEE floating point User-defined metric values are encoded using the IEEE floating point
format (see [IEEE.754.2008]). format (see [IEEE.754.2019]).
For use in the PCEP METRIC object, the 24-bit unsigned integer delay For use in the PCEP METRIC object, the 24-bit unsigned integer delay
value is converted to a 32-bit IEEE floating point value. This value is converted to a 32-bit IEEE floating point value. This
conversion follows the procedure specified in [IEEE.754.2008]. conversion follows the procedure specified in [IEEE.754.2019].
The metric type range was chosen to allow mapping with values The metric type range was chosen to allow mapping with values
assigned in the "IGP Metric-Type" registry. For example, the user- assigned in the "IGP Metric-Type" registry. For example, the User-
defined metric type 130 of the METRIC object in PCEP can represent defined metric type 130 of the METRIC object in PCEP can represent
the sum of the user-defined metric 130 of all links along a P2P path. the sum of the User-defined metric 130 of all links along a P2P path.
User-defined metrics are equally applicable to P2P and P2MP paths. User-defined metrics are equally applicable to P2P and P2MP paths.
5. Operation 5. Operation
The PCEP extensions defined in Sections 5.1 and 5.2 of this document The PCEP extensions defined in Sections 5.1 and 5.2 of this document
MUST NOT be used unless both PCEP speakers have indicated support by MUST NOT be used unless both PCEP speakers have indicated support by
setting the S flag in the Path Setup Type sub-TLV corresponding to setting the S flag in the Path Setup Type sub-TLV corresponding to
the PST of the LSP. If this condition is not met, the receiving PCEP the PST of the LSP. If this condition is not met, the receiving PCEP
speaker MUST respond with a PCErr message with Error-Type 19 (Invalid speaker MUST respond with a PCErr message with Error-Type 19 (Invalid
Operation) and Error-value 33 (Attempted use of SR-Algorithm without Operation) and Error-value 33 (Attempted use of SR-Algorithm without
advertised capability). advertised capability).
The SR-Algorithm used in this document refers to a complete range of The SR-Algorithm used in this document refers to a complete range of
SR-Algorithm values (0-255) if a specific section does not specify SR-Algorithm values (0-255) if a specific section does not specify
otherwise. Valid SR-Algorithm values are defined in the "IGP otherwise. Valid SR-Algorithm values are defined in the "IGP
Algorithm Types" registry of the "Interior Gateway Protocol (IGP) Algorithm Types" registry of the "Interior Gateway Protocol (IGP)
Parameters" registry group. Refer to Section 3.1.1 of [RFC8402] and Parameters" registry group. Refer to Section 3.1.1 of [RFC8402] and
[RFC9256] for the definition of SR-Algorithm in Segment Routing. [RFC9256] for the definition of SR-Algorithm in SR. [RFC8665] and
[RFC8665] and [RFC8667] describe the use of the SR-Algorithm in IGP. [RFC8667] describe the use of the SR-Algorithm in IGP. Note that
Note that some RFCs refer to SR-Algorithm with different names, for some RFCs refer to SR-Algorithm with different names, for example,
example, "Prefix-SID Algorithm" and "SR Algorithm". "Prefix-SID Algorithm" and "SR Algorithm".
5.1. ERO and RRO Subobjects 5.1. ERO and RRO Subobjects
If a PCC receives the Algorithm field in the ERO subobject within If a PCC receives the Algorithm field in the ERO subobject within
PCInitiate, PCUpd, or PCRep messages and the path received from those PCInitiate, PCUpd, or PCRep messages and the path received from those
messages is being included in the ERO of PCRpt message, then the PCC messages is being included in the ERO of PCRpt message, then the PCC
MUST include the Algorithm field in the encoded subobjects with the MUST include the Algorithm field in the encoded subobjects with the
received SR-Algorithm value. received SR-Algorithm value.
As per [RFC8664], the format of the SR-RRO subobject is the same as As per [RFC8664], the format of the SR-RRO subobject is the same as
skipping to change at line 838 skipping to change at line 838
PCC cannot find a SID index in the SR-DB, it MUST send a PCErr PCC cannot find a SID index in the SR-DB, it MUST send a PCErr
message with Error-Type = 10 ("Reception of an invalid object") and message with Error-Type = 10 ("Reception of an invalid object") and
Error-value = 14 ("Unknown SID"). Error-value = 14 ("Unknown SID").
5.2. SR-Algorithm Constraint 5.2. SR-Algorithm Constraint
To signal a specific SR-Algorithm constraint to the PCE, the headend To signal a specific SR-Algorithm constraint to the PCE, the headend
MUST encode the SR-Algorithm TLV inside the LSPA object. MUST encode the SR-Algorithm TLV inside the LSPA object.
If a PCC receives an LSPA object with the SR-Algorithm TLV as part of If a PCC receives an LSPA object with the SR-Algorithm TLV as part of
PCInitiate, PCUpd messages, then it MUST include an LSPA object with PCInitiate or PCUpd messages, then it MUST include an LSPA object
the SR-Algorithm TLV in a PCRpt message as part of intended- with the SR-Algorithm TLV in a PCRpt message as part of intended-
attribute-list. attribute-list.
If a PCE receives an LSPA object with the SR-Algorithm TLV in PCRpt If a PCE receives an LSPA object with the SR-Algorithm TLV in PCRpt
or PCReq, then it MUST include the LSPA object with the SR-Algorithm or PCReq, then it MUST include the LSPA object with the SR-Algorithm
TLV in a PCUpd message, or a PCRep message in case of an unsuccessful TLV in a PCUpd message, or a PCRep message in case of an unsuccessful
path computation based on rules described in Section 7.11 of path computation based on rules described in Section 7.11 of
[RFC5440]. [RFC5440].
A PCEP peer that did not advertise the S flag in the Path Setup Type A PCEP peer that did not advertise the S flag in the Path Setup Type
sub-TLV corresponding to the LSP's PST MUST ignore the SR-Algorithm sub-TLV corresponding to the LSP's PST MUST ignore the SR-Algorithm
skipping to change at line 863 skipping to change at line 863
other than the one specified in the SR-Algorithm constraint. If a other than the one specified in the SR-Algorithm constraint. If a
protected Adjacency SID is used without an associated SR-Algorithm, protected Adjacency SID is used without an associated SR-Algorithm,
there is a risk that the backup path may fail to forward traffic over there is a risk that the backup path may fail to forward traffic over
parts of the topology that are not included in the specified SR- parts of the topology that are not included in the specified SR-
Algorithm. Consequently, it is NOT RECOMMENDED to use protected Algorithm. Consequently, it is NOT RECOMMENDED to use protected
Adjacency SIDs without an explicitly specified SR-Algorithm. If an Adjacency SIDs without an explicitly specified SR-Algorithm. If an
Adjacency SID has an associated SR-Algorithm, the PCE MUST ensure Adjacency SID has an associated SR-Algorithm, the PCE MUST ensure
that the SR-Algorithm matches the one specified in the SR-Algorithm that the SR-Algorithm matches the one specified in the SR-Algorithm
constraint. constraint.
Other SID types, such as Binding SIDs, are allowed. Furthermore, the Other SID types, such as BSIDs, are allowed. Furthermore, the
inclusion of a path Binding SID (BSID) from another policy is inclusion of a path BSID from another policy is permitted only if the
permitted only if the path associated with that policy fully path associated with that policy fully satisfies all the constraints
satisfies all the constraints of the current path computation. of the current path computation.
The specified SR-Algorithm constraint is applied to the end-to-end SR The specified SR-Algorithm constraint is applied to the end-to-end SR
Policy path. Using different SR-Algorithm constraints or using Policy path. Using different SR-Algorithm constraints or using
winning FAD with different optimization metrics or constraints for winning FAD with different optimization metrics or constraints for
the same SR-Algorithm in each domain or part of the topology in the same SR-Algorithm in each domain or part of the topology in
single path computation is out of the scope of this document. single path computation is out of the scope of this document.
If the PCE is unable to find a path with the given SR-Algorithm If the PCE is unable to find a path with the given SR-Algorithm
constraint, it does not support a combination of specified constraint, it does not support a combination of specified
constraints, or if the FAD contains constraints, optimization constraints, or if the FAD contains constraints, optimization
metrics, or other attributes, which the PCE does not support or metrics, or other attributes, which the PCE does not support or
recognize, it MUST use an empty ERO in PCInitiate for LSP recognize, it MUST use an empty ERO in PCInitiate for LSP
instantiation or PCUpd message if an update is required or NO-PATH instantiation, a PCUpd message if an update is required, or a NO-PATH
object in PCRep to indicate that it was not able to find the valid object in PCRep to indicate that it was not able to find the valid
path. path.
If the Algorithm field value is in the range 128-255, the PCE MUST If the Algorithm field value is in the range 128-255, the PCE MUST
perform path computation according to the Flexible Algorithm perform path computation according to the Flexible Algorithm
procedures outlined in Section 5.2.2. Otherwise, the PCE MUST adhere procedures outlined in Section 5.2.2. Otherwise, the PCE MUST adhere
to the path computation procedures with SID filtering as defined in to the path computation procedures with SID filtering as defined in
Section 5.2.1. Section 5.2.1.
If the NO-PATH object is included in PCRep, then the PCE MAY include If the NO-PATH object is included in PCRep, then the PCE MAY include
skipping to change at line 925 skipping to change at line 925
constraints). constraints).
5.2.2. Path Computation for Flexible Algorithms 5.2.2. Path Computation for Flexible Algorithms
This section is applicable only to the Flexible Algorithms range of This section is applicable only to the Flexible Algorithms range of
SR-Algorithm values. The PCE performs Flexible Algorithm path SR-Algorithm values. The PCE performs Flexible Algorithm path
computation based on topology information stored in its TED computation based on topology information stored in its TED
[RFC5440]. The TED is expected to be populated with necessary [RFC5440]. The TED is expected to be populated with necessary
information, including Flexible Algorithm Definitions (FADs), node information, including Flexible Algorithm Definitions (FADs), node
participation, and ASLA-specific link attributes, through standard participation, and ASLA-specific link attributes, through standard
mechanisms, such as Interior Gateway Protocols (IGPs) with Traffic mechanisms, such as IGPs with Traffic Engineering extensions or BGP -
Engineering extensions or BGP - Link State (BGP-LS) [RFC9552]. Link State (BGP-LS) [RFC9552].
The PCE must follow the IGP Flexible Algorithm path computation logic The PCE must follow the IGP Flexible Algorithm path computation logic
as described in [RFC9350]. This includes performing the FAD as described in [RFC9350]. This includes performing the FAD
selection as described in Section 5.3 of [RFC9350] and other selection as described in Section 5.3 of [RFC9350] and other
sections, determining the topology associated with specific a sections, determining the topology associated with specific a
Flexible Algorithm based on the FAD, the node participation Flexible Algorithm based on the FAD, the node participation
(Section 11 of [RFC9350]), using ASLA-specific link attributes (Section 11 of [RFC9350]), using ASLA-specific link attributes
(Section 12 of [RFC9350]), and applying other rules for Flexible (Section 12 of [RFC9350]), and applying other rules for Flexible
Algorithm path calculation (Section 13 of [RFC9350]). While Algorithm path calculation (Section 13 of [RFC9350]). While
[RFC9350] defines the base procedures for IGP Flexible Algorithms, [RFC9350] defines the base procedures for IGP Flexible Algorithms,
these procedures are further extended by other documents, such as these procedures are further extended by other documents, such as
[RFC9843]; a PCE implementation may need to support these IGP [RFC9843]; a PCE implementation may need to support these IGP
extensions to allow use of specific constraints in FAD. [RFC9917] extensions to allow use of specific constraints in FAD. [RFC9917]
created an IANA registry called "IGP Flex-Algorithm Path Computation created an IANA registry called "IGP Flex-Algorithm Path Computation
Rules" within the "Interior Gateway Protocol (IGP) Parameters" Rules" <https://www.iana.org/assignments/igp-parameters> within the
registry group with the ordered set of rules that MUST be used to "Interior Gateway Protocol (IGP) Parameters" registry group with the
prune links from the topology during the Flexible Algorithm path ordered set of rules that MUST be used to prune links from the
computation. topology during the Flexible Algorithm path computation.
The PCE MUST optimize the computed path based on the metric type The PCE MUST optimize the computed path based on the metric type
specified in the FAD. The optimization metric type included in PCEP specified in the FAD. The optimization metric type included in PCEP
messages from the PCC MUST be ignored. The PCE MUST use the metric messages from the PCC MUST be ignored. The PCE MUST use the metric
type from the FAD in messages sent to the PCC unless that metric type type from the FAD in messages sent to the PCC unless that metric type
is not defined in PCEP or not supported by the PCEP peer. It is is not defined in PCEP or not supported by the PCEP peer. It is
allowed to use SID types other than Prefix SID (e.g., Adjacency or allowed to use SID types other than Prefix SID (e.g., Adjacency or
BSID) but only from nodes participating in the specified SR- BSID) but only from nodes participating in the specified SR-
Algorithm. Algorithm.
There are corresponding metric types in PCEP for IGP and TE metrics There are corresponding metric types in PCEP for IGP and TE metrics
from FAD introduced in [RFC9350], but there were no corresponding from FAD introduced in [RFC9350], but there were no corresponding
metric types defined for "Min Unidirectional Link Delay" from metric types defined for "Min Unidirectional Link Delay" from
[RFC9350] and "Bandwidth Metric" and "User-Defined Metric" from [RFC9350] and "Bandwidth metric" and "User-defined metric" from
[RFC9843]. Section 4.5 of this document introduces them. Note that [RFC9843]. Section 4.5 of this document introduces them. Note that
the defined "Path Bandwidth Metric" is accumulative and is different the defined "Path Bandwidth metric" is accumulative and is different
from the BANDWIDTH Object defined in [RFC5440]. from the BANDWIDTH object defined in [RFC5440].
The PCE MUST use the constraints specified in the FAD and also The PCE MUST use the constraints specified in the FAD and also
constraints (except optimization metric type) directly included in constraints (except optimization metric type) directly included in
PCEP messages from the PCC. The PCE implementation MAY decide to PCEP messages from the PCC. The PCE implementation MAY decide to
ignore specific constraints received from the PCC based on existing ignore specific constraints received from the PCC based on existing
processing rules for PCEP Objects and TLVs, e.g., the P flag processing rules for PCEP objects and TLVs, e.g., the P flag
described in Section 7.2 of [RFC5440] and processing rules described described in Section 7.2 of [RFC5440] and processing rules described
in [RFC9753]. If the PCE does not support a specified combination of in [RFC9753]. If the PCE does not support a specified combination of
constraints, it MUST fail path computation and respond with a PCEP constraints, it MUST fail path computation and respond with a PCEP
message with a PCInitiate or PCUpd message with an empty ERO or PCRep message with a PCInitiate or PCUpd message with an empty ERO or PCRep
with NO-PATH object. The PCC MUST NOT include constraints from the with NO-PATH object. The PCC MUST NOT include constraints from the
FAD in the PCEP message sent to the PCE, as it can result in FAD in the PCEP message sent to the PCE, as it can result in
undesired behavior in various cases. The PCE SHOULD NOT include undesired behavior in various cases. The PCE SHOULD NOT include
constraints from the FAD in PCEP messages sent to the PCC. constraints from the FAD in PCEP messages sent to the PCC.
The combinations of the constraints specified in the FAD and The combinations of the constraints specified in the FAD and
skipping to change at line 994 skipping to change at line 994
5.3. Metric Types 5.3. Metric Types
All the rules of processing the METRIC object as explained in All the rules of processing the METRIC object as explained in
[RFC5440] and [RFC8233] are applicable to the metric types defined in [RFC5440] and [RFC8233] are applicable to the metric types defined in
this document. this document.
6. Manageability Considerations 6. Manageability Considerations
All manageability requirements and considerations listed in All manageability requirements and considerations listed in
[RFC5440], [RFC8231], [RFC8281], [RFC8664], and [RFC9603] apply to [RFC5440], [RFC8231], [RFC8664], and [RFC9603] apply to the PCEP
the PCEP extensions defined in this document. In addition, the extensions defined in this document. In addition, the requirements
requirements and considerations listed in this section apply. and considerations listed in this section apply.
6.1. Control of Function and Policy 6.1. Control of Function and Policy
A PCE or PCC implementation MAY allow the capability of supporting A PCE or PCC implementation MAY allow the capability of supporting
the PCEP extensions introduced in this document to be enabled or the PCEP extensions introduced in this document to be enabled or
disabled as part of the global configuration. By default, this disabled as part of the global configuration. By default, this
capability SHOULD be enabled. capability SHOULD be enabled.
6.2. Information and Data Models 6.2. Information and Data Models
skipping to change at line 1145 skipping to change at line 1145
9.6. Metric Types 9.6. Metric Types
IANA maintains a registry named "METRIC Object T Field" within the IANA maintains a registry named "METRIC Object T Field" within the
"Path Computation Element Protocol (PCEP) Numbers" registry group. "Path Computation Element Protocol (PCEP) Numbers" registry group.
IANA has registered these codepoints as follows: IANA has registered these codepoints as follows:
+=========+============================+===========+ +=========+============================+===========+
| Value | Description | Reference | | Value | Description | Reference |
+=========+============================+===========+ +=========+============================+===========+
| 22 | Path Min Delay Metric | RFC 9933 | | 22 | Path Min Delay metric | RFC 9933 |
+---------+----------------------------+-----------+ +---------+----------------------------+-----------+
| 23 | P2MP Path Min Delay Metric | RFC 9933 | | 23 | P2MP Path Min Delay metric | RFC 9933 |
+---------+----------------------------+-----------+ +---------+----------------------------+-----------+
| 24 | Path Bandwidth Metric | RFC 9933 | | 24 | Path Bandwidth metric | RFC 9933 |
+---------+----------------------------+-----------+ +---------+----------------------------+-----------+
| 25 | P2MP Path Bandwidth Metric | RFC 9933 | | 25 | P2MP Path Bandwidth metric | RFC 9933 |
+---------+----------------------------+-----------+ +---------+----------------------------+-----------+
| 128-255 | User-Defined Metric | RFC 9933 | | 128-255 | User-defined metric | RFC 9933 |
+---------+----------------------------+-----------+ +---------+----------------------------+-----------+
Table 6 Table 6
9.7. PCEP-Error Object 9.7. PCEP-Error Object
IANA has registered the following Error-Types and Error-values within IANA has registered the following Error-Types and Error-values within
the "PCEP-ERROR Object Error Types and Values" registry of the "Path the "PCEP-ERROR Object Error Types and Values" registry of the "Path
Computation Element Protocol (PCEP) Numbers" registry group. Computation Element Protocol (PCEP) Numbers" registry group.
skipping to change at line 1296 skipping to change at line 1296
Algorithms Reverse Affinity Constraint", RFC 9917, Algorithms Reverse Affinity Constraint", RFC 9917,
DOI 10.17487/RFC9917, January 2026, DOI 10.17487/RFC9917, January 2026,
<https://www.rfc-editor.org/info/rfc9917>. <https://www.rfc-editor.org/info/rfc9917>.
10.2. Informative References 10.2. Informative References
[IANA-ALGORITHM-TYPES] [IANA-ALGORITHM-TYPES]
IANA, "IGP Algorithm Types", IANA, "IGP Algorithm Types",
<https://www.iana.org/assignments/igp-parameters>. <https://www.iana.org/assignments/igp-parameters>.
[IEEE.754.2008] [IEEE.754.2019]
IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE
Std 754-2008, DOI 10.1109/IEEESTD.2008.4610935, August Std 754-2019, DOI 10.1109/IEEESTD.2019.8766229, July 2019,
2008, <https://doi.org/10.1109/IEEESTD.2008.4610935>. <https://doi.org/10.1109/IEEESTD.2019.8766229>.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031, Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001, DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>. <https://www.rfc-editor.org/info/rfc3031>.
[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
Computation Element (PCE)-Based Architecture", RFC 4655, Computation Element (PCE)-Based Architecture", RFC 4655,
DOI 10.17487/RFC4655, August 2006, DOI 10.17487/RFC4655, August 2006,
<https://www.rfc-editor.org/info/rfc4655>. <https://www.rfc-editor.org/info/rfc4655>.
 End of changes. 50 change blocks. 
91 lines changed or deleted 91 lines changed or added

This html diff was produced by rfcdiff 1.48.