rfc8664xml2.original.xml | rfc8664.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | |||
<?rfc toc="yes"?> | nsus="true" docName="draft-ietf-pce-segment-routing-16" indexInclude="true" ipr= | |||
<?rfc tocompact="yes"?> | "trust200902" number="8664" prepTime="2019-12-04T22:27:30" scripts="Common,Latin | |||
<?rfc tocdepth="3"?> | " sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude=" | |||
<?rfc tocindent="yes"?> | true" updates="8408" xml:lang="en"> | |||
<?rfc symrefs="yes"?> | <link href="https://datatracker.ietf.org/doc/draft-ietf-pce-segment-routing-16 | |||
<?rfc sortrefs="yes"?> | " rel="prev"/> | |||
<?rfc comments="yes"?> | <link href="https://dx.doi.org/10.17487/rfc8664" rel="alternate"/> | |||
<?rfc inline="yes"?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<rfc category="std" docName="draft-ietf-pce-segment-routing-16" ipr="trust200902 | ||||
" updates="8408"> | ||||
<front> | <front> | |||
<title abbrev="PCEP Extensions for Segment Routing"> | <title abbrev="PCEP Extensions for Segment Routing">Path Computation Element | |||
PCEP Extensions for Segment Routing</title> | Communication Protocol (PCEP) Extensions for Segment Routing</title> | |||
<seriesInfo name="RFC" value="8664" stream="IETF"/> | ||||
<author fullname="Siva Sivabalan" initials="S." surname="Sivabalan"> | <author fullname="Siva Sivabalan" initials="S." surname="Sivabalan"> | |||
<organization>Cisco Systems, Inc.</organization> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>2000 Innovation Drive</street> | <street>2000 Innovation Drive</street> | |||
<city>Kanata</city> | <city>Kanata</city> | |||
<region>Ontario</region> | <region>Ontario</region> | |||
<code>K2K 3E8</code> | <code>K2K 3E8</code> | |||
<country>Canada</country> | <country>Canada</country> | |||
</postal> | </postal> | |||
<email>msiva@cisco.com</email> | <email>msiva@cisco.com</email> | |||
</address> | </address> | |||
skipping to change at line 31 ¶ | skipping to change at line 22 ¶ | |||
<postal> | <postal> | |||
<street>2000 Innovation Drive</street> | <street>2000 Innovation Drive</street> | |||
<city>Kanata</city> | <city>Kanata</city> | |||
<region>Ontario</region> | <region>Ontario</region> | |||
<code>K2K 3E8</code> | <code>K2K 3E8</code> | |||
<country>Canada</country> | <country>Canada</country> | |||
</postal> | </postal> | |||
<email>msiva@cisco.com</email> | <email>msiva@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | <author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | |||
<organization>Cisco Systems, Inc.</organization> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Pegasus Parc</street> | <street>Pegasus Parc</street> | |||
<city>De kleetlaan 6a</city> | <city>De kleetlaan 6a</city> | |||
<region>DIEGEM</region> | <region>Diegem</region> | |||
<code>BRABANT 1831</code> | <code>Brabant 1831</code> | |||
<country>BELGIUM</country> | <country>Belgium</country> | |||
</postal> | </postal> | |||
<email>cfilsfil@cisco.com</email> | <email>cfilsfil@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Jeff Tantsura" initials="J." surname="Tantsura"> | <author fullname="Jeff Tantsura" initials="J." surname="Tantsura"> | |||
<organization>Apstra, Inc.</organization> | <organization showOnFrontPage="true">Apstra, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>333 Middlefield Rd #200</street> | <street>333 Middlefield Rd #200</street> | |||
<city>Menlo Park</city> | <city>Menlo Park</city> | |||
<region>CA</region> | <region>CA</region> | |||
<code>94025</code> | <code>94025</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>jefftant.ietf@gmail.com</email> | <email>jefftant.ietf@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Wim Henderickx" initials="W." surname="Henderickx"> | <author fullname="Wim Henderickx" initials="W." surname="Henderickx"> | |||
<organization>Nokia</organization> | <organization showOnFrontPage="true">Nokia</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Copernicuslaan 50 </street> | <street>Copernicuslaan 50</street> | |||
<city>Antwerp 2018</city> | <city>Antwerp 2018</city> | |||
<region>CA</region> | <region>CA</region> | |||
<code>95134</code> | <code>95134</code> | |||
<country>BELGIUM</country> | <country>Belgium</country> | |||
</postal> | </postal> | |||
<email>wim.henderickx@alcatel-lucent.com</email> | <email>wim.henderickx@nokia.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Jon Hardwick" initials="J." surname="Hardwick"> | <author fullname="Jon Hardwick" initials="J." surname="Hardwick"> | |||
<organization>Metaswitch Networks</organization> | <organization showOnFrontPage="true">Metaswitch Networks</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>100 Church Street</street> | <street>100 Church Street</street> | |||
<city>Enfield</city> | <city>Enfield</city> | |||
<region>Middlesex</region> | <region>Middlesex</region> | |||
<country>UK</country> | <country>United Kingdom</country> | |||
</postal> | </postal> | |||
<email>jonathan.hardwick@metaswitch.com</email> | <email>jonathan.hardwick@metaswitch.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="12" year="2019"/> | ||||
<date day="4" month="March" year="2019" /> | ||||
<workgroup>PCE</workgroup> | <workgroup>PCE</workgroup> | |||
<keyword>SR</keyword> | ||||
<abstract> | <keyword>Traffic-Engineering</keyword> | |||
<keyword>PCE</keyword> | ||||
<t>Segment Routing (SR) enables any head-end node to select any path without rel | <abstract pn="section-abstract"> | |||
ying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only | <t pn="section-abstract-1">Segment Routing (SR) enables any head-end node | |||
on "segments" that are advertised by link-state Interior Gateway Protocols (IGP | to select any path without relying on a hop-by-hop signaling technique (e.g., LD | |||
s). A Segment Routing Path can be derived from a variety of mechanisms, includin | P or RSVP-TE). It depends only on "segments" that are advertised by link-state I | |||
g an IGP Shortest Path Tree (SPT), explicit configuration, or a Path Computation | nterior Gateway Protocols (IGPs). An SR path can be derived from a variety of me | |||
Element (PCE). This document specifies extensions to the Path Computation Eleme | chanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, | |||
nt Communication Protocol (PCEP) that allow a stateful PCE to compute and initia | or a Path Computation Element (PCE). This document specifies extensions to the P | |||
te Traffic Engineering (TE) paths, as well as a PCC to request a path subject to | ath Computation Element Communication Protocol (PCEP) that allow a stateful PCE | |||
certain constraints and optimization criteria in SR networks. | to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Comput | |||
ation Client (PCC) to request a path subject to certain constraints and optimiza | ||||
tion criteria in SR networks.</t> | ||||
<t pn="section-abstract-2"> | ||||
This document updates RFC 8408. | ||||
</t> | </t> | |||
</abstract> | ||||
<boilerplate> | ||||
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
"exclude" pn="section-boilerplate.1"> | ||||
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
> | ||||
<t pn="section-boilerplate.1-1"> | ||||
This is an Internet Standards Track document. | ||||
</t> | ||||
<t pn="section-boilerplate.1-2"> | ||||
This document is a product of the Internet Engineering Task Force | ||||
(IETF). It represents the consensus of the IETF community. It has | ||||
received public review and has been approved for publication by | ||||
the Internet Engineering Steering Group (IESG). Further | ||||
information on Internet Standards is available in Section 2 of | ||||
RFC 7841. | ||||
</t> | ||||
<t pn="section-boilerplate.1-3"> | ||||
Information about the current status of this document, any | ||||
errata, and how to provide feedback on it may be obtained at | ||||
<eref target="https://www.rfc-editor.org/info/rfc8664" brackets="non | ||||
e"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
ude" pn="section-boilerplate.2"> | ||||
<name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
<t pn="section-boilerplate.2-1"> | ||||
Copyright (c) 2019 IETF Trust and the persons identified as the | ||||
document authors. All rights reserved. | ||||
</t> | ||||
<t pn="section-boilerplate.2-2"> | ||||
This document is subject to BCP 78 and the IETF Trust's Legal | ||||
Provisions Relating to IETF Documents | ||||
(<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
"/>) in effect on the date of | ||||
publication of this document. Please review these documents | ||||
carefully, as they describe your rights and restrictions with | ||||
respect to this document. Code Components extracted from this | ||||
document must include Simplified BSD License text as described in | ||||
Section 4.e of the Trust Legal Provisions and are provided without | ||||
warranty as described in the Simplified BSD License. | ||||
</t> | ||||
</section> | ||||
</boilerplate> | ||||
<toc> | ||||
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
n="section-toc.1"> | ||||
<name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
c.1-1"> | ||||
<li pn="section-toc.1-1.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent | ||||
="1" format="counter" sectionFormat="of" target="section-1"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-introduction">Introductio | ||||
n</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent | ||||
="2" format="counter" sectionFormat="of" target="section-2"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-terminology">Terminology< | ||||
/xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.2.2"> | ||||
<li pn="section-toc.1-1.2.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derive | ||||
dContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-requirements- | ||||
language">Requirements Language</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent | ||||
="3" format="counter" sectionFormat="of" target="section-3"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-overview-of-pcep-operatio | ||||
n-">Overview of PCEP Operation in SR Networks</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.1"><xref derivedContent | ||||
="4" format="counter" sectionFormat="of" target="section-4"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-object-formats">Object Fo | ||||
rmats</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.4.2"> | ||||
<li pn="section-toc.1-1.4.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.1.1"><xref derive | ||||
dContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-the-open-obje | ||||
ct">The OPEN Object</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.4.2.1.2"> | ||||
<li pn="section-toc.1-1.4.2.1.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.1.2.1.1"><xre | ||||
f derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1 | ||||
.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-t | ||||
he-path-setup-type-capabil">The Path Setup Type Capability TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.1.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.1.2.2.1"><xre | ||||
f derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1 | ||||
.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-t | ||||
he-sr-pce-capability-sub-t">The SR PCE Capability Sub-TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.2.1"><xref derive | ||||
dContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-the-rp-srp-ob | ||||
ject">The RP/SRP Object</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.3.1"><xref derive | ||||
dContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-ero">ERO</xre | ||||
f></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.4.2.3.2"> | ||||
<li pn="section-toc.1-1.4.2.3.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.3.2.1.1"><xre | ||||
f derivedContent="4.3.1" format="counter" sectionFormat="of" target="section-4.3 | ||||
.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-s | ||||
r-ero-subobject">SR-ERO Subobject</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.3.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.3.2.2.1"><xre | ||||
f derivedContent="4.3.2" format="counter" sectionFormat="of" target="section-4.3 | ||||
.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-n | ||||
ai-associated-with-sid">NAI Associated with SID</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.4.1"><xref derive | ||||
dContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-rro">RRO</xre | ||||
f></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.5"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.5.1"><xref derive | ||||
dContent="4.5" format="counter" sectionFormat="of" target="section-4.5"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-metric-object | ||||
">METRIC Object</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.5"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.1"><xref derivedContent | ||||
="5" format="counter" sectionFormat="of" target="section-5"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-procedures">Procedures</x | ||||
ref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.5.2"> | ||||
<li pn="section-toc.1-1.5.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.2.1.1"><xref derive | ||||
dContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-exchanging-th | ||||
e-sr-pce-capab">Exchanging the SR PCE Capability</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.2.2.1"><xref derive | ||||
dContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-ero-processin | ||||
g">ERO Processing</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.5.2.2.2"> | ||||
<li pn="section-toc.1-1.5.2.2.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.2.2.2.1.1"><xre | ||||
f derivedContent="5.2.1" format="counter" sectionFormat="of" target="section-5.2 | ||||
.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-s | ||||
r-ero-validation">SR-ERO Validation</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.2.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.2.2.2.2.1"><xre | ||||
f derivedContent="5.2.2" format="counter" sectionFormat="of" target="section-5.2 | ||||
.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-i | ||||
nterpreting-the-sr-ero">Interpreting the SR-ERO</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.2.3.1"><xref derive | ||||
dContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-rro-processin | ||||
g">RRO Processing</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.6"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.1"><xref derivedContent | ||||
="6" format="counter" sectionFormat="of" target="section-6"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-management-considerations | ||||
">Management Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.6.2"> | ||||
<li pn="section-toc.1-1.6.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.2.1.1"><xref derive | ||||
dContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-controlling-t | ||||
he-path-setup-">Controlling the Path Setup Type</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.2.2.1"><xref derive | ||||
dContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-migrating-a-n | ||||
etwork-to-use-">Migrating a Network to Use PCEP Segment-Routed Paths</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.2.3.1"><xref derive | ||||
dContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-verification- | ||||
of-network-ope">Verification of Network Operation</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.2.4.1"><xref derive | ||||
dContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-relationship- | ||||
to-existing-ma">Relationship to Existing Management Models</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.7"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.1"><xref derivedContent | ||||
="7" format="counter" sectionFormat="of" target="section-7"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-security-considerations"> | ||||
Security Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.1"><xref derivedContent | ||||
="8" format="counter" sectionFormat="of" target="section-8"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA | ||||
Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.8.2"> | ||||
<li pn="section-toc.1-1.8.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.1.1"><xref derive | ||||
dContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-pcep-ero-and- | ||||
rro-subobjects">PCEP ERO and RRO Subobjects</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.2.1"><xref derive | ||||
dContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-new-nai-type- | ||||
registry">New NAI Type Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.3.1"><xref derive | ||||
dContent="8.3" format="counter" sectionFormat="of" target="section-8.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-new-sr-ero-fl | ||||
ag-registry">New SR-ERO Flag Registry</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.4.1"><xref derive | ||||
dContent="8.4" format="counter" sectionFormat="of" target="section-8.4"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-pcep-error-ob | ||||
ject">PCEP-Error Object</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.5"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.5.1"><xref derive | ||||
dContent="8.5" format="counter" sectionFormat="of" target="section-8.5"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-pcep-tlv-type | ||||
-indicators">PCEP TLV Type Indicators</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.6"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.6.1"><xref derive | ||||
dContent="8.6" format="counter" sectionFormat="of" target="section-8.6"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-path-setup-ty | ||||
pe-capability-">PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.7"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.7.1"><xref derive | ||||
dContent="8.7" format="counter" sectionFormat="of" target="section-8.7"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-new-path-setu | ||||
p-type">New Path Setup Type</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.8"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.8.1"><xref derive | ||||
dContent="8.8" format="counter" sectionFormat="of" target="section-8.8"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-new-metric-ty | ||||
pe">New Metric Type</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.9"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.9.1"><xref derive | ||||
dContent="8.9" format="counter" sectionFormat="of" target="section-8.9"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sr-pce-capabi | ||||
lity-flags">SR PCE Capability Flags</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.9"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.9.1"><xref derivedContent | ||||
="9" format="counter" sectionFormat="of" target="section-9"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-references">References</x | ||||
ref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.9.2"> | ||||
<li pn="section-toc.1-1.9.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.9.2.1.1"><xref derive | ||||
dContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-normative-ref | ||||
erences">Normative References</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.9.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.9.2.2.1"><xref derive | ||||
dContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-informative-r | ||||
eferences">Informative References</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.10"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.10.1"><xref derivedConten | ||||
t="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/> | ||||
. <xref derivedContent="" format="title" sectionFormat="of" target="name-compat | ||||
ibility-with-early-im">Compatibility with Early Implementations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.11"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.11.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-acknowledgements">Ackn | ||||
owledgements</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.12"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.12.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-contributors">Contribu | ||||
tors</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.13.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-authors-addresses">Aut | ||||
hors' Addresses</xref></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
</toc> | ||||
</front> | ||||
<middle> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | ||||
<name slugifiedName="name-introduction">Introduction</name> | ||||
<t pn="section-1-1">Segment Routing (SR) leverages the source-routing para | ||||
digm. Using | ||||
SR, a source node steers a packet through a path without relying on | ||||
hop-by-hop signaling protocols such as LDP or RSVP-TE. Each path is | ||||
specified as an ordered list of instructions called "segments". Each | ||||
segment is an instruction to route the packet to a specific place in | ||||
the network or to perform a function on the packet. A database of | ||||
segments can be distributed through the network using a routing | ||||
protocol (such as IS-IS or OSPF) or by any other means. Several types | ||||
of segments are defined. A node segment uniquely identifies a specific | ||||
node in the SR domain. Each router in the SR domain associates a node | ||||
segment with an ECMP-aware shortest path to the node that it | ||||
identifies. An adjacency segment represents a unidirectional | ||||
adjacency. An adjacency segment is local to the node that advertises | ||||
it. Both node segments and adjacency segments can be used for SR.</t> | ||||
<t pn="section-1-2"><xref target="RFC8402" format="default" sectionFormat= | ||||
"of" derivedContent="RFC8402"/> describes the SR architecture. The | ||||
corresponding IS-IS and OSPF extensions are specified in <xref target="RFC8667" | ||||
format="default" sectionFormat="of" derivedContent="RFC8667"/> and <xref target= | ||||
"RFC8665" format="default" sectionFormat="of" derivedContent="RFC8665"/>, respec | ||||
tively.</t> | ||||
<t pn="section-1-3">The SR architecture can be implemented using either an | ||||
MPLS | ||||
forwarding plane <xref target="RFC8660" format="default" sectionFormat="of" deri | ||||
vedContent="RFC8660"/> or an IPv6 forwarding plane | ||||
<xref target="I-D.ietf-6man-segment-routing-header" format="default" sectionForm | ||||
at="of" derivedContent="IPv6-SRH"/>. The MPLS forwarding plane can be applied | ||||
to SR without any change; in which case, an SR path corresponds to an | ||||
MPLS Label Switching Path (LSP). This document is relevant to the MPLS | ||||
forwarding plane only. In this document, "Node-SID" and | ||||
"Adj-SID" denote the Node Segment Identifier and Adjacency | ||||
Segment Identifier, respectively.</t> | ||||
<t pn="section-1-4">An SR path can be derived from an IGP Shortest Path Tr | ||||
ee | ||||
(SPT). Segment Routing Traffic-Engineering (SR-TE) paths may not | ||||
follow an IGP SPT. Such paths may be chosen by a suitable network | ||||
planning tool and provisioned on the ingress node of the SR-TE | ||||
path.</t> | ||||
<t pn="section-1-5"><xref target="RFC5440" format="default" sectionFormat= | ||||
"of" derivedContent="RFC5440"/> describes the Path Computation Element | ||||
Communication Protocol (PCEP) for communication between a Path | ||||
Computation Client (PCC) and a Path Computation Element (PCE) or | ||||
between a pair of PCEs. A PCE computes paths for MPLS | ||||
Traffic-Engineering (MPLS-TE) LSPs based on various constraints and | ||||
optimization criteria. <xref target="RFC8231" format="default" sectionFormat="of | ||||
" derivedContent="RFC8231"/> specifies extensions | ||||
to PCEP that allow a stateful PCE to compute and recommend network | ||||
paths in compliance with <xref target="RFC4657" format="default" sectionFormat=" | ||||
of" derivedContent="RFC4657"/>. It also defines objects | ||||
and TLVs for MPLS-TE LSPs. Stateful PCEP extensions provide | ||||
synchronization of LSP state between a PCC and a PCE or between a pair | ||||
of PCEs, delegation of LSP control, reporting of LSP state from a PCC | ||||
to a PCE, and control of the setup and path routing of an LSP from a | ||||
PCE to a PCC. Stateful PCEP extensions are intended for an operational | ||||
model in which LSPs are configured on the PCC, and control over them | ||||
is delegated to the PCE.</t> | ||||
<t pn="section-1-6">A mechanism to dynamically initiate LSPs on a PCC base | ||||
d on the requests from a stateful PCE or a controller using stateful PCE is spec | ||||
ified in <xref target="RFC8281" format="default" sectionFormat="of" derivedConte | ||||
nt="RFC8281"/>. This mechanism is useful in Software-Defined Networking (SDN) ap | ||||
plications, such as on-demand engineering or bandwidth calendaring <xref target= | ||||
"RFC8413" format="default" sectionFormat="of" derivedContent="RFC8413"/>.</t> | ||||
<t pn="section-1-7">It is possible to use a stateful PCE for computing one | ||||
or more SR-TE paths, taking into account various constraints and objective func | ||||
tions. Once a path is chosen, the stateful PCE can initiate an SR-TE path on a P | ||||
CC using the PCEP extensions specified in <xref target="RFC8281" format="default | ||||
" sectionFormat="of" derivedContent="RFC8281"/> and the SR-specific PCEP extensi | ||||
ons specified in this document. Additionally, using procedures described in this | ||||
document, a PCC can request an SR path from either a stateful or a stateless PC | ||||
E.</t> | ||||
<t pn="section-1-8">This specification relies on the procedures specified | ||||
in <xref target="RFC8408" format="default" sectionFormat="of" derivedContent="RF | ||||
C8408"/> to exchange the Segment Routing capability and to specify that the path | ||||
setup type of an LSP is Segment Routing. This specification also updates <xref | ||||
target="RFC8408" format="default" sectionFormat="of" derivedContent="RFC8408"/> | ||||
to clarify the use of sub-TLVs in the PATH-SETUP-TYPE-CAPABILITY TLV. See <xre | ||||
f target="pst-cap-tlv" format="default" sectionFormat="of" derivedContent="Secti | ||||
on 4.1.1"/> for details.</t> | ||||
<t pn="section-1-9">This specification provides a mechanism for a network | ||||
controller (acting as a PCE) to instantiate candidate paths for an SR Policy ont | ||||
o a head-end node (acting as a PCC) using PCEP. For more information on the SR | ||||
Policy Architecture, see <xref target="I-D.ietf-spring-segment-routing-policy" f | ||||
ormat="default" sectionFormat="of" derivedContent="SR-POLICY"/>.</t> | ||||
</section> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-2"> | ||||
<name slugifiedName="name-terminology">Terminology</name> | ||||
<t pn="section-2-1">The following terminology is used in this document: | ||||
</abstract> | ||||
<note 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> | </t> | |||
</note> | <dl newline="false" spacing="normal" indent="8" pn="section-2-2"> | |||
<dt pn="section-2-2.1">ERO:</dt> | ||||
</front> | <dd pn="section-2-2.2"> Explicit Route Object</dd> | |||
<dt pn="section-2-2.3">IGP:</dt> | ||||
<middle> | <dd pn="section-2-2.4"> Interior Gateway Protocol</dd> | |||
<dt pn="section-2-2.5">IS-IS:</dt> | ||||
<section title="Introduction"> | <dd pn="section-2-2.6"> Intermediate System to Intermediate System</dd> | |||
<dt pn="section-2-2.7">LSR:</dt> | ||||
<t>Segment Routing (SR) leverages the source routing paradigm. Using SR, a sourc | <dd pn="section-2-2.8"> Label Switching Router</dd> | |||
e node steers a packet through a path without relying on hop-by-hop signaling pr | <dt pn="section-2-2.9">MSD:</dt> | |||
otocols such as LDP or RSVP-TE. Each path is specified as an ordered list of ins | <dd pn="section-2-2.10"> Base MPLS Imposition Maximum SID Depth, as defi | |||
tructions called "segments". Each segment is an instruction to route the packet | ned in <xref target="RFC8491" format="default" sectionFormat="of" derivedContent | |||
to a specific place in the network, or to perform a function on the packet. A | ="RFC8491"/></dd> | |||
database of segments can be distributed through the network using a routing prot | <dt pn="section-2-2.11">NAI:</dt> | |||
ocol (such as IS-IS or OSPF) or by any other means. Several types of segment ar | <dd pn="section-2-2.12"> Node or Adjacency Identifier</dd> | |||
e defined. A node segment uniquely identifies a specific node in the SR domain. | <dt pn="section-2-2.13">OSPF:</dt> | |||
Each router in the SR domain associates a node segment with an ECMP-aware shorte | <dd pn="section-2-2.14"> Open Shortest Path First</dd> | |||
st path to the node that it identifies. An adjacency segment represents a unidir | <dt pn="section-2-2.15">PCC:</dt> | |||
ectional adjacency. An adjacency segment is local to the node which advertises i | <dd pn="section-2-2.16"> Path Computation Client</dd> | |||
t. Both node segments and adjacency segments can be used for SR.</t> | <dt pn="section-2-2.17">PCE:</dt> | |||
<dd pn="section-2-2.18"> Path Computation Element</dd> | ||||
<t><xref target="RFC8402"/> describes the SR architecture. The corresponding IS | <dt pn="section-2-2.19">PCEP:</dt> | |||
-IS and OSPF extensions are specified in <xref target="I-D.ietf-isis-segment-rou | <dd pn="section-2-2.20"> Path Computation Element Communication Protocol | |||
ting-extensions"/> and <xref target="I-D.ietf-ospf-segment-routing-extensions"/> | </dd> | |||
, respectively.</t> | <dt pn="section-2-2.21">RRO:</dt> | |||
<dd pn="section-2-2.22"> Record Route Object</dd> | ||||
<t>The SR architecture can be implemented using either an MPLS forwarding plane | <dt pn="section-2-2.23">SID:</dt> | |||
<xref target="I-D.ietf-spring-segment-routing-mpls"/> or an IPv6 forwarding plan | <dd pn="section-2-2.24"> Segment Identifier</dd> | |||
e <xref target="I-D.ietf-6man-segment-routing-header"/>. The MPLS forwarding pl | <dt pn="section-2-2.25">SR:</dt> | |||
ane can be applied to SR without any change, in which case an SR path correspond | <dd pn="section-2-2.26"> Segment Routing</dd> | |||
s to an MPLS Label Switching Path (LSP). This document is relevant to the MPLS f | <dt pn="section-2-2.27">SR-DB:</dt> | |||
orwarding plane only. In this document, "Node-SID" and "Adjacency-SID" denote No | <dd pn="section-2-2.28"> Segment Routing Database: the collection of SRG | |||
de Segment Identifier and Adjacency Segment Identifier respectively.</t> | Bs, SRLBs, and SIDs and the objects they map to, advertised by a link-state IGP< | |||
/dd> | ||||
<t>A Segment Routing path (SR path) can be derived from an IGP Shortest Path Tre | <dt pn="section-2-2.29">SR-TE:</dt> | |||
e (SPT). SR-TE paths may not follow an IGP SPT. Such paths may be chosen by a su | <dd pn="section-2-2.30"> Segment Routing Traffic Engineering</dd> | |||
itable network planning tool and provisioned on the ingress node of the SR-TE pa | <dt pn="section-2-2.31">SRGB:</dt> | |||
th.</t> | <dd pn="section-2-2.32"> Segment Routing Global Block</dd> | |||
<dt pn="section-2-2.33">SRLB:</dt> | ||||
<t> <xref target="RFC5440"/> describes the Path Computation Element Communicatio | <dd pn="section-2-2.34"> Segment Routing Local Block</dd> | |||
n Protocol (PCEP) for communication between a Path Computation Client (PCC) and | </dl> | |||
a Path Computation Element (PCE) or between a pair of PCEs. A PCE computes paths | <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1 | |||
for MPLS Traffic Engineering LSPs (MPLS-TE LSPs) based on various constraints a | "> | |||
nd optimization criteria. <xref target="RFC8231"/> specifies extensions to PCEP | <name slugifiedName="name-requirements-language">Requirements Language</ | |||
that allow a stateful PCE to compute and recommend network paths in compliance w | name> | |||
ith <xref target="RFC4657"/> and defines objects and TLVs for MPLS-TE LSPs. Stat | <t pn="section-2.1-1">The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST | |||
eful PCEP extensions provide synchronization of LSP state between a PCC and a PC | NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL N | |||
E or between a pair of PCEs, delegation of LSP control, reporting of LSP state f | OT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOM | |||
rom a PCC to a PCE, controlling the setup and path routing of an LSP from a PCE | MENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
to a PCC. Stateful PCEP extensions are intended for an operational model in whic | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
h LSPs are configured on the PCC, and control over them is delegated to the PCE. | be interpreted as | |||
</t> | described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o | |||
f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor | ||||
<t>A mechanism to dynamically initiate LSPs on a PCC based on the requests from | mat="of" derivedContent="RFC8174"/> | |||
a stateful PCE or a controller using stateful PCE is specified in <xref target=" | when, and only when, they appear in all capitals, as shown here. | |||
RFC8281"/>. This mechanism is useful in Software Defined Networking (SDN) applic | </t> | |||
ations, such as on-demand engineering, or bandwidth calendaring <xref target="RF | </section> | |||
C8413"/>.</t> | </section> | |||
<section anchor="Operation-Overview" numbered="true" toc="include" removeInR | ||||
<t>It is possible to use a stateful PCE for computing one or more SR-TE paths ta | FC="false" pn="section-3"> | |||
king into account various constraints and objective functions. Once a path is ch | <name slugifiedName="name-overview-of-pcep-operation-">Overview of PCEP Op | |||
osen, the stateful PCE can initiate an SR-TE path on a PCC using PCEP extensions | eration in SR Networks</name> | |||
specified in <xref target="RFC8281"/> using the SR specific PCEP extensions spe | <t pn="section-3-1">In an SR network, the ingress node of an SR path prepe | |||
cified in this document. Additionally, using procedures described in this docume | nds an SR header to all outgoing packets. The SR header consists of a list of S | |||
nt, a PCC can request an SR path from either a stateful or a stateless PCE.</t> | IDs (or MPLS labels in the context of this document). The header has all | |||
<t>This specification relies on the procedures specified in <xref target="RFC840 | ||||
8"/> to exchange the segment routing capability and to specify that the path set | ||||
up type of an LSP is segment routing. This specification also updates <xref tar | ||||
get="RFC8408"/> to clarify the use of sub-TLVs in the PATH-SETUP-TYPE-CAPABILITY | ||||
TLV. See <xref target="pst-cap-tlv"/> for details.</t> | ||||
<t>This specification provides a mechanism for a network controller (acting as a | ||||
PCE) to instantiate candidate paths for an SR Policy onto a head-end node (acti | ||||
ng as a PCC) using PCEP. For more information on the SR Policy Architecture, se | ||||
e <xref target="I-D.ietf-spring-segment-routing-policy"/>.</t> | ||||
</section> <!-- Introduction --> | ||||
<section title="Terminology"> | ||||
<t>The following terminologies are used in this document: | ||||
<list style="hanging"> | ||||
<t hangText="ERO:"> Explicit Route Object</t> | ||||
<t hangText="IGP:"> Interior Gateway Protocol</t> | ||||
<t hangText="IS-IS:"> Intermediate System to Intermediate System</t> | ||||
<t hangText="LSR:"> Label Switching Router</t> | ||||
<t hangText="MSD:"> Base MPLS Imposition Maximum SID Depth, as defined in | ||||
<xref target="RFC8491"/></t> | ||||
<t hangText="NAI:"> Node or Adjacency Identifier</t> | ||||
<t hangText="OSPF:"> Open Shortest Path First</t> | ||||
<t hangText="PCC:"> Path Computation Client</t> | ||||
<t hangText="PCE:"> Path Computation Element</t> | ||||
<t hangText="PCEP:"> Path Computation Element Communication Protocol</t> | ||||
<t hangText="RRO:"> Record Route Object</t> | ||||
<t hangText="SID:"> Segment Identifier</t> | ||||
<t hangText="SR:"> Segment Routing</t> | ||||
<t hangText="SR-DB:"> Segment Routing Database: the collection of SRGBs, S | ||||
RLBs and SIDs and the objects they map to, advertised by a link state IGP</t> | ||||
<t hangText="SRGB:"> Segment Routing Global Block</t> | ||||
<t hangText="SRLB:"> Segment Routing Local Block</t> | ||||
<t hangText="SR-TE:"> Segment Routing Traffic Engineering</t> | ||||
</list> | ||||
</t> | ||||
</section> <!-- Terminology --> | ||||
<section anchor="Operation-Overview" title="Overview of PCEP Operation in SR Net | ||||
works"> | ||||
<t>In an SR network, the ingress node of an SR path prepends an SR header to all | ||||
outgoing packets. The SR header consists of a list of SIDs (or MPLS labels in | ||||
the context of this document). The header has all | ||||
necessary information so that, in combination with the information | necessary information so that, in combination with the information | |||
distributed by the IGP, the packets can be guided from the ingress | distributed by the IGP, the packets can be guided from the ingress | |||
node to the egress node of the path; hence, there is no need for | node to the egress node of the path; hence, there is no need for | |||
any signaling protocol. | any signaling protocol. | |||
</t> | </t> | |||
<t pn="section-3-2"> | ||||
<t> | ||||
In PCEP messages, LSP route information is carried in the Explicit | In PCEP messages, LSP route information is carried in the Explicit | |||
Route Object (ERO), which consists of a sequence of subobjects. | Route Object (ERO), which consists of a sequence of subobjects. | |||
SR-TE paths computed by a PCE can be represented in an ERO in one | SR-TE paths computed by a PCE can be represented in an ERO in one | |||
of the following forms: | of the following forms: | |||
<list style="symbols"> | ||||
<t>An ordered set of IP addresses representing network nodes/links.</t> | ||||
<t>An ordered set of SIDs, with or without the corresponding IP addresses.</t> | ||||
<t>An ordered set of MPLS labels, with or without corresponding IP address.</t> | ||||
</list> | ||||
The PCC converts these into an MPLS label stack and next hop, as described in <x | ||||
ref target="SR-ERO-INTERPRET"/>. | ||||
</t> | </t> | |||
<ul spacing="normal" bare="false" empty="false" pn="section-3-3"> | ||||
<li pn="section-3-3.1">An ordered set of IP addresses representing netwo | ||||
rk nodes/links.</li> | ||||
<li pn="section-3-3.2">An ordered set of SIDs, with or without the corre | ||||
sponding IP addresses.</li> | ||||
<li pn="section-3-3.3">An ordered set of MPLS labels, with or without co | ||||
rresponding IP addresses.</li> | ||||
</ul> | ||||
<t pn="section-3-4"> | ||||
<t>This document defines a new ERO subobject denoted by "SR-ERO subobject" capab | The PCC converts these into an MPLS label stack and next hop, as described in <x | |||
le of carrying a SID as well as the identity of the node/adjacency represented b | ref target="SR-ERO-INTERPRET" format="default" sectionFormat="of" derivedContent | |||
y the SID. SR-capable PCEP speakers should be able to generate and/or process su | ="Section 5.2.2"/>. | |||
ch ERO subobject. An ERO containing SR-ERO subobjects can be included in the PCE | ||||
P Path Computation Reply (PCRep) message defined in <xref target="RFC5440"/>, th | ||||
e PCEP LSP Initiate Request message (PCInitiate) defined in <xref target="RFC828 | ||||
1"/>, as well as in the PCEP LSP Update Request (PCUpd) and PCEP LSP State Repor | ||||
t (PCRpt) messages defined in <xref target="RFC8231"/>.</t> | ||||
<t>When a PCEP session between a PCC and a PCE is established, both PCEP speaker | ||||
s exchange their capabilities to indicate their ability to support SR-specific f | ||||
unctionality.</t> | ||||
<t>A PCE can update an LSP that is initially established via RSVP-TE signaling t | ||||
o use an SR-TE path, by sending a PCUpd to the PCC that delegated the LSP to it | ||||
(<xref target="RFC8231"/>). A PCC can update an undelegated LSP that is initial | ||||
ly established via RSVP-TE signaling to use an SR-TE path as follows. First, it | ||||
requests an SR-TE Path from a PCE by sending a PCReq message. If it receives a | ||||
suitable path, it establishes the path in the data plane, and then tears down t | ||||
he original RSVP-TE path. If the PCE is stateful, then the PCC sends PCRpt mess | ||||
ages indicating that the new path is set up and the old path is torn down, per < | ||||
xref target="RFC8231"/>.</t> | ||||
<t>Similarly, a PCE or PCC can update an LSP initially created with an SR-TE pat | ||||
h to use RSVP-TE signaling, if necessary. This capability is useful for rolling | ||||
back a change when a network is migrated from RSVP-TE to SR-TE technology.</t> | ||||
<t>A PCC MAY include an RRO containing the recorded LSP in PCReq and PCRpt messa | ||||
ges as specified in <xref target="RFC5440"/> and <xref target="RFC8231"/>, respe | ||||
ctively. This document defines a new RRO subobject for SR networks. The methods | ||||
used by a PCC to record the SR-TE LSP are outside the scope of this document.</t | ||||
> | ||||
<t>In summary, this document: | ||||
<list style="symbols"> | ||||
<t>Defines a new ERO subobject, a new RRO subobject and new PCEP error c | ||||
odes.</t> | ||||
<t>Specifies how two PCEP speakers can establish a PCEP session that can | ||||
carry information about SR-TE paths.</t> | ||||
<t>Specifies processing rules for the ERO subobject.</t> | ||||
<t>Defines a new path setup type to be used in the PATH-SETUP-TYPE and P | ||||
ATH-SETUP-TYPE-CAPABILITY TLVs (<xref target="RFC8408"/>).</t> | ||||
<t>Defines a new sub-TLV for the PATH-SETUP-TYPE-CAPABILITY TLV.</t | ||||
> | ||||
</list> | ||||
</t> | ||||
<t>The extensions specified in this document complement the existing PCEP specif | ||||
ications to support SR-TE paths. As such, the PCEP messages (e.g., Path Computat | ||||
ion Request, Path Computation Reply, Path Computation Report, Path Computation U | ||||
pdate, Path Computation Initiate, etc.,) are formatted according to <xref target | ||||
="RFC5440"/>, <xref target="RFC8231"/>, <xref target="RFC8281"/>, and any other | ||||
applicable PCEP specifications.</t> | ||||
</section> <!-- Overview of PCEP Operation in SR Networks --> | ||||
<section anchor="object-formats" title="Object Formats"> | ||||
<section anchor="open-object-fmt" title="The OPEN Object"> | ||||
<section anchor="pst-cap-tlv" title="The Path Setup Type Capability TLV"> | ||||
<t><xref target="RFC8408"/> defines the PATH-SETUP-TYPE-CAPABILITY TLV for use i | ||||
n the OPEN object. The PATH-SETUP-TYPE-CAPABILITY TLV contains an optional list | ||||
of sub-TLVs which are intended to convey parameters that are associated with th | ||||
e path setup types supported by a PCEP speaker.</t> | ||||
<t>This specification updates <xref target="RFC8408"/>, as follows. It creates | ||||
a new registry which defines the valid type indicators of the sub-TLVs of the PA | ||||
TH-SETUP-TYPE-CAPABILITY TLV (see <xref target="IANA-subTLV-Type-Indicators"/>). | ||||
A PCEP speaker MUST NOT include a sub-TLV in the PATH-SETUP-TYPE-CAPABILITY TL | ||||
V unless it appears in this registry. If a PCEP speaker receives a sub-TLV whos | ||||
e type indicator does not match one of those from the registry, or else is not r | ||||
ecognised by the speaker, then the speaker MUST ignore the sub-TLV.</t> | ||||
</section> | ||||
<section anchor="cap-negotiation" title="The SR PCE Capability sub-TLV"> | ||||
<t>This document defines a new Path Setup Type (PST) for SR, as follows: | ||||
<list style="symbols"> | ||||
<t>PST = 1: Path is setup using Segment Routing Traffic Engineering.</t> | ||||
</list> | ||||
</t> | </t> | |||
<t pn="section-3-5">This document defines a new ERO subobject denoted by " | ||||
SR-ERO subobject" that is capable of carrying a SID as well as the identity of t | ||||
he node/adjacency represented by the SID. SR-capable PCEP speakers should be abl | ||||
e to generate and/or process such an ERO subobject. | ||||
An ERO containing SR-ERO subobjects can be included in the PCEP Path Computation | ||||
Reply (PCRep) message defined in <xref target="RFC5440" format="default" sectio | ||||
nFormat="of" derivedContent="RFC5440"/>, the Path Computation LSP Initiate Reque | ||||
st (PCInitiate) message defined in <xref target="RFC8281" format="default" secti | ||||
onFormat="of" derivedContent="RFC8281"/>, and the Path Computation Update Reques | ||||
t (PCUpd) and Path Computation State Report (PCRpt) messages for LSPs defined in | ||||
<xref target="RFC8231" format="default" sectionFormat="of" derivedContent="RFC8 | ||||
231"/>.</t> | ||||
<t pn="section-3-6">When a PCEP session between a PCC and a PCE is establi | ||||
shed, both PCEP speakers exchange their capabilities to indicate their ability t | ||||
o support SR-specific functionality.</t> | ||||
<t pn="section-3-7">A PCE can update an LSP that is initially established | ||||
via RSVP-TE | ||||
signaling to use an SR-TE path by sending a PCUpd to the PCC that | ||||
delegated the LSP to it <xref target="RFC8231" format="default" sectionFormat="o | ||||
f" derivedContent="RFC8231"/>. A PCC can update an | ||||
undelegated LSP that is initially established via RSVP-TE signaling to | ||||
use an SR-TE path as follows. First, it requests an SR-TE path from a | ||||
PCE by sending a Path Computation Request (PCReq) message. If it | ||||
receives a suitable path, it establishes the path in the data plane | ||||
and then tears down the original RSVP-TE path. If the PCE is | ||||
stateful, then the PCC sends PCRpt messages indicating that the new | ||||
path is set up and the old path is torn down, per <xref target="RFC8231" format= | ||||
"default" sectionFormat="of" derivedContent="RFC8231"/>.</t> | ||||
<t pn="section-3-8">Similarly, a PCE or PCC can update an LSP initially cr | ||||
eated with an SR-TE path to use RSVP-TE signaling, if necessary. This capability | ||||
is useful for rolling back a change when a network is migrated from RSVP-TE to | ||||
SR-TE technology.</t> | ||||
<t pn="section-3-9">A PCC <bcp14>MAY</bcp14> include a Record Route Object | ||||
(RRO) containing the recorded LSP in PCReq and PCRpt messages as specified in < | ||||
xref target="RFC5440" format="default" sectionFormat="of" derivedContent="RFC544 | ||||
0"/> and <xref target="RFC8231" format="default" sectionFormat="of" derivedConte | ||||
nt="RFC8231"/>, respectively. This document defines a new RRO subobject for SR n | ||||
etworks. The methods used by a PCC to record the SR-TE LSP are outside the scope | ||||
of this document.</t> | ||||
<t pn="section-3-10">In summary, this document: | ||||
<t>A PCEP speaker SHOULD indicate its support of the function described in this | </t> | |||
document by sending a PATH-SETUP-TYPE-CAPABILITY TLV in the OPEN object with thi | <ul spacing="normal" bare="false" empty="false" pn="section-3-11"> | |||
s new PST included in the PST list.</t> | <li pn="section-3-11.1">Defines a new ERO subobject, a new RRO subobject | |||
, and new PCEP error codes.</li> | ||||
<t>This document also defines the SR-PCE-CAPABILITY sub-TLV. PCEP speakers use | <li pn="section-3-11.2">Specifies how two PCEP speakers can establish a | |||
this sub-TLV to exchange information about their SR capability. If a PCEP speake | PCEP session that can carry information about SR-TE paths.</li> | |||
r includes PST=1 in the PST List of the PATH-SETUP-TYPE-CAPABILITY TLV then it M | <li pn="section-3-11.3">Specifies processing rules for the ERO subobject | |||
UST also include the SR-PCE-CAPABILITY sub-TLV inside the PATH-SETUP-TYPE-CAPABI | .</li> | |||
LITY TLV.</t> | <li pn="section-3-11.4">Defines a new path setup type to be used in the | |||
PATH-SETUP-TYPE and PATH-SETUP-TYPE-CAPABILITY TLVs <xref target="RFC8408" forma | ||||
<t>The format of the SR-PCE-CAPABILITY sub-TLV is shown in the following figure: | t="default" sectionFormat="of" derivedContent="RFC8408"/>.</li> | |||
</t> | <li pn="section-3-11.5">Defines a new sub-TLV for the PATH-SETUP-TYPE-CA | |||
PABILITY TLV.</li> | ||||
<figure anchor="Capability-TLV-Fmt" title="SR-PCE-CAPABILITY sub-TLV format"> | </ul> | |||
<artwork align="center"><![CDATA[ | <t pn="section-3-12">The extensions specified in this document complement | |||
0 1 2 3 | the existing | |||
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 | PCEP specifications to support SR-TE paths. As such, the PCEP messages | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (e.g., PCReq, PCRep, PCRpt, PCUpd, PCInitiate, etc.) are formatted | |||
| Type=TBD11 | Length=4 | | according to <xref target="RFC5440" format="default" sectionFormat="of" derivedC | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ontent="RFC5440"/>, <xref target="RFC8231" format="default" sectionFormat="of" d | |||
| Reserved | Flags |N|X| MSD | | erivedContent="RFC8231"/>, <xref target="RFC8281" format="default" sectionFormat | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ="of" derivedContent="RFC8281"/>, and any other applicable PCEP specifications.< | |||
/t> | ||||
]]></artwork> | </section> | |||
<section anchor="object-formats" numbered="true" toc="include" removeInRFC=" | ||||
false" pn="section-4"> | ||||
<name slugifiedName="name-object-formats">Object Formats</name> | ||||
<section anchor="open-object-fmt" numbered="true" toc="include" removeInRF | ||||
C="false" pn="section-4.1"> | ||||
<name slugifiedName="name-the-open-object">The OPEN Object</name> | ||||
<section anchor="pst-cap-tlv" numbered="true" toc="include" removeInRFC= | ||||
"false" pn="section-4.1.1"> | ||||
<name slugifiedName="name-the-path-setup-type-capabil">The Path Setup | ||||
Type Capability TLV</name> | ||||
<t pn="section-4.1.1-1"><xref target="RFC8408" format="default" sectio | ||||
nFormat="of" derivedContent="RFC8408"/> defines the PATH-SETUP-TYPE-CAPABILITY T | ||||
LV | ||||
for use in the OPEN object. The PATH-SETUP-TYPE-CAPABILITY TLV | ||||
contains an optional list of sub-TLVs, which are intended to convey | ||||
parameters that are associated with the path setup types supported by | ||||
a PCEP speaker.</t> | ||||
<t pn="section-4.1.1-2">This specification updates <xref target="RFC84 | ||||
08" format="default" sectionFormat="of" derivedContent="RFC8408"/> as follows. | ||||
It | ||||
creates a new registry that defines the valid type indicators of the | ||||
sub-TLVs of the PATH-SETUP-TYPE-CAPABILITY TLV (see <xref target="IANA-subTLV-Ty | ||||
pe-Indicators" format="default" sectionFormat="of" derivedContent="Section 8.6"/ | ||||
>). A PCEP speaker <bcp14>MUST NOT</bcp14> | ||||
include a sub-TLV in the PATH-SETUP-TYPE-CAPABILITY TLV unless it | ||||
appears in this registry. If a PCEP speaker receives a sub-TLV whose | ||||
type indicator does not match one of those from the registry or is not | ||||
recognized by the speaker, then the speaker <bcp14>MUST</bcp14> ignore the | ||||
sub-TLV.</t> | ||||
</section> | ||||
<section anchor="cap-negotiation" numbered="true" toc="include" removeIn | ||||
RFC="false" pn="section-4.1.2"> | ||||
<name slugifiedName="name-the-sr-pce-capability-sub-t">The SR PCE Capa | ||||
bility Sub-TLV</name> | ||||
<t pn="section-4.1.2-1">This document defines a new Path Setup Type (P | ||||
ST) for SR, as follows: | ||||
</t> | ||||
<ul spacing="normal" empty="true" bare="false" pn="section-4.1.2-2"> | ||||
<li pn="section-4.1.2-2.1"> | ||||
<dl newline="false" spacing="normal" pn="section-4.1.2-2.1.1"> | ||||
<dt pn="section-4.1.2-2.1.1.1">PST = 1:</dt> | ||||
<dd pn="section-4.1.2-2.1.1.2">Traffic-engineering path is set u | ||||
p using Segment Routing.</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t pn="section-4.1.2-3">A PCEP speaker <bcp14>SHOULD</bcp14> indicate | ||||
its support of the function described in this document by sending a PATH-SETUP-T | ||||
YPE-CAPABILITY TLV in the OPEN object with this new PST included in the PST list | ||||
.</t> | ||||
<t pn="section-4.1.2-4">This document also defines the SR-PCE-CAPABILI | ||||
TY sub-TLV. PCEP speakers use this sub-TLV to exchange information about their | ||||
SR capability. If a PCEP speaker includes PST=1 in the PST list of the PATH-SETU | ||||
P-TYPE-CAPABILITY TLV, then it <bcp14>MUST</bcp14> also include the SR-PCE-CAPAB | ||||
ILITY sub-TLV inside the PATH-SETUP-TYPE-CAPABILITY TLV.</t> | ||||
<t pn="section-4.1.2-5">The format of the SR-PCE-CAPABILITY sub-TLV is | ||||
shown in the following figure:</t> | ||||
<figure anchor="Capability-TLV-Fmt" align="left" suppress-title="false | ||||
" pn="figure-1"> | ||||
<name slugifiedName="name-sr-pce-capability-sub-tlv-f">SR-PCE-CAPABI | ||||
LITY Sub-TLV Format</name> | ||||
<artwork align="center" name="" type="" alt="" pn="section-4.1.2-6.1 | ||||
"> | ||||
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=26 | Length=4 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Reserved | Flags |N|X| MSD | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | ||||
</figure> | </figure> | |||
<t pn="section-4.1.2-7">The codepoint for the TLV type is 26. The TLV | ||||
<t>The code point for the TLV type is TBD11. The TLV length is 4 octets.</t> | length is 4 octets.</t> | |||
<t pn="section-4.1.2-8">The 32-bit value is formatted as follows. | ||||
<t>The 32-bit value is formatted as follows. | </t> | |||
<list style="hanging"> | <dl newline="false" spacing="normal" pn="section-4.1.2-9"> | |||
<t hangText="Reserved:"> MUST be set to zero by the sender and MUST be ignor | <dt pn="section-4.1.2-9.1">Reserved:</dt> | |||
ed by the receiver.</t> | <dd pn="section-4.1.2-9.2"> | |||
<t hangText="Flags:"> This document defines the following flag bits. The ot | <bcp14>MUST</bcp14> be set to zero by the sender and <bcp14>MUST</ | |||
her bits | bcp14> be ignored by the receiver.</dd> | |||
MUST be set to zero by the sender and MUST be ignored by the receiver. | <dt pn="section-4.1.2-9.3">Flags:</dt> | |||
<list style="symbols"> | <dd pn="section-4.1.2-9.4"> | |||
<t>N: A PCC sets this flag bit to 1 to indicate that it is capable of re | <t pn="section-4.1.2-9.4.1"> This document defines the following f | |||
solving a Node or Adjacency Identifier (NAI) to a SID.</t> | lag bits. The other bits | |||
<t>X: A PCC sets this flag bit to 1 to indicate that it does not impose | <bcp14>MUST</bcp14> be set to zero by the sender and <bcp14>MUST</bcp14> b | |||
any limit on the MSD.</t> | e ignored by the receiver. | |||
</list> | </t> | |||
</t> | <ul spacing="normal" empty="true" bare="false" pn="section-4.1.2-9 | |||
<t hangText="Maximum SID Depth (MSD):"> specifies the maximum number of SIDs | .4.2"> | |||
(MPLS label stack depth in the context of this document) that a PCC is capable | <li pn="section-4.1.2-9.4.2.1"> | |||
of imposing on a packet. <xref target="SR-CAP-PROCESS"/> explains the relations | <dl indent="5" newline="false" spacing="normal" pn="section-4. | |||
hip between this field and the X flag.</t> | 1.2-9.4.2.1.1"> | |||
</list> | <dt pn="section-4.1.2-9.4.2.1.1.1">N:</dt> | |||
</t> | <dd pn="section-4.1.2-9.4.2.1.1.2">A PCC sets this flag bit | |||
to 1 to indicate that it is capable of resolving a Node or Adjacency Identifier | ||||
</section> | (NAI) to a SID.</dd> | |||
<dt pn="section-4.1.2-9.4.2.1.1.3">X:</dt> | ||||
</section> | <dd pn="section-4.1.2-9.4.2.1.1.4">A PCC sets this flag bit | |||
to 1 to indicate that it does not impose any limit on the MSD.</dd> | ||||
<section anchor="rp-object-fmt" title="The RP/SRP Object"> | </dl> | |||
</li> | ||||
<t>To set up an SR-TE LSP using SR, the RP (Request Parameters) or SRP (Stateful | </ul> | |||
PCE Request Parameters) object MUST include the PATH-SETUP-TYPE TLV, specified | </dd> | |||
in <xref target="RFC8408"/>, with the PST set to 1 (path setup using SR-TE).</t> | <dt pn="section-4.1.2-9.5">Maximum SID Depth (MSD):</dt> | |||
<dd pn="section-4.1.2-9.6"> specifies the maximum number of SIDs (MP | ||||
<t>The LSP-IDENTIFIERS TLV MAY be present for the above PST type.</t> | LS label stack depth in the context of this document) that a PCC is capable of i | |||
mposing on a packet. <xref target="SR-CAP-PROCESS" format="default" sectionForm | ||||
</section> | at="of" derivedContent="Section 5.1"/> explains the relationship between this fi | |||
eld and the X-Flag.</dd> | ||||
<section anchor="SR-ERO" title="ERO"> | </dl> | |||
</section> | ||||
<t>An SR-TE path consists of one or more SIDs where each SID MAY be associated w | </section> | |||
ith the identifier that represents the node or adjacency corresponding to the SI | <section anchor="rp-object-fmt" numbered="true" toc="include" removeInRFC= | |||
D. This identifier is referred to as the 'Node or Adjacency Identifier' (NAI). A | "false" pn="section-4.2"> | |||
s described later, a NAI can be represented in various formats (e.g., IPv4 addre | <name slugifiedName="name-the-rp-srp-object">The RP/SRP Object</name> | |||
ss, IPv6 address, etc). Furthermore, a NAI is used for troubleshooting purposes | <t pn="section-4.2-1">To set up an SR-TE LSP using SR, the Request Param | |||
and, if necessary, to derive SID value as described below.</t> | eter (RP) or Stateful PCE Request Parameter (SRP) object <bcp14>MUST</bcp14> inc | |||
lude the PATH-SETUP-TYPE TLV, specified in <xref target="RFC8408" format="defaul | ||||
<t>The ERO specified in <xref target="RFC5440"/> is used to carry SR-TE path inf | t" sectionFormat="of" derivedContent="RFC8408"/>, with the PST set to 1 (and pat | |||
ormation. In order to carry SID and/or NAI, this document defines a new ERO subo | h setup using SR-TE).</t> | |||
bject referred to as "SR-ERO subobject" whose format is specified in the followi | <t pn="section-4.2-2">The LSP-IDENTIFIERS TLV <bcp14>MAY</bcp14> be pres | |||
ng section. An ERO carrying an SR-TE path consists of one or more ERO subobjects | ent for the above PST type.</t> | |||
, and MUST carry only SR-ERO subobjects. Note that an SR-ERO subobject does not | </section> | |||
need to have both SID and NAI. However, at least one of them MUST be present.</t | <section anchor="SR-ERO" numbered="true" toc="include" removeInRFC="false" | |||
> | pn="section-4.3"> | |||
<name slugifiedName="name-ero">ERO</name> | ||||
<t>When building the MPLS label stack from ERO, a PCC MUST assume that SR-ERO su | <t pn="section-4.3-1">An SR-TE path consists of one or more SIDs where e | |||
bobjects are organized as a last-in-first-out stack. The first subobject relati | ach SID <bcp14>MAY</bcp14> be associated with the identifier that represents the | |||
ve to the beginning of ERO contains the information about the topmost label. The | node or adjacency corresponding to the SID. This identifier is referred to as t | |||
last subobject contains information about the bottommost label.</t> | he NAI. As described later, an NAI can be represented in various formats (e.g., | |||
IPv4 address, IPv6 address, etc). Furthermore, an NAI is used for troubleshootin | ||||
<section anchor="SR-ERO-SUB" title="SR-ERO Subobject"> | g purposes and, if necessary, to derive a SID value as described below.</t> | |||
<t pn="section-4.3-2">The ERO specified in <xref target="RFC5440" format | ||||
<t>An SR-ERO subobject is formatted as shown in the following diagram.</t> | ="default" sectionFormat="of" derivedContent="RFC5440"/> is used to carry SR-TE | |||
path information. In order to carry a SID and/or NAI, this document defines a ne | ||||
<figure anchor="SR-ERO-SUBOBJECT" title="SR-ERO subobject format"> | w ERO subobject referred to as the "SR-ERO subobject", whose format is specified | |||
<artwork><![CDATA[ | in the following section. An ERO carrying an SR-TE path consists of one or more | |||
ERO subobjects, and it <bcp14>MUST</bcp14> carry only SR-ERO subobjects. Note t | ||||
hat an SR-ERO subobject does not need to have both the SID and NAI. However, at | ||||
least one of them <bcp14>MUST</bcp14> be present.</t> | ||||
<t pn="section-4.3-3">When building the MPLS label stack from ERO, a PCC | ||||
<bcp14>MUST</bcp14> assume that SR-ERO subobjects are organized as a last-in-fi | ||||
rst-out stack. The first subobject relative to the beginning of ERO contains th | ||||
e information about the topmost label. The last subobject contains information a | ||||
bout the bottommost label.</t> | ||||
<section anchor="SR-ERO-SUB" numbered="true" toc="include" removeInRFC=" | ||||
false" pn="section-4.3.1"> | ||||
<name slugifiedName="name-sr-ero-subobject">SR-ERO Subobject</name> | ||||
<t pn="section-4.3.1-1">An SR-ERO subobject is formatted as shown in t | ||||
he following diagram.</t> | ||||
<figure anchor="SR-ERO-SUBOBJECT" align="left" suppress-title="false" | ||||
pn="figure-2"> | ||||
<name slugifiedName="name-sr-ero-subobject-format">SR-ERO Subobject | ||||
Format</name> | ||||
<artwork name="" type="" align="left" alt="" pn="section-4.3.1-2.1"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|L| Type=36 | Length | NT | Flags |F|S|C|M| | |L| Type=36 | Length | NT | Flags |F|S|C|M| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional) | | | SID (optional) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// NAI (variable, optional) // | // NAI (variable, optional) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | |||
]]></artwork> | ||||
</figure> | </figure> | |||
<t pn="section-4.3.1-3">The fields in the SR-ERO subobject are as foll ows: | ||||
<t>The fields in the SR-ERO Subobject are as follows: | ||||
<list style="hanging"> | ||||
<t hangText="The 'L' Flag:"> Indicates whether the subobject represents a loose- | ||||
hop in the LSP <xref target="RFC3209"/>. If this flag is set to zero, a PCC MUST | ||||
NOT overwrite the SID value present in the SR-ERO subobject. Otherwise, a PCC M | ||||
AY expand or replace one or more SID values in the received SR-ERO based on its | ||||
local policy.</t> | ||||
<t hangText="Type:"> Set to 36. </t> | ||||
<t hangText="Length:"> Contains the total length of the subobject in octets. The | ||||
Length MUST be at least 8, and MUST be a multiple of 4. An SR-ERO subobject MUS | ||||
T contain at least one of a SID or an NAI. The flags described below indicate wh | ||||
ether the SID or NAI fields are absent.</t> | ||||
<t hangText="NAI Type (NT):"> Indicates the type and format of the NAI contained | ||||
in the object body, if any is present. If the F bit is set to zero (see below) | ||||
then the NT field has no meaning and MUST be ignored by the receiver. This docu | ||||
ment describes the following NT values:</t> | ||||
<t><list style="hanging"> | ||||
<t hangText="NT=0">The NAI is absent.</t> | ||||
<t hangText="NT=1">The NAI is an IPv4 node ID.</t> | ||||
<t hangText="NT=2">The NAI is an IPv6 node ID.</t> | ||||
<t hangText="NT=3">The NAI is an IPv4 adjacency.</t> | ||||
<t hangText="NT=4">The NAI is an IPv6 adjacency with global IPv6 addresses.</t> | ||||
<t hangText="NT=5">The NAI is an unnumbered adjacency with IPv4 node IDs.</t> | ||||
<t hangText="NT=6">The NAI is an IPv6 adjacency with link-local IPv6 addresses.< | ||||
/t> | ||||
</list> | ||||
</t> | ||||
<t hangText="Flags:"> Used to carry additional information pertaining to the SID | ||||
. This document defines the following flag bits. The other bits MUST be set to z | ||||
ero by the sender and MUST be ignored by the receiver. | ||||
<list style="symbols"> | ||||
<t>M: If this bit is set to 1, the SID value represents an MPLS label stack entr | ||||
y as specified in <xref target="RFC3032"/>. Otherwise, the SID value is an admin | ||||
istratively configured value which represents an index into an MPLS label space | ||||
(either SRGB or SRLB) per <xref target="RFC8402"/>.</t> | ||||
<t>C: If the M bit and the C bit are both set to 1, then the TC, S, and TTL fiel | ||||
ds in the MPLS label stack entry are specified by the PCE. However, a PCC MAY ch | ||||
oose to override these values according its local policy and MPLS forwarding rul | ||||
es. If the M bit is set to 1 but the C bit is set to zero, then the TC, S, and T | ||||
TL fields MUST be ignored by the PCC. The PCC MUST set these fields according to | ||||
its local policy and MPLS forwarding rules. If the M bit is set to zero then th | ||||
e C bit MUST be set to zero.</t> | ||||
<t>S: When this bit is set to 1, the SID value in the subobject body is absent. | ||||
In this case, the PCC is responsible for choosing the SID value, e.g., by lookin | ||||
g up in the SR-DB using the NAI which, in this case, MUST be present in the subo | ||||
bject. If the S bit is set to 1 then the M and C bits MUST be set to zero.</t> | ||||
<t>F: When this bit is set to 1, the NAI value in the subobject body is absent. | ||||
The F bit MUST be set to 1 if NT=0, and otherwise MUST be set to zero. The S a | ||||
nd F bits MUST NOT both be set to 1.</t> | ||||
</list> | ||||
</t> | </t> | |||
<dl newline="false" spacing="normal" pn="section-4.3.1-4"> | ||||
<dt pn="section-4.3.1-4.1">The L-Flag:</dt> | ||||
<dd pn="section-4.3.1-4.2"> Indicates whether the subobject represen | ||||
ts a loose hop in the LSP <xref target="RFC3209" format="default" sectionFormat= | ||||
"of" derivedContent="RFC3209"/>. If this flag is set to zero, a PCC <bcp14>MUST | ||||
NOT</bcp14> overwrite the SID value present in the SR-ERO subobject. Otherwise, | ||||
a PCC <bcp14>MAY</bcp14> expand or replace one or more SID values in the receive | ||||
d SR-ERO based on its local policy.</dd> | ||||
<dt pn="section-4.3.1-4.3">Type:</dt> | ||||
<dd pn="section-4.3.1-4.4"> Set to 36. </dd> | ||||
<dt pn="section-4.3.1-4.5">Length:</dt> | ||||
<dd pn="section-4.3.1-4.6"> Contains the total length of the subobje | ||||
ct in octets. The Length <bcp14>MUST</bcp14> be at least 8 and <bcp14>MUST</bcp1 | ||||
4> be a multiple of 4. An SR-ERO subobject <bcp14>MUST</bcp14> contain at least | ||||
one SID or NAI. The flags described below indicate whether the SID or NAI fields | ||||
are absent.</dd> | ||||
<dt pn="section-4.3.1-4.7">NAI Type (NT):</dt> | ||||
<dd pn="section-4.3.1-4.8"> | ||||
<t pn="section-4.3.1-4.8.1">Indicates the type and format of the N | ||||
AI contained in | ||||
the object body, if any is present. If the F bit is set to | ||||
zero (see below), then the NT field has no meaning and | ||||
<bcp14>MUST</bcp14> be ignored by the receiver. This | ||||
document describes the following NT values:</t> | ||||
<dl newline="false" spacing="normal" pn="section-4.3.1-4.8.2"> | ||||
<dt pn="section-4.3.1-4.8.2.1">NT=0</dt> | ||||
<dd pn="section-4.3.1-4.8.2.2">The NAI is absent.</dd> | ||||
<dt pn="section-4.3.1-4.8.2.3">NT=1</dt> | ||||
<dd pn="section-4.3.1-4.8.2.4">The NAI is an IPv4 node ID.</dd> | ||||
<dt pn="section-4.3.1-4.8.2.5">NT=2</dt> | ||||
<dd pn="section-4.3.1-4.8.2.6">The NAI is an IPv6 node ID.</dd> | ||||
<dt pn="section-4.3.1-4.8.2.7">NT=3</dt> | ||||
<dd pn="section-4.3.1-4.8.2.8">The NAI is an IPv4 adjacency.</dd | ||||
> | ||||
<dt pn="section-4.3.1-4.8.2.9">NT=4</dt> | ||||
<dd pn="section-4.3.1-4.8.2.10">The NAI is an IPv6 adjacency wit | ||||
h global IPv6 | ||||
addresses.</dd> | ||||
<dt pn="section-4.3.1-4.8.2.11">NT=5</dt> | ||||
<dd pn="section-4.3.1-4.8.2.12">The NAI is an unnumbered adjacen | ||||
cy with IPv4 node | ||||
IDs.</dd> | ||||
<dt pn="section-4.3.1-4.8.2.13">NT=6</dt> | ||||
<dd pn="section-4.3.1-4.8.2.14">The NAI is an IPv6 adjacency wit | ||||
h link-local IPv6 | ||||
addresses.</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt pn="section-4.3.1-4.9">Flags:</dt> | ||||
<dd pn="section-4.3.1-4.10"> | ||||
<t pn="section-4.3.1-4.10.1"> Used to carry additional information | ||||
pertaining to the SID. This document defines the following flag bits. The other | ||||
bits <bcp14>MUST</bcp14> be set to zero by the sender and <bcp14>MUST</bcp14> b | ||||
e ignored by the receiver. | ||||
<t hangText="SID:"> The Segment Identifier. Depending on the M bit, it contains | ||||
either: | ||||
<list style="symbols"> | ||||
<t>A 4 octet index defining the offset into an MPLS label space per <xref ta | ||||
rget="RFC8402"/>.</t> | ||||
<t>A 4 octet MPLS Label Stack Entry, where the 20 most significant bits enco | ||||
de the label value per <xref target="RFC3032"/>.</t> | ||||
</list> | ||||
</t> | </t> | |||
<dl newline="false" spacing="normal" indent="5" pn="section-4.3.1- | ||||
<t hangText="NAI:"> The NAI associated with the SID. The NAI's format depends on | 4.10.2"> | |||
the value in the NT field, and is described in the following section.</t> | <dt pn="section-4.3.1-4.10.2.1">M:</dt> | |||
<dd pn="section-4.3.1-4.10.2.2">If this bit is set to 1, the SID | ||||
</list> | value represents an MPLS label stack entry as specified in <xref target="RFC303 | |||
At least one of the SID and the NAI MUST be included in the SR-ERO subobject, an | 2" format="default" sectionFormat="of" derivedContent="RFC3032"/>. Otherwise, th | |||
d both MAY be included. | e SID value is an administratively configured value that represents an index int | |||
o an MPLS label space (either SRGB or SRLB) per <xref target="RFC8402" format="d | ||||
efault" sectionFormat="of" derivedContent="RFC8402"/>.</dd> | ||||
<dt pn="section-4.3.1-4.10.2.3">C:</dt> | ||||
<dd pn="section-4.3.1-4.10.2.4">If the M bit and the C bit are b | ||||
oth set to 1, then the TC, S, and TTL fields in the MPLS label stack entry are s | ||||
pecified by the PCE. However, a PCC <bcp14>MAY</bcp14> choose to override these | ||||
values according to its local policy and MPLS forwarding rules. If the M bit is | ||||
set to 1 but the C bit is set to zero, then the TC, S, and TTL fields <bcp14>MUS | ||||
T</bcp14> be ignored by the PCC. The PCC <bcp14>MUST</bcp14> set these fields ac | ||||
cording to its local policy and MPLS forwarding rules. If the M bit is set to ze | ||||
ro, then the C bit <bcp14>MUST</bcp14> be set to zero.</dd> | ||||
<dt pn="section-4.3.1-4.10.2.5">S:</dt> | ||||
<dd pn="section-4.3.1-4.10.2.6">When this bit is set to 1, the S | ||||
ID value in the subobject body is absent. In this case, the PCC is responsible f | ||||
or choosing the SID value, e.g., by looking it up in the SR-DB using the NAI tha | ||||
t, in this case, <bcp14>MUST</bcp14> be present in the subobject. If the S bit i | ||||
s set to 1, then the M and C bits <bcp14>MUST</bcp14> be set to zero.</dd> | ||||
<dt pn="section-4.3.1-4.10.2.7">F:</dt> | ||||
<dd pn="section-4.3.1-4.10.2.8">When this bit is set to 1, the N | ||||
AI value in the subobject body is absent. The F bit <bcp14>MUST</bcp14> be set | ||||
to 1 if NT=0; otherwise, it <bcp14>MUST</bcp14> be set to zero. The S and F bit | ||||
s <bcp14>MUST NOT</bcp14> both be set to 1.</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt pn="section-4.3.1-4.11">SID:</dt> | ||||
<dd pn="section-4.3.1-4.12"> | ||||
<t pn="section-4.3.1-4.12.1"> The Segment Identifier. Depending on | ||||
the M bit, it contains either: | ||||
</t> | ||||
<ul spacing="normal" bare="false" empty="false" pn="section-4.3.1- | ||||
4.12.2"> | ||||
<li pn="section-4.3.1-4.12.2.1">A 4-octet index defining the off | ||||
set into an MPLS label space per <xref target="RFC8402" format="default" section | ||||
Format="of" derivedContent="RFC8402"/> or</li> | ||||
<li pn="section-4.3.1-4.12.2.2">A 4-octet MPLS label stack entry | ||||
, where the 20 most significant bits encode the label value per <xref target="RF | ||||
C3032" format="default" sectionFormat="of" derivedContent="RFC3032"/>.</li> | ||||
</ul> | ||||
</dd> | ||||
<dt pn="section-4.3.1-4.13">NAI:</dt> | ||||
<dd pn="section-4.3.1-4.14"> The NAI associated with the SID. The NA | ||||
I's format depends on the value in the NT field and is described in the followin | ||||
g section.</dd> | ||||
</dl> | ||||
<t pn="section-4.3.1-5"> | ||||
At least one SID and NAI <bcp14>MUST</bcp14> be included in the SR-ERO subobject | ||||
, and both <bcp14>MAY</bcp14> be included. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="SR-ERO-NODAL-32" numbered="true" toc="include" removeIn | ||||
<section anchor="SR-ERO-NODAL-32" title="NAI Associated with SID"> | RFC="false" pn="section-4.3.2"> | |||
<name slugifiedName="name-nai-associated-with-sid">NAI Associated with | ||||
<t>This document defines the following NAIs: | SID</name> | |||
<t pn="section-4.3.2-1">This document defines the following NAIs: | ||||
<list style="hanging"> | ||||
<t hangText="'IPv4 Node ID'">is specified as an IPv4 address. In this case, the | ||||
NT value is 1 and the NAI field length is 4 octets.</t> | ||||
<t hangText="'IPv6 Node ID'">is specified as an IPv6 address. In this case, the | ||||
NT value is 2 and the NAI field length is 16 octets.</t> | ||||
<t hangText="'IPv4 Adjacency'">is specified as a pair of IPv4 addresses. In this | ||||
case, the NT value is 3 and the NAI field length is 8 octets. The format of th | ||||
e NAI is shown in the following figure: | ||||
<figure anchor="ADJ-SID-ERO-SUBOBJECT-32" title="NAI for IPv4 adjace | ||||
ncy"> | ||||
<artwork><![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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Local IPv4 address | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Remote IPv4 address | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | ||||
<t hangText="'IPv6 Global Adjacency'">is specified as a pair of global IPv6 addr | ||||
esses. It is used to describe an IPv6 adjacency for a link that uses global IPv | ||||
6 addresses. Each global IPv6 address is configured on a specific router interf | ||||
ace, so together they identify an adjacency between a pair of routers. In this | ||||
case, the NT value is 4 and the NAI field length is 32 octets. The format of the | ||||
NAI is shown in the following figure: | ||||
<figure anchor="ADJ-SID-ERO-SUBOBJECT-128" title="NAI for IPv6 globa | ||||
l adjacency"> | ||||
<artwork><![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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Local IPv6 address (16 octets) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Remote IPv6 address (16 octets) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | </t> | |||
<dl newline="false" spacing="normal" pn="section-4.3.2-2"> | ||||
<dt pn="section-4.3.2-2.1">IPv4 Node ID:</dt> | ||||
<dd pn="section-4.3.2-2.2">Specified as an IPv4 address. In this cas | ||||
e, the NT value is 1, and the NAI field length is 4 octets.</dd> | ||||
<dt pn="section-4.3.2-2.3">IPv6 Node ID:</dt> | ||||
<dd pn="section-4.3.2-2.4">Specified as an IPv6 address. In this cas | ||||
e, the NT value is 2, and the NAI field length is 16 octets.</dd> | ||||
<dt pn="section-4.3.2-2.5">IPv4 Adjacency:</dt> | ||||
<dd pn="section-4.3.2-2.6"> | ||||
<t pn="section-4.3.2-2.6.1">Specified as a pair of IPv4 addresses. | ||||
In this case, the NT value is 3, and the NAI field length is 8 octets. The for | ||||
mat of the NAI is shown in the following figure: | ||||
<t hangText="'Unnumbered Adjacency with IPv4 NodeIDs'">is specified as a pair of | </t> | |||
(node ID, interface ID) tuples. In this case, the NT value is 5 and the NAI fie | <figure anchor="ADJ-SID-ERO-SUBOBJECT-32" align="left" suppress-ti | |||
ld length is 16 octets. The format of the NAI is shown in the following figure: | tle="false" pn="figure-3"> | |||
<figure anchor="ADJ-SID-ERO-UNNUM-32" title="NAI for Unnumbered adja | <name slugifiedName="name-nai-for-ipv4-adjacency">NAI for IPv4 A | |||
cency with IPv4 Node IDs"> | djacency</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-4.3.2-2 | |||
0 1 2 3 | .6.2.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 | 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 | |||
| Local Node-ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Local IPv4 address | | |||
| Local Interface ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Remote IPv4 address | | |||
| Remote Node-ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | </figure> | |||
| Remote Interface ID | | </dd> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <dt pn="section-4.3.2-2.7">IPv6 Global Adjacency:</dt> | |||
]]></artwork> | <dd pn="section-4.3.2-2.8"> | |||
</figure> | <t pn="section-4.3.2-2.8.1">Specified as a pair of global IPv6 add | |||
</t> | resses. It is used to describe an IPv6 adjacency for a link that uses global IP | |||
v6 addresses. Each global IPv6 address is configured on a specific router inter | ||||
face, so together they identify an adjacency between a pair of routers. In this | ||||
case, the NT value is 4, and the NAI field length is 32 octets. The format of t | ||||
he NAI is shown in the following figure: | ||||
<t hangText="'IPv6 Link-Local Adjacency'">is specified as a pair of (global IPv6 | </t> | |||
address, interface ID) tuples. It is used to describe an IPv6 adjacency for a | <figure anchor="ADJ-SID-ERO-SUBOBJECT-128" align="left" suppress-t | |||
link that uses only link local IPv6 addresses. Each global IPv6 address is confi | itle="false" pn="figure-4"> | |||
gured on a specific router, so together they identify a pair of adjacent routers | <name slugifiedName="name-nai-for-ipv6-global-adjacen">NAI for I | |||
. The interface IDs identify the link that the adjacency is formed over. In this | Pv6 Global Adjacency</name> | |||
case, the NT value is 6 and the NAI field length is 40 octets. The format of th | <artwork name="" type="" align="left" alt="" pn="section-4.3.2-2 | |||
e NAI is shown in the following figure: | .8.2.1"> | |||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Local IPv6 address (16 octets) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Remote IPv6 address (16 octets) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | ||||
</figure> | ||||
</dd> | ||||
<dt pn="section-4.3.2-2.9">Unnumbered Adjacency with IPv4 NodeIDs:</ | ||||
dt> | ||||
<dd pn="section-4.3.2-2.10"> | ||||
<t pn="section-4.3.2-2.10.1">Specified as a | ||||
pair of (node ID, interface ID) tuples. In this case, the NT value is | ||||
5, and the NAI field length is 16 octets. The format of the NAI is | ||||
shown in the following figure: | ||||
<figure anchor="ADJ-SID-ERO-LINKLOCAL-40" title="NAI for IPv6 link-l | </t> | |||
ocal adjacency"> | <figure anchor="ADJ-SID-ERO-UNNUM-32" align="left" suppress-title= | |||
<artwork><![CDATA[ | "false" pn="figure-5"> | |||
0 1 2 3 | <name slugifiedName="name-nai-for-unnumbered-adjacenc">NAI for U | |||
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 | nnumbered Adjacency with IPv4 Node IDs</name> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <artwork name="" type="" align="left" alt="" pn="section-4.3.2-2 | |||
// Local IPv6 address (16 octets) // | .10.2.1"> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 | |||
| Local Interface ID | | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Remote IPv6 address (16 octets) // | | Local Node ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Remote Interface ID | | | Local Interface ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | | Remote Node ID | | |||
</figure> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</t> | | Remote Interface ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | ||||
</figure> | ||||
</dd> | ||||
<dt pn="section-4.3.2-2.11">IPv6 Link-Local Adjacency:</dt> | ||||
<dd pn="section-4.3.2-2.12"> | ||||
<t pn="section-4.3.2-2.12.1">Specified as a pair of (global IPv6 a | ||||
ddress, interface ID) tuples. It is used to describe an IPv6 adjacency for a li | ||||
nk that uses only link-local IPv6 addresses. Each global IPv6 address is configu | ||||
red on a specific router, so together they identify a pair of adjacent routers. | ||||
The interface IDs identify the link that the adjacency is formed over. In this c | ||||
ase, the NT value is 6, and the NAI field length is 40 octets. The format of the | ||||
NAI is shown in the following figure: | ||||
</list> | </t> | |||
</t> | <figure anchor="ADJ-SID-ERO-LINKLOCAL-40" align="left" suppress-ti | |||
tle="false" pn="figure-6"> | ||||
<name slugifiedName="name-nai-for-ipv6-link-local-adj">NAI for I | ||||
Pv6 Link-Local Adjacency</name> | ||||
<artwork name="" type="" align="left" alt="" pn="section-4.3.2-2 | ||||
.12.2.1"> | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Local IPv6 address (16 octets) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Local Interface ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// Remote IPv6 address (16 octets) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Remote Interface ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | ||||
</figure> | ||||
</dd> | ||||
</dl> | ||||
</section> | </section> | |||
</section> | ||||
<section anchor="SR-RRO" numbered="true" toc="include" removeInRFC="false" | ||||
pn="section-4.4"> | ||||
<name slugifiedName="name-rro">RRO</name> | ||||
<t pn="section-4.4-1">A PCC reports an SR-TE LSP to a PCE by sending a P | ||||
CRpt message, per <xref target="RFC8231" format="default" sectionFormat="of" der | ||||
ivedContent="RFC8231"/>. The RRO on this message represents the SID list that w | ||||
as applied by the PCC, that is, the actual path taken by the LSP. The procedure | ||||
s of <xref target="RFC8231" format="default" sectionFormat="of" derivedContent=" | ||||
RFC8231"/> with respect to the RRO apply equally to this specification without c | ||||
hange.</t> | ||||
<t pn="section-4.4-2">An RRO contains one or more subobjects called "SR- | ||||
RRO subobjects", whose format is shown below:</t> | ||||
<figure anchor="SR-RRO-SUBOBJECT" align="left" suppress-title="false" pn | ||||
="figure-7"> | ||||
<name slugifiedName="name-sr-rro-subobject-format">SR-RRO Subobject Fo | ||||
rmat</name> | ||||
<artwork name="" type="" align="left" alt="" pn="section-4.4-3.1"> | ||||
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=36 | Length | NT | Flags |F|S|C|M| | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| SID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
// NAI (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | ||||
</figure> | ||||
<t pn="section-4.4-4">The format of the SR-RRO subobject is the same as | ||||
that of the SR-ERO subobject, but without the L-Flag.</t> | ||||
<t pn="section-4.4-5">A PCC <bcp14>MUST</bcp14> order the SR-RRO subobje | ||||
cts such that the first subobject relative to the beginning of the RRO identifie | ||||
s the first segment visited by the SR-TE LSP, and the last subobject identifies | ||||
the final segment of the SR-TE LSP, that is, its endpoint.</t> | ||||
</section> | ||||
<section anchor="SR-METRIC" numbered="true" toc="include" removeInRFC="fal | ||||
se" pn="section-4.5"> | ||||
<name slugifiedName="name-metric-object">METRIC Object</name> | ||||
<t pn="section-4.5-1">A PCC <bcp14>MAY</bcp14> request that PCE optimize | ||||
s an individual path computation request to minimize the SID depth of the comput | ||||
ed path by using the METRIC object defined in <xref target="RFC5440" format="def | ||||
ault" sectionFormat="of" derivedContent="RFC5440"/>. This document defines a ne | ||||
w type for the METRIC object to be used for this purpose, as follows: | ||||
</section> | </t> | |||
<ul spacing="normal" empty="true" bare="false" pn="section-4.5-2"> | ||||
<section anchor="SR-RRO" title="RRO"> | <li pn="section-4.5-2.1"> | |||
<dl newline="false" spacing="normal" pn="section-4.5-2.1.1"> | ||||
<t>A PCC reports an SR-TE LSP to a PCE by sending a PCRpt message, per <xref tar | <dt pn="section-4.5-2.1.1.1">T = 11:</dt> | |||
get="RFC8231"/>. The RRO on this message represents the SID list that was appli | <dd pn="section-4.5-2.1.1.2">Maximum SID Depth of the requested pa | |||
ed by the PCC, that is, the actual path taken by the LSP. The procedures of <xr | th.</dd> | |||
ef target="RFC8231"/> with respect to the RRO apply equally to this specificatio | </dl> | |||
n without change.</t> | </li> | |||
</ul> | ||||
<t>An RRO contains one or more subobjects called "SR-RRO subobjects" whose forma | <t pn="section-4.5-3">If the PCC includes a METRIC object of this type o | |||
t is shown below:</t> | n a path computation request, then the PCE minimizes the SID depth of the comput | |||
ed path. If the B (bound) bit is set to 1 in the METRIC object, then the PCE <b | ||||
<figure anchor="SR-RRO-SUBOBJECT" title="SR-RRO Subobject format"> | cp14>MUST NOT</bcp14> return a path whose SID depth exceeds the given metric val | |||
<artwork><![CDATA[ | ue. If the PCC did not set the X-Flag in its SR-PCE-CAPABILITY TLV, then it <bc | |||
0 1 2 3 | p14>MUST</bcp14> set the B bit to 1. If the PCC set the X-Flag in its SR-PCE-CA | |||
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 | PABILITY TLV, then it <bcp14>MAY</bcp14> set the B bit to 1 or zero.</t> | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | <t pn="section-4.5-4">If a PCEP session is established with a non-zero d | |||
| Type=36 | Length | NT | Flags |F|S|C|M| | efault MSD value, then the | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PCC <bcp14>MUST NOT</bcp14> send an MSD METRIC object with an MSD greater tha | |||
| SID | | n | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | the session's default MSD. If the PCE receives a path computation request | |||
// NAI (variable) // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<t>The format of the SR-RRO subobject is the same as that of the SR-ERO subobjec | ||||
t, but without the L flag.</t> | ||||
<t>A PCC MUST order the SR-RRO subobjects such that the first subobject relative | ||||
to the beginning of the RRO identifies the first segment visited by the SR-TE L | ||||
SP, and the last subobject identifies the final segment of the SR-TE LSP, that i | ||||
s, its endpoint.</t> | ||||
</section> <!-- SR-RRO --> | ||||
<section anchor="SR-METRIC" title="METRIC Object"> | ||||
<t>A PCC MAY request that PCE optimizes an individual path computation request t | ||||
o minimize the SID depth of the computed path by using the METRIC object defined | ||||
in <xref target="RFC5440"/>. This document defines a new type for the METRIC o | ||||
bject to be used for this purpose, as follows: | ||||
<list style="symbols"> | ||||
<t>T = 11: Maximum SID Depth of the requested path.</t> | ||||
</list> | ||||
</t> | ||||
<t>If the PCC includes a METRIC object of this type on a path computation reques | ||||
t, then the PCE minimizes the SID depth of the computed path. If the B (bound) | ||||
bit is set to to 1 in the METRIC object, then the PCE MUST NOT return a path who | ||||
se SID depth exceeds the given metric-value. If the PCC did not set the X flag | ||||
in its SR-PCE-CAPABILITY TLV, then it MUST set the B bit to 1. If the PCC set t | ||||
he X flag in its SR-PCE-CAPABILITY TLV, then it MAY set the B bit to 1 or zero.< | ||||
/t> | ||||
<t>If a PCEP session is established with a non-zero default MSD value, then the | ||||
PCC MUST NOT send an MSD METRIC object with an MSD greater than | ||||
the session's default MSD. If the PCE receives a path computation request | ||||
with an MSD METRIC object on such a session that is greater than the session' s | with an MSD METRIC object on such a session that is greater than the session' s | |||
default MSD, then it MUST consider the request invalid and send | default MSD, then it <bcp14>MUST</bcp14> consider the request invalid and sen | |||
a PCErr with Error-Type = 10 ("Reception of an invalid object") and | d | |||
Error-Value 9 ("MSD exceeds the default for the PCEP session"). | a PCEP Error (PCErr) with Error-Type = 10 ("Reception of an invalid object") | |||
and | ||||
Error-value = 9 ("MSD exceeds the default for the PCEP session"). | ||||
</t> | </t> | |||
</section> | ||||
</section> | ||||
<section anchor="procedures" numbered="true" toc="include" removeInRFC="fals | ||||
e" pn="section-5"> | ||||
<name slugifiedName="name-procedures">Procedures</name> | ||||
<section anchor="SR-CAP-PROCESS" numbered="true" toc="include" removeInRFC | ||||
="false" pn="section-5.1"> | ||||
<name slugifiedName="name-exchanging-the-sr-pce-capab">Exchanging the SR | ||||
PCE Capability</name> | ||||
<t pn="section-5.1-1">A PCC indicates that it is capable of supporting t | ||||
he head-end functions for SR-TE LSP by including the SR-PCE-CAPABILITY sub-TLV i | ||||
n the Open message that it sends to a PCE. A PCE indicates that it is capable of | ||||
computing SR-TE paths by including the SR-PCE-CAPABILITY sub-TLV in the Open me | ||||
ssage that it sends to a PCC.</t> | ||||
<t pn="section-5.1-2">If a PCEP speaker receives a PATH-SETUP-TYPE-CAPAB | ||||
ILITY TLV with a PST list containing PST=1, and supports that path setup type, t | ||||
hen it checks for the presence of the SR-PCE-CAPABILITY sub-TLV. If that sub-TL | ||||
V is absent, then the PCEP speaker <bcp14>MUST</bcp14> send a PCErr message with | ||||
Error-Type = 10 ("Reception of an invalid object") and Error-value = 12 ("Missi | ||||
ng PCE-SR-CAPABILITY sub-TLV") and <bcp14>MUST</bcp14> then close the PCEP sessi | ||||
on. If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV with a SR-PCE-C | ||||
APABILITY sub-TLV, but the PST list does not contain PST=1, then the PCEP speake | ||||
r <bcp14>MUST</bcp14> ignore the SR-PCE-CAPABILITY sub-TLV.</t> | ||||
<t pn="section-5.1-3">If a PCC sets the N-Flag to 1, then the PCE <bcp14 | ||||
>MAY</bcp14> send an SR-ERO subobject containing an NAI and no SID (see <xref ta | ||||
rget="SR-ERO-PROCESS" format="default" sectionFormat="of" derivedContent="Sectio | ||||
n 5.2"/>). Otherwise, the PCE <bcp14>MUST NOT</bcp14> send an SR-ERO subobject | ||||
containing an NAI and no SID.</t> | ||||
<t pn="section-5.1-4">The number of SIDs that can be imposed on a packet | ||||
depends on the PCC's data-plane capability. If a PCC sets the X-Flag to 1, then | ||||
the MSD is not used and <bcp14>MUST</bcp14> be set to zero. If a PCE receives a | ||||
n SR-PCE-CAPABILITY sub-TLV with the X-Flag set to 1, then it <bcp14>MUST</bcp14 | ||||
> ignore the MSD field and assume that the sender can impose a SID stack of any | ||||
depth. If a PCC sets the X-Flag to zero, then it sets the MSD field to the maxi | ||||
mum number of SIDs that it can impose on a packet. In this case, the PCC <bcp14 | ||||
>MUST</bcp14> set the MSD to a number greater than zero. If a PCE receives an S | ||||
R-PCE-CAPABILITY sub-TLV with the X-Flag and MSD both set to zero, then it <bcp1 | ||||
4>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Reception of an inval | ||||
id object") and Error-value = 21 ("Maximum SID depth must be non-zero") and <bcp | ||||
14>MUST</bcp14> then close the PCEP session.</t> | ||||
<t pn="section-5.1-5">Note that the MSD value exchanged via the SR-PCE-C | ||||
APABILITY sub-TLV indicates the SID/label imposition limit for the PCC node. It | ||||
is anticipated that, in many deployments, the PCCs will have network interfaces | ||||
that are homogeneous with respect to MSD (that is, each interface has the same | ||||
MSD). In such cases, having a per-node MSD on the PCEP session is sufficient; t | ||||
he PCE <bcp14>SHOULD</bcp14> interpret this to mean that all network interfaces | ||||
on the PCC have the given MSD. However, the PCE <bcp14>MAY</bcp14> also learn a | ||||
per-node MSD and a per-interface MSD from the routing protocols, as specified i | ||||
n <xref target="RFC8491" format="default" sectionFormat="of" derivedContent="RFC | ||||
8491"/>, <xref target="RFC8476" format="default" sectionFormat="of" derivedConte | ||||
nt="RFC8476"/>, and <xref target="I-D.ietf-idr-bgp-ls-segment-routing-msd" form | ||||
at="default" sectionFormat="of" derivedContent="MSD-BGP"/>. If the PCE learns t | ||||
he per-node MSD of a PCC from a routing protocol, then it <bcp14>MUST</bcp14> i | ||||
gnore the per-node MSD value in the SR-PCE-CAPABILITY sub-TLV and use the per-no | ||||
de MSD learned from the routing protocol instead. If the PCE learns the MSD of | ||||
a network interface on a PCC from a routing protocol, then it <bcp14>MUST</bcp1 | ||||
4> use the per-interface MSD instead of the MSD value in the SR-PCE-CAPABILITY s | ||||
ub-TLV when it computes a path that uses that interface.</t> | ||||
<t pn="section-5.1-6">Once an SR-capable PCEP session is established wit | ||||
h a non-zero MSD value, the corresponding PCE <bcp14>MUST NOT</bcp14> send SR-TE | ||||
paths with a number of SIDs exceeding that MSD value. If a PCC needs to modify | ||||
the MSD value, it <bcp14>MUST</bcp14> close the PCEP session and re-establish it | ||||
with the new MSD value. If a PCEP session is established with a non-zero MSD va | ||||
lue, and the PCC receives an SR-TE path containing more SIDs than specified in t | ||||
he MSD value, the PCC <bcp14>MUST</bcp14> send a PCErr message with Error-Type = | ||||
10 ("Reception of an invalid object") and Error-value = 3 ("Unsupported number | ||||
of SR-ERO subobjects"). If a PCEP session is established with an MSD value of ze | ||||
ro, then the PCC <bcp14>MAY</bcp14> specify an MSD for each path computation req | ||||
uest that it sends to the PCE, by including a "maximum SID depth" METRIC object | ||||
on the request, as defined in <xref target="SR-METRIC" format="default" sectionF | ||||
ormat="of" derivedContent="Section 4.5"/>.</t> | ||||
<t pn="section-5.1-7">The N-Flag, X-Flag, and MSD value inside the SR-PC | ||||
E-CAPABILITY sub-TLV are meaningful only in the Open message sent from a PCC to | ||||
a PCE. As such, a PCE <bcp14>MUST</bcp14> set the N-Flag to zero, X-Flag to 1, a | ||||
nd MSD value to zero in an outbound message to a PCC. Similarly, a PCC <bcp14>MU | ||||
ST</bcp14> ignore any MSD value received from a PCE. If a PCE receives multiple | ||||
SR-PCE-CAPABILITY sub-TLVs in an Open message, it processes only the first sub-T | ||||
LV received.</t> | ||||
</section> | ||||
<section anchor="SR-ERO-PROCESS" numbered="true" toc="include" removeInRFC | ||||
="false" pn="section-5.2"> | ||||
<name slugifiedName="name-ero-processing">ERO Processing</name> | ||||
<section anchor="SR-ERO-VALIDATION" numbered="true" toc="include" remove | ||||
InRFC="false" pn="section-5.2.1"> | ||||
<name slugifiedName="name-sr-ero-validation">SR-ERO Validation</name> | ||||
<t pn="section-5.2.1-1">If a PCC does not support the SR PCE Capabilit | ||||
y and thus cannot recognize the SR-ERO or SR-RRO subobjects, it will respond acc | ||||
ording to the rules for a malformed object per <xref target="RFC5440" format="de | ||||
fault" sectionFormat="of" derivedContent="RFC5440"/>.</t> | ||||
<t pn="section-5.2.1-2">On receiving an SR-ERO, a PCC <bcp14>MUST</bcp | ||||
14> validate that the Length field, S bit, F bit, and NT field are consistent, a | ||||
s follows. | ||||
</section> <!-- SR-METRIC --> | </t> | |||
<ul spacing="normal" bare="false" empty="false" pn="section-5.2.1-3"> | ||||
</section> <!-- object-formats --> | <li pn="section-5.2.1-3.1">If NT=0, the F bit <bcp14>MUST</bcp14> be | |||
1, the S bit <bcp14>MUST</bcp14> be zero, and the Length <bcp14>MUST</bcp14> be | ||||
<section anchor="procedures" title="Procedures"> | 8.</li> | |||
<li pn="section-5.2.1-3.2">If NT=1, the F bit <bcp14>MUST</bcp14> be | ||||
<section anchor="SR-CAP-PROCESS" title="Exchanging the SR PCE Capability"> | zero. If the S bit is 1, the Length <bcp14>MUST</bcp14> be 8; otherwise, the L | |||
ength <bcp14>MUST</bcp14> be 12.</li> | ||||
<t>A PCC indicates that it is capable of supporting the head-end functions for S | <li pn="section-5.2.1-3.3">If NT=2, the F bit <bcp14>MUST</bcp14> be | |||
R-TE LSP by including the SR-PCE-CAPABILITY sub-TLV in the Open message that it | zero. If the S bit is 1, the Length <bcp14>MUST</bcp14> be 20; otherwise, the | |||
sends to a PCE. A PCE indicates that it is capable of computing SR-TE paths by i | Length <bcp14>MUST</bcp14> be 24.</li> | |||
ncluding the SR-PCE-CAPABILITY sub-TLV in the Open message that it sends to a PC | <li pn="section-5.2.1-3.4">If NT=3, the F bit <bcp14>MUST</bcp14> be | |||
C.</t> | zero. If the S bit is 1, the Length <bcp14>MUST</bcp14> be 12; otherwise, the | |||
Length <bcp14>MUST</bcp14> be 16.</li> | ||||
<t>If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV with a PST list c | <li pn="section-5.2.1-3.5">If NT=4, the F bit <bcp14>MUST</bcp14> be | |||
ontaining PST=1, and supports that path setup type, then it checks for the prese | zero. If the S bit is 1, the Length <bcp14>MUST</bcp14> be 36; otherwise, the | |||
nce of the SR-PCE-CAPABILITY sub-TLV. If that sub-TLV is absent, then the PCEP | Length <bcp14>MUST</bcp14> be 40.</li> | |||
speaker MUST send a PCErr message with Error-Type 10 (Reception of an invalid ob | <li pn="section-5.2.1-3.6">If NT=5, the F bit <bcp14>MUST</bcp14> be | |||
ject) and Error-Value TBD1 (Missing PCE-SR-CAPABILITY sub-TLV) and MUST then clo | zero. If the S bit is 1, the Length <bcp14>MUST</bcp14> be 20; otherwise, the | |||
se the PCEP session. If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TL | Length <bcp14>MUST</bcp14> be 24.</li> | |||
V with a SR-PCE-CAPABILITY sub-TLV, but the PST list does not contain PST=1, the | <li pn="section-5.2.1-3.7">If NT=6, the F bit <bcp14>MUST</bcp14> be | |||
n the PCEP speaker MUST ignore the SR-PCE-CAPABILITY sub-TLV.</t> | zero. If the S bit is 1, the Length <bcp14>MUST</bcp14> be 44; otherwise, the | |||
Length <bcp14>MUST</bcp14> be 48.</li> | ||||
<t>If a PCC sets the N flag to 1, then the PCE MAY send an SR-ERO subobject cont | </ul> | |||
aining NAI and no SID (see <xref target="SR-ERO-PROCESS"/>). Otherwise, the PCE | <t pn="section-5.2.1-4">If a PCC finds that the NT field, Length field | |||
MUST NOT send an SR-ERO subobject containing NAI and no SID.</t> | , S bit, and F bit are not consistent, it <bcp14>MUST</bcp14> consider the entir | |||
e ERO invalid and <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 | ||||
<t>The number of SIDs that can be imposed on a packet depends on the PCC's data | ("Reception of an invalid object") and Error-value = 11 ("Malformed object").</t | |||
plane's capability. If a PCC sets the X flag to 1 then the MSD is not used and M | > | |||
UST be set to zero. If a PCE receives an SR-PCE-CAPABILITY sub-TLV with the X fl | <t pn="section-5.2.1-5">If a PCC does not recognize or support the val | |||
ag set to 1 then it MUST ignore the MSD field and assumes that the sender can im | ue in the NT field, | |||
pose a SID stack of any depth. If a PCC sets the X flag to zero, then it sets t | it <bcp14>MUST</bcp14> consider the entire ERO invalid and | |||
he MSD field to the maximum number of SIDs that it can impose on a packet. In t | <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 | |||
his case, the PCC MUST set the MSD to a number greater than zero. If a PCE rece | ("Reception of an invalid object") and Error-value = 13 | |||
ives an SR-PCE-CAPABILITY sub-TLV with the X flag and MSD both set to zero then | ("Unsupported NAI Type in the SR-ERO/SR-RRO subobject").</t> | |||
it MUST send a PCErr message with Error-Type 10 (Reception of an invalid object) | <t pn="section-5.2.1-6">If a PCC receives an SR-ERO subobject in which | |||
and Error-Value TBD10 (Maximum SID depth must be nonzero) and MUST then close t | the S and F bits are both set to 1 (that is, both the SID and NAI are absent), | |||
he PCEP session.</t> | it <bcp14>MUST</bcp14> consider the entire ERO invalid and send a PCErr message | |||
with Error-Type = 10 ("Reception of an invalid object") and Error-value = 6 ("Bo | ||||
<t>Note that the MSD value exchanged via the SR-PCE-CAPABILITY sub-TLV indicates | th SID and NAI are absent in the SR-ERO subobject").</t> | |||
the SID/label imposition limit for the PCC node. It is anticipated that, in ma | <t pn="section-5.2.1-7">If a PCC receives an SR-ERO subobject in which | |||
ny deployments, the PCCs will have network interfaces that are homogeneous with | the S bit is set to 1 and the F bit is set to zero (that is, the SID is absent | |||
respect to MSD (that is, each interface has the same MSD). In such cases, havin | and the NAI is present), but the PCC does not support NAI resolution, it <bcp14> | |||
g a per-node MSD on the PCEP session is sufficient; the PCE SHOULD interpret thi | MUST</bcp14> consider the entire ERO invalid and send a PCErr message with Error | |||
s to mean that all network interfaces on the PCC have the given MSD. However, t | -Type = 4 ("Not supported object") and Error-value = 4 ("Unsupported parameter") | |||
he PCE MAY also learn a per-node MSD and a per-interface MSD from the routing pr | .</t> | |||
otocols, as specified in: <xref target="RFC8491"/>; <xref target="RFC8476"/>; | <t pn="section-5.2.1-8">If a PCC receives an SR-ERO subobject in which | |||
<xref target="I-D.ietf-idr-bgp-ls-segment-routing-msd"/>. If the PCE learns the | the S bit is set to 1 and either (or both) the M bit or the C bit is set to 1, | |||
per-node MSD of a PCC from a routing protocol, then it MUST ignore the per-nod | it <bcp14>MUST</bcp14> consider the entire ERO invalid and send a PCErr message | |||
e MSD value in the SR-PCE-CAPABILITY sub-TLV and use the per-node MSD learned fr | with Error-Type = 10 ("Reception of an invalid object") and Error-value = 11 ("M | |||
om the routing protocol instead. If the PCE learns the MSD of a network interfa | alformed object").</t> | |||
ce on a PCC from a routing protocol, then it MUST use the per-interface MSD ins | <t pn="section-5.2.1-9">If a PCC receives an SR-ERO subobject in which | |||
tead of the MSD value in the SR-PCE-CAPABILITY sub-TLV when it computes a path t | the S bit is set to zero and the M bit is set to 1, then the subobject contains | |||
hat uses that interface.</t> | an MPLS label. The PCC <bcp14>MAY</bcp14> choose not to accept a label provide | |||
d by the PCE, based on its local policy. The PCC <bcp14>MUST NOT</bcp14> accept | ||||
<t>Once an SR-capable PCEP session is established with a non-zero MSD value, the | MPLS label value 3 (Implicit NULL), but it <bcp14>MAY</bcp14> accept other spec | |||
corresponding PCE MUST NOT send SR-TE paths with a number of SIDs exceeding tha | ial-purpose MPLS label values. If the PCC decides not to accept an MPLS label v | |||
t MSD value. If a PCC needs to modify the MSD value, it MUST close the PCEP sess | alue, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Recepti | |||
ion and re-establish it with the new MSD value. If a PCEP session is established | on of an invalid object") and Error-value = 2 ("Bad label value").</t> | |||
with a non-zero MSD value, and the PCC receives an SR-TE path containing more S | <t pn="section-5.2.1-10">If both the M and C bits of an SR-ERO subobje | |||
IDs than specified in the MSD value, the PCC MUST send a PCErr message with Erro | ct are set to 1, and if a PCC finds an erroneous setting in one or more of the T | |||
r-Type 10 (Reception of an invalid object) and Error-Value 3 (Unsupported number | C, S, and TTL fields, it <bcp14>MAY</bcp14> overwrite those fields with values c | |||
of Segment ERO subobjects). If a PCEP session is established with an MSD value | hosen according to its own policy. If the PCC does not overwrite them, it <bcp14 | |||
of zero, then the PCC MAY specify an MSD for each path computation request that | >MUST</bcp14> send a PCErr message with Error-Type = 10 ("Reception of an invali | |||
it sends to the PCE, by including a "maximum SID depth" metric object on the req | d object") and Error-value = 4 ("Bad label format").</t> | |||
uest, as defined in <xref target="SR-METRIC"/>.</t> | <t pn="section-5.2.1-11">If the M bit of an SR-ERO subobject is set to | |||
zero but the C bit is set to 1, then the PCC <bcp14>MUST</bcp14> consider the e | ||||
<t>The N flag, X flag and MSD value inside the SR-PCE-CAPABILITY sub-TLV are mea | ntire ERO invalid and <bcp14>MUST</bcp14> send a PCErr message with Error-Type = | |||
ningful only in the Open message sent from a PCC to a PCE. As such, a PCE MUST s | 10 ("Reception of an invalid object") and Error-value = 11 ("Malformed object") | |||
et the N flag to zero, the X flag to 1 and MSD value to zero in an outbound mess | .</t> | |||
age to a PCC. Similarly, a PCC MUST ignore any MSD value received from a PCE. If | <t pn="section-5.2.1-12">If a PCC receives an SR-ERO subobject in whic | |||
a PCE receives multiple SR-PCE-CAPABILITY sub-TLVs in an Open message, it proce | h the S bit is set to zero and the M bit is set to zero, then the subobject cont | |||
sses only the first sub-TLV received.</t> | ains a SID index value. If the SID is an Adj-SID, then the L-Flag <bcp14>MUST N | |||
OT</bcp14> be set. If the L-Flag is set for an Adj-SID, then the PCC <bcp14>MUS | ||||
</section> | T</bcp14> send a PCErr message with Error-Type = 10 ("Reception of an invalid ob | |||
ject") and Error-value = 11 ("Malformed object").</t> | ||||
<section anchor="SR-ERO-PROCESS" title="ERO Processing"> | <t pn="section-5.2.1-13">If a PCC detects that the subobjects of an ER | |||
O are a mixture of SR-ERO subobjects and subobjects of other types, then it <bcp | ||||
<section anchor="SR-ERO-VALIDATION" title="SR-ERO Validation"> | 14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Reception of an inva | |||
lid object") and Error-value = 5 ("ERO mixes SR-ERO subobjects with other subobj | ||||
<t>If a PCC does not support the SR PCE Capability and thus cannot recognize | ect types").</t> | |||
the SR-ERO or SR-RRO subobjects, it will respond according to the rules for a m | <t pn="section-5.2.1-14">The SR-ERO subobjects can be classified accor | |||
alformed object per <xref target="RFC5440"/>.</t> | ding to whether they contain a SID representing an MPLS label value or an index | |||
value, or no SID. If a PCC detects that the SR-ERO subobjects are a mixture of | ||||
<t>On receiving an SR-ERO, a PCC MUST validate that the Length field, the S | more than one of these types, then it <bcp14>MUST</bcp14> send a PCErr message w | |||
bit, the F bit and the NT field are consistent, as follows. | ith Error-Type = 10 ("Reception of an invalid object") and Error-value = 20 ("In | |||
consistent SIDs in SR-ERO/SR-RRO subobjects").</t> | ||||
<list style="symbols"> | <t pn="section-5.2.1-15">If an ERO specifies a new SR-TE path for an e | |||
<t>If NT=0, the F bit MUST be 1, the S bit MUST be zero and the Length MUST | xisting LSP and the PCC determines that the ERO contains SR-ERO subobjects that | |||
be 8.</t> | are not valid, then the PCC <bcp14>MUST NOT</bcp14> update the LSP.</t> | |||
<t>If NT=1, the F bit MUST be zero. If the S bit is 1, the Length MUST be 8 | </section> | |||
, otherwise the Length MUST be 12.</t> | <section anchor="SR-ERO-INTERPRET" numbered="true" toc="include" removeI | |||
<t>If NT=2, the F bit MUST be zero. If the S bit is 1, the Length MUST be 2 | nRFC="false" pn="section-5.2.2"> | |||
0, otherwise the Length MUST be 24.</t> | <name slugifiedName="name-interpreting-the-sr-ero">Interpreting the SR | |||
<t>If NT=3, the F bit MUST be zero. If the S bit is 1, the Length MUST be 1 | -ERO</name> | |||
2, otherwise the Length MUST be 16.</t> | <t pn="section-5.2.2-1"> | |||
<t>If NT=4, the F bit MUST be zero. If the S bit is 1, the Length MUST be 3 | ||||
6, otherwise the Length MUST be 40.</t> | ||||
<t>If NT=5, the F bit MUST be zero. If the S bit is 1, the Length MUST be 2 | ||||
0, otherwise the Length MUST be 24.</t> | ||||
<t>If NT=6, the F bit MUST be zero. If the S bit is 1, the Length MUST be 4 | ||||
4, otherwise the Length MUST be 48.</t> | ||||
</list></t> | ||||
<t>If a PCC finds that the NT field, Length field, S bit and F bit are not c | ||||
onsistent, it MUST consider the entire ERO invalid and MUST send a PCErr message | ||||
with Error-Type = 10 ("Reception of an invalid object") and Error-Value = 11 (" | ||||
Malformed object").</t> | ||||
<t>If a PCC does not recognise or support the value in the NT field, it MUST | ||||
consider the entire ERO invalid and MUST send a PCErr message with Error-Type = | ||||
10 ("Reception of an invalid object") and Error-Value = TBD2 ("Unsupported NAI | ||||
Type in Segment ERO subobject").</t> | ||||
<t>If a PCC receives an SR-ERO subobject in which the S and F bits are both | ||||
set to 1 (that is, both the SID and NAI are absent), it MUST consider the entire | ||||
ERO invalid and send a PCErr message with Error-Type = 10 ("Reception of an inv | ||||
alid object") and Error-Value = 6 ("Both SID and NAI are absent in SR-ERO subobj | ||||
ect").</t> | ||||
<t>If a PCC receives an SR-ERO subobject in which the S bit is set to 1 and | ||||
the F bit is set to zero (that is, the SID is absent and the NAI is present), bu | ||||
t the PCC does not support NAI resolution, it MUST consider the entire ERO inval | ||||
id and send a PCErr message with Error-Type = 4 ("Not supported object") and Err | ||||
or-Value = 4 ("Unsupported parameter").</t> | ||||
<t>If a PCC receives an SR-ERO subobject in which the S bit is set to 1 and | ||||
either or both of the M or C bits is set to 1, it MUST consider the entire ERO i | ||||
nvalid and send a PCErr message with Error-Type = 10 ("Reception of an invalid o | ||||
bject") and Error-Value = 11 ("Malformed object").</t> | ||||
<t>If a PCC receives an SR-ERO subobject in which the S bit is set to zero a | ||||
nd the M bit is set to 1, then the subobject contains an MPLS label. The PCC MA | ||||
Y choose not to accept a label provided by the PCE, based on it local policy. T | ||||
he PCC MUST NOT accept MPLS label value 3 (Implicit NULL), but it MAY accept oth | ||||
er special purpose MPLS label values. If the PCC decides not to accept an MPLS | ||||
label value, it MUST send a PCErr message with Error-Type = 10 ("Reception of an | ||||
invalid object") and Error Value = 2 ("Bad label value").</t> | ||||
<t>If both M and C bits of an SR-ERO subobject are set to 1, and if a PCC fi | ||||
nds erroneous setting in one or more of TC, S, and TTL fields, it MAY overwrite | ||||
those fields with values chosen according to its own policy. If the PCC does not | ||||
overwrite them, it MUST send a PCErr message with Error-Type = 10 ("Reception o | ||||
f an invalid object") and Error-Value = 4 ("Bad label format").</t> | ||||
<t>If the M bit of an SR-ERO subobject is set to zero but the C bit is set t | ||||
o 1, then the PCC MUST consider the entire ERO invalid and MUST send a PCErr mes | ||||
sage with Error-Type = 10 ("Reception of an invalid object") and Error-Value = 1 | ||||
1 ("Malformed object").</t> | ||||
<t>If a PCC receives an SR-ERO subobject in which the S bit is set to zero a | ||||
nd the M bit is set to zero, then the subobject contains a SID index value. If | ||||
the SID is an Adjacency-SID then the L flag MUST NOT be set. If the L flag is s | ||||
et for an Adjacency-SID then the PCC MUST send a PCErr message with Error-Type = | ||||
10 ("Reception of an invalid object") and Error-Value = 11 ("Malformed object") | ||||
.</t> | ||||
<t>If a PCC detects that the subobjects of an ERO are a mixture of SR-ERO su | ||||
bobjects and subobjects of other types, then it MUST send a PCErr message with E | ||||
rror-Type = 10 ("Reception of an invalid object") and Error-Value = 5 ("ERO mixe | ||||
s SR-ERO subobjects with other subobject types").</t> | ||||
<t>The SR-ERO subobjects can be classified according to whether they contain | ||||
a SID representing an MPLS label value, a SID representing an index value, or n | ||||
o SID. If a PCC detects that the SR-ERO subobjects are a mixture of more than o | ||||
ne of these types, then it MUST send a PCErr message with Error-Type = 10 ("Rece | ||||
ption of an invalid object") and Error-Value = TBD9 ("Inconsistent SIDs in SR-ER | ||||
O / SR-RRO subobjects").</t> | ||||
<t>If an ERO specifies a new SR-TE path for an existing LSP and the PCC dete | ||||
rmines that the ERO contains SR-ERO subobjects that are not valid, then the PCC | ||||
MUST NOT update the LSP.</t> | ||||
</section> | ||||
<section anchor="SR-ERO-INTERPRET" title="Interpreting the SR-ERO"> | ||||
<t> | ||||
The SR-ERO contains a sequence of subobjects. Each SR-ERO subobject in | The SR-ERO contains a sequence of subobjects. Each SR-ERO subobject in | |||
the sequence identifies a segment that the traffic will be directed | the sequence identifies a segment that the traffic will be directed | |||
to, in the order given. That is, the first subobject identifies the | to, in the order given. That is, the first subobject identifies the | |||
first segment the traffic will be directed to, the second | first segment the traffic will be directed to, the second | |||
subobject represents the second segment, and so on. | subobject represents the second segment, and so on. | |||
</t> | </t> | |||
<t> | <t pn="section-5.2.2-2"> | |||
The PCC interprets the SR-ERO by converting it to an MPLS label stack plu s a | The PCC interprets the SR-ERO by converting it to an MPLS label stack plu s a | |||
next hop. The PCC sends packets along the segment routed path by prepend ing | next hop. The PCC sends packets along the segment-routed path by prepend ing | |||
the MPLS label stack onto the packets and sending the resulting, modified | the MPLS label stack onto the packets and sending the resulting, modified | |||
packet to the next hop. | packet to the next hop. | |||
</t> | </t> | |||
<t> | <t pn="section-5.2.2-3"> | |||
The PCC uses a different procedure to do this conversion, depending on th e | The PCC uses a different procedure to do this conversion, depending on th e | |||
information that the PCE has provided in the subobjects. | information that the PCE has provided in the subobjects. | |||
<list style="symbols"> | </t> | |||
<t> | <ul spacing="normal" bare="false" empty="false" pn="section-5.2.2-4"> | |||
<li pn="section-5.2.2-4.1"> | ||||
If the subobjects contain SID index values, then the PCC converts them into the | If the subobjects contain SID index values, then the PCC converts them into the | |||
corresponding MPLS labels by following the procedure defined in | corresponding MPLS labels by following the procedure defined in | |||
<xref target="I-D.ietf-spring-segment-routing-mpls"/>. | <xref target="RFC8660" format="default" sectionFormat="of" derivedCont | |||
</t> | ent="RFC8660"/>. | |||
<t> | </li> | |||
If the subobjects contain NAI only, the PCC first converts | <li pn="section-5.2.2-4.2"> | |||
If the subobjects contain NAIs only, the PCC first converts | ||||
each NAI into a SID index value and then proceeds as above. | each NAI into a SID index value and then proceeds as above. | |||
To convert an NAI to a SID index, the PCC looks for a fully-specified | To convert an NAI to a SID index, the PCC looks for a fully specified | |||
prefix or adjacency matching the fields in the NAI. If the PCC finds | prefix or adjacency matching the fields in the NAI. If the PCC finds | |||
a matching prefix/adjacency, and the matching prefix/adjacency has a S ID associated | a matching prefix/adjacency, and the matching prefix/adjacency has a S ID associated | |||
with it, then the PCC uses that SID. If the PCC cannot find a | with it, then the PCC uses that SID. If the PCC cannot find a | |||
matching prefix/adjacency, or if the matching prefix/adjacency has no SID associated | matching prefix/adjacency, or if the matching prefix/adjacency has no SID associated | |||
with it, the PCC behaves as specified in <xref target="SR-ERO-INTERPRE | with it, the PCC behaves as specified in <xref target="SR-ERO-INTERPRE | |||
T-ERROR"/>. | T-ERROR" format="default" sectionFormat="of" derivedContent="Section 5.2.2.1"/>. | |||
</t> | </li> | |||
<t> | <li pn="section-5.2.2-4.3"> | |||
If the subobjects contain MPLS labels, then the PCC looks up the offse t of the first subobject's label | If the subobjects contain MPLS labels, then the PCC looks up the offse t of the first subobject's label | |||
in its SRGB or SRLB. This gives the first SID. The PCC pushes the la bels in any | in its SRGB or SRLB. This gives the first SID. The PCC pushes the la bels in any | |||
remaining subobjects onto the packet (with the final subobject specify ing the | remaining subobjects onto the packet (with the final subobject specify ing the | |||
bottom-of-stack label). | bottom-of-stack label). | |||
</t> | </li> | |||
</list> | </ul> | |||
<t pn="section-5.2.2-5"> | ||||
For all cases above, after the PCC has imposed the label stack on the pack et, it sends the packet to the segment identified by the first SID. | For all cases above, after the PCC has imposed the label stack on the pack et, it sends the packet to the segment identified by the first SID. | |||
</t> | </t> | |||
<section anchor="SR-ERO-INTERPRET-ERROR" numbered="true" toc="exclude" | ||||
<section anchor="SR-ERO-INTERPRET-ERROR" title="Handling Errors During SR-ER | removeInRFC="false" pn="section-5.2.2.1"> | |||
O Conversion"> | <name slugifiedName="name-handling-errors-during-sr-e">Handling Erro | |||
rs During SR-ERO Conversion</name> | ||||
<t>There are several errors that can occur during the process of converting | <t pn="section-5.2.2.1-1">There are several errors that can occur du | |||
an SR-ERO sequence to an MPLS label stack and a next hop. The PCC deals with th | ring the process of converting an SR-ERO sequence to an MPLS label stack and a n | |||
em as follows. | ext hop. The PCC deals with them as follows. | |||
<list style="symbols"> | </t> | |||
<t>If the PCC cannot find a SID index in the SR-DB, it MUST send a PCErr m | <ul spacing="normal" bare="false" empty="false" pn="section-5.2.2.1- | |||
essage with Error-Type = 10 ("Reception of an invalid object") and Error-Value = | 2"> | |||
TBD3 ("Unknown SID").</t> | <li pn="section-5.2.2.1-2.1">If the PCC cannot find a SID index in | |||
<t>If the PCC cannot find an NAI in the SR-DB, it MUST send a PCErr messag | the SR-DB, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("R | |||
e with Error-Type = 10 ("Reception of an invalid object") and Error-Value = TBD4 | eception of an invalid object") and Error-value = 14 ("Unknown SID").</li> | |||
("NAI cannot be resolved to a SID").</t> | <li pn="section-5.2.2.1-2.2">If the PCC cannot find an NAI in the | |||
<t>If the PCC needs to convert a SID into an MPLS label value but cannot f | SR-DB, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Recept | |||
ind the corresponding router's SRGB in the SR-DB, it MUST send a PCErr message w | ion of an invalid object") and Error-value = 15 ("NAI cannot be resolved to a SI | |||
ith Error-Type = 10 ("Reception of an invalid object") and Error-Value = TBD5 (" | D").</li> | |||
Could not find SRGB").</t> | <li pn="section-5.2.2.1-2.3">If the PCC needs to convert a SID int | |||
<t>If the PCC finds that a router's SRGB is not large enough for a SID ind | o an MPLS label value but cannot find the corresponding router's SRGB in the SR- | |||
ex value, it MUST send a PCErr message with Error-Type = 10 ("Reception of an in | DB, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Reception | |||
valid object") and Error-Value = TBD6 ("SID index exceeds SRGB size").</t> | of an invalid object") and Error-value = 16 ("Could not find SRGB").</li> | |||
<t>If the PCC needs to convert a SID into an MPLS label value but cannot f | <li pn="section-5.2.2.1-2.4">If the PCC finds that a router's SRGB | |||
ind the corresponding router's SRLB in the SR-DB, it MUST send a PCErr message w | is not large enough for a SID index value, it <bcp14>MUST</bcp14> send a PCErr | |||
ith Error-Type = 10 ("Reception of an invalid object") and Error-Value = TBD7 (" | message with Error-Type = 10 ("Reception of an invalid object") and Error-value | |||
Could not find SRLB").</t> | = 17 ("SID index exceeds SRGB size").</li> | |||
<t>If the PCC finds that a router's SRLB is not large enough for a SID ind | <li pn="section-5.2.2.1-2.5">If the PCC needs to convert a SID int | |||
ex value, it MUST send a PCErr message with Error-Type = 10 ("Reception of an in | o an MPLS label value but cannot find the corresponding router's SRLB in the SR- | |||
valid object") and Error-Value = TBD8 ("SID index exceeds SRLB size").</t> | DB, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Reception | |||
<t>If the number of labels in the computed label stack exceeds the maximum | of an invalid object") and Error-value = 18 ("Could not find SRLB").</li> | |||
number of SIDs that the PCC can impose on the packet, it MUST send a PCErr mess | <li pn="section-5.2.2.1-2.6">If the PCC finds that a router's SRLB | |||
age with Error-Type = 10 ("Reception of an invalid object") and Error-Value = 3 | is not large enough for a SID index value, it <bcp14>MUST</bcp14> send a PCErr | |||
("Unsupported number of Segment ERO subobjects").</t> | message with Error-Type = 10 ("Reception of an invalid object") and Error-value | |||
</list></t> | = 19 ("SID index exceeds SRLB size").</li> | |||
<t>If an ERO specifies a new SR-TE path for an existing LSP and the PCC enco | <li pn="section-5.2.2.1-2.7">If the number of labels in the comput | |||
unters an error while processing the ERO, then the PCC MUST NOT update the LSP.< | ed label stack exceeds the maximum number of SIDs that the PCC can impose on the | |||
/t> | packet, it <bcp14>MUST</bcp14> send a PCErr message with Error-Type = 10 ("Rece | |||
</section> | ption of an invalid object") and Error-value = 3 ("Unsupported number of SR-ERO | |||
subobjects").</li> | ||||
</section> | </ul> | |||
</section> | <t pn="section-5.2.2.1-3">If an ERO specifies a new SR-TE path for a | |||
n existing LSP and the PCC encounters an error while processing the ERO, then th | ||||
<section anchor="SR-RRO-PROCESS" title="RRO Processing"> | e PCC <bcp14>MUST NOT</bcp14> update the LSP.</t> | |||
</section> | ||||
<t>The syntax checking rules that apply to the SR-RRO subobject are identical to | </section> | |||
those of the SR-ERO subobject, except as noted below.</t> | </section> | |||
<section anchor="SR-RRO-PROCESS" numbered="true" toc="include" removeInRFC | ||||
<t>If a PCEP speaker receives an SR-RRO subobject in which both SID and NAI are | ="false" pn="section-5.3"> | |||
absent, it MUST consider the entire RRO invalid and send a PCErr message with Er | <name slugifiedName="name-rro-processing">RRO Processing</name> | |||
ror-Type = 10 ("Reception of an invalid object") and Error-Value = 7 ("Both SID | <t pn="section-5.3-1">The syntax-checking rules that apply to the SR-RRO | |||
and NAI are absent in SR-RRO subobject").</t> | subobject are identical to those of the SR-ERO subobject, except as noted below | |||
.</t> | ||||
<t>If a PCE detects that the subobjects of an RRO are a mixture of SR-RRO subobj | <t pn="section-5.3-2">If a PCEP speaker receives an SR-RRO subobject in | |||
ects and subobjects of other types, then it MUST send a PCErr message with Error | which both SID and NAI are absent, it <bcp14>MUST</bcp14> consider the entire RR | |||
-Type = 10 ("Reception of an invalid object") and Error-Value = 10 ("RRO mixes S | O invalid and send a PCErr message with Error-Type = 10 ("Reception of an invali | |||
R-RRO subobjects with other subobject types").</t> | d object") and Error-value = 7 ("Both SID and NAI are absent in the SR-RRO subob | |||
ject").</t> | ||||
<t>The SR-RRO subobjects can be classified according to whether they contain a S | <t pn="section-5.3-3">If a PCE detects that the subobjects of an RRO are | |||
ID representing an MPLS label value or a SID representing an index value, or no | a mixture of SR-RRO subobjects and subobjects of other types, then it <bcp14>MU | |||
SID. If a PCE detects that the SR-RRO subobjects are a mixture of more than one | ST</bcp14> send a PCErr message with Error-Type = 10 ("Reception of an invalid o | |||
of these types, then it MUST send a PCErr message with Error-Type = 10 ("Recept | bject") and Error-value = 10 ("RRO mixes SR-RRO subobjects with other subobject | |||
ion of an invalid object") and Error-Value = TBD9 ("Inconsistent SIDs in SR-ERO | types").</t> | |||
/ SR-RRO subobjects").</t> | <t pn="section-5.3-4">The SR-RRO subobjects can be classified according | |||
to whether they contain a SID representing an MPLS label value or an index value | ||||
</section> | , or no SID. If a PCE detects that the SR-RRO subobjects are a mixture of more | |||
than one of these types, then it <bcp14>MUST</bcp14> send a PCErr message with E | ||||
</section> <!-- Procedures --> | rror-Type = 10 ("Reception of an invalid object") and Error-value = 20 ("Inconsi | |||
stent SIDs in SR-ERO / SR-RRO subobjects").</t> | ||||
<section anchor="Management" title="Management Considerations"> | </section> | |||
</section> | ||||
<t>This document adds a new path setup type to PCEP to allow LSPs | <section anchor="Management" numbered="true" toc="include" removeInRFC="fals | |||
to be set up using segment routing techniques. This path setup | e" pn="section-6"> | |||
<name slugifiedName="name-management-considerations">Management Considerat | ||||
ions</name> | ||||
<t pn="section-6-1">This document adds a new path setup type to PCEP to al | ||||
low LSPs | ||||
to be set up using Segment Routing techniques. This path setup | ||||
type may be used with PCEP alongside other path setup types, | type may be used with PCEP alongside other path setup types, | |||
such as RSVP-TE, or it may be used exclusively.</t> | such as RSVP-TE, or it may be used exclusively.</t> | |||
<section anchor="control" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="control" title="Controlling the Path Setup Type"> | " pn="section-6.1"> | |||
<name slugifiedName="name-controlling-the-path-setup-">Controlling the P | ||||
<t>The following factors control which path setup type is used for | ath Setup Type</name> | |||
<t pn="section-6.1-1">The following factors control which path setup typ | ||||
e is used for | ||||
a given LSP. | a given LSP. | |||
<list style="symbols"> | </t> | |||
<t> The available path setup types are constrained to those that | <ul spacing="normal" bare="false" empty="false" pn="section-6.1-2"> | |||
<li pn="section-6.1-2.1"> The available path setup types are constrai | ||||
ned to those that | ||||
are supported by, or enabled on, the PCEP speakers. The | are supported by, or enabled on, the PCEP speakers. The | |||
PATH-SETUP-TYPE-CAPABILITY TLV indicates which path setup types | PATH-SETUP-TYPE-CAPABILITY TLV indicates which path setup types | |||
a PCEP speaker supports. To use segment routing as a path setup type, | a PCEP speaker supports. To use Segment Routing as a path setup type, | |||
it is a prerequisite that the PCC and PCE both include PST=1 in the | it is a prerequisite that the PCC and PCE both include PST=1 in the | |||
list of supported path setup types in this TLV, and also include the | list of supported path setup types in this TLV and also include the | |||
SR-PCE-CAPABILITY sub-TLV.</t> | SR-PCE-CAPABILITY sub-TLV.</li> | |||
<li pn="section-6.1-2.2"> When a PCE initiates an LSP, it proposes wh | ||||
<t> When a PCE initiates an LSP, it proposes which path setup type | ich path setup type | |||
to use by including it in the | to use by including it in the | |||
PATH-SETUP-TYPE TLV in the SRP object of the PCInitiate message. | PATH-SETUP-TYPE TLV in the SRP object of the PCInitiate message. | |||
The PCE chooses the path setup type based on the capabilities of the | The PCE chooses the path setup type based on the capabilities of the | |||
network nodes on the path and on its local policy. The PCC MAY choose | network nodes on the path and on its local policy. The PCC <bcp14>MAY</bcp14 | |||
to accept the proposed path setup type, or to reject the PCInitiate | > choose | |||
request, based on its local policy.</t> | to accept the proposed path setup type or to reject the PCInitiate | |||
request, based on its local policy.</li> | ||||
<t> When a PCC requests a path for an LSP, it can nominate a preferred | <li pn="section-6.1-2.3"> When a PCC requests a path for an LSP, it c | |||
an nominate a preferred | ||||
path setup type by including it in the PATH-SETUP-TYPE TLV in the | path setup type by including it in the PATH-SETUP-TYPE TLV in the | |||
RP object of the PCReq message. The PCE MAY choose to reply | RP object of the PCReq message. The PCE <bcp14>MAY</bcp14> choose to reply | |||
with a path of the requested type, or to reply with a path of a | with a path of the requested type, reply with a path of a | |||
different type, or to reject the request, based on the capabilities of the | different type, or reject the request, based on the capabilities of the | |||
network nodes on the path and on its local policy.</t> | network nodes on the path and on its local policy.</li> | |||
</list> | </ul> | |||
</t> | <t pn="section-6.1-3">The operator can influence the path setup type as | |||
follows. | ||||
<t>The operator can influence the path setup type as follows. | ||||
<list style="symbols"> | ||||
<t> Implementations MUST allow the operator to enable and disable | ||||
the segment routing path setup type on a PCEP-speaking device. | ||||
Implementations MAY also allow the operator to enable and disable the RSVP-TE | ||||
path setup type.</t> | ||||
<t> PCE implementations MUST allow the operator to specify that an LSP | ||||
should be instantiated using segment routing or RSVP-TE as the proposed path | ||||
setup type. </t> | ||||
<t> PCE implementations MAY allow the operator to configure a | ||||
preference for the PCE to propose paths using segment routing or RSVP-TE in | ||||
the absence of a specified path setup type.</t> | ||||
<t> PCC implementations MUST allow the operator to specify that a path | ||||
requested for an LSP nominates segment routing or RSVP-TE as the | ||||
path setup type.</t> | ||||
<t> PCC implementations MAY allow the operator to configure a preference | ||||
for the PCC to nominate segment routing or RSVP-TE as the path | ||||
setup type if none is specified for an LSP.</t> | ||||
<t> PCC implementations SHOULD allow the operator to configure a PCC to | ||||
refuse to set up an LSP using an undesired path setup type.</t> | ||||
</list> | ||||
</t> | </t> | |||
</section> | <ul spacing="normal" bare="false" empty="false" pn="section-6.1-4"> | |||
<li pn="section-6.1-4.1"> Implementations <bcp14>MUST</bcp14> allow t | ||||
<section anchor="migrating" title="Migrating a Network to Use PCEP Segment Route | he operator to enable and disable | |||
d Paths"> | the Segment Routing path setup type on a PCEP-speaking device. | |||
Implementations <bcp14>MAY</bcp14> also allow the operator to enable and disa | ||||
<t> | ble the RSVP-TE | |||
path setup type.</li> | ||||
<li pn="section-6.1-4.2"> PCE implementations <bcp14>MUST</bcp14> all | ||||
ow the operator to specify that an LSP | ||||
should be instantiated using Segment Routing or RSVP-TE as the proposed path | ||||
setup type. </li> | ||||
<li pn="section-6.1-4.3"> PCE implementations <bcp14>MAY</bcp14> allo | ||||
w the operator to configure a | ||||
preference for the PCE to propose paths using Segment Routing or RSVP-TE in | ||||
the absence of a specified path setup type.</li> | ||||
<li pn="section-6.1-4.4"> PCC implementations <bcp14>MUST</bcp14> all | ||||
ow the operator to specify that a path | ||||
requested for an LSP nominates Segment Routing or RSVP-TE as the | ||||
path setup type.</li> | ||||
<li pn="section-6.1-4.5"> PCC implementations <bcp14>MAY</bcp14> allo | ||||
w the operator to configure a preference | ||||
for the PCC to nominate Segment Routing or RSVP-TE as the path | ||||
setup type if none is specified for an LSP.</li> | ||||
<li pn="section-6.1-4.6"> PCC implementations <bcp14>SHOULD</bcp14> a | ||||
llow the operator to configure a PCC to | ||||
refuse to set up an LSP using an undesired path setup type.</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="migrating" numbered="true" toc="include" removeInRFC="fal | ||||
se" pn="section-6.2"> | ||||
<name slugifiedName="name-migrating-a-network-to-use-">Migrating a Netwo | ||||
rk to Use PCEP Segment-Routed Paths</name> | ||||
<t pn="section-6.2-1"> | ||||
This section discusses the steps that the operator takes when migrating a | This section discusses the steps that the operator takes when migrating a | |||
network to enable PCEP to set up paths using segment routing as the path | network to enable PCEP to set up paths using Segment Routing as the path | |||
setup type. | setup type. | |||
<list style="symbols"> | ||||
<t> The operator enables the segment routing PST on the PCE servers.</t> | ||||
<t> The operator enables the segment routing PST on the PCCs.</t> | ||||
<t> The operator resets each PCEP session. The PCEP sessions come | ||||
back up with segment routing enabled.</t> | ||||
<t> If the operator detects a problem, they can roll the network back | ||||
to its initial state by disabling the segment routing PST on the | ||||
PCEP speakers and resetting the PCEP sessions.</t> | ||||
</list> | ||||
</t> | </t> | |||
<t>Note that the data plane is unaffected if a PCEP session is reset. Any | <ul spacing="normal" bare="false" empty="false" pn="section-6.2-2"> | |||
<li pn="section-6.2-2.1"> The operator enables the Segment Routing PS | ||||
T on the PCE servers.</li> | ||||
<li pn="section-6.2-2.2"> The operator enables the Segment Routing PS | ||||
T on the PCCs.</li> | ||||
<li pn="section-6.2-2.3"> The operator resets each PCEP session. The | ||||
PCEP sessions come | ||||
back up with Segment Routing enabled.</li> | ||||
<li pn="section-6.2-2.4"> If the operator detects a problem, they can | ||||
roll the network back | ||||
to its initial state by disabling the Segment Routing PST on the | ||||
PCEP speakers and resetting the PCEP sessions.</li> | ||||
</ul> | ||||
<t pn="section-6.2-3">Note that the data plane is unaffected if a PCEP s | ||||
ession is reset. Any | ||||
LSPs that were set up before the session reset will remain in place and | LSPs that were set up before the session reset will remain in place and | |||
will still be present after the session comes back up.</t> | will still be present after the session comes back up.</t> | |||
<t pn="section-6.2-4">An implementation <bcp14>SHOULD</bcp14> allow the | ||||
<t>An implementation SHOULD allow the operator to manually trigger a PCEP | operator to manually trigger a PCEP | |||
session to be reset.</t> | session to be reset.</t> | |||
<t pn="section-6.2-5">An implementation <bcp14>MAY</bcp14> automatically | ||||
<t>An implementation MAY automatically reset a PCEP session when | reset a PCEP session when | |||
an operator reconfigures the PCEP speaker's capabilities. However, note that | an operator reconfigures the PCEP speaker's capabilities. However, note that | |||
if the capabilities at both ends of the PCEP session are not reconfigured | if the capabilities at both ends of the PCEP session are not reconfigured | |||
simultaneously, then the session could be reset twice, which could lead to | simultaneously, then the session could be reset twice, which could lead to | |||
unnecessary network traffic. Therefore, such implementations SHOULD allow | unnecessary network traffic. Therefore, such implementations <bcp14>SHOULD</bcp | |||
the operator to override this behaviour and wait instead for a manual reset.</t> | 14> allow | |||
the operator to override this behavior and wait instead for a manual reset.</t> | ||||
<t>Once segment routing is enabled on a PCEP session, it can be used as the | <t pn="section-6.2-6">Once Segment Routing is enabled on a PCEP session, | |||
it can be used as the | ||||
path setup type for future LSPs.</t> | path setup type for future LSPs.</t> | |||
<t pn="section-6.2-7">User traffic is not automatically migrated from ex | ||||
<t>User traffic is not automatically migrated from existing LSPs onto | isting LSPs onto | |||
segment routed LSPs just by enabling the segment routing PST in PCEP. The | segment-routed LSPs just by enabling the Segment Routing PST in PCEP. The | |||
migration of user traffic from existing LSPs onto segment routing LSPs is | migration of user traffic from existing LSPs onto Segment Routing LSPs is | |||
beyond the scope of this document.</t> | beyond the scope of this document.</t> | |||
</section> | ||||
<section anchor="verification" numbered="true" toc="include" removeInRFC=" | ||||
false" pn="section-6.3"> | ||||
<name slugifiedName="name-verification-of-network-ope">Verification of N | ||||
etwork Operation</name> | ||||
<t pn="section-6.3-1">The operator needs the following information to ve | ||||
rify that PCEP is | ||||
operating correctly with respect to the Segment Routing path setup type. | ||||
</section> | </t> | |||
<ul spacing="normal" bare="false" empty="false" pn="section-6.3-2"> | ||||
<section anchor="verification" title="Verification of Network Operation"> | <li pn="section-6.3-2.1"> An implementation <bcp14>SHOULD</bcp14> all | |||
ow the operator to view whether the | ||||
<t>The operator needs the following information to verify that PCEP is | PCEP speaker sent the Segment Routing PST capability to its peer. | |||
operating correctly with respect to the segment routing path setup type. | If the PCEP speaker is a PCC, then the implementation <bcp14>SHOULD</bcp14> a | |||
lso allow | ||||
<list style="symbols"> | the operator to view the values of the L-Flag and N-Flag that were sent and t | |||
he value of the MSD field | ||||
<t> An implementation SHOULD allow the operator to view whether the | that was sent.</li> | |||
PCEP speaker sent the segment routing PST capability to its peer. | <li pn="section-6.3-2.2"> An implementation <bcp14>SHOULD</bcp14> all | |||
If the PCEP speaker is a PCC, then the implementation SHOULD also allow | ow the operator to view | |||
the operator to view the values of the L and N flags that were sent, and the | whether the peer sent the Segment Routing PST capability. If the peer | |||
value of the MSD field | is a PCC, then the implementation <bcp14>SHOULD</bcp14> also allow the operat | |||
that was sent.</t> | or to view | |||
the values of the L-Flag and N-Flag and MSD fields that the peer sent.</li> | ||||
<t> An implementation SHOULD allow the operator to view | <li pn="section-6.3-2.3"> An implementation <bcp14>SHOULD</bcp14> all | |||
whether the peer sent the segment routing PST capability. If the peer | ow the operator to view | |||
is a PCC, then the implementation SHOULD also allow the operator to view | whether the Segment Routing PST is enabled on the PCEP session.</li> | |||
the values of the L and N flags and MSD fields that the peer sent.</t> | <li pn="section-6.3-2.4"> If one PCEP speaker advertises the Segment | |||
Routing PST capability, but the other | ||||
<t> An implementation SHOULD allow the operator to view | does not, then the implementation <bcp14>SHOULD</bcp14> create a log to infor | |||
whether the segment routing PST is enabled on the PCEP session.</t> | m the | |||
operator of the capability mismatch.</li> | ||||
<t> If one PCEP speaker advertises the segment routing PST capability, but the | <li pn="section-6.3-2.5"> An implementation <bcp14>SHOULD</bcp14> all | |||
other | ow the operator to view the PST that was | |||
does not, then the implementation SHOULD create a log to inform the | proposed, or requested, for an LSP and the PST that was actually used.</li> | |||
operator of the capability mismatch.</t> | <li pn="section-6.3-2.6"> If a PCEP speaker decides to use a differen | |||
t PST to the one that was | ||||
<t> An implementation SHOULD allow the operator to view the PST that was | proposed, or requested, for an LSP, then the implementation <bcp14>SHOULD</bc | |||
proposed, or requested, for an LSP, and the PST that was actually used.</t> | p14> | |||
<t> If a PCEP speaker decides to use a different PST to the one that was | ||||
proposed, or requested, for an LSP, then the implementation SHOULD | ||||
create a log to inform the operator that the expected PST has not been used. | create a log to inform the operator that the expected PST has not been used. | |||
The log SHOULD give the reason for this choice (local policy, | The log <bcp14>SHOULD</bcp14> give the reason for this choice (local policy, | |||
equipment capability etc.)</t> | equipment capability, etc.).</li> | |||
<li pn="section-6.3-2.7"> If a PCEP speaker rejects a Segment Routing | ||||
<t> If a PCEP speaker rejects a segment routing path, then it SHOULD create a l | path, then it <bcp14>SHOULD</bcp14> create a log | |||
og | ||||
to inform the operator, giving the reason for the decision (local policy, | to inform the operator, giving the reason for the decision (local policy, | |||
MSD exceeded etc.)</t> | MSD exceeded, etc.).</li> | |||
</list> | </ul> | |||
</t> | </section> | |||
</section> | <section anchor="models" numbered="true" toc="include" removeInRFC="false" | |||
pn="section-6.4"> | ||||
<section anchor="models" title="Relationship to Existing Management Models"> | <name slugifiedName="name-relationship-to-existing-ma">Relationship to E | |||
xisting Management Models</name> | ||||
<t>The PCEP YANG module is defined in <xref target="I-D.ietf-pce-pcep-yang"/>. | <t pn="section-6.4-1">The PCEP YANG module is defined in <xref target="I | |||
In future, this | -D.ietf-pce-pcep-yang" format="default" sectionFormat="of" derivedContent="PCE-P | |||
CEP-YANG"/>. In the future, this | ||||
YANG module should be extended or augmented to provide the following | YANG module should be extended or augmented to provide the following | |||
additional information relating to segment routing: | additional information relating to Segment Routing: | |||
<list style="symbols"> | ||||
<t> The advertised PST capabilities and MSD per PCEP session.</t> | ||||
<t> The PST configured for, and used by, each LSP.</t> | ||||
</list> | ||||
</t> | </t> | |||
<t>The PCEP MIB <xref target="RFC7420"/> could also be updated to include this | <ul spacing="normal" bare="false" empty="false" pn="section-6.4-2"> | |||
<li pn="section-6.4-2.1"> The advertised PST capabilities and MSD per | ||||
PCEP session.</li> | ||||
<li pn="section-6.4-2.2"> The PST configured for, and used by, each L | ||||
SP.</li> | ||||
</ul> | ||||
<t pn="section-6.4-3">The PCEP MIB <xref target="RFC7420" format="defaul | ||||
t" sectionFormat="of" derivedContent="RFC7420"/> could also be updated to includ | ||||
e this | ||||
information.</t> | information.</t> | |||
</section> | </section> | |||
</section> | ||||
</section> | <section anchor="Security" numbered="true" toc="include" removeInRFC="false" | |||
pn="section-7"> | ||||
<section anchor="Security" title="Security Considerations"> | <name slugifiedName="name-security-considerations">Security Considerations | |||
</name> | ||||
<t>The security considerations described in <xref target="RFC5440"/>, <xref targ | <t pn="section-7-1">The security considerations described in <xref target= | |||
et="RFC8231"/>, <xref target="RFC8281"/> and <xref target="RFC8408"/> are | "RFC5440" format="default" sectionFormat="of" derivedContent="RFC5440"/>, <xref | |||
applicable to this specification. No additional security measure is required.</ | target="RFC8231" format="default" sectionFormat="of" derivedContent="RFC8231"/>, | |||
t> | <xref target="RFC8281" format="default" sectionFormat="of" derivedContent="RFC8 | |||
281"/>, and <xref target="RFC8408" format="default" sectionFormat="of" derivedCo | ||||
<t>Note that this specification enables a network controller to instantiate a | ntent="RFC8408"/> are | |||
applicable to this specification. No additional security measures are required. | ||||
</t> | ||||
<t pn="section-7-2">Note that this specification enables a network control | ||||
ler to instantiate a | ||||
path in the network without the use of a hop-by-hop signaling protocol | path in the network without the use of a hop-by-hop signaling protocol | |||
(such as RSVP-TE). This creates an additional vulnerability if the security | (such as RSVP-TE). This creates an additional vulnerability if the security | |||
mechanisms of <xref target="RFC5440"/>, <xref target="RFC8231"/> and <xref ta | mechanisms of <xref target="RFC5440" format="default" sectionFormat="of" deri | |||
rget="RFC8281"/> are not | vedContent="RFC5440"/>, <xref target="RFC8231" format="default" sectionFormat="o | |||
used. If there is no integrity protection on the session, then an attacker c | f" derivedContent="RFC8231"/>, and <xref target="RFC8281" format="default" secti | |||
ould create a path which is not subjected to the | onFormat="of" derivedContent="RFC8281"/> are not | |||
used. If there is no integrity protection on the session, then an attacker c | ||||
ould create a path that is not subjected to the | ||||
further verification checks that would be performed by the signaling | further verification checks that would be performed by the signaling | |||
protocol.</t> | protocol.</t> | |||
<t pn="section-7-3">Note that this specification adds the MSD field to the | ||||
<t>Note that this specification adds the MSD field to the OPEN message (see <xre | Open message (see <xref target="cap-negotiation" format="default" sectionFormat | |||
f target="cap-negotiation"/>) | ="of" derivedContent="Section 4.1.2"/>), | |||
which discloses how many MPLS labels the sender can push onto packets that | which discloses how many MPLS labels the sender can push onto packets that | |||
it forwards into the network. If the security mechanisms of <xref target="RFC 8231"/> and <xref target="RFC8281"/> | it forwards into the network. If the security mechanisms of <xref target="RFC 8231" format="default" sectionFormat="of" derivedContent="RFC8231"/> and <xref t arget="RFC8281" format="default" sectionFormat="of" derivedContent="RFC8281"/> | |||
are not used with strong encryption, then an attacker could use this | are not used with strong encryption, then an attacker could use this | |||
new field to gain intelligence about the capabilities of the edge devices in | new field to gain intelligence about the capabilities of the edge devices in | |||
the network.</t> | the network.</t> | |||
</section> | ||||
</section> | <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn= | |||
"section-8"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
<section anchor="PCEP-Object-Codepoints" numbered="true" toc="include" rem | ||||
<section anchor="PCEP-Object-Codepoints" title="PCEP ERO and RRO subobject | oveInRFC="false" pn="section-8.1"> | |||
s"> | <name slugifiedName="name-pcep-ero-and-rro-subobjects">PCEP ERO and RRO | |||
Subobjects</name> | ||||
<t>This document defines a new subobject type for the PCEP | <t pn="section-8.1-1">This document defines a new subobject type for the | |||
explicit route object (ERO), and a new subobject type for the PCEP record rou | PCEP ERO | |||
te object (RRO). The code points for subobject types of these objects is mainta | and a new subobject type for the PCEP RRO. The codepoints for | |||
ined in the RSVP parameters registry, under the EXPLICIT_ROUTE and ROUTE_RECORD | subobject types of these objects are maintained in the "Resource Reservati | |||
objects. IANA is requested to confirm the early allocation of the following code | on Protocol (RSVP) Parameters" registry, under the EXPLICIT_ROUTE and ROUTE_RECO | |||
points in the RSVP Parameters registry for each of the new subobject types defi | RD | |||
ned in this document.</t> | objects, respectively.</t> | |||
<table anchor="IANA-Subobject-Type" align="center" pn="table-1"> | ||||
<texttable anchor="IANA-Subobject-Type" style="none" suppress-title="true"> | <thead> | |||
<ttcol align="left" width='40%'>Object</ttcol> | <tr> | |||
<ttcol align="left" width='40%'>Subobject</ttcol> | <th align="left" colspan="1" rowspan="1">Object</th> | |||
<ttcol align="left" width='60%'>Subobject Type</ttcol> | <th align="left" colspan="1" rowspan="1">Subobject</th> | |||
<th align="left" colspan="1" rowspan="1">Subobject Type</th> | ||||
<c>---------------------</c><c>--------------------------</c><c>-------- | </tr> | |||
----------</c> | </thead> | |||
<tbody> | ||||
<c>EXPLICIT_ROUTE</c><c>SR-ERO (PCEP-specific)</c><c>36</c> | <tr> | |||
<c>ROUTE_RECORD</c><c>SR-RRO (PCEP-specific)</c><c>36</c> | <td align="left" colspan="1" rowspan="1">EXPLICIT_ROUTE</td> | |||
</texttable> | <td align="left" colspan="1" rowspan="1">SR-ERO (PCEP specific)</t | |||
d> | ||||
<td align="left" colspan="1" rowspan="1">36</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">ROUTE_RECORD</td> | ||||
<td align="left" colspan="1" rowspan="1">SR-RRO (PCEP specific)</t | ||||
d> | ||||
<td align="left" colspan="1" rowspan="1">36</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="NAI-Type-Registry" numbered="true" toc="include" removeIn | ||||
<section anchor="NAI-Type-Registry" title="New NAI Type Registry"> | RFC="false" pn="section-8.2"> | |||
<name slugifiedName="name-new-nai-type-registry">New NAI Type Registry</ | ||||
<t>IANA is requested to create a new sub-registry within the "Path Computation E | name> | |||
lement Protocol (PCEP) Numbers" registry called "PCEP SR-ERO NAI Types". The all | <t pn="section-8.2-1">IANA has created a new sub-registry within the "Pa | |||
ocation policy for this new registry should be by IETF Review. The new registry | th Computation | |||
should contain the following values: | Element Protocol (PCEP) Numbers" registry called "PCEP SR-ERO NAI | |||
Types". The allocation policy for this new registry is by IETF | ||||
Review <xref target="RFC8126" format="default" sectionFormat="of" derivedContent | ||||
="RFC8126"/>. The new registry contains the | ||||
following values: | ||||
</t> | </t> | |||
<table anchor="New-PCEP-SR-ERO-NAI-value" align="center" pn="table-2"> | ||||
<texttable anchor="New-PCEP-SR-ERO-NAI-value" style="none" suppress-title="true" | <thead> | |||
> | <tr> | |||
<ttcol align="left" width='40%'>Value</ttcol> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
<ttcol align="left" width='75%'>Description </ttcol> | <th align="left" colspan="1" rowspan="1">Description </th> | |||
<ttcol align="left" width='55%'>Reference </ttcol> | <th align="left" colspan="1" rowspan="1">Reference </th> | |||
<c></c><c> </c><c></c> | </tr> | |||
<c>0</c><c>NAI is absent.</c><c>This document</c> | </thead> | |||
<c>1</c><c>NAI is an IPv4 node ID.</c><c>This document</c> | <tbody> | |||
<c>2</c><c>NAI is an IPv6 node ID.</c><c>This document</c> | <tr> | |||
<c>3</c><c>NAI is an IPv4 adjacency.</c><c>This document</c> | <td align="left" colspan="1" rowspan="1">0</td> | |||
<c>4</c><c>NAI is an IPv6 adjacency with global IPv6 addresses.</c><c>Th | <td align="left" colspan="1" rowspan="1">NAI is absent.</td> | |||
is document</c> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
<c>5</c><c>NAI is an unnumbered adjacency with IPv4 node IDs.</c><c>This | </tr> | |||
document</c> | <tr> | |||
<c>6</c><c>NAI is an IPv6 adjacency with link-local IPv6 addresses.</c>< | <td align="left" colspan="1" rowspan="1">1</td> | |||
c>This document</c> | <td align="left" colspan="1" rowspan="1">NAI is an IPv4 node ID.</ | |||
</texttable> | td> | |||
</section> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
</tr> | ||||
<section anchor="IANA-SR-ERO-FLAG" title="New SR-ERO Flag Registry"> | <tr> | |||
<t>IANA is requested to create a new sub-registry, named | <td align="left" colspan="1" rowspan="1">2</td> | |||
<td align="left" colspan="1" rowspan="1">NAI is an IPv6 node ID.</ | ||||
td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">3</td> | ||||
<td align="left" colspan="1" rowspan="1">NAI is an IPv4 adjacency. | ||||
</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">4</td> | ||||
<td align="left" colspan="1" rowspan="1">NAI is an IPv6 adjacency | ||||
with global IPv6 addresses.</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">5</td> | ||||
<td align="left" colspan="1" rowspan="1">NAI is an unnumbered adja | ||||
cency with IPv4 node IDs.</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">6</td> | ||||
<td align="left" colspan="1" rowspan="1">NAI is an IPv6 adjacency | ||||
with link-local IPv6 addresses.</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">7-15</td> | ||||
<td align="left" colspan="1" rowspan="1">Unassigned</td> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="IANA-SR-ERO-FLAG" numbered="true" toc="include" removeInR | ||||
FC="false" pn="section-8.3"> | ||||
<name slugifiedName="name-new-sr-ero-flag-registry">New SR-ERO Flag Regi | ||||
stry</name> | ||||
<t pn="section-8.3-1">IANA has created a new sub-registry, named | ||||
"SR-ERO Flag Field", within the "Path Computation | "SR-ERO Flag Field", within the "Path Computation | |||
Element Protocol (PCEP) Numbers" registry to manage the Flag | Element Protocol (PCEP) Numbers" registry to manage the Flag | |||
field of the SR-ERO subobject. New values are to be assigned by Standards | field of the SR-ERO subobject. New values are to be assigned by Standards | |||
Action <xref target="RFC8126"/>. Each bit should be tracked with the | Action <xref target="RFC8126" format="default" sectionFormat="of" derive dContent="RFC8126"/>. Each bit should be tracked with the | |||
following qualities: | following qualities: | |||
<list style="symbols"> | ||||
<t>Bit number (counting from bit 0 as the most significant bit)</t> | ||||
<t>Capability description</t> | ||||
<t>Defining RFC</t> | ||||
</list> | ||||
</t> | </t> | |||
<ul spacing="normal" bare="false" empty="false" pn="section-8.3-2"> | ||||
<t>The following values are defined in this document:</t> | <li pn="section-8.3-2.1">Bit number (counting from bit 0 as the most s | |||
ignificant bit)</li> | ||||
<texttable anchor="SR-ERO-Flags" style="none" suppress-title="true"> | <li pn="section-8.3-2.2">Capability description</li> | |||
<ttcol align="center" width='15%'>Bit</ttcol> | <li pn="section-8.3-2.3">Defining RFC</li> | |||
<ttcol align="left" width='30%'>Description </ttcol> | </ul> | |||
<ttcol align="left" width='55%'>Reference </ttcol> | <t pn="section-8.3-3">The following values are defined in this document: | |||
<c></c><c> </c><c></c> | </t> | |||
<c>0-7</c><c>Unassigned</c><c></c> | <table anchor="SR-ERO-Flags" align="center" pn="table-3"> | |||
<c>8</c><c>NAI is absent (F)</c><c>This document</c> | <thead> | |||
<c>9</c><c>SID is absent (S)</c><c>This document</c> | <tr> | |||
<c>10</c><c>SID specifies TC, S and TTL in addition to an MPLS label ( | <th align="center" colspan="1" rowspan="1">Bit</th> | |||
C)</c><c>This document</c> | <th align="left" colspan="1" rowspan="1">Description </th> | |||
<c>11</c><c>SID specifies an MPLS label (M)</c><c>This document</c> | <th align="left" colspan="1" rowspan="1">Reference </th> | |||
</texttable> | </tr> | |||
</section> <!-- SR-ERO Flags --> | </thead> | |||
<tbody> | ||||
<section anchor="IANA-Error-Object" title="PCEP-Error Object"> | <tr> | |||
<td align="center" colspan="1" rowspan="1">0-7</td> | ||||
<t>IANA is requested to confirm the early allocation of the code-points | <td align="left" colspan="1" rowspan="1">Unassigned</td> | |||
in the PCEP-ERROR Object Error Types and Values registry for the following new e | <td align="left" colspan="1" rowspan="1"/> | |||
rror-values: | </tr> | |||
<tr> | ||||
<vspace blankLines="1" /> | <td align="center" colspan="1" rowspan="1">8</td> | |||
<td align="left" colspan="1" rowspan="1">NAI is absent (F)</td> | ||||
<?rfc subcompact="yes"?> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
</tr> | ||||
<list style="hanging" hangIndent="13"> | <tr> | |||
<td align="center" colspan="1" rowspan="1">9</td> | ||||
<t hangText="Error-Type">Meaning</t> | <td align="left" colspan="1" rowspan="1">SID is absent (S)</td> | |||
<t hangText="---------- -------"></t> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
<t hangText="10">Reception of an invalid object. | </tr> | |||
<list style="hanging" hangIndent="37"> | <tr> | |||
<t hangText=" Error-value = 2:">Bad label value</t> | <td align="center" colspan="1" rowspan="1">10</td> | |||
<t hangText=" Error-value = 3:">Unsupported number of SR-ERO subobje | <td align="left" colspan="1" rowspan="1">SID specifies TC, S, and | |||
cts</t> | TTL in addition to an MPLS label (C)</td> | |||
<t hangText=" Error-value = 4:">Bad label format</t> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
<t hangText=" Error-value = 5:">ERO mixes SR-ERO subobjects with oth | </tr> | |||
er subobject types</t> | <tr> | |||
<t hangText=" Error-value = 6:">Both SID and NAI are absent in SR-ER | <td align="center" colspan="1" rowspan="1">11</td> | |||
O subobject</t> | <td align="left" colspan="1" rowspan="1">SID specifies an MPLS lab | |||
<t hangText=" Error-value = 7:">Both SID and NAI are absent in SR-RR | el (M)</td> | |||
O subobject</t> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
<t hangText=" Error-value = 9:">MSD exceeds the default for the PCEP | </tr> | |||
session</t> | </tbody> | |||
<t hangText=" Error-value = 10:">RRO mixes SR-RRO subobjects with ot | </table> | |||
her subobject types</t> | ||||
<t hangText=" Error-value = TBD1:">Missing PCE-SR-CAPABILITY sub-TLV | ||||
</t> | ||||
<t hangText=" Error-value = TBD2:">Unsupported NAI Type in SR-ERO su | ||||
bobject</t> | ||||
<t hangText=" Error-value = TBD3:">Unknown SID</t> | ||||
<t hangText=" Error-value = TBD4:">NAI cannot be resolved to a SID</ | ||||
t> | ||||
<t hangText=" Error-value = TBD5:">Could not find SRGB</t> | ||||
<t hangText=" Error-value = TBD6:">SID index exceeds SRGB size</t> | ||||
<t hangText=" Error-value = TBD7:">Could not find SRLB</t> | ||||
<t hangText=" Error-value = TBD8:">SID index exceeds SRLB size</t> | ||||
<t hangText=" Error-value = TBD9:">Inconsistent SIDs in SR-ERO / SR- | ||||
RRO subobjects</t> | ||||
<t hangText=" Error-value = TBD10:">MSD must be nonzero</t> | ||||
</list> | ||||
</t> | ||||
</list> | ||||
</t> | ||||
<t>Note to IANA: this draft originally had an early allocation for Error | ||||
-value=11 (Malformed object) in the above list. However, we have since moved th | ||||
e definition of that code point to RFC8408.</t> | ||||
<t>Note to IANA: some Error-values in the above list were defined after | ||||
the early allocation took place, and so do not currently have a code point assig | ||||
ned. Please assign code points from the indicated registry and replace each ins | ||||
tance of "TBD1", "TBD2" etc. in this document with the respective code points.</ | ||||
t> | ||||
<t>Note to IANA: some of the Error-value descriptive strings above have | ||||
changed since the early allocation. Please refresh the registry.</t> | ||||
</section> | </section> | |||
<section anchor="IANA-Error-Object" numbered="true" toc="include" removeIn | ||||
<section anchor="IANA-TLV-Type-Indicators" title="PCEP TLV Type Indicators | RFC="false" pn="section-8.4"> | |||
"> | <name slugifiedName="name-pcep-error-object">PCEP-Error Object</name> | |||
<t>IANA is requested to confirm the early allocation of the following co | <t pn="section-8.4-1">IANA has allocated the following codepoints in the | |||
de point in the PCEP TLV Type Indicators registry. Note that this TLV type indi | "PCEP-ERROR Object Error Types and Values" registry for the following new Error | |||
cator is deprecated but retained in the registry to ensure compatibility with ea | -values:</t> | |||
rly implementations of this specification. See <xref target="Early"/> for detai | <table anchor="PCEP-Error-table" align="center" pn="table-4"> | |||
ls.</t> | <thead> | |||
<tr> | ||||
<texttable anchor="PCEP-New-TLV-CP" style="none" suppress-title="true"> | <th align="left" colspan="1" rowspan="1">Error-Type</th> | |||
<ttcol align="left" width='65%'>Value</ttcol> | <th align="left" colspan="1" rowspan="1">Meaning</th> | |||
<ttcol align="left" width='40%'>Meaning </ttcol> | <th align="left" colspan="1" rowspan="1">Error-value</th> | |||
<ttcol align="left" width='35%'>Reference </ttcol> | </tr> | |||
<c>-------------------------</c><c>----------------------------</c><c> | </thead> | |||
--------------</c> | <tbody> | |||
<c>26</c><c>SR-PCE-CAPABILITY (deprecated)</c><c>This document</c> | <tr> | |||
</texttable> | <td align="left" colspan="1" rowspan="1">10</td> | |||
<td align="left" colspan="1" rowspan="1">Reception of an invalid o | ||||
bject</td> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">2: Bad label value</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">3: Unsupported number of | ||||
SR-ERO subobjects</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">4: Bad label format</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">5: ERO mixes SR-ERO subob | ||||
jects with other subobject types</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">6: Both SID and NAI are a | ||||
bsent in the SR-ERO subobject</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">7: Both SID and NAI are a | ||||
bsent in the SR-RRO subobject</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">9: MSD exceeds the defaul | ||||
t for the PCEP session</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">10: RRO mixes SR-RRO subo | ||||
bjects with other subobject types</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">12: Missing PCE-SR-CAPABI | ||||
LITY sub-TLV</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">13: Unsupported NAI Type | ||||
in the SR-ERO/SR-RRO subobject</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">14: Unknown SID</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">15: NAI cannot be resolve | ||||
d to a SID</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">16: Could not find SRGB</ | ||||
td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">17: SID index exceeds SRG | ||||
B size</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">18: Could not find SRLB</ | ||||
td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">19: SID index exceeds SRL | ||||
B size</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">20: Inconsistent SIDs in | ||||
SR-ERO / SR-RRO subobjects</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1"/> | ||||
<td align="left" colspan="1" rowspan="1">21: MSD must be non-zero< | ||||
/td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="IANA-TLV-Type-Indicators" numbered="true" toc="include" r | ||||
<section anchor="IANA-subTLV-Type-Indicators" title="PATH-SETUP-TYPE-CAPAB | emoveInRFC="false" pn="section-8.5"> | |||
ILITY Sub-TLV Type Indicators"> | <name slugifiedName="name-pcep-tlv-type-indicators">PCEP TLV Type Indica | |||
<t>IANA is requested to create a new sub-registry, named | tors</name> | |||
"PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators", within the "Pat | <t pn="section-8.5-1">IANA has allocated the following codepoint in the | |||
h Computation | "PCEP TLV Type Indicators" registry. Note that this TLV type indicator is depre | |||
Element Protocol (PCEP) Numbers" registry to manage the type indicato | cated but retained in the registry to ensure compatibility with early implementa | |||
r | tions of this specification. See <xref target="Early" format="default" sectionF | |||
space for sub-TLVs of the PATH-SETUP-TYPE-CAPABILITY TLV. New values | ormat="of" derivedContent="Appendix A"/> for details.</t> | |||
are to be assigned by Standards Action <xref target="RFC8126"/>. The | <table anchor="PCEP-New-TLV-CP" align="center" pn="table-5"> | |||
valid range of values in the registry is 0-65535. IANA is requested to initial | <thead> | |||
ize the registry with the following values. All other values in the registry sh | <tr> | |||
ould be marked as "Unassigned".</t> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
<th align="left" colspan="1" rowspan="1">Meaning </th> | ||||
<texttable anchor="PCEP-New-subTLV-CP" style="none" suppress-title="true | <th align="left" colspan="1" rowspan="1">Reference </th> | |||
"> | </tr> | |||
<ttcol align="left" width='65%'>Value</ttcol> | </thead> | |||
<ttcol align="left" width='40%'>Meaning </ttcol> | <tbody> | |||
<ttcol align="left" width='35%'>Reference </ttcol> | <tr> | |||
<c>-------------------------</c><c>----------------------------</c><c> | <td align="left" colspan="1" rowspan="1">26</td> | |||
--------------</c> | <td align="left" colspan="1" rowspan="1">SR-PCE-CAPABILITY (deprec | |||
<c>0</c><c>Reserved</c><c>This document</c> | ated)</td> | |||
<c>TBD11 (recommended 26)</c><c>SR-PCE-CAPABILITY</c><c>This document< | <td align="left" colspan="1" rowspan="1">This document</td> | |||
/c> | </tr> | |||
</texttable> | </tbody> | |||
</table> | ||||
<t>Note to IANA: Please replace each instance of "TBD11" in this documen | ||||
t with the allocated code point. We have recommended that value 26 be used for | ||||
consistency with the deprecated value in the PCEP TLV Type Indicators registry.< | ||||
/t> | ||||
</section> | </section> | |||
<section anchor="IANA-subTLV-Type-Indicators" numbered="true" toc="include | ||||
<section anchor="IANA-PATH-SETUP-TYPE" title="New Path Setup Type"> | " removeInRFC="false" pn="section-8.6"> | |||
<t><xref target="RFC8408"/> created a sub-registry within the "Path Comp | <name slugifiedName="name-path-setup-type-capability-">PATH-SETUP-TYPE-C | |||
utation Element Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types" | APABILITY Sub-TLV Type Indicators</name> | |||
. IANA is requested to allocate a new code point within this registry, as follow | <t pn="section-8.6-1">IANA has created a new sub-registry, named | |||
s:</t> | "PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators", within | |||
the "Path Computation Element Protocol (PCEP) Numbers" | ||||
<texttable anchor="PATH-SETUP-TLV-value" style="none" suppress-title="true | registry to manage the type indicator space for sub-TLVs of | |||
"> | the PATH-SETUP-TYPE-CAPABILITY TLV. New values are to be | |||
<ttcol align="left" width='50%'>Value</ttcol> | assigned by Standards Action <xref target="RFC8126" format="default" sec | |||
<ttcol align="left" width='50%'>Description </ttcol> | tionFormat="of" derivedContent="RFC8126"/>. The | |||
<ttcol align="left" width='35%'>Reference </ttcol> | valid range of values in the registry is 0-65535. IANA | |||
has initialized the registry with the following | ||||
<c>-------------------------</c><c>----------------------------</c><c>-- | values. All other values in the registry should be marked as | |||
------------</c> | "Unassigned".</t> | |||
<table anchor="PCEP-New-subTLV-CP" align="center" pn="table-6"> | ||||
<c>1</c><c>Traffic engineering path is setup using Segment Routing.</c>< | <thead> | |||
c>This document</c> | <tr> | |||
</texttable> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
<th align="left" colspan="1" rowspan="1">Meaning </th> | ||||
<th align="left" colspan="1" rowspan="1">Reference </th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">0</td> | ||||
<td align="left" colspan="1" rowspan="1">Reserved</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">26</td> | ||||
<td align="left" colspan="1" rowspan="1">SR-PCE-CAPABILITY</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="IANA-PATH-SETUP-TYPE" numbered="true" toc="include" remov | ||||
<section anchor="IANA-METRIC-TYPE" title="New Metric Type"> | eInRFC="false" pn="section-8.7"> | |||
<t>IANA is requested to confirm the early allocation of the following co | <name slugifiedName="name-new-path-setup-type">New Path Setup Type</name | |||
de point in the PCEP METRIC object T field registry:</t> | > | |||
<t pn="section-8.7-1">A sub-registry within the "Path Computation Elemen | ||||
<texttable anchor="METRIC-type" style="none" suppress-title="true"> | t Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types" was created i | |||
<ttcol align="left" width='50%'>Value</ttcol> | n <xref target="RFC8408" format="default" sectionFormat="of" derivedContent="RFC | |||
<ttcol align="left" width='50%'>Description </ttcol> | 8408"/>. IANA has allocated a new codepoint within this registry, as follows:</t | |||
<ttcol align="left" width='35%'>Reference </ttcol> | > | |||
<c>-------------------------</c><c>----------------------------</c><c>-- | <table anchor="PATH-SETUP-TLV-value" align="center" pn="table-7"> | |||
------------</c> | <thead> | |||
<c>11</c><c>Segment-ID (SID) Depth.</c><c>This document</c> | <tr> | |||
</texttable> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
<th align="left" colspan="1" rowspan="1">Description </th> | ||||
<th align="left" colspan="1" rowspan="1">Reference </th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">1</td> | ||||
<td align="left" colspan="1" rowspan="1">Traffic-engineering path | ||||
is set up using Segment Routing.</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="IANA-METRIC-TYPE" numbered="true" toc="include" removeInR | ||||
<section anchor="IANA-SR-PCE-CAP-FLAG" title="SR PCE Capability Flags"> | FC="false" pn="section-8.8"> | |||
<t>IANA is requested to create a new sub-registry, named | <name slugifiedName="name-new-metric-type">New Metric Type</name> | |||
<t pn="section-8.8-1">IANA has allocated the following codepoint in the | ||||
PCEP "METRIC Object T Field" registry:</t> | ||||
<table anchor="METRIC-type" align="center" pn="table-8"> | ||||
<thead> | ||||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<th align="left" colspan="1" rowspan="1">Description </th> | ||||
<th align="left" colspan="1" rowspan="1">Reference </th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">11</td> | ||||
<td align="left" colspan="1" rowspan="1">Segment-ID (SID) Depth.</ | ||||
td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="IANA-SR-PCE-CAP-FLAG" numbered="true" toc="include" remov | ||||
eInRFC="false" pn="section-8.9"> | ||||
<name slugifiedName="name-sr-pce-capability-flags">SR PCE Capability Fla | ||||
gs</name> | ||||
<t pn="section-8.9-1">IANA has created a new sub-registry, named | ||||
"SR Capability Flag Field", within the "Path Computation | "SR Capability Flag Field", within the "Path Computation | |||
Element Protocol (PCEP) Numbers" registry to manage the Flag | Element Protocol (PCEP) Numbers" registry to manage the Flag | |||
field of the SR-PCE-CAPABILITY TLV. New values are to be assigned by Standar ds | field of the SR-PCE-CAPABILITY TLV. New values are to be assigned by Standar ds | |||
Action <xref target="RFC8126"/>. Each bit should be tracked with the | Action <xref target="RFC8126" format="default" sectionFormat="of" derive dContent="RFC8126"/>. Each bit should be tracked with the | |||
following qualities: | following qualities: | |||
<list style="symbols"> | ||||
<t>Bit number (counting from bit 0 as the most significant bit)</t> | ||||
<t>Capability description</t> | ||||
<t>Defining RFC</t> | ||||
</list> | ||||
</t> | </t> | |||
<ul spacing="normal" bare="false" empty="false" pn="section-8.9-2"> | ||||
<t>The following values are defined in this document:</t> | <li pn="section-8.9-2.1">Bit number (counting from bit 0 as the most s | |||
ignificant bit)</li> | ||||
<texttable anchor="SR-PCE-CAP-Flags" style="none" suppress-title="true"> | <li pn="section-8.9-2.2">Capability description</li> | |||
<ttcol align="center" width='15%'>Bit</ttcol> | <li pn="section-8.9-2.3">Defining RFC</li> | |||
<ttcol align="left" width='30%'>Description </ttcol> | </ul> | |||
<ttcol align="left" width='55%'>Reference </ttcol> | <t pn="section-8.9-3">The following values are defined in this document: | |||
<c></c><c> </c><c></c> | </t> | |||
<c>0-5</c><c>Unassigned</c><c></c> | <table anchor="SR-PCE-CAP-Flags" align="center" pn="table-9"> | |||
<c>6</c><c>Node or Adjacency Identifier (NAI) is supported (N)</c><c>T | <thead> | |||
his document</c> | <tr> | |||
<c>7</c><c>Unlimited Maximum SID Depth (X)</c><c>This document</c> | <th align="center" colspan="1" rowspan="1">Bit</th> | |||
</texttable> | <th align="left" colspan="1" rowspan="1">Description </th> | |||
<t>Note to IANA: The name of bit 7 has changed from "Unlimited Maximum S | <th align="left" colspan="1" rowspan="1">Reference </th> | |||
ID Depth (L)" to "Unlimited Maximum SID Depth (X)".</t> | </tr> | |||
</section> <!-- SR PCE Capability Flags --> | </thead> | |||
</section> | <tbody> | |||
<tr> | ||||
<section anchor="Contributors" title="Contributors"> | <td align="center" colspan="1" rowspan="1">0-5</td> | |||
<td align="left" colspan="1" rowspan="1">Unassigned</td> | ||||
<?rfc subcompact="yes"?> | <td align="left" colspan="1" rowspan="1"/> | |||
<t>The following people contributed to this document: | </tr> | |||
<list style="empty"> | <tr> | |||
<t>- Lakshmi Sharma</t> | <td align="center" colspan="1" rowspan="1">6</td> | |||
<t>- Jan Medved</t> | <td align="left" colspan="1" rowspan="1">Node or Adjacency Identif | |||
<t>- Edward Crabbe</t> | ier (NAI) is supported (N)</td> | |||
<t>- Robert Raszuk</t> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
<t>- Victor Lopez</t> | </tr> | |||
</list> | <tr> | |||
</t> | <td align="center" colspan="1" rowspan="1">7</td> | |||
<?rfc subcompact="no"?> | <td align="left" colspan="1" rowspan="1">Unlimited Maximum SID Dep | |||
</section> | th (X)</td> | |||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
<section anchor="Acknowledgement" title="Acknowledgements"> | </tr> | |||
</tbody> | ||||
<t>We thank Ina Minei, George Swallow, Marek Zavodsky, Dhruv Dhody, Ing-Wh | </table> | |||
er Chen and Tomas Janciga for the valuable comments.</t> | </section> | |||
</section> | </section> | |||
</middle> | ||||
</middle> | <back> | |||
<displayreference target="I-D.ietf-6man-segment-routing-header" to="IPv6-SRH | ||||
<back> | "/> | |||
<references title="Normative References"> | <displayreference target="I-D.ietf-spring-segment-routing-policy" to="SR-POL | |||
ICY"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119 | <displayreference target="I-D.ietf-idr-bgp-ls-segment-routing-msd" to="MSD-B | |||
.xml"?> | GP"/> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3032 | <displayreference target="I-D.ietf-pce-pcep-yang" to="PCE-PCEP-YANG"/> | |||
.xml"?> | <references pn="section-9"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5440 | <name slugifiedName="name-references">References</name> | |||
.xml"?> | <references pn="section-9.1"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174 | <name slugifiedName="name-normative-references">Normative References</na | |||
.xml"?> | me> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8231 | <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | |||
.xml"?> | 119" quoteTitle="true" derivedAnchor="RFC2119"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8281 | <front> | |||
.xml"?> | <title>Key words for use in RFCs to Indicate Requirement Levels</tit | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402 | le> | |||
.xml"?> | <author initials="S." surname="Bradner" fullname="S. Bradner"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8408 | <organization showOnFrontPage="true"/> | |||
.xml"?> | </author> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8491 | <date year="1997" month="March"/> | |||
.xml"?> | <abstract> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | <t>In many standards track documents several words are used to sig | |||
t-ietf-spring-segment-routing-mpls-18.xml"?> | nify the requirements in the specification. These words are often capitalized. | |||
This document defines these words as they should be interpreted in IETF document | ||||
</references> | s. This document specifies an Internet Best Current Practices for the Internet | |||
Community, and requests discussion and suggestions for improvements.</t> | ||||
<references title="Informative References"> | </abstract> | |||
</front> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3209. | <seriesInfo name="BCP" value="14"/> | |||
xml"?> | <seriesInfo name="RFC" value="2119"/> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4657. | <seriesInfo name="DOI" value="10.17487/RFC2119"/> | |||
xml"?> | </reference> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7420. | <reference anchor="RFC3032" target="https://www.rfc-editor.org/info/rfc3 | |||
xml"?> | 032" quoteTitle="true" derivedAnchor="RFC3032"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126. | <front> | |||
xml"?> | <title>MPLS Label Stack Encoding</title> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8413. | <author initials="E." surname="Rosen" fullname="E. Rosen"> | |||
xml"?> | <organization showOnFrontPage="true"/> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8476. | </author> | |||
xml"?> | <author initials="D." surname="Tappan" fullname="D. Tappan"> | |||
<organization showOnFrontPage="true"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | </author> | |||
t-ietf-6man-segment-routing-header-16.xml"?> | <author initials="G." surname="Fedorkow" fullname="G. Fedorkow"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | <organization showOnFrontPage="true"/> | |||
t-ietf-spring-segment-routing-policy-02.xml"?> | </author> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | <author initials="Y." surname="Rekhter" fullname="Y. Rekhter"> | |||
t-ietf-isis-segment-routing-extensions-22.xml"?> | <organization showOnFrontPage="true"/> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | </author> | |||
t-ietf-ospf-segment-routing-extensions-27.xml"?> | <author initials="D." surname="Farinacci" fullname="D. Farinacci"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | <organization showOnFrontPage="true"/> | |||
t-ietf-idr-bgp-ls-segment-routing-msd-02.xml"?> | </author> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draf | <author initials="T." surname="Li" fullname="T. Li"> | |||
t-ietf-pce-pcep-yang-09.xml"?> | <organization showOnFrontPage="true"/> | |||
</author> | ||||
</references> | <author initials="A." surname="Conta" fullname="A. Conta"> | |||
<organization showOnFrontPage="true"/> | ||||
<section anchor="Early" title="Compatibility with Early Implementations"> | </author> | |||
<date year="2001" month="January"/> | ||||
<t> | <abstract> | |||
<t>This document specifies the encoding to be used by an LSR in or | ||||
der to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on | ||||
LAN data links, and possibly on other data links as well. This document also sp | ||||
ecifies rules and procedures for processing the various fields of the label stac | ||||
k encoding. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3032"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3032"/> | ||||
</reference> | ||||
<reference anchor="RFC5440" target="https://www.rfc-editor.org/info/rfc5 | ||||
440" quoteTitle="true" derivedAnchor="RFC5440"> | ||||
<front> | ||||
<title>Path Computation Element (PCE) Communication Protocol (PCEP)< | ||||
/title> | ||||
<author initials="JP." surname="Vasseur" fullname="JP. Vasseur" role | ||||
="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="JL." surname="Le Roux" fullname="JL. Le Roux" role | ||||
="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2009" month="March"/> | ||||
<abstract> | ||||
<t>This document specifies the Path Computation Element (PCE) Comm | ||||
unication Protocol (PCEP) for communications between a Path Computation Client ( | ||||
PCC) and a PCE, or between two PCEs. Such interactions include path computation | ||||
requests and path computation replies as well as notifications of specific stat | ||||
es related to the use of a PCE in the context of Multiprotocol Label Switching ( | ||||
MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be | ||||
flexible and extensible so as to easily allow for the addition of further messag | ||||
es and objects, should further requirements be expressed in the future. [STANDA | ||||
RDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5440"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5440"/> | ||||
</reference> | ||||
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
tle> | ||||
<author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="May"/> | ||||
<abstract> | ||||
<t>RFC 2119 specifies common key words that may be used in protoco | ||||
l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
t only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="8174"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
</reference> | ||||
<reference anchor="RFC8231" target="https://www.rfc-editor.org/info/rfc8 | ||||
231" quoteTitle="true" derivedAnchor="RFC8231"> | ||||
<front> | ||||
<title>Path Computation Element Communication Protocol (PCEP) Extens | ||||
ions for Stateful PCE</title> | ||||
<author initials="E." surname="Crabbe" fullname="E. Crabbe"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="I." surname="Minei" fullname="I. Minei"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Medved" fullname="J. Medved"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Varga" fullname="R. Varga"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="September"/> | ||||
<abstract> | ||||
<t>The Path Computation Element Communication Protocol (PCEP) prov | ||||
ides mechanisms for Path Computation Elements (PCEs) to perform path computation | ||||
s in response to Path Computation Client (PCC) requests.</t> | ||||
<t>Although PCEP explicitly makes no assumptions regarding the inf | ||||
ormation available to the PCE, it also makes no provisions for PCE control of ti | ||||
ming and sequence of path computations within and across PCEP sessions. This do | ||||
cument describes a set of extensions to PCEP to enable stateful control of MPLS- | ||||
TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8231"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8231"/> | ||||
</reference> | ||||
<reference anchor="RFC8281" target="https://www.rfc-editor.org/info/rfc8 | ||||
281" quoteTitle="true" derivedAnchor="RFC8281"> | ||||
<front> | ||||
<title>Path Computation Element Communication Protocol (PCEP) Extens | ||||
ions for PCE-Initiated LSP Setup in a Stateful PCE Model</title> | ||||
<author initials="E." surname="Crabbe" fullname="E. Crabbe"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="I." surname="Minei" fullname="I. Minei"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Sivabalan" fullname="S. Sivabalan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Varga" fullname="R. Varga"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="December"/> | ||||
<abstract> | ||||
<t>The Path Computation Element Communication Protocol (PCEP) prov | ||||
ides mechanisms for Path Computation Elements (PCEs) to perform path computation | ||||
s in response to Path Computation Client (PCC) requests.</t> | ||||
<t>The extensions for stateful PCE provide active control of Multi | ||||
protocol Label Switching (MPLS) Traffic Engineering Label Switched Paths (TE LSP | ||||
s) via PCEP, for a model where the PCC delegates control over one or more locall | ||||
y configured LSPs to the PCE. This document describes the creation and deletion | ||||
of PCE-initiated LSPs under the stateful PCE model.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8281"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8281"/> | ||||
</reference> | ||||
<reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8 | ||||
402" quoteTitle="true" derivedAnchor="RFC8402"> | ||||
<front> | ||||
<title>Segment Routing Architecture</title> | ||||
<author initials="C." surname="Filsfils" fullname="C. Filsfils" role | ||||
="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Previdi" fullname="S. Previdi" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L." surname="Ginsberg" fullname="L. Ginsberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B." surname="Decraene" fullname="B. Decraene"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Litkowski" fullname="S. Litkowski"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Shakir" fullname="R. Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="July"/> | ||||
<abstract> | ||||
<t>Segment Routing (SR) leverages the source routing paradigm. A | ||||
node steers a packet through an ordered list of instructions, called "segments". | ||||
A segment can represent any instruction, topological or service based. A segm | ||||
ent can have a semantic local to an SR node or global within an SR domain. SR p | ||||
rovides a mechanism that allows a flow to be restricted to a specific topologica | ||||
l path, while maintaining per-flow state only at the ingress node(s) to the SR d | ||||
omain.</t> | ||||
<t>SR can be directly applied to the MPLS architecture with no cha | ||||
nge to the forwarding plane. A segment is encoded as an MPLS label. An ordered | ||||
list of segments is encoded as a stack of labels. The segment to process is on | ||||
the top of the stack. Upon completion of a segment, the related label is poppe | ||||
d from the stack.</t> | ||||
<t>SR can be applied to the IPv6 architecture, with a new type of | ||||
routing header. A segment is encoded as an IPv6 address. An ordered list of se | ||||
gments is encoded as an ordered list of IPv6 addresses in the routing header. T | ||||
he active segment is indicated by the Destination Address (DA) of the packet. T | ||||
he next active segment is indicated by a pointer in the new routing header.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8402"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8402"/> | ||||
</reference> | ||||
<reference anchor="RFC8408" target="https://www.rfc-editor.org/info/rfc8 | ||||
408" quoteTitle="true" derivedAnchor="RFC8408"> | ||||
<front> | ||||
<title>Conveying Path Setup Type in PCE Communication Protocol (PCEP | ||||
) Messages</title> | ||||
<author initials="S." surname="Sivabalan" fullname="S. Sivabalan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Tantsura" fullname="J. Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="I." surname="Minei" fullname="I. Minei"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Varga" fullname="R. Varga"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Hardwick" fullname="J. Hardwick"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="July"/> | ||||
<abstract> | ||||
<t>A Path Computation Element (PCE) can compute Traffic Engineerin | ||||
g (TE) paths through a network; these paths are subject to various constraints. | ||||
Currently, TE paths are Label Switched Paths (LSPs) that are set up using the R | ||||
SVP-TE signaling protocol. However, other TE path setup methods are possible wi | ||||
thin the PCE architecture. This document proposes an extension to the PCE Commu | ||||
nication Protocol (PCEP) to allow support for different path setup methods over | ||||
a given PCEP session.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8408"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8408"/> | ||||
</reference> | ||||
<reference anchor="RFC8491" target="https://www.rfc-editor.org/info/rfc8 | ||||
491" quoteTitle="true" derivedAnchor="RFC8491"> | ||||
<front> | ||||
<title>Signaling Maximum SID Depth (MSD) Using IS-IS</title> | ||||
<author initials="J." surname="Tantsura" fullname="J. Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="U." surname="Chunduri" fullname="U. Chunduri"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Aldrin" fullname="S. Aldrin"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L." surname="Ginsberg" fullname="L. Ginsberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="November"/> | ||||
<abstract> | ||||
<t>This document defines a way for an Intermediate System to Inter | ||||
mediate System (IS-IS) router to advertise multiple types of supported Maximum S | ||||
ID Depths (MSDs) at node and/or link granularity. Such advertisements allow enti | ||||
ties (e.g., centralized controllers) to determine whether a particular Segment I | ||||
D (SID) stack can be supported in a given network. This document only defines o | ||||
ne type of MSD: Base MPLS Imposition. However, it defines an encoding that can | ||||
support other MSD types. This document focuses on MSD use in a network that is | ||||
Segment Routing (SR) enabled, but MSD may also be useful when SR is not enabled. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8491"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8491"/> | ||||
</reference> | ||||
<reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8 | ||||
660" quoteTitle="true" derivedAnchor="RFC8660"> | ||||
<front> | ||||
<title>Segment Routing with the MPLS Data Plane</title> | ||||
<author initials="A" surname="Bashandy" fullname="Ahmed Bashandy" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
role="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Litkowski" fullname="Stephane Litkowsk | ||||
i"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8660"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8660"/> | ||||
</reference> | ||||
</references> | ||||
<references pn="section-9.2"> | ||||
<name slugifiedName="name-informative-references">Informative References | ||||
</name> | ||||
<reference anchor="I-D.ietf-6man-segment-routing-header" quoteTitle="tru | ||||
e" target="https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-26 | ||||
" derivedAnchor="IPv6-SRH"> | ||||
<front> | ||||
<title>IPv6 Segment Routing Header (SRH)</title> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D" surname="Dukes" fullname="Darren Dukes"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J" surname="Leddy" fullname="John Leddy"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Matsushima" fullname="Satoru Matsushim | ||||
a"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D" surname="Voyer" fullname="Daniel Voyer"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="October" day="22" year="2019"/> | ||||
<abstract> | ||||
<t>Segment Routing can be applied to the IPv6 data plane using a n | ||||
ew type of Routing Extension Header called the Segment Routing Header. This docu | ||||
ment describes the Segment Routing Header and how it is used by Segment Routing | ||||
capable nodes.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-6man-segment-routi | ||||
ng-header-26"/> | ||||
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
etf-6man-segment-routing-header-26.txt"/> | ||||
<refcontent>Work in Progress</refcontent> | ||||
</reference> | ||||
<reference anchor="I-D.ietf-idr-bgp-ls-segment-routing-msd" quoteTitle=" | ||||
true" target="https://tools.ietf.org/html/draft-ietf-idr-bgp-ls-segment-routing- | ||||
msd-09" derivedAnchor="MSD-BGP"> | ||||
<front> | ||||
<title>Signaling MSD (Maximum SID Depth) using Border Gateway Protoc | ||||
ol Link-State</title> | ||||
<author initials="J" surname="Tantsura" fullname="Jeff Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="U" surname="Chunduri" fullname="Uma Chunduri"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="K" surname="Talaulikar" fullname="Ketan Talaulikar | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G" surname="Mirsky" fullname="Gregory Mirsky"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="N" surname="Triantafillis" fullname="Nikos Trianta | ||||
fillis"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="October" day="15" year="2019"/> | ||||
<abstract> | ||||
<t>This document defines a way for a Border Gateway Protocol Link- | ||||
State (BGP-LS) speaker to advertise multiple types of supported Maximum SID Dept | ||||
hs (MSDs) at node and/or link granularity. Such advertisements allow entities ( | ||||
e.g., centralized controllers) to determine whether a particular Segment Identif | ||||
ier (SID) stack can be supported in a given network.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-segment | ||||
-routing-msd-09"/> | ||||
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
etf-idr-bgp-ls-segment-routing-msd-09.txt"/> | ||||
<refcontent>Work in Progress</refcontent> | ||||
</reference> | ||||
<reference anchor="I-D.ietf-pce-pcep-yang" quoteTitle="true" target="htt | ||||
ps://tools.ietf.org/html/draft-ietf-pce-pcep-yang-13" derivedAnchor="PCE-PCEP-YA | ||||
NG"> | ||||
<front> | ||||
<title>A YANG Data Model for Path Computation Element Communications | ||||
Protocol (PCEP)</title> | ||||
<author initials="D" surname="Dhody" fullname="Dhruv Dhody"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J" surname="Hardwick" fullname="Jonathan Hardwick" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="V" surname="Beeram" fullname="Vishnu Beeram"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J" surname="Tantsura" fullname="Jeff Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="October" day="31" year="2019"/> | ||||
<abstract> | ||||
<t>This document defines a YANG data model for the management of P | ||||
ath Computation Element communications Protocol (PCEP) for communications betwee | ||||
n a Path Computation Client (PCC) and a Path Computation Element (PCE), or betwe | ||||
en two PCEs. The data model includes configuration and state data.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-pce-pcep-yang-13"/ | ||||
> | ||||
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
etf-pce-pcep-yang-13.txt"/> | ||||
<refcontent>Work in Progress</refcontent> | ||||
</reference> | ||||
<reference anchor="RFC3209" target="https://www.rfc-editor.org/info/rfc3 | ||||
209" quoteTitle="true" derivedAnchor="RFC3209"> | ||||
<front> | ||||
<title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title> | ||||
<author initials="D." surname="Awduche" fullname="D. Awduche"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L." surname="Berger" fullname="L. Berger"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D." surname="Gan" fullname="D. Gan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="T." surname="Li" fullname="T. Li"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="V." surname="Srinivasan" fullname="V. Srinivasan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G." surname="Swallow" fullname="G. Swallow"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2001" month="December"/> | ||||
<abstract> | ||||
<t>This document describes the use of RSVP (Resource Reservation P | ||||
rotocol), including all the necessary extensions, to establish label-switched pa | ||||
ths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LS | ||||
P is completely identified by the label applied at the ingress node of the path, | ||||
these paths may be treated as tunnels. A key application of LSP tunnels is tra | ||||
ffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3209"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3209"/> | ||||
</reference> | ||||
<reference anchor="RFC4657" target="https://www.rfc-editor.org/info/rfc4 | ||||
657" quoteTitle="true" derivedAnchor="RFC4657"> | ||||
<front> | ||||
<title>Path Computation Element (PCE) Communication Protocol Generic | ||||
Requirements</title> | ||||
<author initials="J." surname="Ash" fullname="J. Ash" role="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J.L." surname="Le Roux" fullname="J.L. Le Roux" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2006" month="September"/> | ||||
<abstract> | ||||
<t>The PCE model is described in the "PCE Architecture" document a | ||||
nd facilitates path computation requests from Path Computation Clients (PCCs) to | ||||
Path Computation Elements (PCEs). This document specifies generic requirements | ||||
for a communication protocol between PCCs and PCEs, and also between PCEs where | ||||
cooperation between PCEs is desirable. Subsequent documents will specify appli | ||||
cation-specific requirements for the PCE communication protocol. This memo prov | ||||
ides information for the Internet community.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4657"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4657"/> | ||||
</reference> | ||||
<reference anchor="RFC7420" target="https://www.rfc-editor.org/info/rfc7 | ||||
420" quoteTitle="true" derivedAnchor="RFC7420"> | ||||
<front> | ||||
<title>Path Computation Element Communication Protocol (PCEP) Manage | ||||
ment Information Base (MIB) Module</title> | ||||
<author initials="A." surname="Koushik" fullname="A. Koushik"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="E." surname="Stephan" fullname="E. Stephan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="Q." surname="Zhao" fullname="Q. Zhao"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D." surname="King" fullname="D. King"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Hardwick" fullname="J. Hardwick"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2014" month="December"/> | ||||
<abstract> | ||||
<t>This memo defines a portion of the Management Information Base | ||||
(MIB) for use with network management protocols in the Internet community. In pa | ||||
rticular, it describes managed objects for modeling of the Path Computation Elem | ||||
ent Communication Protocol (PCEP) for communications between a Path Computation | ||||
Client (PCC) and a Path Computation Element (PCE), or between two PCEs.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7420"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7420"/> | ||||
</reference> | ||||
<reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8 | ||||
126" quoteTitle="true" derivedAnchor="RFC8126"> | ||||
<front> | ||||
<title>Guidelines for Writing an IANA Considerations Section in RFCs | ||||
</title> | ||||
<author initials="M." surname="Cotton" fullname="M. Cotton"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="T." surname="Narten" fullname="T. Narten"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="June"/> | ||||
<abstract> | ||||
<t>Many protocols make use of points of extensibility that use con | ||||
stants to identify various protocol parameters. To ensure that the values in th | ||||
ese fields do not have conflicting uses and to promote interoperability, their a | ||||
llocations are often coordinated by a central record keeper. For IETF protocols | ||||
, that role is filled by the Internet Assigned Numbers Authority (IANA).</t> | ||||
<t>To make assignments in a given registry prudently, guidance des | ||||
cribing the conditions under which new values should be assigned, as well as whe | ||||
n and how modifications to existing values can be made, is needed. This documen | ||||
t defines a framework for the documentation of these guidelines by specification | ||||
authors, in order to assure that the provided guidance for the IANA Considerati | ||||
ons is clear and addresses the various issues that are likely in the operation o | ||||
f a registry.</t> | ||||
<t>This is the third edition of this document; it obsoletes RFC 52 | ||||
26.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="26"/> | ||||
<seriesInfo name="RFC" value="8126"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8126"/> | ||||
</reference> | ||||
<reference anchor="RFC8413" target="https://www.rfc-editor.org/info/rfc8 | ||||
413" quoteTitle="true" derivedAnchor="RFC8413"> | ||||
<front> | ||||
<title>Framework for Scheduled Use of Resources</title> | ||||
<author initials="Y." surname="Zhuang" fullname="Y. Zhuang"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="Q." surname="Wu" fullname="Q. Wu"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H." surname="Chen" fullname="H. Chen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Farrel" fullname="A. Farrel"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="July"/> | ||||
<abstract> | ||||
<t>Time-Scheduled (TS) reservation of Traffic Engineering (TE) res | ||||
ources can be used to provide resource booking for TE Label Switched Paths so as | ||||
to better guarantee services for customers and to improve the efficiency of net | ||||
work resource usage at any moment in time, including network usage that is plann | ||||
ed for the future. This document provides a framework that describes and discus | ||||
ses the architecture for supporting scheduled reservation of TE resources. This | ||||
document does not describe specific protocols or protocol extensions needed to | ||||
realize this service.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8413"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8413"/> | ||||
</reference> | ||||
<reference anchor="RFC8476" target="https://www.rfc-editor.org/info/rfc8 | ||||
476" quoteTitle="true" derivedAnchor="RFC8476"> | ||||
<front> | ||||
<title>Signaling Maximum SID Depth (MSD) Using OSPF</title> | ||||
<author initials="J." surname="Tantsura" fullname="J. Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="U." surname="Chunduri" fullname="U. Chunduri"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Aldrin" fullname="S. Aldrin"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="P." surname="Psenak" fullname="P. Psenak"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="December"/> | ||||
<abstract> | ||||
<t>This document defines a way for an Open Shortest Path First (OS | ||||
PF) router to advertise multiple types of supported Maximum SID Depths (MSDs) at | ||||
node and/or link granularity. Such advertisements allow entities (e.g., centra | ||||
lized controllers) to determine whether a particular Segment Identifier (SID) st | ||||
ack can be supported in a given network. This document only refers to the Signa | ||||
ling MSD as defined in RFC 8491, but it defines an encoding that can support oth | ||||
er MSD types. Here, the term "OSPF" means both OSPFv2 and OSPFv3.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8476"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8476"/> | ||||
</reference> | ||||
<reference anchor="RFC8665" target="https://www.rfc-editor.org/info/rfc8 | ||||
665" quoteTitle="true" derivedAnchor="RFC8665"> | ||||
<front> | ||||
<title>OSPF Extensions for Segment Routing</title> | ||||
<author initials="P" surname="Psenak" fullname="Peter Psenak" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H" surname="Gredler" fullname="Hannes Gredler"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="W" surname="Henderickx" fullname="Wim Henderickx"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J" surname="Tantsura" fullname="Jeff Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8665"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8665"/> | ||||
</reference> | ||||
<reference anchor="RFC8667" target="https://www.rfc-editor.org/info/rfc8 | ||||
667" quoteTitle="true" derivedAnchor="RFC8667"> | ||||
<front> | ||||
<title>IS-IS Extensions for Segment Routing</title> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L" surname="Ginsberg" fullname="Les Ginsberg" role | ||||
="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A" surname="Bashandy" fullname="Ahmed Bashandy"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H" surname="Gredler" fullname="Hannes Gredler"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8667"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8667"/> | ||||
</reference> | ||||
<reference anchor="I-D.ietf-spring-segment-routing-policy" quoteTitle="t | ||||
rue" target="https://tools.ietf.org/html/draft-ietf-spring-segment-routing-polic | ||||
y-05" derivedAnchor="SR-POLICY"> | ||||
<front> | ||||
<title>Segment Routing Policy Architecture</title> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Sivabalan" fullname="Siva Sivabalan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D" surname="Voyer" fullname="Daniel Voyer"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A" surname="Bogdanov" fullname="Alex Bogdanov"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="P" surname="Mattes" fullname="Paul Mattes"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="November" day="17" year="2019"/> | ||||
<abstract> | ||||
<t>Segment Routing (SR) allows a headend node to steer a packet fl | ||||
ow along any path. Intermediate per-flow states are eliminated thanks to source | ||||
routing. The headend node steers a flow into an SR Policy. The header of a pac | ||||
ket steered in an SR Policy is augmented with an ordered list of segments associ | ||||
ated with that SR Policy. This document details the concepts of SR Policy and s | ||||
teering into an SR Policy.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-spring-segment-rou | ||||
ting-policy-05"/> | ||||
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
etf-spring-segment-routing-policy-05.txt"/> | ||||
<refcontent>Work in Progress</refcontent> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="Early" numbered="true" toc="include" removeInRFC="false" pn | ||||
="section-appendix.a"> | ||||
<name slugifiedName="name-compatibility-with-early-im">Compatibility with | ||||
Early Implementations</name> | ||||
<t pn="section-appendix.a-1"> | ||||
An early implementation of this specification will send the | An early implementation of this specification will send the | |||
SR-CAPABILITY-TLV as a top-level TLV in the OPEN object instead | SR-CAPABILITY-TLV as a top-level TLV in the OPEN object instead | |||
of sending the PATH-SETUP-TYPE-CAPABILITY TLV in the OPEN object. | of sending the PATH-SETUP-TYPE-CAPABILITY TLV in the OPEN object. | |||
Implementations that wish to interoperate with such early implementations | Implementations that wish to interoperate with such early implementations | |||
should also send the SR-CAPABILITY-TLV as a top-level TLV in their OPEN object | should also send the SR-CAPABILITY-TLV as a top-level TLV in their OPEN object | |||
and should interpret receiving this top-level TLV as though the sender had sen t | and should interpret receiving this top-level TLV as though the sender had sen t | |||
a PATH-SETUP-TYPE-CAPABILITY TLV with a PST list of (0, 1) (that is, both RSVP -TE and | a PATH-SETUP-TYPE-CAPABILITY TLV with a PST list of (0, 1) (that is, both RSVP -TE and | |||
SR-TE PSTs are supported) with the SR-CAPABILITY-TLV as a sub-TLV. | SR-TE PSTs are supported) with the SR-CAPABILITY-TLV as a sub-TLV. | |||
If a PCEP speaker receives an OPEN object in which both the | If a PCEP speaker receives an OPEN object in which both the | |||
SR-CAPABILITY-TLV and PATH-SETUP-TYPE-CAPABILITY TLV appear as top-level | SR-CAPABILITY-TLV and PATH-SETUP-TYPE-CAPABILITY TLV appear as top-level | |||
TLVs, then it should ignore the top-level SR-CAPABILITY-TLV and process | TLVs, then it should ignore the top-level SR-CAPABILITY-TLV and process | |||
only the PATH-SETUP-TYPE-CAPABILITY TLV. | only the PATH-SETUP-TYPE-CAPABILITY TLV. | |||
</t> | </t> | |||
</section> | ||||
</section> | <section anchor="Acknowledgement" numbered="false" toc="include" removeInRFC | |||
="false" pn="section-appendix.b"> | ||||
</back> | <name slugifiedName="name-acknowledgements">Acknowledgements</name> | |||
<t pn="section-appendix.b-1">We thank Ina Minei, George Swallow, Marek Zav | ||||
odsky, Dhruv Dhody, Ing-Wher Chen, and Tomas Janciga for the valuable comments.< | ||||
/t> | ||||
</section> | ||||
<section anchor="Contributors" numbered="false" toc="include" removeInRFC="f | ||||
alse" pn="section-appendix.c"> | ||||
<name slugifiedName="name-contributors">Contributors</name> | ||||
<t pn="section-appendix.c-1">The following people contributed to this docu | ||||
ment: | ||||
</t> | ||||
<ul spacing="compact" bare="false" empty="false" pn="section-appendix.c-2" | ||||
> | ||||
<li pn="section-appendix.c-2.1">Lakshmi Sharma</li> | ||||
<li pn="section-appendix.c-2.2">Jan Medved</li> | ||||
<li pn="section-appendix.c-2.3">Edward Crabbe</li> | ||||
<li pn="section-appendix.c-2.4">Robert Raszuk</li> | ||||
<li pn="section-appendix.c-2.5">Victor Lopez</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
="include" pn="section-appendix.d"> | ||||
<name slugifiedName="name-authors-addresses">Authors' Addresses</name> | ||||
<author fullname="Siva Sivabalan" initials="S." surname="Sivabalan"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>2000 Innovation Drive</street> | ||||
<city>Kanata</city> | ||||
<region>Ontario</region> | ||||
<code>K2K 3E8</code> | ||||
<country>Canada</country> | ||||
</postal> | ||||
<email>msiva@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Pegasus Parc</street> | ||||
<city>De kleetlaan 6a</city> | ||||
<region>Diegem</region> | ||||
<code>Brabant 1831</code> | ||||
<country>Belgium</country> | ||||
</postal> | ||||
<email>cfilsfil@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Jeff Tantsura" initials="J." surname="Tantsura"> | ||||
<organization showOnFrontPage="true">Apstra, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>333 Middlefield Rd #200</street> | ||||
<city>Menlo Park</city> | ||||
<region>CA</region> | ||||
<code>94025</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>jefftant.ietf@gmail.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Wim Henderickx" initials="W." surname="Henderickx"> | ||||
<organization showOnFrontPage="true">Nokia</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Copernicuslaan 50</street> | ||||
<city>Antwerp 2018</city> | ||||
<region>CA</region> | ||||
<code>95134</code> | ||||
<country>Belgium</country> | ||||
</postal> | ||||
<email>wim.henderickx@nokia.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Jon Hardwick" initials="J." surname="Hardwick"> | ||||
<organization showOnFrontPage="true">Metaswitch Networks</organization> | ||||
<address> | ||||
<postal> | ||||
<street>100 Church Street</street> | ||||
<city>Enfield</city> | ||||
<region>Middlesex</region> | ||||
<country>United Kingdom</country> | ||||
</postal> | ||||
<email>jonathan.hardwick@metaswitch.com</email> | ||||
</address> | ||||
</author> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 99 change blocks. | ||||
1371 lines changed or deleted | 2801 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |