rfc9862.original | rfc9862.txt | |||
---|---|---|---|---|
PCE Working Group M. Koldychev | Internet Engineering Task Force (IETF) M. Koldychev | |||
Internet-Draft S. Sivabalan | Request for Comments: 9862 S. Sivabalan | |||
Updates: 8231 (if approved) Ciena Corporation | Updates: 8231 Ciena Corporation | |||
Intended status: Standards Track S. Sidor | Category: Standards Track S. Sidor | |||
Expires: 6 October 2025 Cisco Systems, Inc. | ISSN: 2070-1721 Cisco Systems, Inc. | |||
C. Barth | C. Barth | |||
Juniper Networks, Inc. | Juniper Networks, Inc. | |||
S. Peng | S. Peng | |||
Huawei Technologies | Huawei Technologies | |||
H. Bidgoli | H. Bidgoli | |||
Nokia | Nokia | |||
4 April 2025 | September 2025 | |||
Path Computation Element Communication Protocol (PCEP) Extensions for | Path Computation Element Communication Protocol (PCEP) Extensions for | |||
Segment Routing (SR) Policy Candidate Paths | Segment Routing (SR) Policy Candidate Paths | |||
draft-ietf-pce-segment-routing-policy-cp-27 | ||||
Abstract | Abstract | |||
A Segment Routing (SR) Policy is an ordered list of instructions, | A Segment Routing (SR) Policy is an ordered list of instructions | |||
called "segments" that represent a source-routed policy. Packet | called "segments" that represent a source-routed policy. Packet | |||
flows are steered into an SR Policy on a node where it is | flows are steered into an SR Policy on a node where it is | |||
instantiated. An SR Policy is made of one or more candidate paths. | instantiated. An SR Policy is made of one or more candidate paths. | |||
This document specifies the Path Computation Element Communication | This document specifies the Path Computation Element Communication | |||
Protocol (PCEP) extension to signal candidate paths of an SR Policy. | Protocol (PCEP) extension to signal candidate paths of an SR Policy. | |||
Additionally, this document updates RFC 8231 to allow delegation and | Additionally, this document updates RFC 8231 to allow delegation and | |||
setup of an SR Label Switched Path (LSP), without using the path | setup of an SR Label Switched Path (LSP) without using the path | |||
computation request and reply messages. This document is applicable | computation request and reply messages. This document is applicable | |||
to both Segment Routing over MPLS (SR-MPLS) and Segment Routing over | to both Segment Routing over MPLS (SR-MPLS) and Segment Routing over | |||
IPv6 (SRv6). | IPv6 (SRv6). | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9862. | |||
material or to cite them other than as "work in progress." | ||||
This Internet-Draft will expire on 6 October 2025. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.1. Requirements Language | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology | |||
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Overview | |||
4. SR Policy Association (SRPA) . . . . . . . . . . . . . . . . 6 | 4. SR Policy Association (SRPA) | |||
4.1. SR Policy Identifier . . . . . . . . . . . . . . . . . . 7 | 4.1. SR Policy Identifier | |||
4.2. SR Policy Candidate Path Identifier . . . . . . . . . . . 7 | 4.2. SR Policy Candidate Path Identifier | |||
4.3. SR Policy Candidate Path Attributes . . . . . . . . . . . 7 | 4.3. SR Policy Candidate Path Attributes | |||
4.4. Association Parameters . . . . . . . . . . . . . . . . . 8 | 4.4. Association Parameters | |||
4.5. Association Information . . . . . . . . . . . . . . . . . 9 | 4.5. Association Information | |||
4.5.1. SR Policy Name TLV . . . . . . . . . . . . . . . . . 10 | 4.5.1. SRPOLICY-POL-NAME TLV | |||
4.5.2. SR Policy Candidate Path Identifier TLV . . . . . . . 10 | 4.5.2. SRPOLICY-CPATH-ID TLV | |||
4.5.3. SR Policy Candidate Path Name TLV . . . . . . . . . . 12 | 4.5.3. SRPOLICY-CPATH-NAME TLV | |||
4.5.4. SR Policy Candidate Path Preference TLV . . . . . . . 12 | 4.5.4. SRPOLICY-CPATH-PREFERENCE TLV | |||
5. SR Policy Signaling Extensions . . . . . . . . . . . . . . . 13 | 5. SR Policy Signaling Extensions | |||
5.1. SR Policy Capability TLV . . . . . . . . . . . . . . . . 13 | 5.1. SRPOLICY-CAPABILITY TLV | |||
5.2. LSP Object TLVs . . . . . . . . . . . . . . . . . . . . . 15 | 5.2. LSP Object TLVs | |||
5.2.1. Computation Priority TLV . . . . . . . . . . . . . . 15 | 5.2.1. COMPUTATION-PRIORITY TLV | |||
5.2.2. Explicit Null Label Policy (ENLP) TLV . . . . . . . . 15 | 5.2.2. Explicit Null Label Policy (ENLP) TLV | |||
5.2.3. Invalidation TLV . . . . . . . . . . . . . . . . . . 16 | 5.2.3. INVALIDATION TLV | |||
5.2.3.1. Drop-upon-invalid applies to SR Policy . . . . . 18 | 5.2.3.1. Drop-Upon-Invalid Applies to SR Policy | |||
5.3. Update to RFC 8231 . . . . . . . . . . . . . . . . . . . 18 | 5.3. Updates to RFC 8231 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 6. IANA Considerations | |||
6.1. Association Type . . . . . . . . . . . . . . . . . . . . 19 | 6.1. Association Type | |||
6.2. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 19 | 6.2. PCEP TLV Type Indicators | |||
6.3. PCEP Errors . . . . . . . . . . . . . . . . . . . . . . . 20 | 6.3. PCEP Errors | |||
6.4. TE-PATH-BINDING TLV Flag field . . . . . . . . . . . . . 21 | 6.4. TE-PATH-BINDING TLV Flag Field | |||
6.5. SR Policy Invalidation Operational State . . . . . . . . 21 | 6.5. SR Policy Invalidation Operational State | |||
6.6. SR Policy Invalidation Configuration State . . . . . . . 22 | 6.6. SR Policy Invalidation Configuration State | |||
6.7. SR Policy Capability TLV Flag field . . . . . . . . . . . 22 | 6.7. SR Policy Capability TLV Flag Field | |||
7. Security Considerations | ||||
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 23 | 8. Manageability Considerations | |||
7.1. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 8.1. Control of Function and Policy | |||
7.2. Juniper . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 8.2. Information and Data Models | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 8.3. Liveness Detection and Monitoring | |||
9. Manageability Considerations . . . . . . . . . . . . . . . . 24 | 8.4. Verify Correct Operations | |||
9.1. Control of Function and Policy . . . . . . . . . . . . . 25 | 8.5. Requirements on Other Protocols | |||
9.2. Information and Data Models . . . . . . . . . . . . . . . 25 | 8.6. Impact on Network Operations | |||
9.3. Liveness Detection and Monitoring . . . . . . . . . . . . 25 | 9. References | |||
9.4. Verify Correct Operations . . . . . . . . . . . . . . . . 25 | 9.1. Normative References | |||
9.5. Requirements On Other Protocols . . . . . . . . . . . . . 25 | 9.2. Informative References | |||
9.6. Impact On Network Operations . . . . . . . . . . . . . . 25 | Acknowledgements | |||
10. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 26 | Contributors | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 26 | ||||
11.2. Informative References . . . . . . . . . . . . . . . . . 28 | ||||
Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 29 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 | ||||
1. Introduction | 1. Introduction | |||
Segment Routing (SR) Policy Architecture [RFC9256] details the | "Segment Routing Policy Architecture" [RFC9256] details the concepts | |||
concepts of Segment Routing (SR) Policy [RFC8402] and approaches to | of Segment Routing (SR) Policy [RFC8402] and approaches to steering | |||
steering traffic into an SR Policy. | traffic into an SR Policy. | |||
Path Computation Element Communication Protocol (PCEP) Extensions for | "Path Computation Element Communication Protocol (PCEP) Extensions | |||
Segment Routing [RFC8664] specifies extensions to the PCEP that allow | for Segment Routing" [RFC8664] specifies extensions to the PCEP that | |||
a stateful Path Computation Element (PCE) to compute and initiate | allow a stateful Path Computation Element (PCE) to compute and | |||
Traffic Engineering (TE) paths, as well as a Path Computation Client | initiate Traffic Engineering (TE) paths, as well as a Path | |||
(PCC) to request a path subject to certain constraints and | Computation Client (PCC) to request a path subject to certain | |||
optimization criteria in SR domain. Although PCEP extensions | constraints and optimization criteria in an SR domain. Although PCEP | |||
introduced in [RFC8664] enables the creation of SR-TE paths, these do | extensions introduced in [RFC8664] enable the creation of SR-TE | |||
not constitute SR Policies as defined in [RFC9256] and therefore lack | paths, these do not constitute SR Policies as defined in [RFC9256]. | |||
support for: | Therefore, they lack support for: | |||
* Association of SR Policy Candidate Paths signaled via PCEP with | * Association of SR Policy Candidate Paths signaled via PCEP with | |||
Candidate Paths of the same SR Policy signaled via other sources | Candidate Paths of the same SR Policy signaled via other sources | |||
(e.g., local configuration or BGP). | (e.g., local configuration or BGP). | |||
* Association of SR Policy with an intent via color, enabling | * Association of an SR Policy with an intent via color, enabling | |||
headend-based steering of BGP service routes over SR Policies | headend-based steering of BGP service routes over SR Policies | |||
provisioned via PCEP. | provisioned via PCEP. | |||
PCEP Extensions for establishing relationships between sets of Label | "Path Computation Element Communication Protocol (PCEP) Extensions | |||
Switched Paths (LSPs) [RFC8697] introduces a generic mechanism to | for Establishing Relationships between Sets of Label Switched Paths | |||
create a grouping of LSPs which is called an Association. | (LSPs)" [RFC8697] introduces a generic mechanism to create a grouping | |||
of LSPs that is called an "Association". | ||||
An SR Policy is associated with one or more candidate paths. A | An SR Policy is associated with one or more candidate paths. A | |||
candidate path is the unit for signaling of an SR Policy to a headend | candidate path is the unit for signaling an SR Policy to a headend as | |||
as described in Section 2.2 of [RFC9256]. This document extends | described in Section 2.2 of [RFC9256]. This document extends | |||
[RFC8664] to support signaling SR Policy Candidate Paths as LSPs and | [RFC8664] to support signaling SR Policy Candidate Paths as LSPs and | |||
to signal Candidate Path membership in an SR Policy by means of the | to signal Candidate Path membership in an SR Policy by means of the | |||
Association mechanism. A PCEP Association corresponds to a SR Policy | Association mechanism. A PCEP Association corresponds to an SR | |||
and a LSP corresponds to a Candidate Path. The unit of signaling in | Policy and an LSP corresponds to a Candidate Path. The unit of | |||
PCEP is the LSP, thus all the information related to SR Policy is | signaling in PCEP is the LSP, thus, all the information related to an | |||
carried at the Candidate Path level. | SR Policy is carried at the Candidate Path level. | |||
Also, this document updates Section 5.8.2 of [RFC8231], making the | Also, this document updates Section 5.8.2 of [RFC8231], making the | |||
use of Path Computation Request (PCReq) and Path Computation Reply | use of Path Computation Request (PCReq) and Path Computation Reply | |||
(PCRep) messages optional for LSPs setup using Path Setup Type 1 | (PCRep) messages optional for LSPs that are set up using Path Setup | |||
(Segment Routing) [RFC8664] and Path Setup Type 3 (SRv6) [RFC9603] | Type 1 (for Segment Routing) [RFC8664] and Path Setup Type 3 (for | |||
with the aim of reducing the PCEP message exchanges and simplifying | SRv6) [RFC9603] with the aim of reducing the PCEP message exchanges | |||
implementation. | and simplifying implementation. | |||
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 BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
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 | |||
This document uses the following terms defined in [RFC5440]: ERO, | This document uses the following terms defined in [RFC5440]: | |||
PCC, PCE, PCEP Peer, and PCEP speaker. | ||||
This document uses the following term defined in [RFC3031]: LSP. | * Explicit Route Object (ERO) | |||
This document uses the following term defined in [RFC9552]: BGP-LS. | * Path Computation Client (PCC) | |||
The following terms are used in this document: | * Path Computation Element (PCE) | |||
* PCEP Peer | ||||
* PCEP speaker | ||||
This document uses the following term defined in [RFC3031]: | ||||
* Label Switched Path (LSP) | ||||
This document uses the following term defined in [RFC9552]: | ||||
* Border Gateway Protocol - Link State (BGP-LS) | ||||
The following other terms are used in this document: | ||||
Endpoint: The IPv4 or IPv6 endpoint address of an SR Policy, as | Endpoint: The IPv4 or IPv6 endpoint address of an SR Policy, as | |||
described in Section 2.1 of [RFC9256]. | described in Section 2.1 of [RFC9256]. | |||
Color: The 32-bit color of an SR Policy, as described in Section 2.1 | Color: The 32-bit color of an SR Policy, as described in Section 2.1 | |||
of [RFC9256]. | of [RFC9256]. | |||
Protocol-Origin: The protocol that was used to create a Candidate | Protocol-Origin: The protocol that was used to create a Candidate | |||
Path, as described in Section 2.3 of [RFC9256]. | Path, as described in Section 2.3 of [RFC9256]. | |||
Originator: A device that created a Candidate Path, as described in | Originator: A device that created a Candidate Path, as described in | |||
Section 2.4 of [RFC9256]. | Section 2.4 of [RFC9256]. | |||
Discriminator: Distinguishes Candidate Paths created by the same | Discriminator: Distinguishes Candidate Paths created by the same | |||
device, as described in Section 2.5 of [RFC9256]. | device, as described in Section 2.5 of [RFC9256]. | |||
Association Parameters: As described in [RFC8697], refers to the key | Association parameters: Refers to the key data that uniquely | |||
data that uniquely identifies an Association. | identifies an Association, as described in [RFC8697]. | |||
Association Information: As described in Section 6.1.4 of [RFC8697], | Association information: Refers to information related to | |||
refers to information related to Association Type. | Association Type, as described in Section 6.1.4 of [RFC8697]. | |||
SR Policy LSP: An LSP setup using Path Setup Type [RFC8408] 1 | SR Policy LSP: An LSP setup using Path Setup Type [RFC8408] 1 (for | |||
(Segment Routing) or 3 (SRv6). | Segment Routing) or 3 (for SRv6). | |||
SR Policy Association: A new association type used to group | SR Policy Association (SRPA): A new Association Type used to group | |||
candidate paths belonging to same SR Policy. Depending on the | candidate paths belonging to the same SR Policy. Depending on the | |||
discussion context, it can refer to the PCEP ASSOCIATION object of | discussion context, it can refer to the PCEP ASSOCIATION object of | |||
SR Policy type or to a group of LSPs that belong to the | an SR Policy type or to a group of LSPs that belong to the | |||
association. | association. | |||
The base PCEP specification [RFC4655] originally defined the use of | The base PCEP specification [RFC4655] originally defined the use of | |||
the PCE architecture for MPLS and GMPLS networks with LSPs | 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 path setup types such as SRv6 has been | |||
introduced [RFC9603]. The term "LSP" is used extensively in PCEP | introduced [RFC9603]. The term "LSP" is used extensively in PCEP | |||
specifications and, in the context of this document, refers to a | specifications, and in the context of this document, refers to a | |||
Candidate Path within an SR Policy, which may be an SRv6 path (still | Candidate Path within an SR Policy, which may be an SRv6 path (still | |||
represented using the LSP Object as specified in [RFC8231]. | represented using the LSP object as specified in [RFC8231]). | |||
3. Overview | 3. Overview | |||
The SR Policy is represented by a new type of PCEP Association, | The SR Policy is represented by a new type of PCEP Association, | |||
called the SR Policy Association (SRPA) (see Section 4). The SR | called the SR Policy Association (SRPA) (see Section 4). The SR | |||
Policy Candidate Paths of specific SR Policy are the LSPs within the | Policy Candidate Paths of a specific SR Policy are the LSPs within | |||
same SRPA. The extensions in this document specify the encoding of a | the same SRPA. The extensions in this document specify the encoding | |||
single segment list within an SR Policy Candidate Path. Encoding of | of a single segment list within an SR Policy Candidate Path. | |||
multiple segment lists is outside the scope of this document and | Encoding of multiple segment lists is outside the scope of this | |||
specified in [I-D.ietf-pce-multipath]. | document and is specified in [PCEP-MULTIPATH]. | |||
An SRPA carries three pieces of information: SR Policy Identifier, SR | An SRPA carries three pieces of information: SR Policy Identifier, SR | |||
Policy Candidate Path Identifier, and SR Policy Candidate Path | Policy Candidate Path Identifier, and SR Policy Candidate Path | |||
Attribute(s). | Attribute(s). | |||
This document also specifies some additional information that is not | This document also specifies some additional information that is not | |||
encoded as part of an SRPA: Computation Priority of the LSP, Explicit | encoded as part of an SRPA: computation priority of the LSP, Explicit | |||
Null Label Policy for the unlabeled IP packets and Drop-upon-invalid | Null Label Policy for the unlabeled IP packets and Drop-Upon-Invalid | |||
behavior for traffic steering when the LSP is operationally down (see | behavior for traffic steering when the LSP is operationally down (see | |||
Section 5). | Section 5). | |||
4. SR Policy Association (SRPA) | 4. SR Policy Association (SRPA) | |||
Per [RFC8697], LSPs are associated with other LSPs with which they | Per [RFC8697], LSPs are associated with other LSPs with which they | |||
interact by adding them to a common association group. An | interact by adding them to a common association group. An | |||
association group is uniquely identified by the combination of the | association group is uniquely identified by the combination of the | |||
following fields in the ASSOCIATION object (Section 6.1 of | following fields in the ASSOCIATION object (Section 6.1 of | |||
[RFC8697]): Association Type, Association ID, Association Source, and | [RFC8697]): Association Type, Association ID, Association Source, and | |||
(if present) Global Association Source, or Extended Association ID. | (if present) Global Association Source, or Extended Association ID. | |||
These fields are referred to as Association Parameters (Section 4.4). | These fields are referred to as "association parameters" | |||
(Section 4.4). | ||||
[RFC8697] specifies the ASSOCIATION Object with two Object-Types for | [RFC8697] specifies the ASSOCIATION object with two Object-Types for | |||
IPv4 and IPv6 which includes the field "Association Type". This | IPv4 and IPv6 that includes the field Association Type. This | |||
document defines a new Association type (6) "SR Policy Association" | document defines a new Association Type (6) "SR Policy Association" | |||
for SRPA. | for an SRPA. | |||
[RFC8697] specifies the mechanism for the capability advertisement of | [RFC8697] specifies the mechanism for the capability advertisement of | |||
the Association Types supported by a PCEP speaker by defining an | the Association Types supported by a PCEP speaker by defining an | |||
ASSOC-Type-List TLV to be carried within an OPEN object. This | ASSOC-Type-List TLV to be carried within an OPEN object. This | |||
capability exchange for the SR Policy Association Type MUST be done | capability exchange for the SRPA Type MUST be done before using the | |||
before using the SRPA. To that aim, a PCEP speaker MUST include the | SRPA. To that aim, a PCEP speaker MUST include the SRPA Type (6) in | |||
SRPA Type (6) in the ASSOC-Type-List TLV and MUST receive the same | the ASSOC-Type-List TLV and MUST receive the same from the PCEP peer | |||
from the PCEP peer before using the SRPA (Section 6.1). | before using the SRPA (Section 6.1). | |||
SRPA MUST be assigned for all SR Policy LSPs by PCEP speaker | An SRPA MUST be assigned for all SR Policy LSPs by the PCEP speaker | |||
originating the LSP if capability was advertised by both PCEP | originating the LSP if the capability was advertised by both PCEP | |||
speakers. If the above condition is not satisfied, then the | speakers. If the above condition is not satisfied, then the | |||
receiving PCEP speaker MUST send a PCErr message with Error-Type = 6 | receiving PCEP speaker MUST send a PCErr message with: | |||
"Mandatory Object Missing", Error-Value = TBD1 "Missing SR Policy | ||||
Association". | ||||
A given LSP MUST belong to at most one SRPA, since an SR Policy | * Error-Type = 6 "Mandatory Object Missing" | |||
* Error-value = 22 "Missing SR Policy Association" | ||||
A given LSP MUST belong to one SRPA at most, since an SR Policy | ||||
Candidate Path cannot belong to multiple SR Policies. If a PCEP | Candidate Path cannot belong to multiple SR Policies. If a PCEP | |||
speaker receives a PCEP message requesting to join more than one SRPA | speaker receives a PCEP message requesting to join more than one SRPA | |||
for the same LSP, then the PCEP speaker MUST send a PCErr message | for the same LSP, then the PCEP speaker MUST send a PCErr message | |||
with Error-Type = 26 "Association Error", Error-Value = 7 "Cannot | with: | |||
join the association group". | ||||
The existing behavior for the use of Binding SID with SR Policy is | * Error-Type = 26 "Association Error" | |||
already documented in [RFC9604]. If BSID value allocation failed, | ||||
because of conflict with BSID used by another policy, then PCEP peer | * Error-value = 7 "Cannot join the association group" | |||
MUST send a PCErr message with Error-Type = 32 "Binding label/SID | ||||
failure" and Error-value = 2 "Unable to allocate the specified | The existing behavior for the use of Binding SID (BSID) with an SR | |||
binding value". | Policy is already documented in [RFC9604]. If BSID value allocation | |||
failed because of conflict with the BSID used by another policy, then | ||||
the PCEP peer MUST send a PCErr message with: | ||||
* Error-Type = 32 "Binding label/SID failure" | ||||
* Error-value = 2 "Unable to allocate the specified binding value" | ||||
4.1. SR Policy Identifier | 4.1. SR Policy Identifier | |||
SR Policy Identifier uniquely identifies an SR Policy [RFC9256] | The SR Policy Identifier uniquely identifies an SR Policy [RFC9256] | |||
within the SR domain. SR Policy Identifier is assigned by PCEP peer | within the SR domain. The SR Policy Identifier is assigned by the | |||
originating the LSP and MUST be uniform across all the PCEP sessions. | PCEP peer originating the LSP and MUST be uniform across all the PCEP | |||
Candidate Paths within an SR Policy MUST carry the same SR Policy | sessions. Candidate Paths within an SR Policy MUST carry the same SR | |||
Identifiers in their SRPAs. Candidate Paths within an SR Policy MUST | Policy Identifiers in their SRPAs. Candidate Paths within an SR | |||
NOT change their SR Policy Identifiers for the lifetime of the PCEP | Policy MUST NOT change their SR Policy Identifiers for the lifetime | |||
session. If the above conditions are not satisfied, the receiving | of the PCEP session. If the above conditions are not satisfied, the | |||
PCEP speaker MUST send a PCEP Error (PCErr) message with Error-Type = | receiving PCEP speaker MUST send a PCEP Error (PCErr) message with: | |||
26 "Association Error" and Error Value = 20 "SR Policy Identifier | ||||
Mismatch". SR Policy Identifier consists of: | * Error-Type = 26 "Association Error" | |||
* Error-value = 20 "SR Policy Identifier Mismatch" | ||||
The SR Policy Identifier consists of: | ||||
* Headend router where the SR Policy originates. | * Headend router where the SR Policy originates. | |||
* Color of the SR Policy ([RFC9256], Section 2.1). | * Color of the SR Policy ([RFC9256], Section 2.1). | |||
* Endpoint of the SR Policy ([RFC9256], Section 2.1). | * Endpoint of the SR Policy ([RFC9256], Section 2.1). | |||
4.2. SR Policy Candidate Path Identifier | 4.2. SR Policy Candidate Path Identifier | |||
SR Policy Candidate Path Identifier uniquely identifies the SR Policy | The SR Policy Candidate Path Identifier uniquely identifies the SR | |||
Candidate Path within the context of an SR Policy. SR Policy | Policy Candidate Path within the context of an SR Policy. The SR | |||
Candidate Path Identifier is assigned by PCEP peer originating the | Policy Candidate Path Identifier is assigned by the PCEP peer | |||
LSP. Candidate Paths within an SR Policy MUST NOT change their SR | originating the LSP. Candidate Paths within an SR Policy MUST NOT | |||
Policy Candidate Path Identifiers for the lifetime of the PCEP | change their SR Policy Candidate Path Identifiers for the lifetime of | |||
session. Two or more Candidate Paths within an SR Policy MUST NOT | the PCEP session. Two or more Candidate Paths within an SR Policy | |||
carry same SR Policy Candidate Path Identifiers in their SRPAs. If | MUST NOT carry the same SR Policy Candidate Path Identifiers in their | |||
the above conditions are not satisfied, the PCEP speaker MUST send a | SRPAs. If the above conditions are not satisfied, the PCEP speaker | |||
PCErr message with Error-Type = 26 "Association Error" and Error | MUST send a PCErr message with: | |||
Value = 21 "SR Policy Candidate Path Identifier Mismatch". SR Policy | ||||
Candidate Path Identifier consists of: | ||||
* Protocol Origin ([RFC9256], Section 2.3). | * Error-Type = 26 "Association Error" | |||
* Originator ([RFC9256], Section 2.4). | * Error-value = 21 "SR Policy Candidate Path Identifier Mismatch" | |||
* Discriminator ([RFC9256], Section 2.5). | The SR Policy Candidate Path Identifier consists of: | |||
* Protocol-Origin ([RFC9256], Section 2.3) | ||||
* Originator ([RFC9256], Section 2.4) | ||||
* Discriminator ([RFC9256], Section 2.5) | ||||
4.3. SR Policy Candidate Path Attributes | 4.3. SR Policy Candidate Path Attributes | |||
SR Policy Candidate Path Attributes carry optional, non-key | SR Policy Candidate Path Attributes carry optional, non-key | |||
information about a Candidate Path and MAY change during the lifetime | information about a Candidate Path and MAY change during the lifetime | |||
of an LSP. SR Policy Candidate Path Attributes consists of: | of an LSP. SR Policy Candidate Path Attributes consist of: | |||
* Candidate Path preference ([RFC9256], Section 2.7). | * Candidate Path preference ([RFC9256], Section 2.7) | |||
* Candidate Path name ([RFC9256], Section 2.6). | * Candidate Path name ([RFC9256], Section 2.6) | |||
* SR Policy name ([RFC9256], Section 2.1). | * SR Policy name ([RFC9256], Section 2.1) | |||
4.4. Association Parameters | 4.4. Association Parameters | |||
Per Section 2.1 of [RFC9256], an SR Policy is identified through the | Per Section 2.1 of [RFC9256], an SR Policy is identified through the | |||
<headend, color, endpoint> tuple. | <Headend, Color, Endpoint> tuple. | |||
The Association Parameters consists of: | The association parameters consist of: | |||
* Association Type: Set to 6 "SR Policy Association". | Association Type: Set to 6 "SR Policy Association". | |||
* Association Source (IPv4/IPv6): Set to the headend value of the SR | Association Source (IPv4/IPv6): Set to the headend value of the SR | |||
Policy, as defined in [RFC9256] Section 2.1. | Policy, as defined in [RFC9256], Section 2.1. | |||
* Association ID (16-bit): Always set to the numeric value "1". | Association ID (16 bit): Always set to the numeric value 1. | |||
* Extended Association ID TLV: Mandatory TLV for SR Policy | Extended Association ID TLV: Mandatory TLV for an SRPA. Encodes the | |||
Association. Encodes the Color and Endpoint of the SR Policy | Color and Endpoint of the SR Policy (Figure 1). | |||
(Figure 1). | ||||
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 = 31 | Length = 8 or 20 | | | Type = 31 | Length = 8 or 20 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Color | | | Color | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Endpoint ~ | ~ Endpoint ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: Extended Association ID TLV Format | Figure 1: Extended Association ID TLV Format | |||
Type: Extended Association ID TLV, type = 31 [RFC8697]. | Type: 31 for the Extended Association ID TLV [RFC8697]. | |||
Length: 8 octets if IPv4 address or 20 octets if IPv6 address is | Length: 8 octets if IPv4 address or 20 octets if IPv6 address is | |||
encoded in the Endpoint field. | encoded in the Endpoint field. | |||
Color: unsigned non-zero 32-bit integer value, SR Policy color per | Color: Unsigned non-zero 32-bit integer value, SR Policy color | |||
Section 2.1 of [RFC9256]. | per Section 2.1 of [RFC9256]. | |||
Endpoint: can be either IPv4 (4 octets) or IPv6 address (16 octets). | Endpoint: Can be either IPv4 (4 octets) or IPv6 address (16 | |||
This value MAY be different from the one contained in the Destination | octets). This value MAY be different from the one contained in | |||
address field in the END-POINTS object, or in the Tunnel Endpoint | the Destination address field in the END-POINTS object, or in | |||
Address field in the LSP-IDENTIFIERS TLV (Section 2.1 of [RFC9256]). | the Tunnel Endpoint Address field in the LSP-IDENTIFIERS TLV | |||
(Section 2.1 of [RFC9256]). | ||||
If a PCEP speaker receives an SRPA object whose Association | If a PCEP speaker receives an SRPA object whose association | |||
Parameters do not follow the above specification, then the PCEP | parameters do not follow the above specification, then the PCEP | |||
speaker MUST send a PCErr message with Error-Type = 26 "Association | speaker MUST send a PCErr message with: | |||
Error", Error-Value = 20 "SR Policy Identifier Mismatch". | ||||
The encoding choice of the Association Parameters in this way is | * Error-Type = 26 "Association Error" | |||
* Error-value = 20 "SR Policy Identifier Mismatch" | ||||
The encoding choice of the association parameters in this way is | ||||
meant to guarantee that there is no possibility of a race condition | meant to guarantee that there is no possibility of a race condition | |||
when multiple PCEP speakers want to associate the same SR Policy at | when multiple PCEP speakers want to associate the same SR Policy at | |||
the same time. By adhering to this format, all PCEP speakers come up | the same time. By adhering to this format, all PCEP speakers come up | |||
with the same Association Parameters independently of each other | with the same association parameters independently of each other | |||
based on the SR Policy parameters [RFC9256]. | based on the SR Policy parameters [RFC9256]. | |||
The last hop of a computed SR Policy Candidate Path MAY differ from | The last hop of a computed SR Policy Candidate Path MAY differ from | |||
the Endpoint contained in the <headend, color, endpoint> tuple. An | the Endpoint contained in the <Headend, Color, Endpoint> tuple. An | |||
example use case is to terminate the SR Policy before reaching the | example use case is to terminate the SR Policy before reaching the | |||
Endpoint and have decapsulated traffic be forwarded the rest of the | Endpoint and have decapsulated traffic be forwarded the rest of the | |||
path to the Endpoint node using the native Interior Gateway Protocol | path to the Endpoint node using the native Interior Gateway Protocol | |||
(IGP) path(s). In this example, the destination of the SR Policy | (IGP) path(s). In this example, the destination of the SR Policy | |||
Candidate Paths will be some node before the Endpoint, but the | Candidate Paths will be some node before the Endpoint, but the | |||
Endpoint value is still used at the headend to steer traffic with | Endpoint value is still used at the headend to steer traffic with | |||
that Endpoint IP address into the SR Policy. The Destination of the | that Endpoint IP address into the SR Policy. The Destination of the | |||
SR Policy Candidate Path is signaled using the END-POINTS object and/ | SR Policy Candidate Path is signaled using the END-POINTS object and/ | |||
or LSP-IDENTIFIERS TLV, per the usual PCEP procedure. When neither | or the LSP-IDENTIFIERS TLV, per the usual PCEP procedure. When | |||
the END-POINTS object nor LSP-IDENTIFIERS TLV is present, the PCEP | neither the END-POINTS object nor the LSP-IDENTIFIERS TLV is present, | |||
speaker MUST extract the destination from the Endpoint field in the | the PCEP speaker MUST extract the destination from the Endpoint field | |||
SRPA Extended Association ID TLV. | in the SRPA Extended Association ID TLV. | |||
SR Policy with Color-Only steering is signaled with the Endpoint | SR Policy with Color-Only steering is signaled with the Endpoint | |||
value set to unspecified, i.e., 0.0.0.0 for IPv4 or :: for IPv6, per | value set to unspecified, i.e., 0.0.0.0 for IPv4 or :: for IPv6, per | |||
Section 8.8. of [RFC9256]. | Section 8.8 of [RFC9256]. | |||
4.5. Association Information | 4.5. Association Information | |||
The SRPA object may carry the following TLVs: | The SRPA object may carry the following TLVs: | |||
* SRPOLICY-POL-NAME TLV (Section 4.5.1): (optional) encodes the SR | SRPOLICY-POL-NAME TLV (Section 4.5.1): (optional) encodes the SR | |||
Policy Name string. | Policy Name string. | |||
* SRPOLICY-CPATH-ID TLV (Section 4.5.2): (mandatory) encodes the SR | SRPOLICY-CPATH-ID TLV (Section 4.5.2): (mandatory) encodes the SR | |||
Policy Candidate Path Identifier. | Policy Candidate Path Identifier. | |||
* SRPOLICY-CPATH-NAME TLV (Section 4.5.3): (optional) encodes the SR | SRPOLICY-CPATH-NAME TLV (Section 4.5.3): (optional) encodes the SR | |||
Policy Candidate Path string name. | Policy Candidate Path string name. | |||
* SRPOLICY-CPATH-PREFERENCE TLV (Section 4.5.4): (optional) encodes | SRPOLICY-CPATH-PREFERENCE TLV (Section 4.5.4): (optional) encodes | |||
the SR Policy Candidate Path preference value. | the SR Policy Candidate Path preference value. | |||
When a mandatory TLV is missing from an SRPA object, the PCEP speaker | When a mandatory TLV is missing from an SRPA object, the PCEP speaker | |||
MUST send a PCErr message with Error-Type = 6 "Mandatory Object | MUST send a PCErr message with: | |||
Missing", Error-Value = 21 "Missing SR Policy Mandatory TLV". | ||||
* Error-Type = 6 "Mandatory Object Missing" | ||||
* Error-value = 21 "Missing SR Policy Mandatory TLV" | ||||
Only one TLV instance of each TLV type can be carried in an SRPA | Only one TLV instance of each TLV type can be carried in an SRPA | |||
object, and only the first occurrence is processed. Any others MUST | object, and only the first occurrence is processed. Any others MUST | |||
be silently ignored. | be silently ignored. | |||
4.5.1. SR Policy Name TLV | 4.5.1. SRPOLICY-POL-NAME TLV | |||
The SRPOLICY-POL-NAME TLV (Figure 2) is an optional TLV for the SRPA | The SRPOLICY-POL-NAME TLV (Figure 2) is an optional TLV for the SRPA | |||
object. It is RECOMMENDED that the size of the name for the SR | object. It is RECOMMENDED that the size of the name for the SR | |||
Policy is limited to 255 bytes. Implementations MAY choose to | Policy is limited to 255 bytes. Implementations MAY choose to | |||
truncate long names to 255 bytes to simplify interoperability with | truncate long names to 255 bytes to simplify interoperability with | |||
other protocols. | other protocols. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ SR Policy Name ~ | ~ SR Policy Name ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: SRPOLICY-POL-NAME TLV Format | Figure 2: SRPOLICY-POL-NAME TLV Format | |||
Type: 56 for "SRPOLICY-POL-NAME" TLV. | Type: 56 for the SRPOLICY-POL-NAME TLV. | |||
Length: indicates the length of the value portion of the TLV in | Length: Indicates the length of the value portion of the TLV in | |||
octets and MUST be greater than 0. The TLV MUST be zero-padded so | octets and MUST be greater than 0. The TLV MUST be zero-padded so | |||
that the TLV is 4-octet aligned. Padding is not included in the | that the TLV is 4-octet aligned. Padding is not included in the | |||
Length field. | Length field. | |||
SR Policy Name: SR Policy name, as defined in Section 2.1 of | SR Policy Name: SR Policy name, as defined in Section 2.1 of | |||
[RFC9256]. It MUST be a string of printable ASCII [RFC0020] | [RFC9256]. It MUST be a string of printable ASCII [RFC0020] | |||
characters, without a NULL terminator. | characters, without a NULL terminator. | |||
4.5.2. SR Policy Candidate Path Identifier TLV | 4.5.2. SRPOLICY-CPATH-ID TLV | |||
The SRPOLICY-CPATH-ID TLV (Figure 3) is a mandatory TLV for the SRPA | The SRPOLICY-CPATH-ID TLV (Figure 3) is a mandatory TLV for the SRPA | |||
object. | object. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Proto. Origin | Reserved | | | Proto-Origin | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Originator ASN | | | Originator ASN | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Originator Address | | | Originator Address | | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Discriminator | | | Discriminator | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: SRPOLICY-CPATH-ID TLV Format | Figure 3: SRPOLICY-CPATH-ID TLV Format | |||
Type: 57 for "SRPOLICY-CPATH-ID" TLV. | Type: 57 for the SRPOLICY-CPATH-ID TLV. | |||
Length: 28. | Length: 28. | |||
Protocol Origin: 8-bit unsigned integer value that encodes the | Protocol-Origin: 8-bit unsigned integer value that encodes the | |||
protocol origin. The values of this field are specified in IANA | Protocol-Origin. The values of this field are specified in the | |||
registry "SR Policy Protocol Origin" under "Segment Routing" registry | IANA registry "SR Policy Protocol Origin" under the "Segment | |||
group, which was introduced in Section 8.4 of | Routing" registry group, which is introduced in Section 8.4 of | |||
[I-D.ietf-idr-bgp-ls-sr-policy]. Note that in the PCInitiate message | [ADV-SR-POLICY]. Note that in the PCInitiate message [RFC8281], | |||
[RFC8281], the Protocol Origin is always set to 10 - "PCEP (In PCEP | the Protocol-Origin is always set to 10 - "PCEP (In PCEP or when | |||
or when BGP-LS Producer is PCE)". The "SR Policy Protocol Origin" | BGP-LS Producer is PCE)". The "SR Policy Protocol Origin" IANA | |||
IANA registry includes a combination of values intended for use in | registry includes a combination of values intended for use in PCEP | |||
PCEP and BGP-LS. When the registry contains two variants of values | and BGP-LS. When the registry contains two variants of values | |||
associated with the mechanism or protocol used for provisioning of | associated with the mechanism or protocol used for provisioning of | |||
the Candidate Path, for example 1 - "PCEP" and 10 - "PCEP (In PCEP or | the Candidate Path, for example 1 - "PCEP" and 10 - "PCEP (In PCEP | |||
when BGP-LS Producer is PCE)", the "(In PCEP or when BGP-LS Producer | or when BGP-LS Producer is PCE)", the "(In PCEP or when BGP-LS | |||
is PCE)" variants MUST be used in PCEP. | Producer is PCE)", then variants MUST be used in PCEP. | |||
Reserved: This field MUST be set to zero on transmission and MUST be | Reserved: This field MUST be set to zero on transmission and MUST be | |||
ignored on receipt. | ignored on receipt. | |||
Originator Autonomous System Number (ASN): Represented as a 32-bit | Originator Autonomous System Number (ASN): Represented as a 32-bit | |||
unsigned integer value, part of the originator identifier, as | unsigned integer value, part of the originator identifier, as | |||
specified in Section 2.4 of [RFC9256]. When sending a PCInitiate | specified in Section 2.4 of [RFC9256]. When sending a PCInitiate | |||
message [RFC8281], the PCE is the originator of the Candidate Path. | message [RFC8281], the PCE is the originator of the Candidate | |||
If the PCE is configured with an ASN, then it MUST set it, otherwise | Path. If the PCE is configured with an ASN, then it MUST set it; | |||
the ASN is set to 0. | otherwise, the ASN is set to 0. | |||
Originator Address: Represented as a 128-bit value as specified in | Originator Address: Represented as a 128-bit value as specified in | |||
Section 2.4 of [RFC9256]. When sending a PCInitiate message, the PCE | Section 2.4 of [RFC9256]. When sending a PCInitiate message, the | |||
is acting as the originator and therefore MAY set this to an address | PCE is acting as the originator and therefore MAY set this to an | |||
that it owns. | address that it owns. | |||
Discriminator: 32-bit unsigned integer value that encodes the | Discriminator: 32-bit unsigned integer value that encodes the | |||
Discriminator of the Candidate Path, as specified in Section 2.5 of | Discriminator of the Candidate Path, as specified in Section 2.5 | |||
[RFC9256]. This is the field that mainly distinguishes different SR | of [RFC9256]. This is the field that mainly distinguishes | |||
Policy Candidate Paths, coming from the same originator. It is | different SR Policy Candidate Paths, coming from the same | |||
allowed to be any number in the 32-bit range. | originator. It is allowed to be any number in the 32-bit range. | |||
4.5.3. SR Policy Candidate Path Name TLV | 4.5.3. SRPOLICY-CPATH-NAME TLV | |||
The SRPOLICY-CPATH-NAME TLV (Figure 4) is an optional TLV for the | The SRPOLICY-CPATH-NAME TLV (Figure 4) is an optional TLV for the | |||
SRPA object. It is RECOMMENDED that the size of the name for the SR | SRPA object. It is RECOMMENDED that the size of the name for the SR | |||
Policy is limited to 255 bytes. Implementations MAY choose to | Policy is limited to 255 bytes. Implementations MAY choose to | |||
truncate long names to 255 bytes to simplify interoperability with | truncate long names to 255 bytes to simplify interoperability with | |||
other protocols. | other protocols. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ SR Policy Candidate Path Name ~ | ~ SR Policy Candidate Path Name ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: SRPOLICY-CPATH-NAME TLV Format | Figure 4: SRPOLICY-CPATH-NAME TLV Format | |||
Type: 58 for "SRPOLICY-CPATH-NAME" TLV. | Type: 58 for the SRPOLICY-CPATH-NAME TLV. | |||
Length: indicates the length of the value portion of the TLV in | Length: Indicates the length of the value portion of the TLV in | |||
octets and MUST be greater than 0. The TLV MUST be zero-padded so | octets and MUST be greater than 0. The TLV MUST be zero-padded so | |||
that the TLV is 4-octet aligned. Padding is not included in the | that the TLV is 4-octet aligned. Padding is not included in the | |||
Length field. | Length field. | |||
SR Policy Candidate Path Name: SR Policy Candidate Path Name, as | SR Policy Candidate Path Name: SR Policy Candidate Path Name, as | |||
defined in Section 2.6 of [RFC9256]. It MUST be a string of | defined in Section 2.6 of [RFC9256]. It MUST be a string of | |||
printable ASCII characters, without a NULL terminator. | printable ASCII characters, without a NULL terminator. | |||
4.5.4. SR Policy Candidate Path Preference TLV | 4.5.4. SRPOLICY-CPATH-PREFERENCE TLV | |||
The SRPOLICY-CPATH-PREFERENCE TLV (Figure 5) is an optional TLV for | The SRPOLICY-CPATH-PREFERENCE TLV (Figure 5) is an optional TLV for | |||
the SRPA object. If the TLV is absent, then default Preference value | the SRPA object. If the TLV is absent, then the default Preference | |||
is 100, per Section 2.7 of [RFC9256]. | value is 100, per Section 2.7 of [RFC9256]. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Preference | | | Preference | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: SRPOLICY-CPATH-PREFERENCE TLV Format | Figure 5: SRPOLICY-CPATH-PREFERENCE TLV Format | |||
Type: 59 for "SRPOLICY-CPATH-PREFERENCE" TLV. | Type: 59 for the SRPOLICY-CPATH-PREFERENCE TLV. | |||
Length: 4. | Length: 4. | |||
Preference: 32-bit unsigned integer value that encodes preference of | Preference: 32-bit unsigned integer value that encodes the | |||
the Candidate Path as defined in Section 2.7 of [RFC9256]. | preference of the Candidate Path as defined in Section 2.7 of | |||
[RFC9256]. | ||||
5. SR Policy Signaling Extensions | 5. SR Policy Signaling Extensions | |||
This section introduces mechanisms described for SR Policies in | This section introduces mechanisms described for SR Policies in | |||
[RFC9256] to PCEP. These extensions do not make use of the SRPA for | [RFC9256] to PCEP. These extensions do not make use of the SRPA for | |||
signaling in PCEP therefore cannot rely on the Association capability | signaling in PCEP, and therefore cannot rely on the Association | |||
negotiation in ASSOC-Type-List TLV and separate capability | capability negotiation in the ASSOC-Type-List TLV and separate | |||
negotiation is required. | capability negotiation is required. | |||
This document specifies four new TLVs to be carried in the OPEN or | This document specifies four new TLVs to be carried in the OPEN or | |||
LSP object. Only one TLV instance of each type can be carried, and | LSP object. Only one TLV instance of each type can be carried, and | |||
only the first occurrence is processed. Any others MUST be ignored. | only the first occurrence is processed. Any others MUST be ignored. | |||
5.1. SR Policy Capability TLV | 5.1. SRPOLICY-CAPABILITY TLV | |||
The SRPOLICY-CAPABILITY TLV (Figure 6) is a TLV for the OPEN object. | The SRPOLICY-CAPABILITY TLV (Figure 6) is a TLV for the OPEN object. | |||
It is used at session establishment to learn the peer's capabilities | It is used at session establishment to learn the peer's capabilities | |||
with respect to SR Policy. Implementations that support SR Policy | with respect to SR Policy. Implementations that support SR Policy | |||
MUST include SRPOLICY-CAPABILITY TLV in the OPEN object if the | MUST include the SRPOLICY-CAPABILITY TLV in the OPEN object if the | |||
extension is enabled. In addition, the ASSOC-Type-List TLV | extension is enabled. In addition, the ASSOC-Type-List TLV | |||
containing SRPA Type (6) MUST be present in the OPEN object, as | containing SRPA Type (6) MUST be present in the OPEN object, as | |||
specified in Section 4. | specified in Section 4. | |||
If a PCEP speaker receives SRPA but the SRPOLICY-CAPABILITY TLV is | If a PCEP speaker receives an SRPA but the SRPOLICY-CAPABILITY TLV is | |||
not exchanged, then the PCEP speaker MUST send a PCErr message with | not exchanged, then the PCEP speaker MUST send a PCErr message with | |||
Error- Type = 10 ("Reception of an invalid object") and Error-Value = | Error-Type = 10 "Reception of an invalid object" and Error-value = 44 | |||
TBD2 ("Missing SRPOLICY-CAPABILITY TLV") and MUST then close the PCEP | "Missing SRPOLICY-CAPABILITY TLV" and MUST then close the PCEP | |||
session. | session. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags |L| |I|E|P| | | Flags |L| |I|E|P| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: SRPOLICY-CAPABILITY TLV Format | Figure 6: SRPOLICY-CAPABILITY TLV Format | |||
Type: 71 for "SRPOLICY-CAPABILITY" TLV. | Type: 71 for the SRPOLICY-CAPABILITY TLV. | |||
Length: 4. | ||||
Flags (32 bits): | Length: 4. | |||
The following flags are currently defined: | Flags: 32 bits. The following flags are currently defined: | |||
* P-flag (Computation Priority): If set to '1' by a PCEP speaker, | P-flag (Computation Priority): If set to 1 by a PCEP speaker, the | |||
the P flag indicates that the PCEP speaker supports the handling | P-flag indicates that the PCEP speaker supports the handling of | |||
of COMPUTATION-PRIORITY TLV for the SR Policy (Section 5.2.1). If | the COMPUTATION-PRIORITY TLV for the SR Policy (Section 5.2.1). | |||
this flag is set to 0, then the receiving PCEP speaker MUST NOT | If this flag is set to 0, then the receiving PCEP speaker MUST | |||
send the COMPUTATION-PRIORITY TLV and MUST ignore it on receipt. | NOT send the COMPUTATION-PRIORITY TLV and MUST ignore it on | |||
receipt. | ||||
* E-Flag (Explicit NULL Label Policy): If set to '1' by a PCEP | E-flag (Explicit NULL Label Policy): If set to 1 by a PCEP | |||
speaker, the E flag indicates that the PCEP speaker supports the | speaker, the E-flag indicates that the PCEP speaker supports | |||
handling of Explicit Null Label Policy (ENLP) TLV for the SR | the handling of the Explicit Null Label Policy (ENLP) TLV for | |||
Policy (Section 5.2.2). If this flag is set to 0, then the | the SR Policy (Section 5.2.2). If this flag is set to 0, then | |||
receiving PCEP speaker MUST NOT send the ENLP TLV and MUST ignore | the receiving PCEP speaker MUST NOT send the ENLP TLV and MUST | |||
it on receipt. | ignore it on receipt. | |||
* I-Flag (Invalidation): If set to '1' by a PCEP speaker, the I flag | I-flag (Invalidation): If set to 1 by a PCEP speaker, the I-flag | |||
indicates that the PCEP speaker supports the handling of | indicates that the PCEP speaker supports the handling of the | |||
INVALIDATION TLV for the SR Policy (Section 5.2.3). If this flag | INVALIDATION TLV for the SR Policy (Section 5.2.3). If this | |||
is set to 0, then the receiving PCEP speaker MUST NOT send the | flag is set to 0, then the receiving PCEP speaker MUST NOT send | |||
INVALIDATION TLV and MUST ignore it on receipt. | the INVALIDATION TLV and MUST ignore it on receipt. | |||
* L-Flag (Stateless Operation): If set to '1' by a PCEP speaker, the | L-flag (Stateless Operation): If set to 1 by a PCEP speaker, the | |||
L flag indicates that the PCEP speaker supports the stateless | L-flag indicates that the PCEP speaker supports the stateless | |||
(PCReq/PCRep) operations for the SR Policy (Section 5.3). If the | (PCReq/PCRep) operations for the SR Policy (Section 5.3). If | |||
PCE set this flag to 0, then the PCC MUST NOT send PCReq messages | the PCE set this flag to 0, then the PCC MUST NOT send PCReq | |||
to this PCE for the SR Policy. | messages to this PCE for the SR Policy. | |||
Unassigned bits MUST be set to '0' on transmission and MUST be | Unassigned bits MUST be set to 0 on transmission and MUST be ignored | |||
ignored on receipt. More flags can be assigned in the future per | on receipt. More flags can be assigned in the future per | |||
(Section 6.7). | (Section 6.7). | |||
5.2. LSP Object TLVs | 5.2. LSP Object TLVs | |||
This section is introducing three new TLVs to be carried in LSP | This section is introducing three new TLVs to be carried in the LSP | |||
object introduced in Section 7.3 of [RFC8231]. | object introduced in Section 7.3 of [RFC8231]. | |||
5.2.1. Computation Priority TLV | 5.2.1. COMPUTATION-PRIORITY TLV | |||
The COMPUTATION-PRIORITY TLV (Figure 7) is an optional TLV. It is | The COMPUTATION-PRIORITY TLV (Figure 7) is an optional TLV. It is | |||
used to signal the numerical computation priority, as specified in | used to signal the numerical computation priority, as specified in | |||
Section 2.12 of [RFC9256]. If the TLV is absent from the LSP object | Section 2.12 of [RFC9256]. If the TLV is absent from the LSP object, | |||
and the P-flag in the SRPOLICY-CAPABILITY TLV is set to 1, a default | and the P-flag in the SRPOLICY-CAPABILITY TLV is set to 1, a default | |||
Priority value of 128 is used. | Priority value of 128 is used. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Priority | Reserved | | | Priority | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 7: COMPUTATION-PRIORITY TLV Format | Figure 7: COMPUTATION-PRIORITY TLV Format | |||
Type: 68 for "COMPUTATION-PRIORITY" TLV. | Type: 68 for the COMPUTATION-PRIORITY TLV. | |||
Length: 4. | Length: 4. | |||
Priority: 8-bit unsigned integer value that encodes numerical | Priority: 8-bit unsigned integer value that encodes numerical | |||
priority with which this LSP is to be recomputed by the PCE upon | priority with which this LSP is to be recomputed by the PCE upon | |||
topology change. Lowest value is the highest priority. | topology change. The lowest value is the highest priority. | |||
Reserved: This field MUST be set to zero on transmission and MUST be | Reserved: This field MUST be set to zero on transmission and MUST be | |||
ignored on receipt. | ignored on receipt. | |||
5.2.2. Explicit Null Label Policy (ENLP) TLV | 5.2.2. Explicit Null Label Policy (ENLP) TLV | |||
To steer an unlabeled IP packet into an SR policy for the MPLS data | To steer an unlabeled IP packet into an SR Policy for the MPLS data | |||
plane, it is necessary to push a label stack of one or more labels on | plane, it is necessary to push a label stack of one or more labels on | |||
that packet. The Explicit NULL Label Policy (ENLP) TLV is an | that packet. The Explicit NULL Label Policy (ENLP) TLV is an | |||
optional TLV for the LSP object used to indicate whether an Explicit | optional TLV for the LSP object used to indicate whether an Explicit | |||
NULL Label [RFC3032] must be pushed on an unlabeled IP packet before | NULL Label [RFC3032] must be pushed on an unlabeled IP packet before | |||
any other labels. The contents of this TLV are used by the SR Policy | any other labels. The contents of this TLV are used by the SR Policy | |||
Manager as described in Section 4.1 of [RFC9256]. If an ENLP TLV is | manager as described in Section 4.1 of [RFC9256]. If an ENLP TLV is | |||
not present, the decision of whether to push an Explicit NULL label | not present, the decision of whether to push an Explicit NULL label | |||
on a given packet is a matter of local configuration. Note that | on a given packet is a matter of local configuration. Note that | |||
Explicit Null is currently only defined for SR-MPLS and not for SRv6. | Explicit Null is currently only defined for SR-MPLS and not for SRv6. | |||
Therefore, the receiving PCEP speaker MUST ignore the presence of | Therefore, the receiving PCEP speaker MUST ignore the presence of | |||
this TLV for SRv6 Policies. | this TLV for SRv6 Policies. | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ENLP | Reserved | | | ENLP | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 8: Explicit Null Label Policy (ENLP) TLV Format | Figure 8: Explicit Null Label Policy (ENLP) TLV Format | |||
Type: 69 for "ENLP" TLV. | Type: 69 for the ENLP TLV. | |||
Length: 4. | Length: 4. | |||
ENLP (Explicit NULL Label Policy): 8-bit unsigned integer value that | ENLP: Explicit NULL Label Policy. 8-bit unsigned integer value that | |||
indicates whether Explicit NULL labels are to be pushed on unlabeled | indicates whether Explicit NULL labels are to be pushed on | |||
IP packets that are being steered into a given SR policy. The values | unlabeled IP packets that are being steered into a given SR | |||
of this field are specified in IANA registry "SR Policy ENLP Values" | Policy. The values of this field are specified in the IANA | |||
under "Segment Routing" registry group, which was introduced in | registry "SR Policy ENLP Values" under the "Segment Routing" | |||
Section 6.10 of [I-D.ietf-idr-sr-policy-safi]. | registry group, which was introduced in Section 6.10 of [RFC9830]. | |||
Reserved: This field MUST be set to zero on transmission and MUST be | Reserved: This field MUST be set to zero on transmission and MUST be | |||
ignored on receipt. | ignored on receipt. | |||
The ENLP unassigned values may be used for future extensions and | The ENLP unassigned values may be used for future extensions, and | |||
implementations MUST ignore the ENLP TLV with unrecognized values. | implementations MUST ignore the ENLP TLV with unrecognized values. | |||
The behavior signaled in this TLV MAY be overridden by local | The behavior signaled in this TLV MAY be overridden by local | |||
configuration by the network operator based on their deployment | configuration by the network operator based on their deployment | |||
requirements. The Section 4.1 of [RFC9256] describes the behavior on | requirements. Section 4.1 of [RFC9256] describes the behavior on the | |||
the headend for the handling of the explicit null label. | headend for the handling of the explicit null label. | |||
5.2.3. Invalidation TLV | 5.2.3. INVALIDATION TLV | |||
The INVALIDATION TLV (Figure 9) is an optional TLV. This TLV is used | The INVALIDATION TLV (Figure 9) is an optional TLV. This TLV is used | |||
to control traffic steering into an LSP when the LSP is operationally | to control traffic steering into an LSP when the LSP is operationally | |||
down/invalid. In the context of SR Policy, this TLV facilitates the | down/invalid. In the context of SR Policy, this TLV facilitates the | |||
Drop-upon-invalid behavior, specified in Section 8.2 of [RFC9256]. | Drop-Upon-Invalid behavior, specified in Section 8.2 of [RFC9256]. | |||
Normally, if the LSP is down/invalid then it stops attracting | Normally, if the LSP is down/invalid then it stops attracting | |||
traffic; traffic that would have been destined for that LSP is | traffic; traffic that would have been destined for that LSP is | |||
redirected somewhere else, such as via IGP or another LSP. The Drop- | redirected somewhere else, such as via IGP or another LSP. The Drop- | |||
upon-invalid behavior specifies that the LSP keeps attracting traffic | Upon-Invalid behavior specifies that the LSP keeps attracting traffic | |||
and the traffic has to be dropped at the headend. Such an LSP is | and the traffic has to be dropped at the headend. Such an LSP is | |||
said to be "in drop state". While in the drop state, the LSP | said to be "in drop state". While in the drop state, the LSP | |||
operational state is "UP", as indicated by the O-flag in the LSP | operational state is "UP", as indicated by the O-flag in the LSP | |||
object. However, the ERO object MAY be empty, if no valid path has | object. However, the ERO object MAY be empty if no valid path has | |||
been computed. | been computed. | |||
The INVALIDATION TLV is used in both directions between PCEP peers: | The INVALIDATION TLV is used in both directions between PCEP peers: | |||
* PCE -> PCC: PCE specifies to the PCC whether to enable or disable | * PCE -> PCC: The PCE specifies to the PCC whether to enable or | |||
Drop-upon-invalid (Config). | disable Drop-Upon-Invalid (Config). | |||
* PCC -> PCE: PCC reports the current setting of the Drop-upon- | * PCC -> PCE: The PCC reports the current setting of the Drop-Upon- | |||
invalid (Config) and also whether the LSP is currently in the drop | Invalid (Config) and also whether the LSP is currently in the drop | |||
state (Oper). | state (Oper). | |||
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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Oper | Config | Reserved | | | Oper | Config | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 9: INVALIDATION TLV Format | Figure 9: INVALIDATION TLV Format | |||
Type: 70 for "INVALIDATION" TLV. | Type: 70 for the INVALIDATION TLV. | |||
Length: 4. | Length: 4. | |||
Oper: An 8-bit flag field that encodes the operational state of the | Oper: An 8-bit flag field that encodes the operational state of the | |||
LSP. It MUST be set to 0 by the PCE when sending and MUST be ignored | LSP. It MUST be set to 0 by the PCE when sending and MUST be | |||
by the PCC upon receipt. See Section 6.5 for IANA information. | ignored by the PCC upon receipt. See Section 6.5 for IANA | |||
information. | ||||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |D| | | |D| | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 10: Oper state of Drop-upon-invalid feature | Figure 10: Oper State of Drop-Upon-Invalid Feature | |||
* D: dropping - the LSP is actively dropping traffic as a result of | * D: Dropping - the LSP is actively dropping traffic as a | |||
Drop-upon-invalid behavior being activated. | result of Drop-Upon-Invalid behavior being activated. | |||
* The unassigned bits in the Flag octet MUST be set to zero upon | * The unassigned bits in the Flag octet MUST be set to zero | |||
transmission and MUST be ignored upon receipt. | upon transmission and MUST be ignored upon receipt. | |||
Config: An 8-bit flag field that encodes the configuration of the | Config: An 8-bit flag field that encodes the configuration of the | |||
LSP. See Section 6.6 for IANA information. | LSP. See Section 6.6 for IANA information. | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |D| | | |D| | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Figure 11: Config state of Drop-upon-invalid feature | Figure 11: Config State of Drop-Upon-Invalid Feature | |||
* D: drop enabled - the Candidate Path has Drop-upon-invalid feature | * D: Drop enabled - the Candidate Path has Drop-Upon-Invalid | |||
enabled. | feature enabled. | |||
* The unassigned bits in the Flag octet MUST be set to zero upon | * The unassigned bits in the Flag octet MUST be set to zero | |||
transmission and MUST be ignored upon receipt. | upon transmission and MUST be ignored upon receipt. | |||
Reserved: This field MUST be set to zero on transmission and MUST be | Reserved: This field MUST be set to zero on transmission and MUST be | |||
ignored on receipt. | ignored on receipt. | |||
5.2.3.1. Drop-upon-invalid applies to SR Policy | 5.2.3.1. Drop-Upon-Invalid Applies to SR Policy | |||
The Drop-upon-invalid feature is somewhat special among the other SR | The Drop-Upon-Invalid feature is somewhat special among the other SR | |||
Policy features in the way that it is enabled/disabled. This feature | Policy features in the way that it is enabled/disabled. This feature | |||
is enabled only on the whole SR Policy, not on a particular Candidate | is enabled only on the whole SR Policy, not on a particular Candidate | |||
Path of that SR Policy, i.e., when any Candidate Path has Drop-upon- | Path of that SR Policy, i.e., when any Candidate Path has Drop-Upon- | |||
invalid enabled, it means that the whole SR Policy has the feature | Invalid enabled, it means that the whole SR Policy has the feature | |||
enabled. As stated in Section 8.1 of [RFC9256], an SR Policy is | enabled. As stated in Section 8.1 of [RFC9256], an SR Policy is | |||
invalid when all its Candidate Paths are invalid. | invalid when all its Candidate Paths are invalid. | |||
Once all the Candidate Paths of an SR Policy have become invalid, | Once all the Candidate Paths of an SR Policy have become invalid, | |||
then the SR Policy checks whether any of the Candidate Paths have | then the SR Policy checks whether any of the Candidate Paths have | |||
Drop-upon-invalid enabled. If so, the SR Policy enters the drop | Drop-Upon-Invalid enabled. If so, the SR Policy enters the drop | |||
state and "activates" the highest preference Candidate Path which has | state and "activates" the highest preference Candidate Path that has | |||
the Drop-upon-invalid enabled. Note that only one Candidate Path | the Drop-Upon-Invalid enabled. Note that only one Candidate Path | |||
needs to be reported to the PCE with the D (dropping) flag set. | needs to be reported to the PCE with the D (dropping) flag set. | |||
5.3. Update to RFC 8231 | 5.3. Updates to RFC 8231 | |||
Section 5.8.2 of [RFC8231], allows delegation of an LSP in | Section 5.8.2 of [RFC8231] allows delegation of an LSP in | |||
operationally down state, but at the same time mandates the use of | operationally down state, but at the same time mandates the use of | |||
PCReq before sending PCRpt. This document updates Section 5.8.2 of | PCReq before sending PCRpt. This document updates Section 5.8.2 of | |||
[RFC8231], by making that section of [RFC8231] not applicable to SR | [RFC8231], by making that section of [RFC8231] not applicable to SR | |||
Policy LSPs. Thus, when a PCC wants to delegate an SR Policy LSP, it | Policy LSPs. Thus, when a PCC wants to delegate an SR Policy LSP, it | |||
MAY proceed directly to sending PCRpt, without first sending PCReq | MAY proceed directly to sending PCRpt, without first sending PCReq | |||
and waiting for PCRep. This has the advantage of reducing the number | and waiting for PCRep. This has the advantage of reducing the number | |||
of PCEP messages and simplifying the implementation. | of PCEP messages and simplifying the implementation. | |||
Furthermore, a PCEP speaker is not required to support PCReq/PCRep at | Furthermore, a PCEP speaker is not required to support PCReq/PCRep at | |||
all for SR Policies. The PCEP speaker can indicate support for | all for SR Policies. The PCEP speaker can indicate support for | |||
PCReq/PCRep via the "L-Flag" in the SRPOLICY-CAPABILITY TLV (See | PCReq/PCRep via the L-flag in the SRPOLICY-CAPABILITY TLV (see | |||
Section 5.1). When this flag is cleared, or when the SRPOLICY- | Section 5.1). When this flag is cleared, or when the SRPOLICY- | |||
CAPABILITY TLV is absent, the given peer MUST NOT be sent PCReq/PCRep | CAPABILITY TLV is absent, the given peer MUST NOT be sent PCReq/PCRep | |||
messages for SR Policy LSPs. Conversely, when this flag is set, the | messages for SR Policy LSPs. Conversely, when this flag is set, the | |||
peer can receive and process PCReq/PCRep messages for SR Policy LSPs. | peer can receive and process PCReq/PCRep messages for SR Policy LSPs. | |||
The above applies only to SR Policy LSPs and does not affect other | The above applies only to SR Policy LSPs and does not affect other | |||
LSP types, such as RSVP-TE LSPs. For other LSP types, Section 5.8.2 | LSP types, such as RSVP-TE LSPs. For other LSP types, Section 5.8.2 | |||
of [RFC8231] continues to apply. | of [RFC8231] continues to apply. | |||
6. IANA Considerations | 6. IANA Considerations | |||
IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | |||
registry at <https://www.iana.org/assignments/pcep>. | registry at <https://www.iana.org/assignments/pcep>. | |||
6.1. Association Type | 6.1. Association Type | |||
This document defines a new association type: SR Policy Association. | This document defines a new Association Type: SR Policy Association. | |||
IANA is requested to confirm the following allocation in the | IANA has made the following assignment in the "ASSOCIATION Type | |||
"ASSOCIATION Type Field" registry within the "Path Computation | Field" registry within the "Path Computation Element Protocol (PCEP) | |||
Element Protocol (PCEP) Numbers" registry group: | Numbers" registry group: | |||
+-----------+-------------------------------------------+-----------+ | +======+=======================+===========+ | |||
| Type | Name | Reference | | | Type | Name | Reference | | |||
+-----------+-------------------------------------------+-----------+ | +======+=======================+===========+ | |||
| 6 | SR Policy Association | This.I-D | | | 6 | SR Policy Association | RFC 9862 | | |||
+-----------+-------------------------------------------+-----------+ | +------+-----------------------+-----------+ | |||
Table 1 | ||||
6.2. PCEP TLV Type Indicators | 6.2. PCEP TLV Type Indicators | |||
This document defines eight new TLVs for carrying additional | This document defines eight new TLVs for carrying additional | |||
information about SR Policy and SR Policy Candidate Paths. IANA is | information about SR Policy and SR Policy Candidate Paths. IANA has | |||
requested to confirm the following allocations in the existing "PCEP | made the following assignments in the existing "PCEP TLV Type | |||
TLV Type Indicators" registry as follows: | Indicators" registry: | |||
+-----------+-------------------------------------------+-----------+ | ||||
| Value | Description | Reference | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 56 | SRPOLICY-POL-NAME | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 57 | SRPOLICY-CPATH-ID | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 58 | SRPOLICY-CPATH-NAME | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 59 | SRPOLICY-CPATH-PREFERENCE | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 68 | COMPUTATION-PRIORITY | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 69 | EXPLICIT-NULL-LABEL-POLICY | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 70 | INVALIDATION | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 71 | SRPOLICY-CAPABILITY | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
6.3. PCEP Errors | ||||
This document defines one new Error-Value within the "Mandatory | ||||
Object Missing" Error-Type, two new Error-Values within the | ||||
"Association Error" Error-Type and one new Error-Value within the | ||||
"Reception of an invalid object". | ||||
IANA is requested to confirm the following allocations within the | ||||
"PCEP-ERROR Object Error Types and Values" registry of the "Path | ||||
Computation Element Protocol (PCEP) Numbers" registry group. | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| Error-Type | Meaning | Error-value | Reference | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| 6 | Mandatory Object | | [RFC5440] | | ||||
| | Missing | | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| | | 21: Missing SR | This.I-D | | ||||
| | | Policy Mandatory TLV | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| 26 | Association | | [RFC8697] | | ||||
| | Error | | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| | | 20: SR Policy | This.I-D | | ||||
| | | Identifers Mismatch | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| | | 21: SR Policy | This.I-D | | ||||
| | | Candidate Path | | | ||||
| | | Identifier Mismatch | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
IANA is requested to make new allocations within the "PCEP-ERROR | +=======+============================+===========+ | |||
Object Error Types and Values" registry of the "Path Computation | | Value | Description | Reference | | |||
Element Protocol (PCEP) Numbers" registry group. | +=======+============================+===========+ | |||
| 56 | SRPOLICY-POL-NAME | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 57 | SRPOLICY-CPATH-ID | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 58 | SRPOLICY-CPATH-NAME | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 59 | SRPOLICY-CPATH-PREFERENCE | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 68 | COMPUTATION-PRIORITY | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 69 | EXPLICIT-NULL-LABEL-POLICY | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 70 | INVALIDATION | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
| 71 | SRPOLICY-CAPABILITY | RFC 9862 | | ||||
+-------+----------------------------+-----------+ | ||||
+------------+------------------+-----------------------+-----------+ | Table 2 | |||
| Error-Type | Meaning | Error-value | Reference | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| 6 | Mandatory Object | | [RFC5440] | | ||||
| | Missing | | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| | | TBD1: Missing SR | This.I-D | | ||||
| | | Policy Association | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| 10 | Reception of an | | [RFC5440] | | ||||
| | invalid object | | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
| | | TBD2: Missing | This.I-D | | ||||
| | | SRPOLICY-CAPABILITY | | | ||||
| | | TLV | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
6.4. TE-PATH-BINDING TLV Flag field | 6.3. PCEP Errors | |||
An earlier version of this document added new bit within the "TE- | This document defines the following: | |||
PATH-BINDING TLV Flag field" registry of the "Path Computation | ||||
Element Protocol (PCEP) Numbers" registry group, which was also early | ||||
allocated by the IANA. | ||||
IANA is requested to mark the bit position as deprecated. | * one new Error-value within the "Mandatory Object Missing" Error- | |||
Type, | ||||
+------------+------------------------------------------+-----------+ | * two new Error-values within the "Association Error" Error-Type, | |||
| Bit position | Description | Reference | | and | |||
+--------------+----------------------------------------+-----------+ | ||||
| 1 | Deprecated (Specified-BSID-only) | This.I-D | | ||||
+--------------+----------------------------------------+-----------+ | ||||
6.5. SR Policy Invalidation Operational State | * one new Error-value within the "Reception of an invalid object". | |||
This document requests IANA to maintain a new registry under "Path | IANA has made the following assignments in the "PCEP-ERROR Object | |||
Computation Element Protocol (PCEP) Numbers" registry group. The new | Error Types and Values" registry of the "Path Computation Element | |||
registry is called "SR Policy Invalidation Operational Flags". New | Protocol (PCEP) Numbers" registry group. | |||
values are to be assigned by "IETF review" [RFC8126]. Each bit | ||||
should be tracked with the following qualities: | ||||
* Bit (counting from bit 0 as the most significant bit). | +============+================+======================+===========+ | |||
| Error-Type | Meaning | Error-value | Reference | | ||||
+============+================+======================+===========+ | ||||
| 6 | Mandatory | | [RFC5440] | | ||||
| | Object Missing | | | | ||||
| +----------------+----------------------+-----------+ | ||||
| | | 21: Missing SR | RFC 9862 | | ||||
| | | Policy Mandatory TLV | | | ||||
+------------+----------------+----------------------+-----------+ | ||||
| 26 | Association | | [RFC8697] | | ||||
| | Error | | | | ||||
| +----------------+----------------------+-----------+ | ||||
| | | 20: SR Policy | RFC 9862 | | ||||
| | | Identifers Mismatch | | | ||||
| +----------------+----------------------+-----------+ | ||||
| | | 21: SR Policy | RFC 9862 | | ||||
| | | Candidate Path | | | ||||
| | | Identifier Mismatch | | | ||||
+------------+----------------+----------------------+-----------+ | ||||
* Description. | Table 3 | |||
* Reference. | IANA has made the following assigments in the "PCEP-ERROR Object | |||
Error Types and Values" registry of the "Path Computation Element | ||||
Protocol (PCEP) Numbers" registry group. | ||||
+-------+-----------------------------------------------+-----------+ | +============+=================+=======================+===========+ | |||
| Bit | Description | Reference | | | Error-Type | Meaning | Error-value | Reference | | |||
+-------+-----------------------------------------------+-----------+ | +============+=================+=======================+===========+ | |||
| 0 - 6 | Unassigned | This.I-D | | | 6 | Mandatory | | [RFC5440] | | |||
+-------+-----------------------------------------------+-----------+ | | | Object Missing | | | | |||
| 7 | D: dropping - the LSP is currently attracting | This.I-D | | | +-----------------+-----------------------+-----------+ | |||
| | traffic and actively dropping it. | | | | | | 22: Missing SR Policy | RFC 9862 | | |||
+-------+-----------------------------------------------+-----------+ | | | | Association | | | |||
+------------+-----------------+-----------------------+-----------+ | ||||
| 10 | Reception of an | | [RFC5440] | | ||||
| | invalid object | | | | ||||
| +-----------------+-----------------------+-----------+ | ||||
| | | 44: Missing SRPOLICY- | RFC 9862 | | ||||
| | | CAPABILITY TLV | | | ||||
+------------+-----------------+-----------------------+-----------+ | ||||
6.6. SR Policy Invalidation Configuration State | Table 4 | |||
This document requests IANA to maintain a new registry under "Path | 6.4. TE-PATH-BINDING TLV Flag Field | |||
Computation Element Protocol (PCEP) Numbers" registry group. The new | ||||
registry is called "SR Policy Invalidation Configuration Flags". New | ||||
values are to be assigned by "IETF review" [RFC8126]. Each bit | ||||
should be tracked with the following qualities: | ||||
* Bit (counting from bit 0 as the most significant bit). | A draft version of this document added a new bit in the "TE-PATH- | |||
BINDING TLV Flag Field" registry of the "Path Computation Element | ||||
Protocol (PCEP) Numbers" registry group, which was early allocated by | ||||
IANA. | ||||
* Description. | IANA has marked the bit position as deprecated. | |||
* Reference. | +=====+==================================+===========+ | |||
| Bit | Description | Reference | | ||||
+=====+==================================+===========+ | ||||
| 1 | Deprecated (Specified-BSID-only) | RFC 9862 | | ||||
+-----+----------------------------------+-----------+ | ||||
+-------+-----------------------------------------------+-----------+ | Table 5 | |||
| Bit | Description | Reference | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
| 0 - 6 | Unassigned. | This.I-D | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
| 7 | D: drop enabled - the Drop-upon-invalid is | This.I-D | | ||||
| | enabled on the LSP. | | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
6.7. SR Policy Capability TLV Flag field | 6.5. SR Policy Invalidation Operational State | |||
This document requests IANA to maintain a new registry under "Path | IANA has created and will maintain a new registry under the "Path | |||
Computation Element Protocol (PCEP) Numbers" registry group. The new | Computation Element Protocol (PCEP) Numbers" registry group. The new | |||
registry is called "SR Policy Capability TLV Flag Field". New values | registry is called "SR Policy Invalidation Operational Flags". New | |||
are to be assigned by "IETF review" [RFC8126]. Each bit should be | values are to be assigned by "IETF Review" [RFC8126]. Each bit will | |||
tracked with the following qualities: | be tracked with the following qualities: | |||
* Bit (counting from bit 0 as the most significant bit). | ||||
* Description. | ||||
* Reference. | ||||
+--------+-----------------------------------------------+-----------+ | * Bit (counting from bit 0 as the most significant bit) | |||
| Bit | Description | Reference | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
| 0 - 26 | Unassigned | This.I-D | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
| 27 | Stateless Operation (L-Flag) | This.I-D | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
| 28 | Unassigned | This.I-D | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
| 29 | Invalidation (I-Flag) | This.I-D | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
| 30 | Explicit NULL Label Policy (E-Flag) | This.I-D | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
| 31 | Computation Priority (P-flag) | This.I-D | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
7. Implementation Status | * Description | |||
[Note to the RFC Editor - remove this section before publication, as | * Reference | |||
well as remove the reference to RFC 7942.] | ||||
This section records the status of known implementations of the | +=======+==============================================+===========+ | |||
protocol defined by this specification at the time of posting of this | | Bit | Description | Reference | | |||
Internet-Draft, and is based on a proposal described in [RFC7942]. | +=======+==============================================+===========+ | |||
The description of implementations in this section is intended to | | 0 - 6 | Unassigned | | | |||
assist the IETF in its decision processes in progressing drafts to | +-------+----------------------------------------------+-----------+ | |||
RFCs. Please note that the listing of any individual implementation | | 7 | D: Dropping - the LSP is currently | RFC 9862 | | |||
here does not imply endorsement by the IETF. Furthermore, no effort | | | attracting traffic and actively dropping it. | | | |||
has been spent to verify the information presented here that was | +-------+----------------------------------------------+-----------+ | |||
supplied by IETF contributors. This is not intended as, and must not | ||||
be construed to be, a catalog of available implementations or their | ||||
features. Readers are advised to note that other implementations may | ||||
exist. | ||||
According to [RFC7942], "this will allow reviewers and working groups | Table 6 | |||
to assign due consideration to documents that have the benefit of | ||||
running code, which may serve as evidence of valuable experimentation | ||||
and feedback that have made the implemented protocols more mature. | ||||
It is up to the individual working groups to use this information as | ||||
they see fit". | ||||
7.1. Cisco | 6.6. SR Policy Invalidation Configuration State | |||
* Organization: Cisco Systems | IANA has created and will maintain a new registry under the "Path | |||
Computation Element Protocol (PCEP) Numbers" registry group. The new | ||||
registry is called "SR Policy Invalidation Configuration Flags". New | ||||
values are to be assigned by "IETF Review" [RFC8126]. Each bit will | ||||
be tracked with the following qualities: | ||||
* Implementation: IOS-XR PCC and PCE. | * Bit (counting from bit 0 as the most significant bit) | |||
* Description: All features supported except Computation Priority, | * Description | |||
Explicit NULL and Invalidation Drop. | ||||
* Maturity Level: Production. | * Reference | |||
* Coverage: Full. | +=======+==================================+===========+ | |||
| Bit | Description | Reference | | ||||
+=======+==================================+===========+ | ||||
| 0 - 6 | Unassigned. | | | ||||
+-------+----------------------------------+-----------+ | ||||
| 7 | D: Drop enabled - the Drop-Upon- | RFC 9862 | | ||||
| | Invalid is enabled on the LSP. | | | ||||
+-------+----------------------------------+-----------+ | ||||
* Contact: ssidor@cisco.com | Table 7 | |||
7.2. Juniper | 6.7. SR Policy Capability TLV Flag Field | |||
* Organization: Juniper Networks | IANA has created and will maintain a new registry under the "Path | |||
Computation Element Protocol (PCEP) Numbers" registry group. The new | ||||
registry is called "SR Policy Capability TLV Flag Field". New values | ||||
are to be assigned by "IETF Review" [RFC8126]. Each bit will be | ||||
tracked with the following qualities: | ||||
* Implementation: PCC and PCE. | * Bit (counting from bit 0 as the most significant bit) | |||
* Description: Everything in -05 except SR Policy Name TLV and SR | * Description | |||
Policy Candidate Path Name TLV. | ||||
* Maturity Level: Production. | * Reference | |||
* Coverage: Partial. | +========+=====================================+===========+ | |||
| Bit | Description | Reference | | ||||
+========+=====================================+===========+ | ||||
| 0 - 26 | Unassigned | RFC 9862 | | ||||
+--------+-------------------------------------+-----------+ | ||||
| 27 | Stateless Operation (L-flag) | RFC 9862 | | ||||
+--------+-------------------------------------+-----------+ | ||||
| 28 | Unassigned | RFC 9862 | | ||||
+--------+-------------------------------------+-----------+ | ||||
| 29 | Invalidation (I-flag) | RFC 9862 | | ||||
+--------+-------------------------------------+-----------+ | ||||
| 30 | Explicit NULL Label Policy (E-flag) | RFC 9862 | | ||||
+--------+-------------------------------------+-----------+ | ||||
| 31 | Computation Priority (P-flag) | RFC 9862 | | ||||
+--------+-------------------------------------+-----------+ | ||||
* Contact: cbarth@juniper.net | Table 8 | |||
8. Security Considerations | 7. Security Considerations | |||
The information carried in the newly defined SRPA object and TLVs | The information carried in the newly defined SRPA object and TLVs | |||
could provide an eavesdropper with additional information about the | could provide an eavesdropper with additional information about the | |||
SR Policy. | SR Policy. | |||
The security considerations described in [RFC5440], [RFC8231], | The security considerations described in [RFC5440], [RFC8231], | |||
[RFC8281], [RFC8664], [RFC8697], [RFC9256] and [RFC9603] are | [RFC8281], [RFC8664], [RFC8697], [RFC9256], and [RFC9603] are | |||
applicable to this specification. | applicable to this specification. | |||
As per [RFC8231], it is RECOMMENDED that these PCEP extensions can | As per [RFC8231], it is RECOMMENDED that these PCEP extensions can | |||
only be activated on authenticated and encrypted sessions across PCEs | only be activated on authenticated and encrypted sessions across PCEs | |||
and PCCs belonging to the same administrative authority, using | and PCCs belonging to the same administrative authority, using | |||
Transport Layer Security (TLS) [RFC8253] as per the recommendations | Transport Layer Security (TLS) [RFC8253] as per the recommendations | |||
and best current practices in [RFC9325]. | and best current practices in [RFC9325]. | |||
9. Manageability Considerations | 8. Manageability Considerations | |||
All manageability requirements and considerations listed in | All manageability requirements and considerations listed in | |||
[RFC5440], [RFC8231], [RFC8664], [RFC9256], and [RFC9603] apply to | [RFC5440], [RFC8231], [RFC8664], [RFC9256], and [RFC9603] apply to | |||
PCEP protocol extensions defined in this document. In addition, | PCEP protocol extensions defined in this document. In addition, | |||
requirements and considerations listed in this section apply. | requirements and considerations listed in this section apply. | |||
9.1. Control of Function and Policy | 8.1. Control of Function and Policy | |||
A PCE or PCC implementation MAY allow the capabilities specified in | A PCE or PCC implementation MAY allow the capabilities specified in | |||
Section 5.1 and the capability for support of SRPA advertised in | Section 5.1 and the capability for support of an SRPA advertised in | |||
ASSOC-Type-List TLV to be enabled and disabled. | the ASSOC-Type-List TLV to be enabled and disabled. | |||
9.2. Information and Data Models | 8.2. Information and Data Models | |||
[I-D.ietf-pce-pcep-srv6-yang] defines YANG module with common | [PCEP-SRv6-YANG] defines a YANG module with common building blocks | |||
building blocks for PCEP Extensions described in Section 4. | for PCEP extensions described in Section 4. | |||
9.3. Liveness Detection and Monitoring | 8.3. Liveness Detection and Monitoring | |||
Mechanisms defined in this document do not imply any new liveness | Mechanisms defined in this document do not imply any new liveness | |||
detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
listed in [RFC5440], [RFC8664], and [RFC9256]. | listed in [RFC5440], [RFC8664], and [RFC9256]. | |||
9.4. Verify Correct Operations | 8.4. Verify Correct Operations | |||
Operation verification requirements already listed in [RFC5440], | Operation verification requirements already listed in [RFC5440], | |||
[RFC8231], [RFC8664], [RFC9256], and [RFC9603] are applicable to | [RFC8231], [RFC8664], [RFC9256], and [RFC9603] are applicable to | |||
mechanisms defined in this document. | mechanisms defined in this document. | |||
An implementation MUST allow the operator to view SR Policy | An implementation MUST allow the operator to view SR Policy | |||
Identifier and SR Policy Candidate Path Identifier advertised in SRPA | Identifier and SR Policy Candidate Path Identifier advertised in an | |||
object. | SRPA object. | |||
An implementation SHOULD allow the operator to view the capabilities | An implementation SHOULD allow the operator to view the capabilities | |||
defined in this document advertised by each PCEP peer. | defined in this document advertised by each PCEP peer. | |||
An implementation SHOULD allow the operator to view LSPs associated | An implementation SHOULD allow the operator to view LSPs associated | |||
with specific SR Policy Identifier. | with a specific SR Policy Identifier. | |||
9.5. Requirements On Other Protocols | 8.5. Requirements on Other Protocols | |||
The PCEP extensions defined in this document do not imply any new | The PCEP extensions defined in this document do not imply any new | |||
requirements on other protocols. | requirements on other protocols. | |||
9.6. Impact On Network Operations | 8.6. Impact on Network Operations | |||
The mechanisms defined in [RFC5440], [RFC8231], [RFC9256] and | The mechanisms defined in [RFC5440], [RFC8231], [RFC9256], and | |||
[RFC9603] also apply to the PCEP extensions defined in this document. | [RFC9603] also apply to the PCEP extensions defined in this document. | |||
10. Acknowledgement | 9. References | |||
We would like to thank Abdul Rehman, Andrew Stone, Boris Khasanov, | ||||
Cheng Li, Dhruv Dhody, Gorry Fairhurst, Gyan Mishra, Huaimo Chen, | ||||
Ines Robles, Joseph Salowey, Ketan Talaulikar, Marina Fizgeer, Mike | ||||
Bishopm, Praveen Kumar, Robert Sparks, Roman Danyliw, Stephane | ||||
Litkowski, Tom Petch, Zoey Rose, Xiao Min, Xiong Quan for review and | ||||
suggestions. | ||||
11. References | ||||
11.1. Normative References | 9.1. Normative References | |||
[RFC0020] Cerf, V., "ASCII format for network interchange", STD 80, | [RFC0020] Cerf, V., "ASCII format for network interchange", STD 80, | |||
RFC 20, DOI 10.17487/RFC0020, October 1969, | RFC 20, DOI 10.17487/RFC0020, October 1969, | |||
<https://www.rfc-editor.org/info/rfc20>. | <https://www.rfc-editor.org/info/rfc20>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
<https://www.rfc-editor.org/info/rfc3032>. | <https://www.rfc-editor.org/info/rfc3032>. | |||
[RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
<https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
Code: The Implementation Status Section", BCP 205, | ||||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
<https://www.rfc-editor.org/info/rfc7942>. | ||||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
skipping to change at page 28, line 17 ¶ | skipping to change at line 1244 ¶ | |||
Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
(DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | |||
2022, <https://www.rfc-editor.org/info/rfc9325>. | 2022, <https://www.rfc-editor.org/info/rfc9325>. | |||
[RFC9603] Li, C., Ed., Kaladharan, P., Sivabalan, S., Koldychev, M., | [RFC9603] Li, C., Ed., Kaladharan, P., Sivabalan, S., Koldychev, M., | |||
and Y. Zhu, "Path Computation Element Communication | and Y. Zhu, "Path Computation Element Communication | |||
Protocol (PCEP) Extensions for IPv6 Segment Routing", | Protocol (PCEP) Extensions for IPv6 Segment Routing", | |||
RFC 9603, DOI 10.17487/RFC9603, July 2024, | RFC 9603, DOI 10.17487/RFC9603, July 2024, | |||
<https://www.rfc-editor.org/info/rfc9603>. | <https://www.rfc-editor.org/info/rfc9603>. | |||
11.2. Informative References | 9.2. Informative References | |||
[I-D.ietf-idr-sr-policy-safi] | ||||
Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and | ||||
D. Jain, "Advertising Segment Routing Policies in BGP", | ||||
Work in Progress, Internet-Draft, draft-ietf-idr-sr- | ||||
policy-safi-13, 6 February 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr- | ||||
policy-safi-13>. | ||||
[I-D.ietf-idr-bgp-ls-sr-policy] | [ADV-SR-POLICY] | |||
Previdi, S., Talaulikar, K., Dong, J., Gredler, H., and J. | Previdi, S., Talaulikar, K., Ed., Dong, J., Gredler, H., | |||
Tantsura, "Advertisement of Segment Routing Policies using | and J. Tantsura, "Advertisement of Segment Routing | |||
BGP Link-State", Work in Progress, Internet-Draft, draft- | Policies using BGP Link-State", Work in Progress, | |||
ietf-idr-bgp-ls-sr-policy-17, 6 March 2025, | Internet-Draft, draft-ietf-idr-bgp-ls-sr-policy-17, 6 | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp- | March 2025, <https://datatracker.ietf.org/doc/html/draft- | |||
ls-sr-policy-17>. | ietf-idr-bgp-ls-sr-policy-17>. | |||
[I-D.ietf-pce-multipath] | [PCEP-MULTIPATH] | |||
Koldychev, M., Sivabalan, S., Saad, T., Beeram, V. P., | Koldychev, M., Sivabalan, S., Saad, T., Beeram, V. P., | |||
Bidgoli, H., Yadav, B., Peng, S., and G. S. Mishra, "PCEP | Bidgoli, H., Yadav, B., Peng, S., Mishra, G. S., and S. | |||
Extensions for Signaling Multipath Information", Work in | Sidor, "Path Computation Element Communication Protocol | |||
Progress, Internet-Draft, draft-ietf-pce-multipath-12, 8 | (PCEP) Extensions for Signaling Multipath Information", | |||
October 2024, <https://datatracker.ietf.org/doc/html/ | Work in Progress, Internet-Draft, draft-ietf-pce- | |||
draft-ietf-pce-multipath-12>. | multipath-14, 5 September 2025, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-pce- | ||||
multipath-14>. | ||||
[I-D.ietf-pce-pcep-srv6-yang] | [PCEP-SRv6-YANG] | |||
Li, C., Sivabalan, S., Peng, S., Koldychev, M., and L. | Li, C., Sivabalan, S., Peng, S., Koldychev, M., and L. | |||
Ndifor, "A YANG Data Model for Segment Routing (SR) Policy | Ndifor, "A YANG Data Model for Segment Routing (SR) Policy | |||
and SR in IPv6 (SRv6) support in Path Computation Element | and SR in IPv6 (SRv6) support in Path Computation Element | |||
Communications Protocol (PCEP)", Work in Progress, | Communications Protocol (PCEP)", Work in Progress, | |||
Internet-Draft, draft-ietf-pce-pcep-srv6-yang-06, 19 | Internet-Draft, draft-ietf-pce-pcep-srv6-yang-07, 21 April | |||
October 2024, <https://datatracker.ietf.org/doc/html/ | 2025, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
draft-ietf-pce-pcep-srv6-yang-06>. | pce-pcep-srv6-yang-07>. | |||
[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>. | |||
skipping to change at page 29, line 25 ¶ | skipping to change at line 1293 ¶ | |||
[RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and | [RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and | |||
Traffic Engineering Information Using BGP", RFC 9552, | Traffic Engineering Information Using BGP", RFC 9552, | |||
DOI 10.17487/RFC9552, December 2023, | DOI 10.17487/RFC9552, December 2023, | |||
<https://www.rfc-editor.org/info/rfc9552>. | <https://www.rfc-editor.org/info/rfc9552>. | |||
[RFC9604] Sivabalan, S., Filsfils, C., Tantsura, J., Previdi, S., | [RFC9604] Sivabalan, S., Filsfils, C., Tantsura, J., Previdi, S., | |||
and C. Li, Ed., "Carrying Binding Label/SID in PCE-Based | and C. Li, Ed., "Carrying Binding Label/SID in PCE-Based | |||
Networks", RFC 9604, DOI 10.17487/RFC9604, August 2024, | Networks", RFC 9604, DOI 10.17487/RFC9604, August 2024, | |||
<https://www.rfc-editor.org/info/rfc9604>. | <https://www.rfc-editor.org/info/rfc9604>. | |||
Appendix A. Contributors | [RFC9830] Previdi, S., Filsfils, C., Talaulikar, K., Ed., Mattes, | |||
P., and D. Jain, "Advertising Segment Routing Policies in | ||||
BGP", RFC 9830, DOI 10.17487/RFC9830, September 2025, | ||||
<https://www.rfc-editor.org/info/rfc9830>. | ||||
Acknowledgements | ||||
We would like to thank Abdul Rehman, Andrew Stone, Boris Khasanov, | ||||
Cheng Li, Dhruv Dhody, Gorry Fairhurst, Gyan Mishra, Huaimo Chen, | ||||
Ines Robles, Joseph Salowey, Ketan Talaulikar, Marina Fizgeer, Mike | ||||
Bishopm, Praveen Kumar, Robert Sparks, Roman Danyliw, Stephane | ||||
Litkowski, Tom Petch, Zoey Rose, Xiao Min, Xiong Quan for review and | ||||
suggestions. | ||||
Contributors | ||||
Dhruv Dhody | Dhruv Dhody | |||
Huawei | Huawei | |||
India | India | |||
Email: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
Cheng Li | Cheng Li | |||
Huawei Technologies | Huawei Technologies | |||
Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
Beijing, 10095 | Beijing | |||
10095 | ||||
China | China | |||
Email: chengli13@huawei.com | Email: chengli13@huawei.com | |||
Zafar Ali | Zafar Ali | |||
Cisco Systems, Inc. | Cisco Systems, Inc | |||
Email: zali@cisco.com | Email: zali@cisco.com | |||
Rajesh Melarcode | Rajesh Melarcode | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
2000 Innovation Dr. | 2000 Innovation Dr. | |||
Kanata, Ontario | Kanata Ontario | |||
Canada | Canada | |||
Email: rmelarco@cisco.com | Email: rmelarco@cisco.com | |||
Authors' Addresses | Authors' Addresses | |||
Mike Koldychev | Mike Koldychev | |||
Ciena Corporation | Ciena Corporation | |||
385 Terry Fox Dr. | 385 Terry Fox Dr. | |||
Kanata Ontario K2K 0L1 | Kanata Ontario K2K 0L1 | |||
Canada | Canada | |||
Email: mkoldych@proton.me | Email: mkoldych@proton.me | |||
End of changes. 218 change blocks. | ||||
629 lines changed or deleted | 616 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |