rfc9862xml2.original.xml | rfc9862.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<!-- This template is for creating an Internet Draft using xml2rfc, | ||||
which is available here: http://xml.resource.org. --> | ||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
<!-- One method to get references from the online citation libraries. | ||||
There has to be one entity for each item to be referenced. | ||||
An alternate method (rfc include) is described in the references. --> | ||||
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!DOCTYPE rfc [ | |||
.2119.xml"> | <!ENTITY nbsp " "> | |||
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!ENTITY zwsp "​"> | |||
.2629.xml"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!ENTITY wj "⁠"> | |||
.3552.xml"> | ||||
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.o | ||||
rg/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml"> | ||||
]> | ]> | |||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<!-- used by XSLT processors --> | ||||
<!-- For a complete list and description of processing instructions (PIs), | ||||
please see http://xml.resource.org/authoring/README.html. --> | ||||
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
might want to use. | ||||
(Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
<?rfc strict="yes" ?> | ||||
<!-- give errors regarding ID-nits and DTD validation --> | ||||
<!-- control the table of contents (ToC) --> | ||||
<?rfc toc="yes"?> | ||||
<!-- generate a ToC --> | ||||
<?rfc tocdepth="4"?> | ||||
<!-- the number of levels of subsections in ToC. default: 3 --> | ||||
<!-- control references --> | ||||
<?rfc symrefs="yes"?> | ||||
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
<?rfc sortrefs="no" ?> | ||||
<!-- sort the reference entries alphabetically --> | ||||
<!-- control vertical white space | ||||
(using these PIs as follows is recommended by the RFC Editor) --> | ||||
<?rfc compact="yes" ?> | ||||
<!-- do not start each main section on a new page --> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- keep one blank line between list items --> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<rfc category="std" docName="draft-ietf-pce-segment-routing-policy-cp-27" ipr="t | ||||
rust200902" updates="8231"> | ||||
<!-- category values: std, bcp, info, exp, and historic | ||||
ipr values: full3667, noModification3667, noDerivatives3667 | ||||
you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
they will automatically be output with "(if approved)" --> | ||||
<!-- ***** FRONT MATTER ***** --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie | |||
tf-pce-segment-routing-policy-cp-27" number="9862" consensus="true" ipr="trust20 | ||||
0902" updates="8231" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude | ||||
="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> | ||||
<!-- [rfced] This document updates RFC 8231. Please review the | ||||
errata reported for RFC 8231 <https://www.rfc-editor.org/errata/rfc8231> | ||||
and confirm that none are relevant to the content of this document. --> | ||||
<front> | <front> | |||
<title abbrev="PCEP SR Policy"> | <title abbrev="PCEP SR Policy"> | |||
Path Computation Element Communication Protocol (PCEP) Extensions for Segmen t Routing (SR) Policy Candidate Paths</title> | Path Computation Element Communication Protocol (PCEP) Extensions for Segmen t Routing (SR) Policy Candidate Paths</title> | |||
<seriesInfo name="RFC" value="9862"/> | ||||
<author fullname="Mike Koldychev" initials="M." surname="Koldychev"> | <author fullname="Mike Koldychev" initials="M." surname="Koldychev"> | |||
<organization>Ciena Corporation</organization> | <organization>Ciena Corporation</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>385 Terry Fox Dr.</street> | <street>385 Terry Fox Dr.</street> | |||
<city>Kanata</city> | <city>Kanata</city> | |||
<region>Ontario</region> | <region>Ontario</region> | |||
<code>K2K 0L1</code> | <code>K2K 0L1</code> | |||
<country>Canada</country> | <country>Canada</country> | |||
</postal> | </postal> | |||
skipping to change at line 91 ¶ | skipping to change at line 58 ¶ | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Eurovea Central 3.</street> | <street>Eurovea Central 3.</street> | |||
<city>Bratislava</city> | <city>Bratislava</city> | |||
<code>811 09</code> | <code>811 09</code> | |||
<country>Slovakia</country> | <country>Slovakia</country> | |||
</postal> | </postal> | |||
<email>ssidor@cisco.com</email> | <email>ssidor@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Colby Barth" initials="C." surname="Barth"> | <author fullname="Colby Barth" initials="C." surname="Barth"> | |||
<organization>Juniper Networks, Inc.</organization> | <organization>Juniper Networks, Inc.</organization> | |||
<address> | <address> | |||
<email>cbarth@juniper.net</email> | <email>cbarth@juniper.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Shuping Peng" initials="S." surname="Peng"> | <author fullname="Shuping Peng" initials="S." surname="Peng"> | |||
<organization>Huawei Technologies</organization> | <organization>Huawei Technologies</organization> | |||
<address> | ||||
<address> | ||||
<postal> | <postal> | |||
<street>Huawei Campus, No. 156 Beiqing Rd.</street> | <street>Huawei Campus, No. 156 Beiqing Rd.</street> | |||
<city>Beijing</city> | ||||
<city>Beijing</city> | <code>100095</code> | |||
<country>China</country> | ||||
<region/> | ||||
<code>100095</code> | ||||
<country>China</country> | ||||
</postal> | </postal> | |||
<email>pengshuping@huawei.com</email> | ||||
<phone/> | ||||
<facsimile/> | ||||
<email>pengshuping@huawei.com</email> | ||||
<uri/> | ||||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Hooman Bidgoli" initials="H." surname="Bidgoli"> | <author fullname="Hooman Bidgoli" initials="H." surname="Bidgoli"> | |||
<organization>Nokia</organization> | <organization>Nokia</organization> | |||
<address> | <address> | |||
<email>hooman.bidgoli@nokia.com</email> | <email>hooman.bidgoli@nokia.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2025" month="September"/> | ||||
<area>RTG</area> | ||||
<workgroup>PCE</workgroup> | ||||
<date/> | <!-- [rfced] Please insert any keywords (beyond those that appear in | |||
the title) for use on https://www.rfc-editor.org/search. --> | ||||
<workgroup>PCE Working Group</workgroup> | ||||
<abstract> | ||||
<t> | ||||
A Segment Routing (SR) Policy is an ordered list of instructions, called | ||||
"segments" that represent a source-routed policy. Packet 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. | ||||
</t> | ||||
<t> | ||||
This document specifies the Path Computation Element Communication | ||||
Protocol (PCEP) extension to signal candidate paths of an SR | ||||
Policy. | ||||
Additionally, this document updates RFC 8231 to allow | ||||
delegation and setup of an SR Label Switched Path (LSP), without using | ||||
the path computation request and reply messages. | ||||
This document is applicable to both Segment Routing over MPLS (SR-MPLS) and | ||||
Segment Routing over IPv6 (SRv6). | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<middle> | ||||
<section anchor="Introduction" title="Introduction"> | ||||
<t>Segment Routing (SR) Policy Architecture <xref target="RFC9256"/> details the | ||||
concepts of Segment Routing (SR) Policy <xref target="RFC8402"/> and approaches | ||||
to steering traffic into an SR Policy.</t> | ||||
<t>Path Computation Element Communication Protocol (PCEP) Extensions for Segment | ||||
Routing <xref target="RFC8664"/> specifies extensions to the PCEP that allow a | ||||
stateful Path Computation Element (PCE) to compute and initiate Traffic Engineer | ||||
ing (TE) paths, as well as a Path Computation Client (PCC) to request a path sub | ||||
ject to certain constraints and optimization criteria in SR domain. | ||||
Although PCEP extensions introduced in <xref target="RFC8664"/> enables the crea | ||||
tion of SR-TE paths, these do not constitute SR Policies as defined in <xref tar | ||||
get="RFC9256"/> and therefore lack support for: | ||||
<list style="symbols"> | ||||
<t>Association of SR Policy Candidate Paths signaled via PCEP with Candidate Pat | ||||
hs of the same SR Policy signaled via other sources (e.g., local configuration o | ||||
r BGP).</t> | ||||
<t>Association of SR Policy with an intent via color, enabling headend-based ste | ||||
ering of BGP service routes over SR Policies provisioned via PCEP.</t> | ||||
</list> | ||||
</t> | ||||
<t>PCEP Extensions for establishing relationships between sets of Label Switched | ||||
Paths (LSPs) <xref target="RFC8697"/> introduces a generic mechanism to create | ||||
a grouping of LSPs which is called an Association.</t> | ||||
<t>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 as described in Section | ||||
2.2 of <xref target="RFC9256"/>. | ||||
This document extends <xref target="RFC8664"/> to support signaling SR Policy Ca | ||||
ndidate Paths as LSPs and to signal Candidate Path membership in | ||||
an SR Policy by means of the Association mechanism. | ||||
A PCEP Association corresponds to a SR Policy and a LSP corresponds to a Candida | ||||
te Path. | ||||
The unit of signaling in PCEP is the LSP, thus all the information related to SR | ||||
Policy is carried at the Candidate Path level. | ||||
</t> | ||||
<t>Also, this document updates Section 5.8.2 of <xref target="RFC8231"/>, making | ||||
the use of Path Computation Request (PCReq) and Path Computation Reply (PCRep) | ||||
messages optional for LSPs setup using Path Setup Type 1 (Segment Routing) <xref | ||||
target="RFC8664"/> and Path Setup Type 3 (SRv6) <xref target="RFC9603"/> with t | ||||
he aim of reducing the PCEP message exchanges and simplifying implementation.</t | ||||
> | ||||
<section anchor="Language" title="Requirements Language"> | ||||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | ||||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | ||||
"MAY", and "OPTIONAL" in this document are to be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when | ||||
, and only when, they | ||||
appear in all capitals, as shown here.</t> | ||||
</section> | ||||
</section> <!-- Introduction --> | ||||
<section anchor="Terminology" title="Terminology"> | ||||
<t>This document uses the following terms defined in <xref target="RFC5440" | ||||
/>: ERO, PCC, | ||||
PCE, PCEP Peer, and PCEP speaker.</t> | ||||
<t>This document uses the following term defined in <xref target="RFC3031"/ | ||||
>: LSP.</t> | ||||
<t>This document uses the following term defined in <xref target="RFC955 | ||||
2"/>: BGP-LS.</t> | ||||
<t>The following terms are used in this document: | ||||
<list style="hanging"> | ||||
<t hangText="Endpoint:"> The IPv4 or IPv6 endpoint address of an SR Policy, | ||||
as described in Section 2.1 of <xref target="RFC9256"/>.</t> | ||||
<t hangText="Color:"> The 32-bit color of an SR Policy, as described in Sec | ||||
tion 2.1 of <xref target="RFC9256"/>.</t> | ||||
<t hangText="Protocol-Origin:"> The protocol that was used to create a Cand | ||||
idate Path, as described in Section 2.3 of <xref target="RFC9256"/>.</t> | ||||
<t hangText="Originator:"> A device that created a Candidate Path, as descr | ||||
ibed in Section 2.4 of <xref target="RFC9256"/>.</t> | ||||
<t hangText="Discriminator:"> Distinguishes Candidate Paths created by the | ||||
same device, as described in Section 2.5 of <xref target="RFC9256"/>.</t> | ||||
<t hangText="Association Parameters:"> As described in <xref target="RFC869 | ||||
7"/>, refers to the key data that uniquely identifies an Association.</t> | ||||
<t hangText="Association Information:"> As described in Section 6.1.4 of <x | ||||
ref target="RFC8697"/>, refers to information related to Association Type.</t> | ||||
<t hangText="SR Policy LSP:"> An LSP setup using Path Setup Type <xref t | ||||
arget="RFC8408"/> 1 (Segment Routing) or 3 (SRv6).</t> | ||||
<t hangText="SR Policy Association:"> A new association type used to g | ||||
roup candidate paths belonging to same SR | ||||
Policy. Depending on the discussion context, it can refer to the PCEP | ||||
ASSOCIATION object of SR Policy type or to a group of LSPs that | ||||
belong to the association.</t> | ||||
</list> | ||||
<t> The base PCEP specification <xref target="RFC4655"/> originally defined | ||||
the use of the PCE architecture for MPLS and GMPLS networks | ||||
with LSPs instantiated using the RSVP-TE signaling protocol. Over time, | ||||
support for additional path setup types, such as | ||||
SRv6, has been introduced <xref target="RFC9603"/>. The term "LSP" is us | ||||
ed extensively in PCEP specifications and, in the | ||||
context of this document, refers to a Candidate Path within an SR Policy | ||||
, which may be an SRv6 path (still represented | ||||
using the LSP Object as specified in <xref target="RFC8231"/>.</t> | ||||
</t> | ||||
</section> <!-- Terminology --> | ||||
<section anchor="Overview" title="Overview"> | <keyword>example</keyword> | |||
<t> | <abstract> | |||
The SR Policy is represented by a new type of PCEP Association, called the SR Po | <t> | |||
licy Association (SRPA) (see <xref target="Association"/>). | A Segment Routing (SR) Policy is an ordered list of instructions called | |||
The SR Policy Candidate Paths of specific SR Policy are the LSPs within the same | "segments" that represent a source-routed policy. Packet flows are steered | |||
SRPA. | into an SR Policy on a node where it is instantiated. An SR Policy is made | |||
The extensions in this document specify the encoding of a single segment list wi | of one or more candidate paths. | |||
thin an SR Policy Candidate Path. Encoding of multiple | </t> | |||
segment lists is outside the scope of this document and specified in <xref targe | <t> | |||
t="I-D.ietf-pce-multipath"/>. | This document specifies the Path Computation Element Communication Protocol | |||
</t> | (PCEP) extension to signal candidate paths of an SR Policy. Additionally, | |||
this document updates RFC 8231 to allow delegation and setup of an SR Label | ||||
Switched Path (LSP) without using the path computation request and reply | ||||
messages. This document is applicable to both Segment Routing over MPLS | ||||
(SR-MPLS) and Segment Routing over IPv6 (SRv6). | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<middle> | ||||
<section anchor="Introduction" numbered="true" toc="default"> | ||||
<name>Introduction</name> | ||||
<t>"Segment Routing Policy Architecture" <xref target="RFC9256" | ||||
format="default"/> details the concepts of Segment Routing (SR) Policy | ||||
<xref target="RFC8402" format="default"/> and approaches to steering | ||||
traffic into an SR Policy.</t> | ||||
<t>"Path Computation Element Communication Protocol (PCEP) Extensions | ||||
for Segment Routing" <xref target="RFC8664" format="default"/> specifies | ||||
extensions to the PCEP that allow a stateful Path Computation Element | ||||
(PCE) to compute and initiate Traffic Engineering (TE) paths, as well as | ||||
a Path Computation Client (PCC) to request a path subject to certain | ||||
constraints and optimization criteria in an SR domain. Although PCEP | ||||
extensions introduced in <xref target="RFC8664" format="default"/> | ||||
enable the creation of SR-TE paths, these do not constitute SR Policies | ||||
as defined in <xref target="RFC9256" format="default"/>. Therefore, they | ||||
lack support for:</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>Association of SR Policy Candidate Paths signaled via PCEP with | ||||
Candidate Paths of the same SR Policy signaled via other sources | ||||
(e.g., local configuration or BGP).</t> | ||||
</li> | ||||
<li> | ||||
<t>Association of an SR Policy with an intent via color, enabling | ||||
headend-based steering of BGP service routes over SR Policies | ||||
provisioned via PCEP.</t> | ||||
</li> | ||||
</ul> | ||||
<t>"Path Computation Element Communication Protocol (PCEP) Extensions | ||||
for Establishing Relationships between Sets of Label Switched Paths | ||||
(LSPs)" <xref target="RFC8697" format="default"/> introduces a generic | ||||
mechanism to create a grouping of LSPs that is called an | ||||
"Association".</t> | ||||
<t>An SR Policy is associated with one or more candidate paths. A | ||||
candidate path is the unit for signaling an SR Policy to a headend as | ||||
described in <xref target="RFC9256" section="2.2"/>. This document | ||||
extends <xref target="RFC8664" format="default"/> to support signaling | ||||
SR Policy Candidate Paths as LSPs and to signal Candidate Path | ||||
membership in an SR Policy by means of the Association mechanism. A | ||||
PCEP Association corresponds to an SR Policy and an LSP corresponds to a | ||||
Candidate Path. The unit of signaling in PCEP is the LSP, thus, all the | ||||
information related to an SR Policy is carried at the Candidate Path level | ||||
.</t> | ||||
<t>An SRPA carries three pieces of information: | <!-- [rfced] FYI, we added "for" here to make the meaning of the | |||
SR Policy Identifier, SR Policy Candidate Path Identifier, and SR Policy Candida | parenthetical more clear. Please let us know if you prefer otherwise. | |||
te Path Attribute(s).</t> | ||||
<t> | Original: | |||
This document also specifies some additional information that is not encoded as | Also, this document updates Section 5.8.2 of [RFC8231], making the | |||
part of an SRPA: Computation Priority of the LSP, Explicit Null Label Policy for | use of Path Computation Request (PCReq) and Path Computation Reply | |||
the unlabeled IP packets and Drop-upon-invalid behavior for traffic steering wh | (PCRep) messages optional for LSPs setup using Path Setup Type 1 | |||
en the LSP is operationally down (see <xref target="Other-mechanisms"/>). | (Segment Routing) [RFC8664] and Path Setup Type 3 (SRv6) [RFC9603] | |||
</t> | with the aim of reducing the PCEP message exchanges and simplifying | |||
implementation. | ||||
[...] | ||||
</section> <!-- Overview --> | SR Policy LSP: An LSP setup using Path Setup Type [RFC8408] 1 | |||
(Segment Routing) or 3 (SRv6). | ||||
<section anchor="Association" title="SR Policy Association (SRPA)"> | Current: | |||
<t> | Also, this document updates Section 5.8.2 of [RFC8231], making the | |||
Per <xref target="RFC8697"/>, LSPs are associated with other LSPs with which | use of Path Computation Request (PCReq) and Path Computation Reply | |||
they | (PCRep) messages optional for LSPs that are set up using Path Setup | |||
interact by adding them to a common association group. An association group | Type 1 (for Segment Routing) [RFC8664] and Path Setup Type 3 (for | |||
is uniquely identified by the | SRv6) [RFC9603] with the aim of reducing the PCEP message exchanges | |||
combination of the following fields in the ASSOCIATION object (<xref target=" | and simplifying implementation. | |||
RFC8697" sectionFormat="of" section="6.1"/>): | [...] | |||
Association Type, Association ID, Association Source, and (if | ||||
present) Global Association Source, or Extended Association ID. These fields | ||||
are | ||||
referred to as Association Parameters (<xref target="AssociationParameters"/> | ||||
). | ||||
</t> | ||||
<t> | ||||
<xref target="RFC8697"/> specifies the ASSOCIATION Object with two Object-Types | ||||
for IPv4 and IPv6 which includes the field "Association Type". This document def | ||||
ines a new Association type (6) "SR Policy Association" for SRPA. | ||||
</t> | ||||
<t> | SR Policy LSP: An LSP setup using Path Setup Type [RFC8408] 1 (for | |||
<xref target="RFC8697"/> specifies the mechanism for the capability advertisemen | Segment Routing) or 3 (for SRv6). | |||
t of | --> | |||
the Association Types supported by a PCEP speaker by defining an | ||||
ASSOC-Type-List TLV to be carried within an OPEN object. This | ||||
capability exchange for the SR Policy Association Type MUST | ||||
be done before using the SRPA. To that aim, a | ||||
PCEP speaker MUST include the SRPA Type (6) in | ||||
the ASSOC-Type-List TLV and MUST receive the same from the PCEP peer | ||||
before using the SRPA (<xref target="Association-Type"/>).</t> | ||||
<t> | <t>Also, this document updates <xref target="RFC8231" section="5.8.2"/>, | |||
SRPA MUST be assigned for all SR Policy LSPs by PCEP speaker originating the | making the use of Path Computation Request (PCReq) and Path Computation | |||
LSP if capability was advertised by both PCEP speakers. | Reply (PCRep) messages optional for LSPs that are set up using Path Setup | |||
If the above condition is not satisfied, then the receiving PCEP speaker MUST | Type 1 | |||
send a PCErr message with | (for Segment Routing) <xref target="RFC8664" format="default"/> and Path | |||
Error-Type = 6 "Mandatory Object Missing", Error-Value = TBD1 "Missing SR Policy | Setup Type 3 (for SRv6) <xref target="RFC9603" format="default"/> with the | |||
Association". | aim of reducing the PCEP message exchanges and simplifying | |||
</t> | implementation.</t> | |||
<section anchor="Language" numbered="true" toc="default"> | ||||
<name>Requirements Language</name> | ||||
<t> | ||||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | ||||
", | ||||
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | ||||
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be | ||||
interpreted as described in BCP 14 <xref target="RFC2119"/> <xref | ||||
target="RFC8174"/> when, and only when, they appear in all capitals, as | ||||
shown here. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<t> | <section anchor="Terminology" numbered="true" toc="default"> | |||
A given LSP MUST belong to at most one SRPA, since an SR Policy Candidate Path c | <name>Terminology</name> | |||
annot belong to multiple SR Policies. | <t>This document uses the following terms defined in <xref target="RFC5440 | |||
If a PCEP speaker receives a PCEP message requesting to join more than one SRPA | "/>:</t> | |||
for the same LSP, | <ul> | |||
then the PCEP speaker MUST send a PCErr message with | <li>Explicit Route Object (ERO)</li> | |||
Error-Type = 26 "Association Error", Error-Value = 7 "Cannot join the associatio | <li>Path Computation Client (PCC)</li> | |||
n group". | <li>Path Computation Element (PCE)</li> | |||
</t> | <li>PCEP Peer</li> | |||
<li>PCEP speaker</li> | ||||
</ul> | ||||
<t> | <t>This document uses the following term defined in <xref target="RFC3031" | |||
The existing behavior for the use of Binding SID with SR Policy is already docum | />:</t> | |||
ented in <xref target="RFC9604"/>. If BSID value allocation failed, because of c | <ul> | |||
onflict with BSID used by another policy, then PCEP peer MUST send a PCErr messa | <li>Label Switched Path (LSP)</li> | |||
ge with Error-Type = 32 "Binding label/SID failure" and Error-value = 2 "Unable | </ul> | |||
to allocate the specified binding value". | ||||
</t> | ||||
<section anchor="SRPolicyIdentifier" title="SR Policy Identifier"> | <t>This document uses the following term defined in <xref target="RFC9552" | |||
<t>SR Policy Identifier uniquely identifies an SR Policy <xref target="RFC9256"/ | />:</t> | |||
> within the SR domain. | <ul> | |||
SR Policy Identifier is assigned by PCEP peer originating the LSP and MUST be un | <li>Border Gateway Protocol - Link State (BGP-LS)</li> | |||
iform across all the PCEP sessions. | </ul> | |||
Candidate Paths within an SR Policy MUST carry the same SR Policy Identifiers in | ||||
their SRPAs. | ||||
Candidate Paths within an SR Policy MUST NOT change their SR Policy Identifiers | ||||
for the lifetime of the PCEP session. | ||||
If the above conditions are not satisfied, the receiving PCEP speaker MUST send | ||||
a PCEP Error (PCErr) message with Error-Type = 26 "Association Error" and Error | ||||
Value = 20 "SR Policy Identifier Mismatch". | ||||
SR Policy Identifier consists of:</t> | ||||
<t> | ||||
<list style="symbols"> | ||||
<t>Headend router where the SR Policy originates.</t> | ||||
<t>Color of the SR Policy (<xref target="RFC9256"/>, Section 2.1).</t> | ||||
<t>Endpoint of the SR Policy (<xref target="RFC9256"/>, Section 2.1).</t | ||||
> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
<section anchor="SRPolicyCandidatePathIdentifier" title="SR Policy Candidate Pat | <t>The following other terms are used in this document:</t> | |||
h Identifier"> | <dl> | |||
<t>SR Policy Candidate Path Identifier uniquely identifies the SR Policy Candida | <dt>Endpoint:</dt> | |||
te Path within the context of an SR Policy. SR Policy Candidate Path Identifier | <dd>The IPv4 or IPv6 endpoint address of an SR Policy, as described in < | |||
is assigned by PCEP peer originating the LSP. | xref target="RFC9256" section="2.1"/>.</dd> | |||
Candidate Paths within an SR Policy MUST NOT change their SR Policy Candidate Pa | <dt>Color:</dt> | |||
th Identifiers for the lifetime of the PCEP session. | <dd>The 32-bit color of an SR Policy, as described in <xref target="RFC9 | |||
Two or more Candidate Paths within an SR Policy MUST NOT carry same SR Policy Ca | 256" section="2.1"/>.</dd> | |||
ndidate Path Identifiers in their SRPAs. | <dt>Protocol-Origin:</dt> | |||
If the above conditions are not satisfied, the PCEP speaker MUST send a PCErr me | <dd>The protocol that was used to create a Candidate Path, as | |||
ssage with Error-Type = 26 "Association Error" and Error Value = 21 "SR Policy C | described in <xref target="RFC9256" section="2.3"/>.</dd> | |||
andidate Path Identifier Mismatch". | <dt>Originator:</dt> | |||
SR Policy Candidate Path Identifier consists of:</t> | <dd>A device that created a Candidate Path, as described in <xref | |||
<t> | target="RFC9256" section="2.4"/>.</dd> | |||
<list style="symbols"> | <dt>Discriminator:</dt> | |||
<t>Protocol Origin (<xref target="RFC9256"/>, Section 2.3).</t> | <dd>Distinguishes Candidate Paths created by the same device, as | |||
<t>Originator (<xref target="RFC9256"/>, Section 2.4).</t> | described in <xref target="RFC9256" section="2.5"/>.</dd> | |||
<t>Discriminator (<xref target="RFC9256"/>, Section 2.5).</t> | <dt>Association parameters:</dt> | |||
</list> | <dd>Refers to the key data that uniquely identifies an Association, | |||
</t> | as described in <xref target="RFC8697" format="default"/>.</dd> | |||
</section> | <dt>Association information:</dt> | |||
<dd>Refers to information related to Association Type, as described | ||||
in <xref target="RFC8697" section="6.1.4"/>.</dd> | ||||
<dt>SR Policy LSP:</dt> | ||||
<dd>An LSP setup using Path Setup Type <xref target="RFC8408" | ||||
format="default"/> 1 (for Segment Routing) or 3 (for SRv6).</dd> | ||||
<dt>SR Policy Association (SRPA):</dt> | ||||
<dd>A new Association Type used to group candidate paths belonging to th | ||||
e | ||||
same SR Policy. Depending on the discussion context, it can refer to | ||||
the PCEP ASSOCIATION object of an SR Policy type or to a group of LSPs | ||||
that belong to the association.</dd> | ||||
</dl> | ||||
<section anchor="SRPolicyCandidatePathAttributes" title="SR Policy Candidate Pat | <t>The base PCEP specification <xref target="RFC4655" | |||
h Attributes"> | format="default"/> originally defined the use of the PCE architecture | |||
<t>SR Policy Candidate Path Attributes carry optional, non-key information about | for MPLS and GMPLS networks with LSPs instantiated using the RSVP-TE | |||
a Candidate Path and MAY change during the lifetime of an LSP. | signaling protocol. Over time, support for additional path setup types | |||
SR Policy Candidate Path Attributes consists of:</t> | such as SRv6 has been introduced <xref target="RFC9603" | |||
<t> | format="default"/>. The term "LSP" is used extensively in PCEP | |||
<list style="symbols"> | specifications, and in the context of this document, refers to a | |||
<t>Candidate Path preference (<xref target="RFC9256"/>, Section 2.7).</t | Candidate Path within an SR Policy, which may be an SRv6 path (still | |||
> | represented using the LSP object as specified in <xref target="RFC8231" | |||
<t>Candidate Path name (<xref target="RFC9256"/>, Section 2.6).</t> | format="default"/>).</t> | |||
<t>SR Policy name (<xref target="RFC9256"/>, Section 2.1).</t> | </section> | |||
</list> | ||||
</t> | ||||
</section> | ||||
<section anchor="AssociationParameters" title="Association Parameters"> | <section anchor="Overview" numbered="true" toc="default"> | |||
<name>Overview</name> | ||||
<t> | ||||
The SR Policy is represented by a new type of PCEP Association, called | ||||
the SR Policy Association (SRPA) (see <xref target="Association" | ||||
format="default"/>). The SR Policy Candidate Paths of a specific SR | ||||
Policy are the LSPs within the same SRPA. The extensions in this | ||||
document specify the encoding of a single segment list within an SR | ||||
Policy Candidate Path. Encoding of multiple segment lists is outside | ||||
the scope of this document and is specified in <xref | ||||
target="I-D.ietf-pce-multipath" format="default"/>. | ||||
</t> | ||||
<t>An SRPA carries three pieces of information: SR Policy Identifier, SR | ||||
Policy Candidate Path Identifier, and SR Policy Candidate Path | ||||
Attribute(s).</t> | ||||
<t> | ||||
This document also specifies some additional information that is not | ||||
encoded as part of an SRPA: computation priority of the LSP, Explicit | ||||
Null Label Policy for the unlabeled IP packets and Drop-Upon-Invalid | ||||
behavior for traffic steering when the LSP is operationally down (see | ||||
<xref target="Other-mechanisms" format="default"/>). | ||||
</t> | ||||
</section> | ||||
<t> | <section anchor="Association" numbered="true" toc="default"> | |||
Per <xref target="RFC9256" sectionFormat="of" section="2.1"/>, | <name>SR Policy Association (SRPA)</name> | |||
an SR Policy is identified through the <headend, color, endpoint> tuple. | <t> | |||
</t> | Per <xref target="RFC8697" format="default"/>, LSPs are associated | |||
with other LSPs with which they interact by adding them to a common | ||||
association group. An association group is uniquely identified by the | ||||
combination of the following fields in the ASSOCIATION object (<xref | ||||
target="RFC8697" sectionFormat="of" section="6.1" format="default"/>): | ||||
Association Type, Association ID, Association Source, and (if present) | ||||
Global Association Source, or Extended Association ID. These fields | ||||
are referred to as "association parameters" (<xref | ||||
target="AssociationParameters" format="default"/>). | ||||
</t> | ||||
<t> | ||||
<xref target="RFC8697" format="default"/> specifies the ASSOCIATION | ||||
object with two Object-Types for IPv4 and IPv6 that includes the field | ||||
Association Type. This document defines a new Association Type (6) | ||||
"SR Policy Association" for an SRPA. | ||||
</t> | ||||
<t> | ||||
<xref target="RFC8697" format="default"/> specifies the mechanism for | ||||
the capability advertisement of the Association Types supported by a | ||||
PCEP speaker by defining an ASSOC-Type-List TLV to be carried within | ||||
an OPEN object. This capability exchange for the SRPA Type <bcp14>MUST</b | ||||
cp14> be done before using the SRPA. To that aim, a | ||||
PCEP speaker <bcp14>MUST</bcp14> include the SRPA Type (6) in the | ||||
ASSOC-Type-List TLV and <bcp14>MUST</bcp14> receive the same from the | ||||
PCEP peer before using the SRPA (<xref target="Association-Type" | ||||
format="default"/>).</t> | ||||
<t> | ||||
An SRPA <bcp14>MUST</bcp14> be assigned for all SR Policy LSPs by the | ||||
PCEP speaker originating the LSP if the capability was advertised by | ||||
both PCEP speakers. If the above condition is not satisfied, then the | ||||
receiving PCEP speaker <bcp14>MUST</bcp14> send a PCErr message | ||||
with:</t> | ||||
<ul spacing="normal"> | ||||
<li>Error-Type = 6 "Mandatory Object Missing"</li> | ||||
<li>Error-value = 22 "Missing SR Policy Association"</li> | ||||
</ul> | ||||
<t> | ||||
A given LSP <bcp14>MUST</bcp14> belong to one SRPA at most, since an | ||||
SR Policy Candidate Path cannot belong to multiple SR Policies. If a | ||||
PCEP speaker receives a PCEP message requesting to join more than one | ||||
SRPA for the same LSP, then the PCEP speaker <bcp14>MUST</bcp14> send | ||||
a PCErr message with:</t> | ||||
<ul spacing="normal"> | ||||
<li>Error-Type = 26 "Association Error"</li> | ||||
<li>Error-value = 7 "Cannot join the association group"</li> | ||||
</ul> | ||||
<t> | ||||
The existing behavior for the use of Binding SID (BSID) with an SR Policy | ||||
is already documented in <xref target="RFC9604" format="default"/>. If | ||||
BSID value allocation failed because of conflict with the BSID used by | ||||
another policy, then the PCEP peer <bcp14>MUST</bcp14> send a PCErr messag | ||||
e | ||||
with:</t> | ||||
<ul spacing="normal"> | ||||
<li>Error-Type = 32 "Binding label/SID failure"</li> | ||||
<li>Error-value = 2 "Unable to allocate the specified binding value"</li> | ||||
</ul> | ||||
<t>The Association Parameters consists of:</t> | <section anchor="SRPolicyIdentifier" numbered="true" toc="default"> | |||
<t> | <name>SR Policy Identifier</name> | |||
<list style="symbols"> | <t>The SR Policy Identifier uniquely identifies an SR Policy <xref | |||
<t>Association Type: Set to 6 "SR Policy Association".</t> | target="RFC9256" format="default"/> within the SR domain. The SR Policy | |||
<t>Association Source (IPv4/IPv6): Set to the headend value of the SR Po | Identifier is assigned by the PCEP peer originating the LSP and | |||
licy, as defined in <xref target="RFC9256"/> Section 2.1.</t> | <bcp14>MUST</bcp14> be uniform across all the PCEP sessions. | |||
<t>Association ID (16-bit): Always set to the numeric value "1".</t> | Candidate Paths within an SR Policy <bcp14>MUST</bcp14> carry the same | |||
<t>Extended Association ID TLV: Mandatory TLV for SR Policy Association. | SR Policy Identifiers in their SRPAs. Candidate Paths within an SR | |||
Encodes the Color and Endpoint of the SR Policy (<xref target="Extended-Associat | Policy <bcp14>MUST NOT</bcp14> change their SR Policy Identifiers for | |||
ion-ID-TLV-FORMAT"/>).</t> | the lifetime of the PCEP session. If the above conditions are not | |||
</list> | satisfied, the receiving PCEP speaker <bcp14>MUST</bcp14> send a PCEP | |||
</t> | Error (PCErr) message with:</t> | |||
<ul spacing="normal"> | ||||
<li>Error-Type = 26 "Association Error"</li> | ||||
<li>Error-value = 20 "SR Policy Identifier Mismatch"</li> | ||||
</ul> | ||||
<t>The SR Policy Identifier consists of:</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>Headend router where the SR Policy originates.</t> | ||||
</li> | ||||
<li> | ||||
<t>Color of the SR Policy (<xref target="RFC9256" sectionFormat="com | ||||
ma" section="2.1"/>).</t> | ||||
</li> | ||||
<li> | ||||
<t>Endpoint of the SR Policy (<xref target="RFC9256" sectionFormat=" | ||||
comma" section="2.1"/>).</t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="SRPolicyCandidatePathIdentifier" numbered="true" toc="def | ||||
ault"> | ||||
<name>SR Policy Candidate Path Identifier</name> | ||||
<t>The SR Policy Candidate Path Identifier uniquely identifies the SR | ||||
Policy Candidate Path within the context of an SR Policy. The SR | ||||
Policy Candidate Path Identifier is assigned by the PCEP peer originatin | ||||
g | ||||
the LSP. Candidate Paths within an SR Policy <bcp14>MUST NOT</bcp14> | ||||
change their SR Policy Candidate Path Identifiers for the lifetime of | ||||
the PCEP session. Two or more Candidate Paths within an SR Policy | ||||
<bcp14>MUST NOT</bcp14> carry the same SR Policy Candidate Path | ||||
Identifiers in their SRPAs. If the above conditions are not | ||||
satisfied, the PCEP speaker <bcp14>MUST</bcp14> send a PCErr message | ||||
with:</t> | ||||
<ul spacing="normal"> | ||||
<li>Error-Type = 26 "Association Error"</li> | ||||
<li>Error-value = 21 "SR Policy Candidate Path Identifier Mismatch"</li> | ||||
</ul> | ||||
<t>The SR Policy Candidate Path Identifier consists of:</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<figure anchor="Extended-Association-ID-TLV-FORMAT" title="Extended Association | <t>Protocol-Origin (<xref target="RFC9256" sectionFormat="comma" sec | |||
ID TLV Format"> | tion="2.3"/>)</t> | |||
<artwork align="center"><![CDATA[ | </li> | |||
0 1 2 3 | <li> | |||
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 | <t>Originator (<xref target="RFC9256" sectionFormat="comma" section= | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | "2.4"/>)</t> | |||
| Type = 31 | Length = 8 or 20 | | </li> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <li> | |||
| Color | | <t>Discriminator (<xref target="RFC9256" sectionFormat="comma" secti | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | on="2.5"/>)</t> | |||
~ Endpoint ~ | </li> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | </ul> | |||
]]></artwork> | </section> | |||
</figure> | <section anchor="SRPolicyCandidatePathAttributes" numbered="true" toc="def | |||
ault"> | ||||
<name>SR Policy Candidate Path Attributes</name> | ||||
<t>SR Policy Candidate Path Attributes carry optional, non-key | ||||
information about a Candidate Path and <bcp14>MAY</bcp14> change | ||||
during the lifetime of an LSP. SR Policy Candidate Path Attributes | ||||
consist of:</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>Candidate Path preference (<xref target="RFC9256" sectionFormat=" | ||||
comma" section="2.7"/>)</t> | ||||
</li> | ||||
<li> | ||||
<t>Candidate Path name (<xref target="RFC9256" sectionFormat="comma" | ||||
section="2.6"/>)</t> | ||||
</li> | ||||
<li> | ||||
<t>SR Policy name (<xref target="RFC9256" sectionFormat="comma" sect | ||||
ion="2.1"/>)</t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="AssociationParameters" numbered="true" toc="default"> | ||||
<name>Association Parameters</name> | ||||
<t>Type: Extended Association ID TLV, type = 31 <xref target="RFC8697"/>.</t> | <t>Per <xref target="RFC9256" sectionFormat="of" section="2.1" | |||
format="default"/>, an SR Policy is identified through the <Headend, | ||||
Color, Endpoint> tuple.</t> | ||||
<t>Length: 8 octets if IPv4 address or 20 octets if IPv6 address is encoded in t he Endpoint field.</t> | <t>The association parameters consist of:</t> | |||
<t>Color: unsigned non-zero 32-bit integer value, SR Policy color per <xref targ | <dl spacing="normal" newline="false"> | |||
et="RFC9256" sectionFormat="of" section="2.1"/>.</t> | <dt>Association Type:</dt><dd>Set to 6 "SR Policy Association".</dd> | |||
<dt>Association Source (IPv4/IPv6):</dt><dd>Set to the headend value | ||||
of the SR Policy, as defined in <xref target="RFC9256" | ||||
sectionFormat="comma" section="2.1"/>.</dd> | ||||
<dt>Association ID (16 bit):</dt><dd>Always set to the numeric value 1 | ||||
.</dd> | ||||
<dt>Extended Association ID TLV:</dt><dd><t>Mandatory TLV for an | ||||
SRPA. Encodes the Color and Endpoint of the SR Policy (<xref | ||||
target="Extended-Association-ID-TLV-FORMAT" format="default"/>).</t> | ||||
<t>Endpoint: can be either IPv4 (4 octets) or IPv6 address (16 octets). | <figure anchor="Extended-Association-ID-TLV-FORMAT"> | |||
This value MAY be different from the one contained in the Destination address fi | <name>Extended Association ID TLV Format</name> | |||
eld in the END-POINTS object, or in the Tunnel Endpoint Address field in the LSP | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
-IDENTIFIERS TLV (<xref target="RFC9256" sectionFormat="of" section="2.1"/>).</t | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type = 31 | Length = 8 or 20 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Color | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ Endpoint ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | ||||
</figure> | ||||
<t>If a PCEP speaker receives an SRPA object | <!-- [rfced] We note that Figure 1 differs slightly from the other TLV format | |||
whose Association Parameters do not follow the above specification, | figures in this document. Specifically, Figure 1 contains values for Type | |||
then the PCEP speaker MUST send a PCErr message with | and Length within the figure itself. Do you want to remove these values from | |||
Error-Type = 26 "Association Error", Error-Value = 20 "SR Policy Identifier Mism | Figure 1 for consistency with the other figures in this document? | |||
atch".</t> | ||||
<t>The encoding choice of the Association Parameters in this way is meant to gua rantee that there is no possibility of a race condition when multiple PCEP speak ers want to associate the same SR Policy at the same time. By adhering to this f ormat, all PCEP speakers come up with the same Association Parameters independen tly of each other based on the SR Policy parameters <xref target="RFC9256"/>.</t > | Figure 1: | |||
<t> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The last hop of a computed SR Policy Candidate Path MAY differ from the Endpoint | | Type = 31 | Length = 8 or 20 | | |||
contained in the <headend, color, endpoint> tuple. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
An example use case is to terminate the SR Policy before reaching the Endpoint a | ||||
nd have decapsulated traffic be forwarded the rest of the path to the Endpoint n | ||||
ode using the native Interior Gateway Protocol (IGP) path(s). | ||||
In this example, the destination of the SR Policy Candidate Paths will be some n | ||||
ode before the Endpoint, but the Endpoint value is still used at the headend to | ||||
steer traffic with that Endpoint IP address into the SR Policy. | ||||
The Destination of the SR Policy Candidate Path is signaled using the END-POINTS | ||||
object and/or LSP-IDENTIFIERS TLV, per the usual PCEP procedure. | ||||
When neither the END-POINTS object nor LSP-IDENTIFIERS TLV is present, | ||||
the PCEP speaker MUST extract the destination from the Endpoint field in the SRP | ||||
A Extended Association ID TLV. | ||||
</t> | ||||
<t> | Figure 2: | |||
SR Policy with Color-Only steering is signaled with the Endpoint value set to un | ||||
specified, i.e., 0.0.0.0 for IPv4 or :: for IPv6, per <xref target="RFC9256" sec | ||||
tionFormat="of" section="8.8."/>. | ||||
</t> | ||||
</section> <!-- AssociationParameters --> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
<section anchor="AssociationInformation" title="Association Information"> | FYI, we updated the first list item after Figure 1 for consistency with | |||
the other lists/figures. | ||||
<t>The SRPA object may carry the following TLVs:</t> | Original: | |||
Type: Extended Association ID TLV, type = 31 [RFC8697]. | ||||
<t> | Current: | |||
<list style="symbols"> | Type: 31 for the Extended Association ID TLV [RFC8697]. | |||
<t>SRPOLICY-POL-NAME TLV (<xref target="Policy-name-tlv"/>): (optional) | --> | |||
encodes the SR Policy Name string.</t> | <dl spacing="normal" newline="false"> | |||
<t>SRPOLICY-CPATH-ID TLV (<xref target="Cpath-identifier-tlv"/>): (manda | <dt>Type:</dt><dd>31 for the Extended Association ID TLV <xref | |||
tory) encodes the SR Policy Candidate Path Identifier.</t> | target="RFC8697" format="default"/>.</dd> | |||
<t>SRPOLICY-CPATH-NAME TLV (<xref target="SRPOLICY-CPATH-NAME"/>): (opti | <dt>Length:</dt><dd>8 octets if IPv4 address or 20 octets if IPv6 | |||
onal) encodes the SR Policy Candidate Path string name.</t> | address is encoded in the Endpoint field.</dd> | |||
<t>SRPOLICY-CPATH-PREFERENCE TLV (<xref target="Cpath-preference-tlv"/>) | <dt>Color:</dt><dd>Unsigned non-zero 32-bit integer value, SR Policy | |||
: (optional) encodes the SR Policy Candidate Path preference value.</t> | color per <xref target="RFC9256" sectionFormat="of" section="2.1" | |||
</list> | format="default"/>.</dd> | |||
</t> | <dt>Endpoint:</dt><dd>Can be either IPv4 (4 octets) or IPv6 address | |||
(16 octets). This value <bcp14>MAY</bcp14> be different from the | ||||
one contained in the Destination address field in the END-POINTS | ||||
object, or in the Tunnel Endpoint Address field in the | ||||
LSP-IDENTIFIERS TLV (<xref target="RFC9256" sectionFormat="of" | ||||
section="2.1" format="default"/>).</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t>If a PCEP speaker receives an SRPA object whose association | ||||
parameters do not follow the above specification, then the PCEP | ||||
speaker <bcp14>MUST</bcp14> send a PCErr message with:</t> | ||||
<ul spacing="normal"> | ||||
<li>Error-Type = 26 "Association Error"</li> | ||||
<li>Error-value = 20 "SR Policy Identifier Mismatch"</li> | ||||
</ul> | ||||
<t>The encoding choice of the association parameters in this way is | ||||
meant to guarantee that there is no possibility of a race condition | ||||
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 | ||||
with the same association parameters independently of each other based | ||||
on the SR Policy parameters <xref target="RFC9256" | ||||
format="default"/>.</t> | ||||
<t>The last hop of a computed SR Policy Candidate Path | ||||
<bcp14>MAY</bcp14> differ from the Endpoint contained in the | ||||
<Headend, Color, Endpoint> tuple. An example use case is to | ||||
terminate the SR Policy before reaching the Endpoint and have | ||||
decapsulated traffic be forwarded the rest of the path to the Endpoint | ||||
node using the native Interior Gateway Protocol (IGP) path(s). In | ||||
this example, the destination of the SR Policy Candidate Paths will be | ||||
some node before the Endpoint, but the Endpoint value is still used at | ||||
the headend to steer traffic with that Endpoint IP address into the SR | ||||
Policy. The Destination of the SR Policy Candidate Path is signaled | ||||
using the END-POINTS object and/or the LSP-IDENTIFIERS TLV, per the usua | ||||
l | ||||
PCEP procedure. When neither the END-POINTS object nor | ||||
the LSP-IDENTIFIERS TLV is present, the PCEP speaker <bcp14>MUST</bcp14> | ||||
extract the destination from the Endpoint field in the SRPA Extended | ||||
Association ID TLV.</t> | ||||
<t>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 | ||||
<xref target="RFC9256" sectionFormat="of" section="8.8" | ||||
format="default"/>.</t> | ||||
</section> | ||||
<t>When a mandatory TLV is missing from an SRPA object, the PCEP speaker MUST se | <section anchor="AssociationInformation" numbered="true" toc="default"> | |||
nd a PCErr message with | <name>Association Information</name> | |||
Error-Type = 6 "Mandatory Object Missing", Error-Value = 21 "Missing SR Policy M | <t>The SRPA object may carry the following TLVs:</t> | |||
andatory TLV".</t> | <dl spacing="normal" newline="false"> | |||
<dt>SRPOLICY-POL-NAME TLV (<xref target="Policy-name-tlv" | ||||
format="default"/>):</dt><dd>(optional) encodes the SR Policy Name | ||||
string.</dd> | ||||
<dt>SRPOLICY-CPATH-ID TLV (<xref target="Cpath-identifier-tlv" | ||||
format="default"/>):</dt><dd>(mandatory) encodes the SR Policy | ||||
Candidate Path Identifier.</dd> | ||||
<dt>SRPOLICY-CPATH-NAME TLV (<xref target="SRPOLICY-CPATH-NAME" | ||||
format="default"/>):</dt><dd>(optional) encodes the SR Policy | ||||
Candidate Path string name.</dd> | ||||
<dt>SRPOLICY-CPATH-PREFERENCE TLV (<xref | ||||
target="Cpath-preference-tlv" | ||||
format="default"/>):</dt><dd>(optional) encodes the SR Policy | ||||
Candidate Path preference value.</dd> | ||||
</dl> | ||||
<t>When a mandatory TLV is missing from an SRPA object, the PCEP speaker | ||||
<bcp14>MUST</bcp14> send a PCErr message with:</t> | ||||
<ul spacing="normal"> | ||||
<li>Error-Type = 6 "Mandatory Object Missing"</li> | ||||
<li>Error-value = 21 "Missing SR Policy Mandatory TLV"</li> | ||||
</ul> | ||||
<t>Only one TLV instance of each TLV type can be carried in an SRPA | ||||
object, and only the first occurrence is processed. Any others | ||||
<bcp14>MUST</bcp14> be silently ignored.</t> | ||||
<t>Only one TLV instance of each TLV type can be carried in an SRPA object, and | <!--[rfced] FYI, several section titles have been updated to exactly | |||
only the first occurrence is processed. Any others MUST be silently ignored.</t | match the TLV name. If you prefer the original section titles, please | |||
> | let us know. For example: | |||
<section anchor="Policy-name-tlv" title="SR Policy Name TLV"> | Original: | |||
4.5.1. SR Policy Name TLV | ||||
4.5.2. SR Policy Candidate Path Identifier TLV | ||||
<t> | Current: | |||
The SRPOLICY-POL-NAME TLV (<xref target="SRPOLICY-POL-NAME-TLV-FORMAT"/>) is an | 4.5.1. SRPOLICY-POL-NAME TLV | |||
optional TLV for the SRPA object. It is RECOMMENDED that the size of the name fo | 4.5.2. SRPOLICY-CPATH-ID TLV | |||
r the SR Policy is limited to 255 bytes. Implementations MAY choose to truncate | --> | |||
long names to 255 bytes to simplify interoperability with other protocols. | ||||
</t> | ||||
<figure anchor="SRPOLICY-POL-NAME-TLV-FORMAT" title="SRPOLICY-POL-NAME TLV Forma | <section anchor="Policy-name-tlv" numbered="true" toc="default"> | |||
t"> | <name>SRPOLICY-POL-NAME TLV</name> | |||
<artwork align="center"><![CDATA[ | <t>The SRPOLICY-POL-NAME TLV (<xref | |||
target="SRPOLICY-POL-NAME-TLV-FORMAT" format="default"/>) is an | ||||
optional TLV for the SRPA object. It is <bcp14>RECOMMENDED</bcp14> | ||||
that the size of the name for the SR Policy is limited to 255 | ||||
bytes. Implementations <bcp14>MAY</bcp14> choose to truncate long | ||||
names to 255 bytes to simplify interoperability with other | ||||
protocols.</t> | ||||
<figure anchor="SRPOLICY-POL-NAME-TLV-FORMAT"> | ||||
<name>SRPOLICY-POL-NAME TLV Format</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
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 ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | <dl spacing="normal" newline="false"> | |||
<dt>Type:</dt><dd>56 for the SRPOLICY-POL-NAME TLV.</dd> | ||||
<t>Type: 56 for "SRPOLICY-POL-NAME" TLV.</t> | <dt>Length:</dt><dd>Indicates the length of the value portion of | |||
the TLV in octets and <bcp14>MUST</bcp14> be greater than 0. The | ||||
<t>Length: indicates the length of the value portion of the TLV in octets and MU | TLV <bcp14>MUST</bcp14> be zero-padded so that the TLV is 4-octet | |||
ST be greater than 0. The TLV MUST be zero-padded so that the TLV is 4-octet ali | aligned. Padding is not included in the Length field.</dd> | |||
gned. Padding is not included in the Length field.</t> | <dt>SR Policy Name:</dt><dd>SR Policy name, as defined in <xref | |||
target="RFC9256" sectionFormat="of" section="2.1" | ||||
<t>SR Policy Name: SR Policy name, as defined in <xref target="RFC9256" sectionF | format="default"/>. It <bcp14>MUST</bcp14> be a string of | |||
ormat="of" section="2.1"/>. It MUST be a string of printable ASCII <xref target= | printable ASCII <xref target="RFC0020" format="default"/> | |||
"RFC0020"/> characters, without a NULL terminator.</t> | characters, without a NULL terminator.</dd> | |||
</dl> | ||||
</section> <!-- Policy-name-tlv --> | </section> | |||
<section anchor="Cpath-identifier-tlv" title="SR Policy Candidate Path Identifie | <section anchor="Cpath-identifier-tlv" numbered="true" toc="default"> | |||
r TLV"> | <name>SRPOLICY-CPATH-ID TLV</name> | |||
<t> | <t>The SRPOLICY-CPATH-ID TLV (<xref | |||
The SRPOLICY-CPATH-ID TLV (<xref target="SRPOLICY-CPATH-ID-TLV-FORMAT"/>) is a m | target="SRPOLICY-CPATH-ID-TLV-FORMAT" format="default"/>) is a | |||
andatory TLV for the SRPA object. | mandatory TLV for the SRPA object.</t> | |||
</t> | ||||
<figure anchor="SRPOLICY-CPATH-ID-TLV-FORMAT" title="SRPOLICY-CPATH-ID TLV Forma | <figure anchor="SRPOLICY-CPATH-ID-TLV-FORMAT"> | |||
t"> | <name>SRPOLICY-CPATH-ID TLV Format</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | <dl spacing="normal" newline="false"> | |||
<dt>Type:</dt><dd>57 for the SRPOLICY-CPATH-ID TLV.</dd> | ||||
<t>Type: 57 for "SRPOLICY-CPATH-ID" TLV.</t> | <dt>Length:</dt><dd>28.</dd> | |||
<dt>Protocol-Origin:</dt><dd>8-bit unsigned integer value that | ||||
<t>Length: 28.</t> | encodes the Protocol-Origin. The values of this field are | |||
specified in the IANA registry "SR Policy Protocol Origin" under the | ||||
<t>Protocol Origin: 8-bit unsigned integer value that encodes the protocol origi | "Segment Routing" registry group, which is introduced in <xref | |||
n. The values of this field are specified in IANA registry "SR Policy Protocol O | section="8.4" target="I-D.ietf-idr-bgp-ls-sr-policy" | |||
rigin" under "Segment Routing" registry group, which was introduced in Section 8 | format="default"/>. Note that in the PCInitiate message <xref | |||
.4 of <xref target="I-D.ietf-idr-bgp-ls-sr-policy"/>. | target="RFC8281" format="default"/>, the Protocol-Origin is always | |||
Note that in the PCInitiate message <xref target="RFC8281"/>, the Protocol Origi | set to 10 - "PCEP (In PCEP or when BGP-LS Producer is PCE)". The | |||
n is always set to 10 - "PCEP (In PCEP or when BGP-LS Producer is PCE)". The "SR | "SR Policy Protocol Origin" IANA registry includes a combination | |||
Policy Protocol Origin" IANA registry includes a combination of values intended | of values intended for use in PCEP and BGP-LS. When the registry | |||
for use in PCEP and BGP-LS. When the registry contains two variants of values a | contains two variants of values associated with the mechanism or | |||
ssociated with the mechanism or protocol used for provisioning of the Candidate | protocol used for provisioning of the Candidate Path, for example | |||
Path, for example 1 - "PCEP" and 10 - "PCEP (In PCEP or when BGP-LS Producer is | 1 - "PCEP" and 10 - "PCEP (In PCEP or when BGP-LS Producer is | |||
PCE)", the "(In PCEP or when BGP-LS Producer is PCE)" variants MUST be used in P | PCE)", the "(In PCEP or when BGP-LS Producer is PCE)", then variants | |||
CEP.</t> | <bcp14>MUST</bcp14> be used in PCEP.</dd> | |||
<dt>Reserved:</dt><dd>This field <bcp14>MUST</bcp14> be set to zero | ||||
<t>Reserved: This field MUST be set to zero on transmission and MUST be ignored | on transmission and <bcp14>MUST</bcp14> be ignored on receipt.</dd> | |||
on receipt.</t> | <dt>Originator Autonomous System Number (ASN):</dt><dd>Represented | |||
as a 32-bit unsigned integer value, part of the originator | ||||
<t>Originator Autonomous System Number (ASN): Represented as a 32-bit unsigned i | identifier, as specified in <xref format="default" section="2.4" | |||
nteger value, part of the originator identifier, as specified in <xref format="d | sectionFormat="of" target="RFC9256"/>. When sending a PCInitiate | |||
efault" section="2.4" sectionFormat="of" target="RFC9256"/>. | message <xref target="RFC8281" format="default"/>, the PCE is the | |||
When sending a PCInitiate message <xref target="RFC8281"/>, the PCE is the origi | originator of the Candidate Path. If the PCE is configured with an | |||
nator of the Candidate Path. | ASN, then it <bcp14>MUST</bcp14> set it; otherwise, the ASN is set to | |||
If the PCE is configured with an ASN, then it MUST set it, otherwise the ASN is | 0.</dd> | |||
set to 0. | <dt>Originator Address:</dt><dd>Represented as a 128-bit value as | |||
</t> | specified in <xref format="default" section="2.4" sectionFormat="of" | |||
target="RFC9256"/>. When sending a PCInitiate message, the PCE is | ||||
<t>Originator Address: Represented as a 128-bit value as specified in <xref form | acting as the originator and therefore <bcp14>MAY</bcp14> set this | |||
at="default" section="2.4" sectionFormat="of" target="RFC9256"/>. When sending a | to an address that it owns.</dd> | |||
PCInitiate message, the PCE is acting as the originator and therefore MAY set t | <dt>Discriminator:</dt><dd>32-bit unsigned integer value that | |||
his to an address that it owns. | encodes the Discriminator of the Candidate Path, as specified in | |||
</t> | <xref target="RFC9256" sectionFormat="of" section="2.5" | |||
format="default"/>. This is the field that mainly distinguishes | ||||
<t>Discriminator: 32-bit unsigned integer value that encodes the Discriminator o | different SR Policy Candidate Paths, coming from the same | |||
f the Candidate Path, as specified in <xref target="RFC9256" sectionFormat="of" | originator. It is allowed to be any number in the 32-bit range.</dd> | |||
section="2.5"/>. | </dl> | |||
This is the field that mainly distinguishes different SR Policy Candidate Paths, | </section> | |||
coming from the same originator. It is allowed to be any number in the 32-bit r | ||||
ange. | ||||
</t> | ||||
</section> <!-- Cpath-identifier-tlv --> | ||||
<section anchor="SRPOLICY-CPATH-NAME" title="SR Policy Candidate Path Name TLV"> | ||||
<t> | <section anchor="SRPOLICY-CPATH-NAME" numbered="true" toc="default"> | |||
The SRPOLICY-CPATH-NAME TLV (<xref target="SRPOLICY-CPATH-NAME-TLV-FORMAT"/>) is | <name>SRPOLICY-CPATH-NAME TLV</name> | |||
an optional TLV for the SRPA object. It is RECOMMENDED that the size of the nam | <t>The SRPOLICY-CPATH-NAME TLV (<xref | |||
e for the SR Policy is limited to 255 bytes. Implementations MAY choose to trunc | target="SRPOLICY-CPATH-NAME-TLV-FORMAT" format="default"/>) is an | |||
ate long names to 255 bytes to simplify interoperability with other protocols. | optional TLV for the SRPA object. It is <bcp14>RECOMMENDED</bcp14> | |||
</t> | that the size of the name for the SR Policy is limited to 255 | |||
bytes. Implementations <bcp14>MAY</bcp14> choose to truncate long | ||||
names to 255 bytes to simplify interoperability with other | ||||
protocols.</t> | ||||
<figure anchor="SRPOLICY-CPATH-NAME-TLV-FORMAT" title="SRPOLICY-CPATH-NAME TLV F | <figure anchor="SRPOLICY-CPATH-NAME-TLV-FORMAT"> | |||
ormat"> | <name>SRPOLICY-CPATH-NAME TLV Format</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
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 ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | <dl spacing="normal" newline="false"> | |||
<dt>Type:</dt><dd>58 for the SRPOLICY-CPATH-NAME TLV.</dd> | ||||
<t>Type: 58 for "SRPOLICY-CPATH-NAME" TLV.</t> | <dt>Length:</dt><dd>Indicates the length of the value portion of | |||
the TLV in octets and <bcp14>MUST</bcp14> be greater than 0. The | ||||
<t>Length: indicates the length of the value portion of the TLV in octets and MU | TLV <bcp14>MUST</bcp14> be zero-padded so that the TLV is 4-octet | |||
ST be greater than 0. The TLV MUST be zero-padded so that the TLV is 4-octet ali | aligned. Padding is not included in the Length field.</dd> | |||
gned. Padding is not included in the Length field.</t> | <dt>SR Policy Candidate Path Name:</dt><dd>SR Policy Candidate | |||
Path Name, as defined in <xref target="RFC9256" sectionFormat="of" | ||||
<t>SR Policy Candidate Path Name: SR Policy Candidate Path Name, as defined in < | section="2.6" format="default"/>. It <bcp14>MUST</bcp14> be a | |||
xref target="RFC9256" sectionFormat="of" section="2.6"/>. It MUST be a string of | string of printable ASCII characters, without a NULL | |||
printable ASCII characters, without a NULL terminator.</t> | terminator.</dd> | |||
</dl> | ||||
</section> <!-- SRPOLICY-CPATH-NAME --> | </section> | |||
<section anchor="Cpath-preference-tlv" title="SR Policy Candidate Path Preferenc | ||||
e TLV"> | ||||
<t> | <section anchor="Cpath-preference-tlv" numbered="true" toc="default"> | |||
The SRPOLICY-CPATH-PREFERENCE TLV (<xref target="SRPOLICY-CPATH-PREFERENCE-TLV-F | <name>SRPOLICY-CPATH-PREFERENCE TLV</name> | |||
ORMAT"/>) is an optional TLV for the SRPA object. | <t>The SRPOLICY-CPATH-PREFERENCE TLV (<xref | |||
If the TLV is absent, then default Preference value is 100, per <xref format="de | target="SRPOLICY-CPATH-PREFERENCE-TLV-FORMAT" format="default"/>) is | |||
fault" section="2.7" sectionFormat="of" target="RFC9256"/>. | an optional TLV for the SRPA object. If the TLV is absent, then the | |||
</t> | default Preference value is 100, per <xref format="default" | |||
section="2.7" sectionFormat="of" target="RFC9256"/>.</t> | ||||
<figure anchor="SRPOLICY-CPATH-PREFERENCE-TLV-FORMAT" title="SRPOLICY-CPATH-PREF | <figure anchor="SRPOLICY-CPATH-PREFERENCE-TLV-FORMAT"> | |||
ERENCE TLV Format"> | <name>SRPOLICY-CPATH-PREFERENCE TLV Format</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | <dl spacing="normal" newline="false"> | |||
<dt>Type:</dt><dd>59 for the SRPOLICY-CPATH-PREFERENCE TLV.</dd> | ||||
<t>Type: 59 for "SRPOLICY-CPATH-PREFERENCE" TLV.</t> | <dt>Length:</dt><dd>4.</dd> | |||
<dt>Preference:</dt><dd>32-bit unsigned integer value that encodes t | ||||
<t>Length: 4.</t> | he | |||
preference of the Candidate Path as defined in <xref | ||||
<t>Preference: 32-bit unsigned integer value that encodes preference of the Cand | format="default" section="2.7" sectionFormat="of" | |||
idate Path as defined in <xref format="default" section="2.7" sectionFormat="of" | target="RFC9256"/>.</dd> | |||
target="RFC9256"/>.</t> | </dl> | |||
</section> | ||||
</section> <!-- Cpath-preference-tlv --> | </section> | |||
</section> | ||||
</section> <!-- AssociationInformation --> | ||||
</section> <!-- Association --> | ||||
<section anchor="Other-mechanisms" title="SR Policy Signaling Extensions"> | ||||
<t>This section introduces mechanisms described for SR Policies in <xref target= | ||||
"RFC9256"/> to PCEP. | ||||
These extensions do not make use of the SRPA for signaling in PCEP therefore can | ||||
not rely on the Association capability negotiation in ASSOC-Type-List TLV and se | ||||
parate capability negotiation is required. | ||||
</t> | ||||
<t> | <!-- [rfced] For clarity, may we update this text as follows? | |||
This document specifies four new TLVs to be carried in the OPEN or LSP object | This includes adding "they" after "therefore", adding punctuation, | |||
. | and splitting the second sentence into two sentences. | |||
Only one TLV instance of each type can be carried, and only the first | ||||
occurrence is processed. Any others MUST be ignored. | ||||
</t> | ||||
<section anchor="Capability-tlv" title="SR Policy Capability TLV"> | Original: | |||
This section introduces mechanisms described for SR Policies in | ||||
[RFC9256] to PCEP. These extensions do not make use of the SRPA for | ||||
signaling in PCEP therefore cannot rely on the Association capability | ||||
negotiation in ASSOC-Type-List TLV and separate capability | ||||
negotiation is required. | ||||
<t> | Perhaps: | |||
The SRPOLICY-CAPABILITY TLV (<xref target="SRPOLICY-CAPABILITY-TLV-FORMAT"/>) is | This section introduces mechanisms described for SR Policies in | |||
a TLV for the OPEN object. | [RFC9256] to PCEP. These extensions do not make use of the SRPA for | |||
It is used at session establishment to learn the peer's | signaling in PCEP; therefore, they cannot rely on the Association | |||
capabilities with respect to SR Policy. | capability negotiation in the ASSOC-Type-List TLV. Instead, separate | |||
Implementations that support SR Policy MUST include SRPOLICY-CAPABILITY TLV in t | capability negotiation is required. | |||
he OPEN object if the extension is enabled. | --> | |||
In addition, the ASSOC-Type-List TLV containing SRPA Type (6) MUST be present in | ||||
the OPEN object, as specified in <xref target="Association"/>.</t> | ||||
<t>If a PCEP speaker receives SRPA but the SRPOLICY-CAPABILITY TLV is | <section anchor="Other-mechanisms" numbered="true" toc="default"> | |||
not exchanged, then the PCEP speaker MUST send a PCErr message with Error- | <name>SR Policy Signaling Extensions</name> | |||
Type = 10 ("Reception of an invalid object") and Error-Value = TBD2 | <t>This section introduces mechanisms described for SR Policies in <xref | |||
("Missing SRPOLICY-CAPABILITY TLV") and MUST then close the PCEP | target="RFC9256" format="default"/> to PCEP. These extensions do not | |||
session.</t> | make use of the SRPA for signaling in PCEP, and therefore cannot rely on t | |||
he | ||||
Association capability negotiation in the ASSOC-Type-List TLV and separate | ||||
capability negotiation is required.</t> | ||||
<t>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 only | ||||
the first occurrence is processed. Any others <bcp14>MUST</bcp14> be | ||||
ignored.</t> | ||||
<figure anchor="SRPOLICY-CAPABILITY-TLV-FORMAT" title="SRPOLICY-CAPABILITY TLV F | <section anchor="Capability-tlv" numbered="true" toc="default"> | |||
ormat"> | <name>SRPOLICY-CAPABILITY TLV</name> | |||
<artwork align="center"><![CDATA[ | <t>The SRPOLICY-CAPABILITY TLV (<xref | |||
target="SRPOLICY-CAPABILITY-TLV-FORMAT" format="default"/>) is a TLV | ||||
for the OPEN object. It is used at session establishment to learn the | ||||
peer's capabilities with respect to SR Policy. Implementations that | ||||
support SR Policy <bcp14>MUST</bcp14> include the SRPOLICY-CAPABILITY TL | ||||
V | ||||
in the OPEN object if the extension is enabled. In addition, the | ||||
ASSOC-Type-List TLV containing SRPA Type (6) <bcp14>MUST</bcp14> be | ||||
present in the OPEN object, as specified in <xref target="Association" | ||||
format="default"/>.</t> | ||||
<t>If a PCEP speaker receives an SRPA but the SRPOLICY-CAPABILITY TLV is | ||||
not exchanged, then the PCEP speaker <bcp14>MUST</bcp14> send a PCErr | ||||
message with Error-Type = 10 "Reception of an invalid object" and | ||||
Error-value = 44 "Missing SRPOLICY-CAPABILITY TLV" and | ||||
<bcp14>MUST</bcp14> then close the PCEP session.</t> | ||||
<figure anchor="SRPOLICY-CAPABILITY-TLV-FORMAT"> | ||||
<name>SRPOLICY-CAPABILITY TLV Format</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
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| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
<dl spacing="normal" newline="false"> | ||||
<t>Type: 71 for "SRPOLICY-CAPABILITY" TLV.</t> | <dt>Type:</dt><dd>71 for the SRPOLICY-CAPABILITY TLV.</dd> | |||
<dt>Length:</dt><dd>4.</dd> | ||||
<t>Length: 4.</t> | <dt>Flags:</dt> | |||
<dd> | ||||
<t>Flags (32 bits):</t> | ||||
<t> The following flags are currently defined:</t> | ||||
<list style="symbols"> | ||||
<t>P-flag (Computation Priority): If set to '1' by a PCEP speaker, the P flag in | ||||
dicates that the PCEP speaker supports the handling of COMPUTATION-PRIORITY TLV | ||||
for the SR Policy | ||||
(<xref target="Computation-priority-tlv"/>). | ||||
If this flag is set to 0, then the receiving PCEP speaker MUST NOT send the COMP | ||||
UTATION-PRIORITY TLV and MUST ignore it on receipt. | ||||
</t> | ||||
<t>E-Flag (Explicit NULL Label Policy): If set to '1' by a PCEP speaker, the E f | ||||
lag indicates that the PCEP speaker supports the handling of Explicit Null Label | ||||
Policy (ENLP) TLV for the SR Policy | ||||
(<xref target="enlp-tlv"/>). | ||||
If this flag is set to 0, then the receiving PCEP speaker MUST NOT send the ENLP | ||||
TLV and MUST ignore it on receipt. | ||||
</t> | ||||
<t>I-Flag (Invalidation): If set to '1' by a PCEP speaker, the I flag indicates | ||||
that the PCEP speaker supports the handling of INVALIDATION TLV for the SR Polic | ||||
y | ||||
(<xref target="Invalidation-tlv"/>). | ||||
If this flag is set to 0, then the receiving PCEP speaker MUST NOT send the INVA | ||||
LIDATION TLV and MUST ignore it on receipt. | ||||
</t> | ||||
<t>L-Flag (Stateless Operation): If set to '1' by a PCEP speaker, the L flag ind | <t>32 bits. The following flags are currently defined:</t> | |||
icates that the PCEP speaker supports the stateless (PCReq/PCRep) operations for | <dl spacing="normal" newline="false"> | |||
the SR Policy | <dt>P-flag (Computation Priority):</dt> | |||
(<xref target="Stateless-oper"/>). | <dd>If set to 1 by a PCEP speaker, the P-flag indicates that the | |||
If the PCE set this flag to 0, then the PCC MUST NOT send PCReq messages to th | PCEP speaker supports the handling of the COMPUTATION-PRIORITY TLV | |||
is PCE for the SR Policy. | for the SR Policy (<xref target="Computation-priority-tlv" | |||
</t> | format="default"/>). If this flag is set to 0, then the | |||
receiving PCEP speaker <bcp14>MUST NOT</bcp14> send the | ||||
COMPUTATION-PRIORITY TLV and <bcp14>MUST</bcp14> ignore it on | ||||
receipt.</dd> | ||||
</list> | <dt>E-flag (Explicit NULL Label Policy):</dt> | |||
<dd>If set to 1 by a PCEP speaker, the E-flag indicates that the | ||||
PCEP speaker supports the handling of the Explicit Null Label Polic | ||||
y | ||||
(ENLP) TLV for the SR Policy (<xref target="enlp-tlv" | ||||
format="default"/>). If this flag is set to 0, then the | ||||
receiving PCEP speaker <bcp14>MUST NOT</bcp14> send the ENLP TLV | ||||
and <bcp14>MUST</bcp14> ignore it on receipt.</dd> | ||||
<t>Unassigned bits MUST be set to '0' on transmission and MUST be ignored on rec | <dt>I-flag (Invalidation):</dt> | |||
eipt. More flags can be assigned in the future per (<xref target="sr_policy_cap_ | <dd>If set to 1 by a PCEP speaker, the I-flag indicates that the | |||
flag_field"/>).</t> | PCEP speaker supports the handling of the INVALIDATION TLV for the | |||
SR Policy (<xref target="Invalidation-tlv" format="default"/>). | ||||
If this flag is set to 0, then the receiving PCEP speaker | ||||
<bcp14>MUST NOT</bcp14> send the INVALIDATION TLV and | ||||
<bcp14>MUST</bcp14> ignore it on receipt.</dd> | ||||
</section> <!-- Capability-tlv --> | <dt>L-flag (Stateless Operation):</dt> | |||
<dd>If set to 1 by a PCEP speaker, the L-flag indicates that the | ||||
PCEP speaker supports the stateless (PCReq/PCRep) operations for | ||||
the SR Policy (<xref target="Stateless-oper" | ||||
format="default"/>). If the PCE set this flag to 0, then the | ||||
PCC <bcp14>MUST NOT</bcp14> send PCReq messages to this PCE for | ||||
the SR Policy.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t>Unassigned bits <bcp14>MUST</bcp14> be set to 0 on transmission | ||||
and <bcp14>MUST</bcp14> be ignored on receipt. More flags can be | ||||
assigned in the future per (<xref target="sr_policy_cap_flag_field" | ||||
format="default"/>).</t> | ||||
</section> | ||||
<section anchor="lsp-object-tlvs" title="LSP Object TLVs"> | <section anchor="lsp-object-tlvs" numbered="true" toc="default"> | |||
<name>LSP Object TLVs</name> | ||||
<t>This section is introducing three new TLVs to be carried in the LSP | ||||
object introduced in <xref target="RFC8231" sectionFormat="of" | ||||
section="7.3" format="default"/>.</t> | ||||
<t>This section is introducing three new TLVs to be carried in LSP object introd | <section anchor="Computation-priority-tlv" numbered="true" toc="default" | |||
uced in <xref target="RFC8231" sectionFormat="of" section="7.3"/>.</t> | > | |||
<name>COMPUTATION-PRIORITY TLV</name> | ||||
<t>The COMPUTATION-PRIORITY TLV (<xref | ||||
target="COMPUTATION-PRIORITY-TLV-FORMAT" format="default"/>) is an | ||||
optional TLV. It is used to signal the numerical computation | ||||
priority, as specified in <xref target="RFC9256" sectionFormat="of" | ||||
section="2.12" format="default"/>. If the TLV is absent from the | ||||
LSP object, and the P-flag in the SRPOLICY-CAPABILITY TLV is set to | ||||
1, a default Priority value of 128 is used.</t> | ||||
<figure anchor="COMPUTATION-PRIORITY-TLV-FORMAT"> | ||||
<name>COMPUTATION-PRIORITY TLV Format</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Priority | Reserved | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | ||||
</figure> | ||||
<dl spacing="normal" newline="false"> | ||||
<dt>Type:</dt><dd>68 for the COMPUTATION-PRIORITY TLV.</dd> | ||||
<dt>Length:</dt><dd>4.</dd> | ||||
<dt>Priority:</dt><dd>8-bit unsigned integer value that encodes | ||||
numerical priority with which this LSP is to be recomputed by the | ||||
PCE upon topology change. The lowest value is the highest | ||||
priority.</dd> | ||||
<dt>Reserved:</dt><dd>This field <bcp14>MUST</bcp14> be set to | ||||
zero on transmission and <bcp14>MUST</bcp14> be ignored on | ||||
receipt.</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="Computation-priority-tlv" title="Computation Priority TLV"> | <section anchor="enlp-tlv" numbered="true" toc="default"> | |||
<name>Explicit Null Label Policy (ENLP) TLV</name> | ||||
<t>The COMPUTATION-PRIORITY TLV (<xref target="COMPUTATION-PRIORITY-TLV-FORMAT"/ | <t>To steer an unlabeled IP packet into an SR Policy for the MPLS | |||
>) is an optional TLV. | data plane, it is necessary to push a label stack of one or more | |||
It is used to signal the numerical computation priority, as specified in <xref t | labels on that packet. The Explicit NULL Label Policy (ENLP) TLV is | |||
arget="RFC9256" sectionFormat="of" section="2.12"/>. | an optional TLV for the LSP object used to indicate whether an | |||
If the TLV is absent from the LSP object and the P-flag in the SRPOLICY-CAPABILI | Explicit NULL Label <xref target="RFC3032" format="default"/> must | |||
TY TLV is set to 1, a default Priority value of 128 is used.</t> | be pushed on an unlabeled IP packet before any other labels. The | |||
contents of this TLV are used by the SR Policy manager as described | ||||
in <xref format="default" section="4.1" sectionFormat="of" | ||||
target="RFC9256"/>. If an ENLP TLV is not present, the decision of | ||||
whether to push an Explicit NULL label 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. Therefore, the receiving PCEP | ||||
speaker <bcp14>MUST</bcp14> ignore the presence of this TLV for SRv6 | ||||
Policies.</t> | ||||
<figure anchor="COMPUTATION-PRIORITY-TLV-FORMAT" title="COMPUTATION-PRIORITY TLV | <figure anchor="ENLP-TLV-FORMAT"> | |||
Format"> | <name>Explicit Null Label Policy (ENLP) TLV Format</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
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 | | | ENLP | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | <dl spacing="normal" newline="false"> | |||
<dt>Type:</dt><dd>69 for the ENLP TLV.</dd> | ||||
<t>Type: 68 for "COMPUTATION-PRIORITY" TLV.</t> | <dt>Length:</dt><dd>4.</dd> | |||
<dt>ENLP:</dt><dd>Explicit NULL Label Policy. 8-bit unsigned | ||||
integer value that indicates whether Explicit NULL labels are to | ||||
be pushed on unlabeled IP packets that are being steered into a | ||||
given SR Policy. The values of this field are specified in the IANA | ||||
registry "SR Policy ENLP Values" under the "Segment Routing" registr | ||||
y | ||||
group, which was introduced in <xref section="6.10" | ||||
target="RFC9830" format="default"/>.</dd> | ||||
<dt>Reserved:</dt><dd>This field <bcp14>MUST</bcp14> be set to | ||||
zero on transmission and <bcp14>MUST</bcp14> be ignored on | ||||
receipt.</dd> | ||||
</dl> | ||||
<t>Length: 4.</t> | <t>The ENLP unassigned values may be used for future extensions, and | |||
implementations <bcp14>MUST</bcp14> ignore the ENLP TLV with | ||||
unrecognized values. The behavior signaled in this TLV | ||||
<bcp14>MAY</bcp14> be overridden by local configuration by the | ||||
network operator based on their deployment requirements. <xref | ||||
format="default" section="4.1" sectionFormat="of" target="RFC9256"/> | ||||
describes the behavior on the headend for the handling of the | ||||
explicit null label.</t> | ||||
<t>Priority: 8-bit unsigned integer value that encodes numerical priority with w hich this LSP is to be recomputed by the PCE upon topology change. Lowest value is the highest priority.</t> | </section> | |||
<t>Reserved: This field MUST be set to zero on transmission and MUST be ignored | <section anchor="Invalidation-tlv" numbered="true" toc="default"> | |||
on receipt.</t> | <name>INVALIDATION TLV</name> | |||
</section> <!-- Computation-priority-tlv --> | <t>The INVALIDATION TLV (<xref target="INVALIDATION-TLV-FORMAT" | |||
format="default"/>) is an optional TLV. This TLV is used to control | ||||
traffic steering into an LSP when the LSP is operationally | ||||
down/invalid. In the context of SR Policy, this TLV facilitates the | ||||
Drop-Upon-Invalid behavior, specified in <xref format="default" | ||||
section="8.2" sectionFormat="of" target="RFC9256"/>. Normally, if | ||||
the LSP is down/invalid then it stops attracting traffic; traffic | ||||
that would have been destined for that LSP is redirected somewhere | ||||
else, such as via IGP or another LSP. The Drop-Upon-Invalid | ||||
behavior specifies that the LSP keeps attracting traffic 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 operational state | ||||
is "UP", as indicated by the O-flag in the LSP object. However, the | ||||
ERO object <bcp14>MAY</bcp14> be empty if no valid path has been | ||||
computed.</t> | ||||
<section anchor="enlp-tlv" title="Explicit Null Label Policy (ENLP) TLV"> | <t>The INVALIDATION TLV is used in both directions between PCEP peers: </t> | |||
<t> | <ul spacing="normal"> | |||
To steer an unlabeled IP packet into an SR policy for the MPLS data plane, i | <li>PCE -> PCC: The PCE specifies to the PCC whether to enable | |||
t is necessary to push a label stack of one or more labels on that packet. | or disable Drop-Upon-Invalid (Config).</li> | |||
The Explicit NULL Label Policy (ENLP) TLV is an optional TLV for the LSP obj | <li>PCC -> PCE: The PCC reports the current setting of the | |||
ect used to indicate whether an Explicit NULL Label <xref target="RFC3032"/> mus | Drop-Upon-Invalid (Config) and also whether the LSP is currently | |||
t be pushed on an unlabeled IP packet before any other labels. | in the drop state (Oper).</li> | |||
The contents of this TLV are used by the SR Policy Manager as described in < | </ul> | |||
xref format="default" section="4.1" sectionFormat="of" target="RFC9256"/>. | ||||
If an ENLP TLV is not present, the decision of whether to push an Explicit N | ||||
ULL label 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. | ||||
Therefore, the receiving PCEP speaker MUST ignore the presence of this TLV for S | ||||
Rv6 Policies. | ||||
</t> | ||||
<figure anchor="ENLP-TLV-FORMAT" title="Explicit Null Label Policy (ENLP) TLV Fo | <figure anchor="INVALIDATION-TLV-FORMAT"> | |||
rmat"> | <name>INVALIDATION TLV Format</name> | |||
<artwork align="center"><![CDATA[ | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
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 | | | Oper | Config | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
]]></artwork> | </figure> | |||
</figure> | ||||
<t>Type: 69 for "ENLP" TLV.</t> | <dl spacing="normal" newline="false"> | |||
<dt>Type:</dt> | ||||
<dd>70 for the INVALIDATION TLV.</dd> | ||||
<dt>Length:</dt> | ||||
<dd>4.</dd> | ||||
<dt>Oper:</dt> | ||||
<dd><t>An 8-bit flag field that encodes the operational state of the | ||||
LSP. It <bcp14>MUST</bcp14> be set to 0 by the PCE when sending | ||||
and <bcp14>MUST</bcp14> be ignored by the PCC upon receipt. See | ||||
<xref target="inval_oper_iana" format="default"/> for IANA | ||||
information.</t> | ||||
<t>Length: 4.</t> | <figure anchor="OPER_INVAL_FLAGS"> | |||
<name>Oper State of Drop-Upon-Invalid Feature</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
0 1 2 3 4 5 6 7 | ||||
+-+-+-+-+-+-+-+-+ | ||||
| |D| | ||||
+-+-+-+-+-+-+-+-+]]></artwork> | ||||
</figure> | ||||
<t> | <ul indent="5"> | |||
ENLP (Explicit NULL Label Policy): 8-bit unsigned integer value that indicates | <!--[rfced] Section 5.2.3 vs. IANA Considerations: | |||
whether Explicit NULL labels are to be pushed on unlabeled IP packets | Should this text be updated to match the IANA-registered description of | |||
that are being steered into a given SR policy. | each bit (which appears in Tables 6 and 7), or is it intentional for | |||
The values of this field are specified in IANA registry "SR Policy ENLP Values | Section 5.2.3 to differ? | |||
" under "Segment Routing" registry group, which was introduced in Section 6.10 o | ||||
f <xref target="I-D.ietf-idr-sr-policy-safi"/>. | ||||
</t> | ||||
<t>Reserved: This field MUST be set to zero on transmission and MUST be ignored on receipt.</t> | - See https://www.iana.org/assignments/pcep/pcep.xhtml#sr-policy-invalidation-op erational-flags | |||
<t> | Original: | |||
The ENLP unassigned values may be used for future extensions and implementat | * D: dropping - the LSP is actively dropping traffic as a result of | |||
ions MUST ignore the ENLP TLV with unrecognized values. | Drop-upon-invalid behavior being activated. | |||
The behavior signaled in this TLV MAY be overridden by local configuration b | ||||
y the network operator based on their deployment requirements. | ||||
The <xref format="default" section="4.1" sectionFormat="of" target="RFC9256" | ||||
/> describes the behavior on the headend for the handling of the explicit null l | ||||
abel. | ||||
</t> | ||||
</section> <!-- enlp-tlv --> | Perhaps (if it should match the IANA registry, including the | |||
capitalization change which we will request): | ||||
<section anchor="Invalidation-tlv" title="Invalidation TLV"> | * D: Dropping - the LSP is currently attracting traffic and | |||
actively dropping it. | ||||
<t>The INVALIDATION TLV (<xref target="INVALIDATION-TLV-FORMAT"/>) is an optiona | - See https://www.iana.org/assignments/pcep/pcep.xhtml#sr-policy-invalidation-co | |||
l TLV. | nfiguration-flags | |||
This TLV is used to control traffic steering into an LSP | ||||
when the LSP is operationally down/invalid. | ||||
In the context of SR Policy, this TLV facilitates | ||||
the Drop-upon-invalid behavior, | ||||
specified in <xref format="default" section="8.2" sectionFormat="of" target="RFC | ||||
9256"/>. | ||||
Normally, if the LSP is down/invalid then it stops attracting traffic; | ||||
traffic that would have been destined for that LSP | ||||
is redirected somewhere else, such as via IGP or another LSP. | ||||
The Drop-upon-invalid behavior specifies that the LSP keeps attracting traffic | ||||
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 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 been computed. | ||||
</t> | ||||
<t> | ||||
The INVALIDATION TLV is used in both directions between PCEP peers: | ||||
<list style="symbols"> | ||||
<t>PCE -> PCC: PCE specifies to the PCC whether to enable or disable Drop-up | ||||
on-invalid (Config).</t> | ||||
<t>PCC -> PCE: PCC reports the current setting of the Drop-upon-invalid (Con | ||||
fig) and also whether the LSP is currently in the drop state (Oper).</t> | ||||
</list> | ||||
</t> | ||||
<figure anchor="INVALIDATION-TLV-FORMAT" title="INVALIDATION TLV Format"> | Original: | |||
<artwork align="center"><![CDATA[ | * D: drop enabled - the Candidate Path has Drop-upon-invalid feature | |||
0 1 2 3 | enabled. | |||
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 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Oper | Config | Reserved | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<t>Type: 70 for "INVALIDATION" TLV.</t> | Perhaps (if it should match the IANA registry, including the capitalization | |||
changes that we will request): | ||||
<t>Length: 4.</t> | * D: Drop enabled - the Drop-Upon-Invalid is enabled on the LSP. | |||
--> | ||||
<li>D: Dropping - the LSP is actively dropping traffic as a result | ||||
of Drop-Upon-Invalid behavior being activated.</li> | ||||
<t>Oper: An 8-bit flag field that encodes the operational state of the LSP. It M | <li>The unassigned bits in the Flag octet <bcp14>MUST</bcp14> be | |||
UST be set to 0 by the PCE when sending and MUST be ignored by the PCC upon rece | set to zero upon transmission and <bcp14>MUST</bcp14> be ignored | |||
ipt. | upon receipt.</li> | |||
See <xref target="inval_oper_iana"/> for IANA information. | </ul> | |||
</t> | </dd> | |||
<figure anchor="OPER_INVAL_FLAGS" title="Oper state of Drop-upon-invalid feature | <dt>Config:</dt> | |||
"> | <dd><t>An 8-bit flag field that encodes the configuration of the LSP. | |||
<artwork align="center"><![CDATA[ | See <xref target="inval_config_iana" format="default"/> for IANA | |||
0 1 2 3 4 5 6 7 | information.</t> | |||
+-+-+-+-+-+-+-+-+ | ||||
| |D| | ||||
+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<t> | <figure anchor="CONFIG_INVAL_FLAGS"> | |||
<list style="symbols"> | <name>Config State of Drop-Upon-Invalid Feature</name> | |||
<t>D: dropping - the LSP is actively dropping traffic as a result of Drop-up | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
on-invalid behavior being activated.</t> | 0 1 2 3 4 5 6 7 | |||
<t>The unassigned bits in the Flag octet MUST be set to zero upon transmissi | +-+-+-+-+-+-+-+-+ | |||
on and MUST be ignored upon receipt.</t> | | |D| | |||
</list> | +-+-+-+-+-+-+-+-+]]></artwork> | |||
</t> | </figure> | |||
<t>Config: An 8-bit flag field that encodes the configuration of the LSP. | <ul indent="5"> | |||
See <xref target="inval_config_iana"/> for IANA information. | <li>D: Drop enabled - the Candidate Path has Drop-Upon-Invalid | |||
</t> | feature enabled.</li> | |||
<li>The unassigned bits in the Flag octet <bcp14>MUST</bcp14> be | ||||
set to zero upon transmission and <bcp14>MUST</bcp14> be ignored | ||||
upon receipt.</li> | ||||
</ul> | ||||
</dd> | ||||
<figure anchor="CONFIG_INVAL_FLAGS" title="Config state of Drop-upon-invalid fea | <dt>Reserved:</dt> | |||
ture"> | <dd>This field <bcp14>MUST</bcp14> be set to zero on transmission | |||
<artwork align="center"><![CDATA[ | and <bcp14>MUST</bcp14> be ignored on receipt.</dd> | |||
0 1 2 3 4 5 6 7 | </dl> | |||
+-+-+-+-+-+-+-+-+ | ||||
| |D| | ||||
+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<t> | <section anchor="Invalidation-per-policy" numbered="true" toc="default | |||
<list style="symbols"> | "> | |||
<t>D: drop enabled - the Candidate Path has Drop-upon-invalid feature enable | <name>Drop-Upon-Invalid Applies to SR Policy</name> | |||
d.</t> | <t>The Drop-Upon-Invalid feature is somewhat special among the | |||
<t>The unassigned bits in the Flag octet MUST be set to zero upon transmissi | other SR Policy features in the way that it is enabled/disabled. | |||
on and MUST be ignored upon receipt.</t> | This feature is enabled only on the whole SR Policy, not on a | |||
</list> | particular Candidate Path of that SR Policy, i.e., when any | |||
</t> | Candidate Path has Drop-Upon-Invalid enabled, it means that the | |||
whole SR Policy has the feature enabled. As stated in <xref | ||||
format="default" section="8.1" sectionFormat="of" | ||||
target="RFC9256"/>, an SR Policy is invalid when all its Candidate | ||||
Paths are invalid.</t> | ||||
<!--[rfced] Section 5.2.3.1: Does 'the D (dropping) flag set' refer to | ||||
the D flag (Dropping) from Figure 10 or | ||||
the D flag (Drop enabled) from Figure 11? | ||||
<t>Reserved: This field MUST be set to zero on transmission and MUST be ignored | Original: | |||
on receipt.</t> | Note that only one Candidate Path | |||
needs to be reported to the PCE with the D (dropping) flag set. | ||||
<section anchor="Invalidation-per-policy" title="Drop-upon-invalid applies to SR | Perhaps (if from Figure 10): | |||
Policy"> | Note that only one Candidate Path | |||
needs to be reported to the PCE with the Dropping (D) flag set. | ||||
--> | ||||
<t>Once all the Candidate Paths of an SR Policy have become | ||||
invalid, then the SR Policy checks whether any of the Candidate | ||||
Paths have Drop-Upon-Invalid enabled. If so, the SR Policy enters | ||||
the drop state and "activates" the highest preference Candidate | ||||
Path that has the Drop-Upon-Invalid enabled. Note that only one | ||||
Candidate Path needs to be reported to the PCE with the D (dropping) | ||||
flag set.</t> | ||||
</section> | ||||
</section> | ||||
</section> | ||||
<t> | <section anchor="Stateless-oper" numbered="true" toc="default"> | |||
The Drop-upon-invalid feature is somewhat special among the other SR Policy feat | <name>Updates to RFC 8231</name> | |||
ures in the way that it is enabled/disabled. | <t><xref format="default" section="5.8.2" sectionFormat="of" | |||
This feature is enabled only on the whole SR Policy, not on a particular Candida | target="RFC8231"/> allows delegation of an LSP in operationally down | |||
te Path of that SR Policy, | state, but at the same time mandates the use of PCReq before sending | |||
i.e., when any Candidate Path has Drop-upon-invalid enabled, it means that the w | PCRpt. This document updates <xref format="default" section="5.8.2" | |||
hole SR Policy has the feature enabled. | sectionFormat="of" target="RFC8231"/>, by making that section of <xref | |||
As stated in <xref format="default" section="8.1" sectionFormat="of" target="RFC | target="RFC8231" format="default"/> not applicable to SR Policy LSPs. | |||
9256"/>, an SR Policy is invalid when all its Candidate Paths are invalid. | Thus, when a PCC wants to delegate an SR Policy LSP, it | |||
</t> | <bcp14>MAY</bcp14> proceed directly to sending PCRpt, without first | |||
sending PCReq and waiting for PCRep. This has the advantage of | ||||
reducing the number of PCEP messages and simplifying the | ||||
implementation.</t> | ||||
<t>Furthermore, a PCEP speaker is not required to support PCReq/PCRep | ||||
at all for SR Policies. The PCEP speaker can indicate support for | ||||
PCReq/PCRep via the L-flag in the SRPOLICY-CAPABILITY TLV (see <xref | ||||
target="Capability-tlv" format="default"/>). When this flag is | ||||
cleared, or when the SRPOLICY-CAPABILITY TLV is absent, the given peer | ||||
<bcp14>MUST NOT</bcp14> be sent PCReq/PCRep messages for SR Policy | ||||
LSPs. Conversely, when this flag is set, the peer can receive and | ||||
process PCReq/PCRep messages for SR Policy LSPs.</t> | ||||
<t>The above applies only to SR Policy LSPs and does not affect other | ||||
LSP types, such as RSVP-TE LSPs. For other LSP types, <xref | ||||
format="default" section="5.8.2" sectionFormat="of" target="RFC8231"/> | ||||
continues to apply.</t> | ||||
</section> | ||||
</section> | ||||
<t> | <section numbered="true" toc="default"> | |||
Once all the Candidate Paths of an SR Policy have become invalid, then the SR Po | <name>IANA Considerations</name> | |||
licy checks whether any of the Candidate Paths | <t>IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | |||
have Drop-upon-invalid enabled. | registry at <eref brackets="angle" target="https://www.iana.org/assignments/ | |||
If so, the SR Policy enters the drop state and "activates" the highest preferenc | pcep"/>.</t> | |||
e Candidate Path which has | <section anchor="Association-Type" numbered="true" toc="default"> | |||
the Drop-upon-invalid enabled. | <name>Association Type</name> | |||
Note that only one Candidate Path needs to be reported to the PCE with the D (dr | <t>This document defines a new Association Type: SR Policy | |||
opping) flag set. | Association. IANA has made the following assignment in | |||
</t> | the "ASSOCIATION Type Field" registry within the "Path Computation | |||
Element Protocol (PCEP) Numbers" registry group:</t> | ||||
<table> | ||||
<thead> | ||||
<tr><th>Type</th><th>Name</th><th>Reference</th></tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr><td>6</td><td>SR Policy Association</td><td>RFC 9862</td></tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
</section> <!-- Invalidation-per-policy --> | <section numbered="true" toc="default"> | |||
<name>PCEP TLV Type Indicators</name> | ||||
<t>This document defines eight new TLVs for carrying additional | ||||
information about SR Policy and SR Policy Candidate Paths. IANA | ||||
has made the following assignments in the existing "PCEP | ||||
TLV Type Indicators" registry:</t> | ||||
</section> <!-- Invalidation-tlv --> | <table> | |||
<thead> | ||||
<tr> | ||||
<th>Value</th> | ||||
<th>Description</th> | ||||
<th>Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td>56</td> | ||||
<td>SRPOLICY-POL-NAME</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>57</td> | ||||
<td>SRPOLICY-CPATH-ID</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>58</td> | ||||
<td>SRPOLICY-CPATH-NAME</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>59</td> | ||||
<td>SRPOLICY-CPATH-PREFERENCE</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>68</td> | ||||
<td>COMPUTATION-PRIORITY</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>69</td> | ||||
<td>EXPLICIT-NULL-LABEL-POLICY</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>70</td> | ||||
<td>INVALIDATION</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td>71</td> | ||||
<td>SRPOLICY-CAPABILITY</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> <!-- lsp-object-tlvs --> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>PCEP Errors</name> | ||||
<t>This document defines the following:</t> | ||||
<ul> | ||||
<li>one new Error-value within the "Mandatory Object Missing" Error-Typ | ||||
e,</li> | ||||
<li>two new Error-values within the "Association Error" Error-Type, and | ||||
</li> | ||||
<li>one new Error-value within the "Reception of an invalid object".</l | ||||
i> | ||||
</ul> | ||||
<t>IANA has made the following assignments in the | ||||
"PCEP-ERROR Object Error Types and Values" registry of the "Path | ||||
Computation Element Protocol (PCEP) Numbers" registry group.</t> | ||||
<section anchor="Stateless-oper" title="Update to RFC 8231"> | <table> | |||
<thead> | ||||
<tr> | ||||
<th>Error-Type</th> | ||||
<th>Meaning</th> | ||||
<th>Error-value</th> | ||||
<th>Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td rowspan="2">6</td> | ||||
<td>Mandatory Object Missing</td> | ||||
<td></td> | ||||
<td><xref target="RFC5440"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td></td> | ||||
<td>21: Missing SR Policy Mandatory TLV</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td rowspan="3">26</td> | ||||
<td>Association Error</td> | ||||
<td></td> | ||||
<td><xref target="RFC8697"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td></td> | ||||
<td>20: SR Policy Identifers Mismatch</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td></td> | ||||
<td>21: SR Policy Candidate Path Identifier Mismatch</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>IANA has made the following assigments in the "PCEP-ERROR Object Erro | ||||
r Types and Values" registry of the "Path Computation Element Protocol (PCEP) Nu | ||||
mbers" registry group.</t> | ||||
<t> | <table> | |||
<xref format="default" section="5.8.2" sectionFormat="of" target="RFC8231"/>, al | <thead> | |||
lows delegation of an LSP in operationally down state, | <tr> | |||
but at the same time mandates the use of PCReq before sending PCRpt. | <th>Error-Type</th> | |||
This document updates <xref format="default" section="5.8.2" sectionFormat="of" | <th>Meaning</th> | |||
target="RFC8231"/>, | <th>Error-value</th> | |||
by making that section of <xref target="RFC8231"/> not applicable to SR Policy L | <th>Reference</th> | |||
SPs. | </tr> | |||
Thus, when a PCC wants to delegate an SR Policy LSP, it MAY proceed directly to | </thead> | |||
sending PCRpt, | <tbody> | |||
without first sending PCReq and waiting for PCRep. | <tr> | |||
This has the advantage of reducing the number of PCEP messages and simplifying t | <td rowspan="2">6</td> | |||
he implementation. | <td>Mandatory Object Missing</td> | |||
</t> | <td></td> | |||
<td><xref target="RFC5440"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td></td> | ||||
<td>22: Missing SR Policy Association</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
<tr> | ||||
<td rowspan="2">10</td> | ||||
<td>Reception of an invalid object</td> | ||||
<td></td> | ||||
<td><xref target="RFC5440"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td></td> | ||||
<td>44: Missing SRPOLICY-CAPABILITY TLV</td> | ||||
<td>RFC 9862</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t> | </section> | |||
Furthermore, a PCEP speaker is not required to support PCReq/PCRep at all for SR | <section numbered="true" toc="default"> | |||
Policies. | <name>TE-PATH-BINDING TLV Flag Field</name> | |||
The PCEP speaker can indicate support for PCReq/PCRep via the "L-Flag" in | <t>A draft version of this document added a new bit in the | |||
the SRPOLICY-CAPABILITY TLV (See <xref target="Capability-tlv"/>). | "TE-PATH-BINDING TLV Flag Field" registry of the "Path Computation | |||
When this flag is cleared, or when the SRPOLICY-CAPABILITY TLV is absent, | Element Protocol (PCEP) Numbers" registry group, which was early | |||
the given peer MUST NOT be sent PCReq/PCRep messages for SR Policy LSPs. | allocated by IANA.</t> | |||
Conversely, when this flag is set, the peer can receive and process | <t>IANA has marked the bit position as deprecated.</t> | |||
PCReq/PCRep messages for SR Policy LSPs. | ||||
</t> | ||||
<t> | <table> | |||
The above applies only to SR Policy LSPs and does not affect other LSP types, | <thead> | |||
such as RSVP-TE LSPs. For other LSP types, <xref format="default" section="5.8.2 | <tr><th>Bit</th><th>Description</th><th>Reference</th></tr> | |||
" sectionFormat="of" target="RFC8231"/> | </thead> | |||
continues to apply. | <tbody> | |||
</t> | <tr><td>1</td><td>Deprecated (Specified-BSID-only)</td><td>RFC 9862</td></tr | |||
> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="inval_oper_iana" numbered="true" toc="default"> | ||||
<name>SR Policy Invalidation Operational State</name> | ||||
<t>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 Operational Flags". New | ||||
values are to be assigned by "IETF Review" <xref target="RFC8126" | ||||
format="default"/>. Each bit will be tracked with the following | ||||
qualities: | ||||
</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>Bit (counting from bit 0 as the most significant bit)</t> | ||||
</li> | ||||
<li> | ||||
<t>Description</t> | ||||
</li> | ||||
<li> | ||||
<t>Reference</t> | ||||
</li> | ||||
</ul> | ||||
<table> | ||||
<thead> | ||||
<tr><th>Bit</th><th>Description</th><th>Reference</th></tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr><td>0 - 6</td><td>Unassigned</td><td></td></tr> | ||||
<tr><td>7</td><td>D: Dropping - the LSP is currently attracting traffic and | ||||
actively dropping it.</td><td>RFC 9862</td></tr> | ||||
</tbody> | ||||
</table> | ||||
</section> <!-- Stateless-oper --> | </section> | |||
<section anchor="inval_config_iana" numbered="true" toc="default"> | ||||
<name>SR Policy Invalidation Configuration State</name> | ||||
<t>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" <xref target="RFC8126" | ||||
format="default"/>. Each bit will be tracked with the following | ||||
qualities: | ||||
</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>Bit (counting from bit 0 as the most significant bit)</t> | ||||
</li> | ||||
<li> | ||||
<t>Description</t> | ||||
</li> | ||||
<li> | ||||
<t>Reference</t> | ||||
</li> | ||||
</ul> | ||||
</section> <!-- Other mechanisms --> | <table> | |||
<thead> | ||||
<tr><th>Bit</th><th>Description</th><th>Reference</th></tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr><td>0 - 6</td><td>Unassigned.</td><td></td></tr> | ||||
<tr><td>7</td><td>D: Drop enabled - the Drop-Upon-Invalid is enabled on the | ||||
LSP.</td><td>RFC 9862</td></tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="sr_policy_cap_flag_field" numbered="true" toc="default"> | ||||
<name>SR Policy Capability TLV Flag Field</name> | ||||
<t>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" <xref target="RFC8126" | ||||
format="default"/>. Each bit will be tracked with the following | ||||
qualities: | ||||
</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>Bit (counting from bit 0 as the most significant bit)</t> | ||||
</li> | ||||
<li> | ||||
<t>Description</t> | ||||
</li> | ||||
<li> | ||||
<t>Reference</t> | ||||
</li> | ||||
</ul> | ||||
<section title="IANA Considerations"> | <table> | |||
<thead> | ||||
<tr><th>Bit</th><th>Description</th><th>Reference</th></tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr><td>0 - 26</td><td>Unassigned</td><td>RFC 9862</td></tr> | ||||
<tr><td>27</td><td>Stateless Operation (L-flag)</td><td>RFC 9862</td></tr> | ||||
<tr><td>28</td><td>Unassigned</td><td>RFC 9862</td></tr> | ||||
<tr><td>29</td><td>Invalidation (I-flag)</td><td>RFC 9862</td></tr> | ||||
<tr><td>30</td><td>Explicit NULL Label Policy (E-flag)</td><td>RFC 9862</td> | ||||
</tr> | ||||
<tr><td>31</td><td>Computation Priority (P-flag)</td><td>RFC 9862</td></tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
</section> | ||||
<t>IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" | <section numbered="true" toc="default"> | |||
registry at <eref brackets="angle" target="https://www.iana.org/assignments/ | <name>Security Considerations</name> | |||
pcep"/>.</t> | <t>The information carried in the newly defined SRPA object and TLVs | |||
could provide an eavesdropper with additional information about the SR | ||||
Policy.</t> | ||||
<t>The security considerations described in <xref target="RFC5440" | ||||
format="default"/>, <xref target="RFC8231" format="default"/>, <xref | ||||
target="RFC8281" format="default"/>, <xref target="RFC8664" | ||||
format="default"/>, <xref target="RFC8697" format="default"/>, <xref | ||||
target="RFC9256" format="default"/>, and <xref target="RFC9603" | ||||
format="default"/> are applicable to this specification.</t> | ||||
<t>As per <xref target="RFC8231" format="default"/>, it is | ||||
<bcp14>RECOMMENDED</bcp14> that these PCEP extensions can only be | ||||
activated on authenticated and encrypted sessions across PCEs and PCCs | ||||
belonging to the same administrative authority, using Transport Layer | ||||
Security (TLS) <xref target="RFC8253" format="default"/> as per the | ||||
recommendations and best current practices in <xref target="RFC9325" | ||||
format="default"/>.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Manageability Considerations</name> | ||||
<t>All manageability requirements and considerations listed in <xref | ||||
target="RFC5440" format="default"/>, <xref target="RFC8231" | ||||
format="default"/>, <xref target="RFC8664" format="default"/>, <xref | ||||
target="RFC9256" format="default"/>, and <xref target="RFC9603" | ||||
format="default"/> apply to PCEP protocol extensions defined in this | ||||
document. In addition, requirements and considerations listed in this | ||||
section apply.</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Control of Function and Policy</name> | ||||
<t>A PCE or PCC implementation <bcp14>MAY</bcp14> allow the | ||||
capabilities specified in <xref target="Capability-tlv"/> and the | ||||
capability for support of an SRPA advertised in the ASSOC-Type-List TLV | ||||
to | ||||
be enabled and disabled.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Information and Data Models</name> | ||||
<section anchor="Association-Type" title="Association Type"> | <!-- [rfced] Does "described in Section 4" refer to Section 4 | |||
<t>This document defines a new association type: SR Policy Association. | of this document or Section 4 of [I-D.ietf-pce-pcep-srv6-yang]? | |||
IANA is requested to confirm the following allocation in the | ||||
"ASSOCIATION Type Field" registry within | ||||
the "Path Computation Element Protocol (PCEP) Numbers" registry group:</t> | ||||
<t> | ||||
<figure> | ||||
<artwork align="left"><![CDATA[ | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| Type | Name | Reference | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 6 | SR Policy Association | This.I-D | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | ||||
</section> | ||||
<section title="PCEP TLV Type Indicators"> | Original: | |||
<t>This document defines eight new TLVs for carrying additional information abou | [I-D.ietf-pce-pcep-srv6-yang] defines YANG module with common | |||
t SR Policy and SR Policy Candidate Paths. IANA is requested to confirm the foll | building blocks for PCEP Extensions described in Section 4. | |||
owing allocations in the existing "PCEP TLV Type Indicators" registry as follows | --> | |||
:</t> | ||||
<t> | ||||
<figure> | ||||
<artwork align="left"><![CDATA[ | ||||
+-----------+-------------------------------------------+-----------+ | ||||
| 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 | | ||||
+-----------+-------------------------------------------+-----------+ | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | ||||
</section> | ||||
<section title="PCEP Errors"> | <t><xref target="I-D.ietf-pce-pcep-srv6-yang"/> defines a YANG | |||
<t>This document defines one new Error-Value within the "Mandatory Object Missin | module with common building blocks for PCEP extensions described in | |||
g" Error-Type, two new Error-Values within the "Association Error" Error-Type an | Section 4.</t> | |||
d one new Error-Value within the "Reception of an invalid object". </t> | </section> | |||
<t>IANA is requested to confirm the following allocations within the "PCEP-ERROR | <section numbered="true" toc="default"> | |||
Object Error Types and Values" registry of the "Path Computation Element Protoc | <name>Liveness Detection and Monitoring</name> | |||
ol (PCEP) Numbers" registry group.</t> | <t>Mechanisms defined in this document do not imply any new liveness | |||
<t> | detection and monitoring requirements in addition to those already | |||
<figure> | listed in <xref target="RFC5440" format="default"/>, <xref | |||
<artwork align="left"><![CDATA[ | target="RFC8664" format="default"/>, and <xref target="RFC9256" | |||
+------------+------------------+-----------------------+-----------+ | format="default"/>.</t> | |||
| Error-Type | Meaning | Error-value | Reference | | </section> | |||
+------------+------------------+-----------------------+-----------+ | <section numbered="true" toc="default"> | |||
| 6 | Mandatory Object | | [RFC5440] | | <name>Verify Correct Operations</name> | |||
| | Missing | | | | <t>Operation verification requirements already listed in <xref | |||
+------------+------------------+-----------------------+-----------+ | target="RFC5440" format="default"/>, <xref target="RFC8231" | |||
| | | 21: Missing SR | This.I-D | | format="default"/>, <xref target="RFC8664" format="default"/>, <xref | |||
| | | Policy Mandatory TLV | | | target="RFC9256" format="default"/>, and <xref target="RFC9603" | |||
+------------+------------------+-----------------------+-----------+ | format="default"/> are applicable to mechanisms defined in this | |||
| 26 | Association | | [RFC8697] | | document.</t> | |||
| | Error | | | | <t>An implementation <bcp14>MUST</bcp14> allow the operator to view SR | |||
+------------+------------------+-----------------------+-----------+ | Policy Identifier and SR Policy Candidate Path Identifier advertised | |||
| | | 20: SR Policy | This.I-D | | in an SRPA object.</t> | |||
| | | Identifers Mismatch | | | <t>An implementation <bcp14>SHOULD</bcp14> allow the operator to view | |||
+------------+------------------+-----------------------+-----------+ | the capabilities defined in this document advertised by each PCEP | |||
| | | 21: SR Policy | This.I-D | | peer.</t> | |||
| | | Candidate Path | | | <t>An implementation <bcp14>SHOULD</bcp14> allow the operator to view | |||
| | | Identifier Mismatch | | | LSPs associated with a specific SR Policy Identifier.</t> | |||
+------------+------------------+-----------------------+-----------+ | </section> | |||
]]></artwork> | <section numbered="true" toc="default"> | |||
</figure></t> | <name>Requirements on Other Protocols</name> | |||
<t>The PCEP extensions defined in this document do not imply any new req | ||||
uirements on other protocols.</t> | ||||
</section> | ||||
<t>IANA is requested to make new allocations within the "PCEP-ERROR Object Error | <section numbered="true" toc="default"> | |||
Types and Values" registry of the "Path Computation Element Protocol (PCEP) Num | <name>Impact on Network Operations</name> | |||
bers" registry group.</t> | <t>The mechanisms defined in <xref target="RFC5440" format="default"/>, | |||
<xref target="RFC8231" format="default"/>, <xref target="RFC9256" format="defaul | ||||
t"/>, and <xref target="RFC9603" format="default"/> also apply to the PCEP exten | ||||
sions defined in this document.</t> | ||||
</section> | ||||
</section> | ||||
<t><figure> | </middle> | |||
<artwork align="left"><![CDATA[ | <back> | |||
+------------+------------------+-----------------------+-----------+ | ||||
| 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 | | | ||||
+------------+------------------+-----------------------+-----------+ | ||||
]]></artwork> | <displayreference target="I-D.ietf-pce-pcep-srv6-yang" to="PCEP-SRv6-YANG" / | |||
</figure> | > | |||
</t> | <displayreference target="I-D.ietf-idr-bgp-ls-sr-policy" to="ADV-SR-POLICY" | |||
</section> | /> | |||
<displayreference target="I-D.ietf-pce-multipath" to="PCEP-MULTIPATH" /> | ||||
<references> | ||||
<section title="TE-PATH-BINDING TLV Flag field"> | <name>References</name> | |||
<t> | <references> | |||
An earlier version of this document added new bit within the "TE-PATH-BINDING TL | <name>Normative References</name> | |||
V Flag field" registry of the "Path Computation Element Protocol (PCEP) Numbers" | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0 | |||
registry group, which was also early allocated by the IANA.</t> | 020.xml"/> | |||
<t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
IANA is requested to mark the bit position as deprecated.</t> | 119.xml"/> | |||
<t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
<figure> | 032.xml"/> | |||
<artwork align="left"><![CDATA[ | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
+------------+------------------------------------------+-----------+ | 440.xml"/> | |||
| Bit position | Description | Reference | | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
+--------------+----------------------------------------+-----------+ | 126.xml"/> | |||
| 1 | Deprecated (Specified-BSID-only) | This.I-D | | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
+--------------+----------------------------------------+-----------+ | 174.xml"/> | |||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
231.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
253.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
281.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
402.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
408.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
664.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
697.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
256.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
325.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
603.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
]]></artwork> | <!-- draft-ietf-idr-sr-policy-safi-13 now RFC 9830 | |||
</figure> | --> | |||
</t> | ||||
</section> | ||||
<section anchor="inval_oper_iana" title="SR Policy Invalidation Operational Stat | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9830.xml" | |||
e"> | /> | |||
<t> | ||||
This document requests IANA to maintain a new registry under "Path Computation E | ||||
lement Protocol (PCEP) Numbers" registry group. | ||||
The new registry is called "SR Policy Invalidation Operational Flags". | ||||
New values are to be assigned by "IETF review" <xref target="RFC8126"/>. | ||||
Each bit should be tracked with the following qualities: | ||||
<list style="symbols"> | ||||
<t>Bit (counting from bit 0 as the most significant bit).</t> | ||||
<t>Description.</t> | ||||
<t>Reference.</t> | ||||
</list> | ||||
</t> | ||||
<figure> | ||||
<artwork align="left"><![CDATA[ | ||||
+-------+-----------------------------------------------+-----------+ | ||||
| Bit | Description | Reference | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
| 0 - 6 | Unassigned | This.I-D | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
| 7 | D: dropping - the LSP is currently attracting | This.I-D | | ||||
| | traffic and actively dropping it. | | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
<section anchor="inval_config_iana" title="SR Policy Invalidation Configuration | <!-- [I-D.ietf-idr-bgp-ls-sr-policy] | |||
State"> | --> | |||
<t> | ||||
This document requests IANA to maintain a new registry under "Path Computation E | ||||
lement Protocol (PCEP) Numbers" registry group. | ||||
The new registry is called "SR Policy Invalidation Configuration Flags". | ||||
New values are to be assigned by "IETF review" <xref target="RFC8126"/>. | ||||
Each bit should be tracked with the following qualities: | ||||
<list style="symbols"> | ||||
<t>Bit (counting from bit 0 as the most significant bit).</t> | ||||
<t>Description.</t> | ||||
<t>Reference.</t> | ||||
</list> | ||||
</t> | ||||
<figure> | ||||
<artwork align="left"><![CDATA[ | ||||
+-------+-----------------------------------------------+-----------+ | ||||
| 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. | | | ||||
+-------+-----------------------------------------------+-----------+ | ||||
]]></artwork> | ||||
</figure> | ||||
</section> | ||||
<section anchor="sr_policy_cap_flag_field" title="SR Policy Capability TLV Flag | <reference anchor="I-D.ietf-idr-bgp-ls-sr-policy" target="https://datatracker.ie | |||
field"> | tf.org/doc/html/draft-ietf-idr-bgp-ls-sr-policy-17"> | |||
<t> | <front> | |||
This document requests IANA to maintain a new registry under "Path Computation E | <title>Advertisement of Segment Routing Policies using BGP Link-State</tit | |||
lement Protocol (PCEP) Numbers" registry group. | le> | |||
The new registry is called "SR Policy Capability TLV Flag Field". | <author initials="S." surname="Previdi" fullname="Stefano Previdi"> | |||
New values are to be assigned by "IETF review" <xref target="RFC8126"/>. | <organization>Individual</organization> | |||
Each bit should be tracked with the following qualities: | </author> | |||
<list style="symbols"> | <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" rol | |||
<t>Bit (counting from bit 0 as the most significant bit).</t> | e="editor"> | |||
<t>Description.</t> | <organization>Cisco Systems</organization> | |||
<t>Reference.</t> | </author> | |||
</list> | <author initials="J." surname="Dong" fullname="Jie Dong"> | |||
</t> | <organization>Huawei Technologies</organization> | |||
<figure> | </author> | |||
<artwork align="left"><![CDATA[ | <author initials="H." surname="Gredler" fullname="Hannes Gredler"> | |||
+--------+-----------------------------------------------+-----------+ | <organization>RtBrick Inc.</organization> | |||
| Bit | Description | Reference | | </author> | |||
+--------+-----------------------------------------------+-----------+ | <author initials="J." surname="Tantsura" fullname="Jeff Tantsura"> | |||
| 0 - 26 | Unassigned | This.I-D | | <organization>Nvidia</organization> | |||
+--------+-----------------------------------------------+-----------+ | </author> | |||
| 27 | Stateless Operation (L-Flag) | This.I-D | | <date month="March" day="6" year="2025" /> | |||
+--------+-----------------------------------------------+-----------+ | </front> | |||
| 28 | Unassigned | This.I-D | | <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-sr-policy-17" | |||
+--------+-----------------------------------------------+-----------+ | /> | |||
| 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 | | ||||
+--------+-----------------------------------------------+-----------+ | ||||
]]></artwork> | </reference> | |||
</figure> | ||||
</section> | ||||
</section> | <!-- [I-D.ietf-pce-multipath] | |||
draft-ietf-pce-multipath-13 | ||||
IESG State: I-D Exists as of 06/03/25 | ||||
--> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
ietf-pce-multipath.xml"/> | ||||
<section title="Implementation Status"> | <!-- [I-D.ietf-pce-pcep-srv6-yang] | |||
<t>[Note to the RFC Editor - remove this section before publication, as | draft-ietf-pce-pcep-srv6-yang-07 | |||
well as remove the reference to RFC 7942.]</t> | IESG State: I-D Exists as of 06/03/25 | |||
--> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D. | ||||
ietf-pce-pcep-srv6-yang.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
031.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
655.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
552.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
604.xml"/> | ||||
</references> | ||||
</references> | ||||
<t>This section records the status of known implementations of the | <section anchor="Acknowledgement" numbered="false" toc="default"> | |||
protocol defined by this specification at the time of posting of this | <name>Acknowledgements</name> | |||
Internet-Draft, and is based on a proposal described in <xref | <t>We would like to thank <contact fullname="Abdul Rehman"/>, <contact | |||
target="RFC7942"/>. The description of implementations in this section | fullname="Andrew Stone"/>, <contact fullname="Boris Khasanov"/>, | |||
is intended to assist the IETF in its decision processes in progressing | <contact fullname="Cheng Li"/>, <contact fullname="Dhruv Dhody"/>, | |||
drafts to RFCs. Please note that the listing of any individual | <contact fullname="Gorry Fairhurst"/>, <contact fullname="Gyan | |||
implementation here does not imply endorsement by the IETF. Furthermore, | Mishra"/>, <contact fullname="Huaimo Chen"/>, <contact fullname="Ines | |||
no effort has been spent to verify the information presented here that | Robles"/>, <contact fullname="Joseph Salowey"/>, <contact | |||
was supplied by IETF contributors. This is not intended as, and must not | fullname="Ketan Talaulikar"/>, <contact fullname="Marina Fizgeer"/>, | |||
be construed to be, a catalog of available implementations or their | <contact fullname="Mike Bishopm"/>, <contact fullname="Praveen Kumar"/>, | |||
features. Readers are advised to note that other implementations may | <contact fullname="Robert Sparks"/>, <contact fullname="Roman | |||
exist.</t> | Danyliw"/>, <contact fullname="Stephane Litkowski"/>, <contact | |||
fullname="Tom Petch"/>, <contact fullname="Zoey Rose"/>, <contact | ||||
fullname="Xiao Min"/>, <contact fullname="Xiong Quan"/> for review and | ||||
suggestions.</t> | ||||
</section> | ||||
<t>According to <xref target="RFC7942"/>, "this will allow reviewers and | <section numbered="false" toc="default"> | |||
working groups to assign due consideration to documents that have the | <name>Contributors</name> | |||
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".</t> | ||||
<section anchor="Cisco" title="Cisco"> | <contact fullname="Dhruv Dhody"> | |||
<t><list style="symbols"> | <organization>Huawei</organization> | |||
<t>Organization: Cisco Systems</t> | <address> | |||
<postal> | ||||
<country>India</country> | ||||
</postal> | ||||
<email>dhruv.ietf@gmail.com</email> | ||||
</address> | ||||
</contact> | ||||
<t>Implementation: IOS-XR PCC and PCE.</t> | <contact fullname="Cheng Li"> | |||
<organization>Huawei Technologies</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Huawei Campus, No. 156 Beiqing Rd.</street> | ||||
<city>Beijing</city><code>10095</code> | ||||
<country>China</country> | ||||
</postal> | ||||
<email>chengli13@huawei.com</email> | ||||
</address> | ||||
</contact> | ||||
<t>Description: All features supported except Computation Priority, | <contact fullname="Zafar Ali"> | |||
Explicit NULL and Invalidation Drop.</t> | <organization>Cisco Systems, Inc</organization> | |||
<address> | ||||
<email>zali@cisco.com</email> | ||||
</address> | ||||
</contact> | ||||
<t>Maturity Level: Production.</t> | <contact fullname="Rajesh Melarcode"> | |||
<organization>Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>2000 Innovation Dr.</street> | ||||
<city>Kanata</city><region>Ontario</region> | ||||
<country>Canada</country> | ||||
</postal> | ||||
<email>rmelarco@cisco.com</email> | ||||
</address> | ||||
</contact> | ||||
<t>Coverage: Full.</t> | </section> | |||
<t>Contact: ssidor@cisco.com</t> | </back> | |||
</list></t> | ||||
</section> | ||||
<section anchor="Juniper" title="Juniper"> | <!-- [rfced] Please review the following questions about terminology. | |||
<t><list style="symbols"> | ||||
<t>Organization: Juniper Networks</t> | ||||
<t>Implementation: PCC and PCE.</t> | a) We note the following different uses of the term below. Please review and | |||
let us know how to update for consistency. | ||||
<t>Description: Everything in -05 except SR Policy Name TLV and SR P | EXPLICIT-NULL-LABEL-POLICY (as seen in Table 2) | |||
olicy Candidate Path Name TLV.</t> | Explicit NULL Label Policy (ENLP) TLV | |||
Explicit Null Label Policy (ENLP) TLV | ||||
Explicit NULL Label Policy (E-Flag) | ||||
Explicit NULL Label [RFC3032] | ||||
Explicit Null Label Policy | ||||
Explicit NULL label/s | ||||
explicit null label | ||||
Note that Explicit Null is... | ||||
<t>Maturity Level: Production.</t> | b) We note different capitalization for the terms below. Please review and | |||
let us know how to update for consistency. | ||||
<t>Coverage: Partial.</t> | Destination vs. destination | |||
<t>Contact: cbarth@juniper.net</t> | Preference vs. preference | |||
</list></t> | ||||
</section> | ||||
</section> | Candidate Path vs. candidate path | |||
--> | ||||
<section title="Security Considerations"> | <!-- [rfced] FYI - We have already updated the following terms for consistency | |||
<t>The information carried in the newly defined SRPA object and TLVs | within the document and to match usage in other RFCs. Please review: | |||
could provide an eavesdropper with additional information about the | ||||
SR Policy. | ||||
</t> | ||||
<t> | ||||
The security considerations described in <xref target="RFC5440"/>, | ||||
<xref target="RFC8231"/>, <xref target="RFC8281"/>, <xref target="RFC8664"/>, | ||||
<xref target="RFC8697"/>, <xref target="RFC9256"/> and <xref target="RFC9603"/> | ||||
are applicable to this specification. | ||||
</t> | ||||
<t>As per <xref target="RFC8231"/>, it is RECOMMENDED that these PCEP extensio | a) For the terms below, we have updated the form(s) on the left to | |||
ns can only be activated on authenticated and encrypted sessions across PCEs and | the form on the right. | |||
PCCs belonging to the same administrative authority, using Transport Layer Secu | ||||
rity (TLS) <xref target="RFC8253"/> as per the recommendations and best current | ||||
practices in <xref target="RFC9325"/>.</t> | ||||
</section> | ||||
<section title="Manageability Considerations" numbered="true" toc="default"> | ||||
<t>All manageability requirements and considerations listed in <xref target="R | ||||
FC5440"/>, <xref target="RFC8231"/>, <xref target="RFC8664"/>, <xref target="RFC | ||||
9256"/>, and <xref target="RFC9603"/> apply to PCEP protocol extensions defined | ||||
in this document. In addition, requirements and considerations listed in this se | ||||
ction apply.</t> | ||||
<section title="Control of Function and Policy" numbered="true" toc="default"> | ||||
<t>A PCE or PCC implementation MAY allow the capabilities specified in Se | ||||
ction 5.1 and the capability for support of SRPA advertised in ASSOC-Type-List T | ||||
LV to be enabled and disabled.</t> | ||||
</section> | ||||
<section title="Information and Data Models" numbered="true" toc="default"> | ||||
<t><xref target="I-D.ietf-pce-pcep-srv6-yang" format="default" sectionForma | ||||
t="of" derivedContent="PCEP-SRv6-YANG"/> defines YANG module with common buildin | ||||
g blocks for PCEP Extensions described in Section 4.</t> | ||||
</section> | ||||
<section title="Liveness Detection and Monitoring" numbered="true" toc="defaul | ||||
t"> | ||||
<t>Mechanisms defined in this document do not imply any new liveness detect | ||||
ion and monitoring requirements in addition to those already listed in <xref tar | ||||
get="RFC5440"/>, <xref target="RFC8664"/>, and <xref target="RFC9256"/>.</t> | ||||
</section> | ||||
<section title="Verify Correct Operations" numbered="true" toc="default"> | ||||
<t>Operation verification requirements already listed in <xref target="RF | ||||
C5440"/>, <xref target="RFC8231"/>, <xref target="RFC8664"/>, <xref target="RFC9 | ||||
256"/>, and <xref target="RFC9603"/> are applicable to mechanisms defined in thi | ||||
s document.</t> | ||||
<t>An implementation MUST allow the operator to view SR Policy Identifier | ||||
and SR Policy Candidate Path Identifier advertised in SRPA object.</t> | ||||
<t>An implementation SHOULD allow the operator to view the capabilities d | ||||
efined in this document advertised by each PCEP peer.</t> | ||||
<t>An implementation SHOULD allow the operator to view LSPs associated wi | ||||
th specific SR Policy Identifier.</t> | ||||
</section> | ||||
<section title="Requirements On Other Protocols" numbered="true" toc="default" | ||||
> | ||||
<t>The PCEP extensions defined in this document do not imply any new require | ||||
ments on other protocols.</t> | ||||
</section> | ||||
<section title="Impact On Network Operations" numbered="true" toc="default"> | ||||
<t>The mechanisms defined in <xref target="RFC5440"/>, <xref target="RFC8 | ||||
231"/>, <xref target="RFC9256"/> and <xref target="RFC9603"/> also apply to the | ||||
PCEP extensions defined in this document.</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="Acknowledgement" title="Acknowledgement"> | ||||
<t> | ||||
We would like to thank Abdul Rehman, Andrew Stone, Boris Khasanov, Cheng Li, Dhr | ||||
uv 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 fo | ||||
r review and suggestions. | ||||
</t> | ||||
</section> <!-- Acknowledgement --> | ||||
</middle> | association type / Association type -> Association Type (per RFC 8697) | |||
<back> | Association Parameters -> association parameters (per RFC 8697) | |||
<references title="Normative References"> | ASSOCIATION Object -> ASSOCIATION object (per RFC 8697) | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.0020.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3032.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5440.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7942.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8231.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8253.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8281.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8408.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8664.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8697.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.9256.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.9325.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.9603.xm | ||||
l"?> | ||||
</references> | Protocol Origin -> Protocol-Origin (per Section 2.3 of RFC 9256) | |||
<references title="Informative References"> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i | ||||
dr-sr-policy-safi.xml"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i | ||||
dr-bgp-ls-sr-policy.xml"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-p | ||||
ce-multipath.xml"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-p | ||||
ce-pcep-srv6-yang"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3031.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4655.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.9552.xm | ||||
l"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.9604.xm | ||||
l"?> | ||||
</references> | Drop-upon-invalid -> Drop-Upon-Invalid (per Section 8.2 of RFC 9256) | |||
<section title="Contributors"> | b) We note flags are stylized differently throughout (see some examples | |||
<t><figure><artwork> | below). For consistency, we have updated all of these instances to P-flag, | |||
Dhruv Dhody | E-flag, etc. | |||
Huawei | ||||
India | ||||
Email: dhruv.ietf@gmail.com | P-flag | |||
P flag | ||||
E-Flag | ||||
E flag | ||||
I-Flag | ||||
I flag | ||||
L-Flag | ||||
L flag | ||||
"L-Flag" | ||||
O-flag | ||||
Cheng Li | So, we will ask IANA to update to lowercase 'f' consistently | |||
Huawei Technologies | in the description in this registry | |||
Huawei Campus, No. 156 Beiqing Rd. | (https://www.iana.org/assignments/pcep/pcep.xhtml#sr-policy-capability-tlv-flag- | |||
Beijing, 10095 | field) | |||
China | unless you let us know otherwise. Specifically, for bits 27, 29, and 30: | |||
OLD: L-Flag, I-Flag, E-Flag | ||||
NEW: L-flag, I-flag, E-flag | ||||
Email: chengli13@huawei.com | c) FYI, "<headend, color, endpoint>" has been capitalized for consistency with | |||
Section 2.1 of [RFC9256]. | ||||
Zafar Ali | Original: | |||
Cisco Systems, Inc. | Per Section 2.1 of [RFC9256], an SR Policy is identified through the | |||
<headend, color, endpoint> tuple. | ||||
Email: zali@cisco.com | The last hop of a computed SR Policy Candidate Path MAY differ from | |||
the Endpoint contained in the <headend, color, endpoint> tuple. | ||||
Rajesh Melarcode | Current: | |||
Cisco Systems, Inc. | Per Section 2.1 of [RFC9256], an SR Policy is identified through the | |||
2000 Innovation Dr. | <Headend, Color, Endpoint> tuple. | |||
Kanata, Ontario | ||||
Canada | ||||
Email: rmelarco@cisco.com | The last hop of a computed SR Policy Candidate Path MAY differ from the | |||
Endpoint contained in the <Headend, Color, Endpoint> tuple. | ||||
--> | ||||
</artwork></figure></t> | <!-- [rfced] Please review the "Inclusive Language" portion of the online | |||
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
and let us know if any changes are needed. Updates of this nature typically | ||||
result in more precise language, which is helpful for readers. | ||||
</section> <!-- Contributors --> | For example, please consider whether "native" should be updated in the text belo w: | |||
</back> | An example use case is to terminate the SR Policy before reaching the | |||
Endpoint and have decapsulated traffic be forwarded the rest of the | ||||
path to the Endpoint node using the native Interior Gateway Protocol | ||||
(IGP) path(s). | ||||
--> | ||||
</rfc> | </rfc> | |||
End of changes. 163 change blocks. | ||||
1272 lines changed or deleted | 1573 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |