rfc8665xml2.original.xml | rfc8665.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-ospf-segment-routing-extensions-27" indexInclude | |||
<?rfc tocompact="yes"?> | ="true" ipr="trust200902" number="8665" prepTime="2019-12-04T21:10:11" scripts=" | |||
<?rfc tocdepth="3"?> | Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" | |||
<?rfc tocindent="yes"?> | tocInclude="true" xml:lang="en"> | |||
<?rfc symrefs="yes"?> | <link href="https://datatracker.ietf.org/doc/draft-ietf-ospf-segment-routing-e | |||
<?rfc sortrefs="yes"?> | xtensions-27" rel="prev"/> | |||
<?rfc comments="yes"?> | <link href="https://dx.doi.org/10.17487/rfc8665" 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-ospf-segment-routing-extensions-27" | ||||
ipr="trust200902"> | ||||
<front> | <front> | |||
<title abbrev="OSPF Extensions for Segment Routing">OSPF Extensions for | <title abbrev="OSPF Extensions for Segment Routing">OSPF Extensions for Segm | |||
Segment Routing</title> | ent Routing</title> | |||
<seriesInfo name="RFC" value="8665" stream="IETF"/> | ||||
<author fullname="Peter Psenak" initials="P." role="editor" | <author fullname="Peter Psenak" initials="P." role="editor" surname="Psenak" | |||
surname="Psenak"> | > | |||
<organization>Cisco Systems, Inc.</organization> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Apollo Business Center</street> | <street>Apollo Business Center</street> | |||
<street>Mlynske nivy 43</street> | <street>Mlynske nivy 43</street> | |||
<city>Bratislava</city> | <city>Bratislava</city> | |||
<code>821 09</code> | <code>821 09</code> | |||
<country>Slovakia</country> | <country>Slovakia</country> | |||
</postal> | </postal> | |||
<email>ppsenak@cisco.com</email> | <email>ppsenak@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Stefano Previdi" initials="S." role="editor" surname="Prev | ||||
<author fullname="Stefano Previdi" initials="S." role="editor" | idi"> | |||
surname="Previdi"> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<organization>Cisco Systems, Inc.</organization> | ||||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Via Del Serafico, 200</street> | <street>Via Del Serafico, 200</street> | |||
<city>Rome</city> | <city>Rome</city> | |||
<code>00142</code> | <code>00142</code> | |||
<country>Italy</country> | <country>Italy</country> | |||
</postal> | </postal> | |||
<email>stefano@previdi.net</email> | <email>stefano@previdi.net</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/> | <street/> | |||
<city>Brussels</city> | <city>Brussels</city> | |||
<region/> | <region/> | |||
<code/> | <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="Hannes Gredler" initials="H." surname="Gredler"> | <author fullname="Hannes Gredler" initials="H." surname="Gredler"> | |||
<organization>RtBrick Inc.</organization> | <organization showOnFrontPage="true">RtBrick Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city/> | <city/> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country/> | ||||
<country></country> | ||||
</postal> | </postal> | |||
<email>hannes@rtbrick.com</email> | <email>hannes@rtbrick.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Rob Shakir" initials="R." surname="Shakir"> | <author fullname="Rob Shakir" initials="R." surname="Shakir"> | |||
<organization>Google, Inc.</organization> | <organization showOnFrontPage="true">Google, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>1600 Amphitheatre Parkway</street> | <street>1600 Amphitheatre Parkway</street> | |||
<city>Mountain View</city> | <city>Mountain View</city> | |||
<code>94043</code> | <code>94043</code> | |||
<region>CA</region> | <region>CA</region> | |||
<country>United States of America</country> | ||||
<country>US</country> | ||||
</postal> | </postal> | |||
<email>robjs@google.com</email> | <email>robjs@google.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</city> | <city>Antwerp</city> | |||
<code>2018</code> | <code>2018</code> | |||
<country>Belgium</country> | ||||
<country>BE</country> | ||||
</postal> | </postal> | |||
<email>wim.henderickx@nokia.com</email> | <email>wim.henderickx@nokia.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/> | <street/> | |||
<city/> | <city/> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country/> | ||||
<country></country> | ||||
</postal> | </postal> | |||
<email>jefftant.ietf@gmail.com</email> | <email>jefftant.ietf@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="12" year="2019"/> | ||||
<date/> | ||||
<area>Routing</area> | <area>Routing</area> | |||
<workgroup>Open Shortest Path First IGP</workgroup> | <workgroup>Open Shortest Path First IGP</workgroup> | |||
<keyword>MPLS</keyword> | <keyword>MPLS</keyword> | |||
<keyword>SID</keyword> | <keyword>SID</keyword> | |||
<keyword>IGP</keyword> | <keyword>IGP</keyword> | |||
<keyword>OSPF</keyword> | <keyword>OSPF</keyword> | |||
<keyword>Label advertisement</keyword> | <keyword>Label advertisement</keyword> | |||
<keyword>Segment Routing</keyword> | <keyword>Segment Routing</keyword> | |||
<abstract pn="section-abstract"> | ||||
<abstract> | <t pn="section-abstract-1">Segment Routing (SR) allows a flexible definiti | |||
<t>Segment Routing (SR) allows a flexible definition of end-to-end | on of end-to-end | |||
paths within IGP topologies by encoding paths as sequences of | paths within IGP topologies by encoding paths as sequences of | |||
topological sub-paths, called "segments". These segments are advertised | topological subpaths called "segments". These segments are advertised | |||
by the link-state routing protocols (IS-IS and OSPF).</t> | by the link-state routing protocols (IS-IS and OSPF).</t> | |||
<t pn="section-abstract-2">This document describes the OSPFv2 extensions r | ||||
<t>This draft describes the OSPFv2 extensions required for Segment Routing | equired for Segment Routing.</t> | |||
.</t> | ||||
</abstract> | </abstract> | |||
<boilerplate> | ||||
<note title="Requirements Language"> | <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | "exclude" pn="section-boilerplate.1"> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | <name slugifiedName="name-status-of-this-memo">Status of This Memo</name | |||
document are to be interpreted as described in <xref | > | |||
target="RFC2119"></xref>.</t> | <t pn="section-boilerplate.1-1"> | |||
</note> | 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/rfc8665" 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> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.1.2"> | ||||
<li pn="section-toc.1-1.1.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derive | ||||
dContent="1.1" format="counter" sectionFormat="of" target="section-1.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.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-segment-routing-identifie | ||||
rs">Segment Routing Identifiers</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-sid-label-sub | ||||
-tlv">SID/Label Sub-TLV</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-segment-routing-capabilit | ||||
ie">Segment Routing Capabilities</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.3.2"> | ||||
<li pn="section-toc.1-1.3.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.1.1"><xref derive | ||||
dContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sr-algorithm- | ||||
tlv">SR-Algorithm TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.2.1"><xref derive | ||||
dContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sid-label-ran | ||||
ge-tlv">SID/Label Range TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.3.1"><xref derive | ||||
dContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sr-local-bloc | ||||
k-tlv">SR Local Block TLV</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3.2.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.4.1"><xref derive | ||||
dContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-srms-preferen | ||||
ce-tlv">SRMS Preference TLV</xref></t> | ||||
</li> | ||||
</ul> | ||||
</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-ospf-extended-prefix-rang | ||||
e-">OSPF Extended Prefix Range TLV</xref></t> | ||||
</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-prefix-sid-sub-tlv">Prefi | ||||
x-SID Sub-TLV</xref></t> | ||||
</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-adjacency-segment-identif | ||||
ie">Adjacency Segment Identifier (Adj-SID)</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-adj-sid-sub-t | ||||
lv">Adj-SID Sub-TLV</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-lan-adj-sid-s | ||||
ub-tlv">LAN Adj-SID Sub-TLV</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-elements-of-procedure">El | ||||
ements of Procedure</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.7.2"> | ||||
<li pn="section-toc.1-1.7.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.2.1.1"><xref derive | ||||
dContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-intra-area-se | ||||
gment-routing-">Intra-area Segment Routing in OSPFv2</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.2.2.1"><xref derive | ||||
dContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-inter-area-se | ||||
gment-routing-">Inter-area Segment Routing in OSPFv2</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.2.3.1"><xref derive | ||||
dContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-segment-routi | ||||
ng-for-externa">Segment Routing for External Prefixes</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.2.4.1"><xref derive | ||||
dContent="7.4" format="counter" sectionFormat="of" target="section-7.4"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-advertisement | ||||
-of-adj-sid">Advertisement of Adj-SID</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.7.2.4.2"> | ||||
<li pn="section-toc.1-1.7.2.4.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.2.4.2.1.1"><xre | ||||
f derivedContent="7.4.1" format="counter" sectionFormat="of" target="section-7.4 | ||||
.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-a | ||||
dvertisement-of-adj-sid-on">Advertisement of Adj-SID on Point-to-Point Links</xr | ||||
ef></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7.2.4.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.2.4.2.2.1"><xre | ||||
f derivedContent="7.4.2" format="counter" sectionFormat="of" target="section-7.4 | ||||
.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-a | ||||
djacency-sid-on-broadcast-">Adjacency SID on Broadcast or NBMA Interfaces</xref> | ||||
</t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
</ul> | ||||
</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-ospf-router-i | ||||
nformation-ri-">OSPF Router Information (RI) TLVs Registry</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-ospfv2-extend | ||||
ed-prefix-opaq">OSPFv2 Extended Prefix Opaque LSA TLVs 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-ospfv2-extend | ||||
ed-prefix-tlv-">OSPFv2 Extended Prefix TLV Sub-TLVs 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-ospfv2-extend | ||||
ed-link-tlv-su">OSPFv2 Extended Link TLV Sub-TLVs Registry</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-igp-algorithm | ||||
-types-registr">IGP Algorithm Types Registry</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-tlv-sub-tlv-error-handlin | ||||
g">TLV/Sub-TLV Error Handling</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.10.1"><xref derivedConten | ||||
t="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedC | ||||
ontent="" format="title" sectionFormat="of" target="name-security-considerations | ||||
">Security Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.11"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.11.1"><xref derivedConten | ||||
t="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedC | ||||
ontent="" format="title" sectionFormat="of" target="name-references">References< | ||||
/xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.11.2"> | ||||
<li pn="section-toc.1-1.11.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.11.2.1.1"><xref deriv | ||||
edContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>. < | ||||
xref derivedContent="" format="title" sectionFormat="of" target="name-normative- | ||||
references">Normative References</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.11.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.11.2.2.1"><xref deriv | ||||
edContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>. < | ||||
xref derivedContent="" format="title" sectionFormat="of" target="name-informativ | ||||
e-references">Informative References</xref></t> | ||||
</li> | ||||
</ul> | ||||
</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.a"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-acknowledgements">Ackn | ||||
owledgements</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.b"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-contributors">Contribu | ||||
tors</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.14"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.14.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-authors-addresses">Aut | ||||
hors' Addresses</xref></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
</toc> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | |||
<t>Segment Routing (SR) allows a flexible definition of end-to-end | <name slugifiedName="name-introduction">Introduction</name> | |||
<t pn="section-1-1">Segment Routing (SR) allows a flexible definition of e | ||||
nd-to-end | ||||
paths within IGP topologies by encoding paths as sequences of | paths within IGP topologies by encoding paths as sequences of | |||
topological sub-paths, called "segments". These segments are advertised | topological subpaths called "segments". These segments are advertised | |||
by the link-state routing protocols (IS-IS and OSPF). Prefix segments | by the link-state routing protocols (IS-IS and OSPF). Prefix segments | |||
represent an ECMP-aware shortest-path to a prefix (or a node), as per | represent an ECMP-aware shortest path to a prefix (or a node), as per | |||
the state of the IGP topology. Adjacency segments represent a hop over a | the state of the IGP topology. Adjacency segments represent a hop over a | |||
specific adjacency between two nodes in the IGP. A prefix segment is typic ally | specific adjacency between two nodes in the IGP. A prefix segment is typic ally | |||
a multi-hop path while an adjacency segment, in most cases, is a one-hop p ath. SR's | a multi-hop path while an adjacency segment, in most cases, is a one-hop p ath. SR's | |||
control-plane can be applied to both IPv6 and MPLS data-planes, and | control plane can be applied to both IPv6 and MPLS data planes, and it | |||
does not require any additional signalling (other than IGP extensions). | does not require any additional signaling (other than IGP extensions). | |||
The IPv6 data plane is out of the scope of this specification - it is not | The IPv6 data plane is out of the scope of this specification; it is not a | |||
applicable | pplicable | |||
to OSPFv2 which only supports the IPv4 address-family. When used in MPLS | to OSPFv2, which only supports the IPv4 address family. When used in MPLS | |||
networks, SR paths do not require any LDP or RSVP-TE signalling. However, | networks, SR paths do not require any LDP or RSVP-TE signaling. However, S | |||
SR can | R can | |||
interoperate in the presence of LSPs established with RSVP or LDP.</t> | interoperate in the presence of LSPs established with RSVP or LDP.</t> | |||
<t pn="section-1-2">There are additional segment types, e.g., Binding Segm | ||||
<t>There are additional segment types, e.g., Binding SID defined in <xref | ent Identifier (SID) defined in <xref target="RFC8402" format="default" sectionF | |||
target="I-D.ietf-spring-segment-routing"/>.</t> | ormat="of" derivedContent="RFC8402"/>.</t> | |||
<t pn="section-1-3">This document describes the OSPF extensions required f | ||||
<t>This draft describes the OSPF extensions required for Segment Routing.< | or Segment Routing.</t> | |||
/t> | <t pn="section-1-4">Segment Routing architecture is described in <xref tar | |||
get="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>.</t | ||||
<t>Segment Routing architecture is described in <xref | > | |||
target="I-D.ietf-spring-segment-routing"/>.</t> | <t pn="section-1-5">Segment Routing use cases are described in <xref targe | |||
t="RFC7855" format="default" sectionFormat="of" derivedContent="RFC7855"/>.</t> | ||||
<t>Segment Routing use cases are described in <xref target="RFC7855"/>.</t | <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1 | |||
> | "> | |||
<name slugifiedName="name-requirements-language">Requirements Language</ | ||||
name> | ||||
<t pn="section-1.1-1"> | ||||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOUL | ||||
D</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>N | ||||
OT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o | ||||
f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor | ||||
mat="of" derivedContent="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-2"> | ||||
<section title="Segment Routing Identifiers"> | <name slugifiedName="name-segment-routing-identifiers">Segment Routing Ide | |||
<t>Segment Routing defines various types of Segment Identifiers (SIDs): | ntifiers</name> | |||
Prefix-SID, Adjacency-SID, LAN Adjacency SID, and Binding SID.</t> | <t pn="section-2-1">Segment Routing defines various types of Segment Ident | |||
ifiers (SIDs): | ||||
<t>Extended Prefix/Link Opaque LSAs defined in <xref target="RFC7684"/> ar | Prefix-SID, Adjacency SID, LAN Adjacency SID, and Binding SID.</t> | |||
e used for | <t pn="section-2-2">Extended Prefix/Link Opaque Link State Advertisements | |||
(LSAs) defined in <xref target="RFC7684" format="default" sectionFormat="of" der | ||||
ivedContent="RFC7684"/> are used for | ||||
advertisements of the various SID types.</t> | advertisements of the various SID types.</t> | |||
<section anchor="SIDLABEL" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="SIDLABEL" title="SID/Label Sub-TLV"> | e" pn="section-2.1"> | |||
<t>The SID/Label Sub-TLV appears in multiple TLVs or Sub-TLVs defined | <name slugifiedName="name-sid-label-sub-tlv">SID/Label Sub-TLV</name> | |||
<t pn="section-2.1-1">The SID/Label Sub-TLV appears in multiple TLVs or | ||||
sub-TLVs defined | ||||
later in this document. It is used to advertise the SID or label | later in this document. It is used to advertise the SID or label | |||
associated with a prefix or adjacency. The SID/Label Sub-TLV has followi | associated with a prefix or adjacency. The SID/Label Sub-TLV has the fol | |||
ng | lowing | |||
format:<figure> | format:</t> | |||
<artwork> 0 1 2 | <artwork name="" type="" align="left" alt="" pn="section-2.1-2"> 0 | |||
3 | 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label (variable) | | | SID/Label (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | |||
<t pn="section-2.1-3">where:</t> | ||||
where: | <ul empty="true" bare="false" spacing="normal" pn="section-2.1-4"> | |||
</artwork> | <li pn="section-2.1-4.1"> | |||
</figure><list style="hanging"> | <dl newline="false" spacing="normal" pn="section-2.1-4.1.1"> | |||
<t>Type: 1</t> | <dt pn="section-2.1-4.1.1.1">Type:</dt> | |||
<dd pn="section-2.1-4.1.1.2">1</dd> | ||||
<t>Length: Variable, 3 or 4 octet</t> | <dt pn="section-2.1-4.1.1.3">Length:</dt> | |||
<dd pn="section-2.1-4.1.1.4">3 or 4 octets</dd> | ||||
<t>SID/Label: If length is set to 3, then the 20 rightmost bits | <dt pn="section-2.1-4.1.1.5">SID/Label:</dt> | |||
represent a label. If length is set to 4, then the value represents | <dd pn="section-2.1-4.1.1.6"> | |||
<t pn="section-2.1-4.1.1.6.1">If the length is set to 3, then th | ||||
e 20 rightmost bits | ||||
represent a label. If the length is set to 4, then the value represe | ||||
nts | ||||
a 32-bit SID.</t> | a 32-bit SID.</t> | |||
</dd> | ||||
<t>The receiving router MUST ignore the SID/Label Sub-TLV if the len | </dl> | |||
gth | </li> | |||
is other then 3 or 4.</t> | </ul> | |||
</list></t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="SRCAP" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="SRCAP" title="Segment Routing Capabilities"> | ="section-3"> | |||
<t>Segment Routing requires some additional router capabilities to be adve | <name slugifiedName="name-segment-routing-capabilitie">Segment Routing Cap | |||
rtised | abilities</name> | |||
<t pn="section-3-1">Segment Routing requires some additional router capabi | ||||
lities to be advertised | ||||
to other routers in the area.</t> | to other routers in the area.</t> | |||
<t pn="section-3-2">These SR capabilities are advertised in the Router Inf | ||||
<t>These SR capabilities are advertised in the Router Information Opaque L | ormation Opaque LSA | |||
SA | (defined in <xref target="RFC7770" format="default" sectionFormat="of" der | |||
(defined in <xref target="RFC7770"/>). The TLVs defined below are applicab | ivedContent="RFC7770"/>). The TLVs defined below are applicable to | |||
le to | ||||
both OSPFv2 and OSPFv3; see also | both OSPFv2 and OSPFv3; see also | |||
<xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/></t> | <xref target="RFC8666" format="default" sectionFormat="of" derivedContent | |||
="RFC8666"/>.</t> | ||||
<section anchor="SRALGO" title="SR-Algorithm TLV"> | <section anchor="SRALGO" numbered="true" toc="include" removeInRFC="false" | |||
<t>The SR-Algorithm TLV is a top-level TLV of the Router Information Opa | pn="section-3.1"> | |||
que LSA | <name slugifiedName="name-sr-algorithm-tlv">SR-Algorithm TLV</name> | |||
(defined in <xref target="RFC7770"/>).</t> | <t pn="section-3.1-1">The SR-Algorithm TLV is a top-level TLV of the Rou | |||
ter Information Opaque LSA | ||||
<t>The SR-Algorithm TLV is optional. It SHOULD only be advertised once | (defined in <xref target="RFC7770" format="default" sectionFormat="of" d | |||
erivedContent="RFC7770"/>).</t> | ||||
<t pn="section-3.1-2">The SR-Algorithm TLV is optional. It <bcp14>SHOULD | ||||
</bcp14> only be advertised once | ||||
in the Router Information Opaque LSA. If the SR-Algorithm TLV is not adv ertised | in the Router Information Opaque LSA. If the SR-Algorithm TLV is not adv ertised | |||
by the node, such node is considered as not being segment routing capabl | by the node, such a node is considered as not being Segment Routing capa | |||
e.</t> | ble.</t> | |||
<t pn="section-3.1-3"> An SR Router can use various algorithms when calc | ||||
<t> An SR Router can use various algorithms when calculating reachabilit | ulating reachability | |||
y | ||||
to OSPF routers or prefixes in an OSPF area. Examples of these algorithm s are | to OSPF routers or prefixes in an OSPF area. Examples of these algorithm s are | |||
metric based Shortest Path First (SPF), various flavors of Constrained S PF, etc. | metric-based Shortest Path First (SPF), various flavors of Constrained S PF, etc. | |||
The SR-Algorithm TLV allows a router to advertise the algorithms current ly used | The SR-Algorithm TLV allows a router to advertise the algorithms current ly used | |||
by the router to other routers in an OSPF area. The SR-Algorithm TLV has | by the router to other routers in an OSPF area. The SR-Algorithm TLV has | |||
following format: <figure> | the following format: </t> | |||
<artwork> | <artwork name="" type="" align="left" alt="" pn="section-3.1-4"> | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Algorithm 1 | Algorithm... | Algorithm n | | | | Algorithm 1 | Algorithm... | Algorithm n | | | |||
+- -+ | +- -+ | |||
| | | | | | |||
+ + | + + | |||
</artwork> | ||||
where:</artwork> | <t pn="section-3.1-5">where:</t> | |||
</figure><list style="hanging"> | <ul empty="true" bare="false" spacing="normal" pn="section-3.1-6"> | |||
<t>Type: 8</t> | <li pn="section-3.1-6.1"> | |||
<dl newline="false" spacing="normal" pn="section-3.1-6.1.1"> | ||||
<t>Variable, in octets, dependent on number of algorithms advertised | <dt pn="section-3.1-6.1.1.1">Type:</dt> | |||
.</t> | <dd pn="section-3.1-6.1.1.2">8</dd> | |||
<dt pn="section-3.1-6.1.1.3">Length:</dt> | ||||
<t> Algorithm: Single octet identifying the algorithm. The following | <dd pn="section-3.1-6.1.1.4">Variable, in octets, depending on the | |||
values are defined by this document:<list style="hanging"> | number of algorithms advertised</dd> | |||
<dt pn="section-3.1-6.1.1.5">Algorithm:</dt> | ||||
<t>0: Shortest Path First (SPF) algorithm based on link metric. | <dd pn="section-3.1-6.1.1.6"> | |||
This is | <t pn="section-3.1-6.1.1.6.1">Single octet identifying the algor | |||
the standard shortest path algorithm as computed by the OSPF pro | ithm. The following | |||
tocol. | values are defined by this document:</t> | |||
Consistent with the deployed practice for link-state protocols, | <dl newline="false" spacing="normal" indent="6" pn="section-3.1- | |||
Algorithm 0 | 6.1.1.6.2"> | |||
permits any node to overwrite the SPF path with a different path | <dt pn="section-3.1-6.1.1.6.2.1">0:</dt> | |||
based on | <dd pn="section-3.1-6.1.1.6.2.2">Shortest Path First (SPF) alg | |||
its local policy. If the SR-Algorithm TLV is advertised, Algorit | orithm based on link | |||
hm 0 | metric. This is the standard shortest path algorithm as computed | |||
MUST be included.</t> | by the OSPF protocol. Consistent with the deployed practice for | |||
link-state protocols, Algorithm 0 permits any node to overwrite | ||||
<t>1: Strict Shortest Path First (SPF) algorithm based on link m | the SPF path with a different path based on its local policy. If | |||
etric. | the SR-Algorithm TLV is advertised, Algorithm 0 | |||
The algorithm is identical to Algorithm 0 but Algorithm 1 requir | <bcp14>MUST</bcp14> be included.</dd> | |||
es that | <dt pn="section-3.1-6.1.1.6.2.3">1:</dt> | |||
<dd pn="section-3.1-6.1.1.6.2.4">Strict Shortest Path First (S | ||||
PF) algorithm based on link metric. | ||||
The algorithm is identical to Algorithm 0, but Algorithm 1 requi | ||||
res that | ||||
all nodes along the path will honor the SPF routing decision. Lo cal policy | all nodes along the path will honor the SPF routing decision. Lo cal policy | |||
at the node claiming support for Algorithm 1 MUST NOT alter the | at the node claiming support for Algorithm 1 <bcp14>MUST NOT</bc | |||
SPF paths computed by Algorithm 1.</t> | p14> alter the | |||
SPF paths computed by Algorithm 1.</dd> | ||||
</list></t> | </dl> | |||
</list></t> | </dd> | |||
</dl> | ||||
<t>When multiple SR-Algorithm TLVs are received from a given router, the | </li> | |||
receiver | </ul> | |||
MUST use the first occurrence of the TLV in the Router Information LSA. | <t pn="section-3.1-7">When multiple SR-Algorithm TLVs are received from | |||
If | a given router, | |||
the SR-Algorithm TLV appears in multiple Router Information LSAs that ha | the receiver <bcp14>MUST</bcp14> use the first occurrence of the TLV in | |||
ve | the Router | |||
different flooding scopes, the SR-Algorithm TLV in the Router Informatio | Information Opaque LSA. If the SR-Algorithm TLV appears in multiple Rout | |||
n LSA | er | |||
with the area-scoped flooding scope MUST be used. If the SR-Algorithm TL | Information Opaque LSAs that have different flooding scopes, the SR-Algo | |||
V appears | rithm | |||
in multiple Router Information LSAs that have the same flooding scope, t | TLV in the Router Information Opaque LSA with the area-scoped flooding s | |||
he | cope | |||
SR-Algorithm TLV in the Router Information (RI) LSA with the numerically | <bcp14>MUST</bcp14> be used. If the SR-Algorithm TLV appears in multiple | |||
smallest | Router | |||
Instance ID MUST be used and subsequent instances of the SR-Algorithm TL | Information Opaque LSAs that have the same flooding scope, the SR-Algori | |||
V | thm | |||
MUST be ignored.</t> | TLV in the Router Information (RI) Opaque LSA with the numerically small | |||
est | ||||
<t>The RI LSA can be advertised at any of the defined opaque flooding | Instance ID <bcp14>MUST</bcp14> be used and subsequent instances of the | |||
SR-Algorithm | ||||
TLV <bcp14>MUST</bcp14> be ignored.</t> | ||||
<t pn="section-3.1-8">The RI LSA can be advertised at any of the defined | ||||
opaque flooding | ||||
scopes (link, area, or Autonomous System (AS)). For the purpose of | scopes (link, area, or Autonomous System (AS)). For the purpose of | |||
SR-Algorithm TLV advertisement, area-scoped flooding is REQUIRED.</t> | SR-Algorithm TLV advertisement, area-scoped flooding is <bcp14>REQUIRED< /bcp14>.</t> | |||
</section> | </section> | |||
<section anchor="SIDRANGE" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="SIDRANGE" title="SID/Label Range TLV"> | e" pn="section-3.2"> | |||
<name slugifiedName="name-sid-label-range-tlv">SID/Label Range TLV</name | ||||
<t>Prefix SIDs MAY be advertised in a form of an index as described in | > | |||
<xref target="PREFIXSID"/>. Such index defines the offset in the SID/Lab | <t pn="section-3.2-1">Prefix-SIDs <bcp14>MAY</bcp14> be advertised in th | |||
el space | e form of an index as described in | |||
<xref target="PREFIXSID" format="default" sectionFormat="of" derivedCont | ||||
ent="Section 5"/>. Such an index defines the offset in the SID/Label space | ||||
advertised by the router. The SID/Label Range TLV is used to advertise s uch SID/Label | advertised by the router. The SID/Label Range TLV is used to advertise s uch SID/Label | |||
space.</t> | space.</t> | |||
<t pn="section-3.2-2">The SID/Label Range TLV is a top-level TLV of the | ||||
<t>The SID/Label Range TLV is a top-level TLV of the Router Information | Router Information | |||
Opaque LSA (defined in <xref target="RFC7770"/>).</t> | Opaque LSA (defined in <xref target="RFC7770" format="default" sectionFo | |||
rmat="of" derivedContent="RFC7770"/>).</t> | ||||
<t>The SID/Label Range TLV MAY appear multiple times and has the followi | <t pn="section-3.2-3">The SID/Label Range TLV <bcp14>MAY</bcp14> appear | |||
ng | multiple times and has the following | |||
format:<figure> | format:</t> | |||
<artwork> | <artwork name="" type="" align="left" alt="" pn="section-3.2-4"> | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Range Size | Reserved | | | Range Size | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
+- -+ | +- -+ | |||
| | | | | | |||
+ + | + +</artwork> | |||
<t pn="section-3.2-5">where:</t> | ||||
where:</artwork> | <ul empty="true" bare="false" spacing="normal" pn="section-3.2-6"> | |||
</figure><list style="hanging"> | <li pn="section-3.2-6.1"> | |||
<t>Type: 9</t> | <dl newline="false" spacing="normal" pn="section-3.2-6.1.1"> | |||
<dt pn="section-3.2-6.1.1.1">Type:</dt> | ||||
<t>Length: Variable, in octets, dependent on Sub-TLVs.</t> | <dd pn="section-3.2-6.1.1.2">9</dd> | |||
<dt pn="section-3.2-6.1.1.3">Length:</dt> | ||||
<t>Range Size: 3-octet SID/label range size (i.e., the number of SID | <dd pn="section-3.2-6.1.1.4">Variable, in octets, depending on the | |||
s or labels | sub-TLVs</dd> | |||
in the range including the first SID/label). It MUST be greater t | <dt pn="section-3.2-6.1.1.5">Range Size:</dt> | |||
han 0.</t> | <dd pn="section-3.2-6.1.1.6">3-octet SID/label range size (i.e., t | |||
he number of SIDs or labels | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | in the range including the first SID/label). It <bcp14>MUST</bcp1 | |||
on reception.</t> | 4> be greater than 0.</dd> | |||
</list></t> | <dt pn="section-3.2-6.1.1.7">Reserved:</dt> | |||
<dd pn="section-3.2-6.1.1.8"> | ||||
<t>Initially, the only supported Sub-TLV is the SID/Label Sub-TLV as def | <bcp14>SHOULD</bcp14> be set to 0 on transmission and <bcp14>MUS | |||
ined | T</bcp14> be ignored on reception</dd> | |||
in <xref target="SIDLABEL"/>. The SID/Label Sub-TLV MUST be included | </dl> | |||
</li> | ||||
</ul> | ||||
<t pn="section-3.2-7">Initially, the only supported sub-TLV is the SID/L | ||||
abel Sub-TLV as defined | ||||
in <xref target="SIDLABEL" format="default" sectionFormat="of" derivedCo | ||||
ntent="Section 2.1"/>. The SID/Label Sub-TLV <bcp14>MUST</bcp14> be included | ||||
in the SID/Label Range TLV. The SID/Label advertised in the SID/Label Su b-TLV | in the SID/Label Range TLV. The SID/Label advertised in the SID/Label Su b-TLV | |||
represents the first SID/Label in the advertised range. </t> | represents the first SID/Label in the advertised range. </t> | |||
<t pn="section-3.2-8">Only a single SID/Label Sub-TLV <bcp14>MAY</bcp14> | ||||
<t>Only a single SID/Label Sub-TLV MAY be advertised in SID/Label Range | be advertised in the SID/Label Range TLV. If more | |||
TLV. If more | than one SID/Label Sub-TLV is present, the SID/Label Range TLV <bcp14>MU | |||
then one SID/Label Sub-TLVs are present, the SID/Label Range TLV MUST be | ST</bcp14> be ignored.</t> | |||
ignored.</t> | <t pn="section-3.2-9">Multiple occurrences of the SID/Label Range TLV <b | |||
cp14>MAY</bcp14> be | ||||
<t>Multiple occurrences of the SID/Label Range TLV MAY be | advertised in order to advertise multiple ranges. In such a case:</t> | |||
advertised, in order to advertise multiple ranges. In such case:<list | <ul spacing="normal" bare="false" empty="false" pn="section-3.2-10"> | |||
style="symbols"> | <li pn="section-3.2-10.1">The originating router <bcp14>MUST</bcp14> e | |||
ncode each range into a different SID/Label | ||||
<t>The originating router MUST encode each range into a different SI | Range TLV. </li> | |||
D/Label | <li pn="section-3.2-10.2">The originating router decides the order in | |||
Range TLV. </t> | which the set of SID/Label | |||
<t>The originating router decides the order in which the set of SID/ | ||||
Label | ||||
Range TLVs are advertised inside the Router Information Opaque LSA. The | Range TLVs are advertised inside the Router Information Opaque LSA. The | |||
originating router MUST ensure the order is the same after a gracefu | originating router <bcp14>MUST</bcp14> ensure the order is the same | |||
l restart | after a graceful restart | |||
(using checkpointing, non-volatile storage, or any other mechanism) | (using checkpointing, nonvolatile storage, or any other mechanism) i | |||
in order | n order | |||
to assure the SID/label range and SID index correspondence is preser | to ensure the SID/Label range and SID index correspondence is preser | |||
ved | ved | |||
across graceful restarts.</t> | across graceful restarts.</li> | |||
<li pn="section-3.2-10.3"> The receiving router <bcp14>MUST</bcp14> ad | ||||
<t> The receiving router MUST adhere to the order in which the range | here to the order in which the ranges are | |||
s are | advertised when calculating a SID/Label from a SID index.</li> | |||
advertised when calculating a SID/label from a SID index.</t> | <li pn="section-3.2-10.4">The originating router <bcp14>MUST NOT</bcp1 | |||
4> advertise overlapping ranges.</li> | ||||
<t>The originating router MUST NOT advertise overlapping ranges.</t> | <li pn="section-3.2-10.5">When a router receives multiple overlapping | |||
ranges, it <bcp14>MUST</bcp14> conform | ||||
<t>When a router receives multiple overlapping ranges, it MUST confo | to the procedures defined in <xref target="RFC8660" format="defau | |||
rm | lt" sectionFormat="of" derivedContent="RFC8660"/>.</li> | |||
to the procedures defined in <xref target="I-D.ietf-spring-segmen | </ul> | |||
t-routing-mpls"/>.</t> | <t pn="section-3.2-11">The following example illustrates the advertiseme | |||
</list></t> | nt of multiple ranges.</t> | |||
<t pn="section-3.2-12">The originating router advertises the following r | ||||
<t>The following example illustrates the advertisement of multiple range | anges:</t> | |||
s:<figure | <artwork name="" type="" align="left" alt="" pn="section-3.2-13"> | |||
suppress-title="true"> | ||||
<artwork> | ||||
The originating router advertises the following ranges: | ||||
Range 1: Range Size: 100 SID/Label Sub-TLV: 100 | Range 1: Range Size: 100 SID/Label Sub-TLV: 100 | |||
Range 1: Range Size: 100 SID/Label Sub-TLV: 1000 | Range 1: Range Size: 100 SID/Label Sub-TLV: 1000 | |||
Range 1: Range Size: 100 SID/Label Sub-TLV: 500 | Range 1: Range Size: 100 SID/Label Sub-TLV: 500</artwork> | |||
<t pn="section-3.2-14">The receiving routers concatenate the ranges and | ||||
The receiving routers concatenate the ranges and build the Segment | build the Segment | |||
Routing Global Block (SRGB) as follows: | Routing Global Block (SRGB) as follows:</t> | |||
<artwork name="" type="" align="left" alt="" pn="section-3.2-15"> | ||||
SRGB = [100, 199] | SRGB = [100, 199] | |||
[1000, 1099] | [1000, 1099] | |||
[500, 599] | [500, 599]</artwork> | |||
<t pn="section-3.2-16">The indexes span multiple ranges:</t> | ||||
The indexes span multiple ranges: | <artwork name="" type="" align="left" alt="" pn="section-3.2-17"> | |||
index 0 means label 100 | ||||
index=0 means label 100 | ||||
... | ... | |||
index 99 means label 199 | index 99 means label 199 | |||
index 100 means label 1000 | index 100 means label 1000 | |||
index 199 means label 1099 | index 199 means label 1099 | |||
... | ... | |||
index 200 means label 500 | index 200 means label 500 | |||
... | ...</artwork> | |||
</artwork> | <t pn="section-3.2-18">The RI LSA can be advertised at any of the define | |||
</figure></t> | d flooding scopes | |||
<t>The RI LSA can be advertised at any of the defined flooding scopes | ||||
(link, area, or autonomous system (AS)). For the purpose of | (link, area, or autonomous system (AS)). For the purpose of | |||
SID/Label Range TLV advertisement, area-scoped flooding is REQUIRED.</t> | SID/Label Range TLV advertisement, area-scoped flooding is <bcp14>REQUIR ED</bcp14>.</t> | |||
</section> | </section> | |||
<section anchor="SRLB" numbered="true" toc="include" removeInRFC="false" p | ||||
<section anchor="SRLB" title="SR Local Block TLV"> | n="section-3.3"> | |||
<name slugifiedName="name-sr-local-block-tlv">SR Local Block TLV</name> | ||||
<t>The SR Local Block TLV (SRLB TLV) contains the range of labels the | <t pn="section-3.3-1">The SR Local Block TLV (SRLB TLV) contains the ran | |||
node has reserved for local SIDs. SIDs from the SRLB MAY be used | ge of labels the | |||
for | node has reserved for Local SIDs. SIDs from the SRLB <bcp14>MAY</ | |||
Adjacency-SIDs, but also by components other than the OSPF protoc | bcp14> be used for | |||
ol. | Adjacency SIDs but also by components other than the OSPF protoco | |||
l. | ||||
As an example, an application or a controller can instruct the ro uter | As an example, an application or a controller can instruct the ro uter | |||
to allocate a specific local SID. Some controllers or application | to allocate a specific Local SID. Some controllers or application | |||
s can | s can | |||
use the control plane to discover the available set of local SIDs | use the control plane to discover the available set of Local SIDs | |||
on | on | |||
a particular router. In such cases, the SRLB is advertised in the control plane. | a particular router. In such cases, the SRLB is advertised in the control plane. | |||
The requirement to advertise the SRLB is further described in | The requirement to advertise the SRLB is further described in | |||
<xref target="I-D.ietf-spring-segment-routing-mpls"/>. | <xref target="RFC8660" format="default" sectionFormat="of" derive dContent="RFC8660"/>. | |||
The SRLB TLV is used to advertise the SRLB.</t> | The SRLB TLV is used to advertise the SRLB.</t> | |||
<t pn="section-3.3-2">The SRLB TLV is a top-level TLV of the Router Info | ||||
<t>The SRLB TLV is a top-level TLV of the Router Information | rmation | |||
Opaque LSA (defined in <xref target="RFC7770"/>).</t> | Opaque LSA (defined in <xref target="RFC7770" format="default" sectionFo | |||
rmat="of" derivedContent="RFC7770"/>).</t> | ||||
<t>The SRLB TLV MAY appear multiple times in the Router Information | <t pn="section-3.3-3">The SRLB TLV <bcp14>MAY</bcp14> appear multiple ti | |||
Opaque LSA and has the following format:<figure> | mes in the Router Information | |||
<artwork> | Opaque LSA and has the following format:</t> | |||
<artwork name="" type="" align="left" alt="" pn="section-3.3-4"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Range Size | Reserved | | | Range Size | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
+- -+ | +- -+ | |||
| | | | | | |||
+ + | + +</artwork> | |||
<t pn="section-3.3-5">where:</t> | ||||
where:</artwork> | <ul empty="true" bare="false" spacing="normal" pn="section-3.3-6"> | |||
</figure> | <li pn="section-3.3-6.1"> | |||
<list style="hanging"> | <dl newline="false" spacing="normal" pn="section-3.3-6.1.1"> | |||
<t>Type: 14</t> | <dt pn="section-3.3-6.1.1.1">Type:</dt> | |||
<dd pn="section-3.3-6.1.1.2">14</dd> | ||||
<t>Length: Variable, in octets, dependent on Sub-TLVs.</t> | <dt pn="section-3.3-6.1.1.3">Length:</dt> | |||
<dd pn="section-3.3-6.1.1.4">Variable, in octets, depending on the | ||||
<t>Range Size: 3-octet SID/label range size (i.e., the number of SID | sub-TLVs</dd> | |||
s or labels | <dt pn="section-3.3-6.1.1.5">Range Size:</dt> | |||
in the range including the first SID/label). It MUST be greater t | <dd pn="section-3.3-6.1.1.6">3-octet SID/Label range size (i.e., t | |||
han 0.</t> | he number of SIDs or labels | |||
in the range including the first SID/Label). It <bcp14>MUST</bcp1 | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | 4> be greater than 0.</dd> | |||
on reception.</t> | <dt pn="section-3.3-6.1.1.7">Reserved:</dt> | |||
</list></t> | <dd pn="section-3.3-6.1.1.8"> | |||
<bcp14>SHOULD</bcp14> be set to 0 on transmission and <bcp14>MUS | ||||
<t>Initially, the only supported Sub-TLV is the SID/Label Sub-TLV as def | T</bcp14> be ignored on reception</dd> | |||
ined | </dl> | |||
in <xref target="SIDLABEL"/>. The SID/Label Sub-TLV MUST be included | </li> | |||
</ul> | ||||
<t pn="section-3.3-7">Initially, the only supported sub-TLV is the SID/L | ||||
abel Sub-TLV as defined | ||||
in <xref target="SIDLABEL" format="default" sectionFormat="of" derivedCo | ||||
ntent="Section 2.1"/>. The SID/Label Sub-TLV <bcp14>MUST</bcp14> be included | ||||
in the SRLB TLV. The SID/Label advertised in the SID/Label Sub-TLV repre sents | in the SRLB TLV. The SID/Label advertised in the SID/Label Sub-TLV repre sents | |||
the first SID/Label in the advertised range.</t> | the first SID/Label in the advertised range.</t> | |||
<t pn="section-3.3-8">Only a single SID/Label Sub-TLV <bcp14>MAY</bcp14> | ||||
<t>Only a single SID/Label Sub-TLV MAY be advertised in the SRLB TLV. If | be advertised in the SRLB TLV. If more | |||
more | than one SID/Label Sub-TLV is present, the SRLB TLV <bcp14>MUST</bcp14> | |||
then one SID/Label Sub-TLVs are present, the SRLB TLV MUST be ignored.</ | be ignored.</t> | |||
t> | <t pn="section-3.3-9">The originating router <bcp14>MUST NOT</bcp14> adv | |||
ertise overlapping ranges.</t> | ||||
<t>The originating router MUST NOT advertise overlapping ranges.</t> | <t pn="section-3.3-10">Each time a SID from the SRLB is allocated, it <b | |||
cp14>SHOULD</bcp14> also be reported to all | ||||
<t>Each time a SID from the SRLB is allocated, it SHOULD also be reporte | ||||
d to all | ||||
components (e.g., controller or applications) in order for these components to | components (e.g., controller or applications) in order for these components to | |||
have an up-to-date view of the current SRLB allocation. This is r equired to avoid | have an up-to-date view of the current SRLB allocation. This is r equired to avoid | |||
collisions between allocation instructions.</t> | collisions between allocation instructions.</t> | |||
<t pn="section-3.3-11">Within the context of OSPF, the reporting of Loca | ||||
<t>Within the context of OSPF, the reporting of local SIDs is don | l SIDs is done through | |||
e through | OSPF sub-TLVs, such as the Adjacency SID (<xref target="ADJSID" f | |||
OSPF Sub-TLVs such as the Adjacency-SID (<xref target="ADJSID"/>) | ormat="default" sectionFormat="of" derivedContent="Section 6"/>). However, | |||
. However, | the reporting of allocated Local SIDs can also be done through ot | |||
the reporting of allocated local SIDs can also be done through ot | her means | |||
her means | and protocols, which are outside the scope of this document.</t> | |||
and protocols which are outside the scope of this document.</t> | <t pn="section-3.3-12">A router advertising the SRLB TLV <bcp14>MAY</bcp | |||
14> also have other label ranges, outside | ||||
<t>A router advertising the SRLB TLV MAY also have other label ra | of the SRLB, used for its local allocation purposes and not adver | |||
nges, outside | tised in | |||
of the SRLB, used for its local allocation purposes which are not | the SRLB TLV. For example, it is possible that an Adjacency SID i | |||
advertised in | s allocated using | |||
the SRLB TLV. For example, it is possible that an Adjacency-SID i | ||||
s allocated using | ||||
a local label that is not part of the SRLB.</t> | a local label that is not part of the SRLB.</t> | |||
<t pn="section-3.3-13">The RI LSA can be advertised at any of the define | ||||
<t>The RI LSA can be advertised at any of the defined flooding scopes | d flooding scopes | |||
(link, area, or autonomous system (AS)). For the purpose of | (link, area, or autonomous system (AS)). For the purpose of | |||
SRLB TLV advertisement, area-scoped flooding is REQUIRED.</t> | SRLB TLV advertisement, area-scoped flooding is <bcp14>REQUIRED</bcp14> | |||
</section> | .</t> | |||
</section> | ||||
<section anchor="SRMS-Pref" title="SRMS Preference TLV"> | <section anchor="SRMS-Pref" numbered="true" toc="include" removeInRFC="fal | |||
se" pn="section-3.4"> | ||||
<t>The Segment Routing Mapping Server Preference TLV (SRMS Preference TLV) | <name slugifiedName="name-srms-preference-tlv">SRMS Preference TLV</name | |||
is used to | > | |||
<t pn="section-3.4-1">The Segment Routing Mapping Server Preference TLV | ||||
(SRMS Preference TLV) is used to | ||||
advertise a preference associated with the node that acts as an SR Mapping Server. | advertise a preference associated with the node that acts as an SR Mapping Server. | |||
The role of an SRMS is described in <xref target="I-D.ietf-spring-segment- routing-ldp-interop"/>. | The role of an SRMS is described in <xref target="RFC8661" format="default " sectionFormat="of" derivedContent="RFC8661"/>. | |||
SRMS preference is defined in | SRMS preference is defined in | |||
<xref target="I-D.ietf-spring-segment-routing-ldp-interop"/>.</t> | <xref target="RFC8661" format="default" sectionFormat="of" derivedContent= | |||
"RFC8661"/>.</t> | ||||
<t>The SRMS Preference TLV is a top-level TLV of the | <t pn="section-3.4-2">The SRMS Preference TLV is a top-level TLV of the | |||
Router Information Opaque LSA (defined in <xref target="RFC7770"/>).</t> | Router Information Opaque LSA (defined in <xref target="RFC7770" format="d | |||
efault" sectionFormat="of" derivedContent="RFC7770"/>).</t> | ||||
<t>The SRMS Preference TLV MAY only be advertised | <t pn="section-3.4-3">The SRMS Preference TLV <bcp14>MAY</bcp14> only be | |||
once in the Router Information Opaque LSA and has the following format: | advertised | |||
<figure> | once in the Router Information Opaque LSA and has the following format: | |||
<artwork> | </t> | |||
<artwork name="" type="" align="left" alt="" pn="section-3.4-4"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Preference | Reserved | | | Preference | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | |||
<t pn="section-3.4-5">where:</t> | ||||
where:</artwork> | <ul empty="true" bare="false" spacing="normal" pn="section-3.4-6"> | |||
</figure> | <li pn="section-3.4-6.1"> | |||
<list style="hanging"> | <dl newline="false" spacing="normal" pn="section-3.4-6.1.1"> | |||
<t>Type: 15</t> | <dt pn="section-3.4-6.1.1.1">Type:</dt> | |||
<dd pn="section-3.4-6.1.1.2">15</dd> | ||||
<t>Length: 4 octets</t> | <dt pn="section-3.4-6.1.1.3">Length:</dt> | |||
<dd pn="section-3.4-6.1.1.4">4 octets</dd> | ||||
<t>Preference: 1 octet. SRMS preference value from 0 to 255.</t> | <dt pn="section-3.4-6.1.1.5">Preference:</dt> | |||
<dd pn="section-3.4-6.1.1.6">1 octet, with an SRMS preference valu | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | e from 0 to 255</dd> | |||
on reception.</t> | <dt pn="section-3.4-6.1.1.7">Reserved:</dt> | |||
</list></t> | <dd pn="section-3.4-6.1.1.8"> | |||
<bcp14>SHOULD</bcp14> be set to 0 on transmission and <bcp14>MUS | ||||
<t>When multiple SRMS Preference TLVs are received from a given router, the | T</bcp14> be ignored on reception</dd> | |||
receiver | </dl> | |||
MUST use the first occurrence of the TLV in the Router Information LSA. If t | </li> | |||
he | </ul> | |||
SRMS Preference TLV appears in multiple Router Information LSAs that have di | <t pn="section-3.4-7">When multiple SRMS Preference TLVs are received fr | |||
fferent | om a given router, the receiver | |||
flooding scopes, the SRMS Preference TLV in the Router Information LSA with | <bcp14>MUST</bcp14> use the first occurrence of the TLV in the Router | |||
the | Information Opaque LSA. If the | |||
narrowest flooding scope MUST be used. If the SRMS Preference TLV appears in | SRMS Preference TLV appears in multiple Router Information Opaque LSAs that | |||
multiple Router Information LSAs that have the same flooding scope, the SRMS | have different | |||
Preference TLV in the Router Information LSA with the numerically smallest I | flooding scopes, the SRMS Preference TLV in the Router Information Opaque LS | |||
nstance ID | A with the | |||
MUST be used and subsequent instances of the SRMS Preference TLV MUST be ign | narrowest flooding scope <bcp14>MUST</bcp14> be used. If the SRMS Preference | |||
ored.</t> | TLV appears in | |||
multiple Router Information Opaque LSAs that have the same flooding scope, t | ||||
<t>The RI LSA can be advertised at any of the defined flooding scopes (li | he SRMS | |||
nk, area, | Preference TLV in the Router Information Opaque LSA with the numerically sma | |||
llest Instance ID | ||||
<bcp14>MUST</bcp14> be used and subsequent instances of the SRMS Preference | ||||
TLV <bcp14>MUST</bcp14> be ignored.</t> | ||||
<t pn="section-3.4-8">The RI LSA can be advertised at any of the defined | ||||
flooding scopes (link, area, | ||||
or autonomous system (AS)). For the purpose of the SRMS | or autonomous system (AS)). For the purpose of the SRMS | |||
Preference TLV advertisement, AS-scoped flooding SHOULD be used. This is | Preference TLV advertisement, AS-scoped flooding <bcp14>SHOULD</bcp14> be | |||
because SRMS | used. This is because SRMS | |||
servers can be located in a different area then consumers of the SRMS adv | servers can be located in a different area than consumers of the SRMS adv | |||
ertisements. | ertisements. | |||
If the SRMS advertisements from the SRMS server are only used inside the SRMS server's | If the SRMS advertisements from the SRMS server are only used inside the SRMS server's | |||
area, area-scoped flooding MAY be used.</t> | area, area-scoped flooding <bcp14>MAY</bcp14> be used.</t> | |||
</section> | ||||
</section> | </section> | |||
<section anchor="PFXRANGE" numbered="true" toc="include" removeInRFC="false" | ||||
</section> | pn="section-4"> | |||
<name slugifiedName="name-ospf-extended-prefix-range-">OSPF Extended Prefi | ||||
<section anchor="PFXRANGE" title="OSPF Extended Prefix Range TLV"> | x Range TLV</name> | |||
<t>In some cases it is useful to advertise attributes for a range of prefi | <t pn="section-4-1">In some cases, it is useful to advertise attributes fo | |||
xes. | r a range of | |||
The Segment Routing Mapping Server, which is described in | prefixes. The SR Mapping Server, which is described in <xref target="RFC8 | |||
<xref target="I-D.ietf-spring-segment-routing-ldp-interop"/>, is an exa | 661" format="default" sectionFormat="of" derivedContent="RFC8661"/>, is an examp | |||
mple | le where we need a | |||
where we need a single advertisement to advertise SIDs for multiple pre | single advertisement to advertise SIDs for multiple prefixes from a | |||
fixes from a | contiguous address range.</t> | |||
contiguous address range.</t> | <t pn="section-4-2">The OSPF Extended Prefix Range TLV, which is a top-lev | |||
el TLV of the | ||||
<t>The OSPF Extended Prefix Range TLV, which is a top level TLV of the Ext | Extended Prefix LSA described in <xref target="RFC7684" format="default" s | |||
ended | ectionFormat="of" derivedContent="RFC7684"/> is defined for this purpose.</t> | |||
Prefix LSA described in <xref target="RFC7684"/> is defined for this purpo | <t pn="section-4-3">Multiple OSPF Extended Prefix Range TLVs <bcp14>MAY</b | |||
se.</t> | cp14> be | |||
advertised in each OSPF Extended Prefix Opaque LSA, but all prefix | ||||
<t>Multiple OSPF Extended Prefix Range TLVs MAY be advertised in each OSPF | ranges included in a single OSPF Extended Prefix Opaque LSA | |||
Extended Prefix Opaque LSA, but all prefix ranges included in a single OSP | <bcp14>MUST</bcp14> have the same flooding scope. The OSPF Extended | |||
F Extended | Prefix Range TLV has the following format:</t> | |||
Prefix Opaque LSA MUST have the same flooding scope. The OSPF Extended Pre | <artwork name="" type="" align="left" alt="" pn="section-4-4"> | |||
fix Range | ||||
TLV has the following format: <figure> | ||||
<artwork> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Prefix Length | AF | Range Size | | | Prefix Length | AF | Range Size | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Address Prefix (variable) | | | Address Prefix (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
+- -+ | +- -+ | |||
| | | | | | |||
</artwork> | ||||
where: </artwork> | <t pn="section-4-5">where:</t> | |||
</figure><list style="hanging"> | <ul empty="true" bare="false" spacing="normal" pn="section-4-6"> | |||
<t>Type: 2</t> | <li pn="section-4-6.1"> | |||
<dl newline="false" spacing="normal" pn="section-4-6.1.1"> | ||||
<t>Length: Variable, in octets, dependent on Sub-TLVs.</t> | <dt pn="section-4-6.1.1.1">Type:</dt> | |||
<dd pn="section-4-6.1.1.2">2</dd> | ||||
<t>Prefix length: Length of prefix in bits.</t> | <dt pn="section-4-6.1.1.3">Length:</dt> | |||
<dd pn="section-4-6.1.1.4">Variable, in octets, depending on the sub | ||||
<t>AF: Address family for the prefix. Currently, the only supported | -TLVs</dd> | |||
value is 0 for IPv4 unicast. The inclusion of address family in | <dt pn="section-4-6.1.1.5">Prefix Length:</dt> | |||
this TLV allows for future extension.</t> | <dd pn="section-4-6.1.1.6">Length of prefix in bits</dd> | |||
<dt pn="section-4-6.1.1.7">AF:</dt> | ||||
<t>Range size: Represents the number of prefixes that are covered by | <dd pn="section-4-6.1.1.8">Address family for the prefix. Currently | |||
the | , the only supported | |||
advertisement. The Range Size MUST NOT exceed the number of | value is 0 for IPv4 unicast. The inclusion of address family in this | |||
prefixes that could be satisfied by the prefix length wit | TLV allows for future extension.</dd> | |||
hout | <dt pn="section-4-6.1.1.9">Range Size:</dt> | |||
including the IPv4 multicast address range (224.0.0.0/3). | <dd pn="section-4-6.1.1.10">Represents the number of prefixes that a | |||
</t> | re covered by the | |||
advertisement. The Range Size <bcp14>MUST NOT</bcp14> exceed the | ||||
<t>Flags: Single octet field. The following flags are def | number of prefixes that could be satisfied by the Prefix Length | |||
ined: <figure | without including the IPv4 multicast address range (224.0.0.0/3).</dd> | |||
align="center"> | <dt pn="section-4-6.1.1.11">Flags:</dt> | |||
<artwork> | <dd pn="section-4-6.1.1.12"> | |||
<t pn="section-4-6.1.1.12.1">Single-octet field. The following fla | ||||
0 1 2 3 4 5 6 7 | gs are defined:</t> | |||
+--+--+--+--+--+--+--+--+ | <artwork name="" type="" align="left" alt="" pn="section-4-6.1.1.1 | |||
|IA| | | | | | | | | 2.2"> | |||
+--+--+--+--+--+--+--+--+ | 0 1 2 3 4 5 6 7 | |||
+--+--+--+--+--+--+--+--+ | ||||
where:</artwork> | |IA| | | | | | | | | |||
</figure><list style="hanging"> | +--+--+--+--+--+--+--+--+</artwork> | |||
<t>IA-Flag: Inter-Area flag. If set, advertisement is of inter-a | <t pn="section-4-6.1.1.12.3">where:</t> | |||
rea type. | <ul empty="true" bare="false" spacing="normal" pn="section-4-6.1.1 | |||
An ABR that is advertising the OSPF Extended Prefix Range TLV be | .12.4"> | |||
tween areas | <li pn="section-4-6.1.1.12.4.1"> | |||
MUST set this bit. </t> | <dl newline="false" spacing="normal" pn="section-4-6.1.1.12.4. | |||
1.1"> | ||||
<t>This bit is used to prevent redundant flooding of Prefix Rang | <dt pn="section-4-6.1.1.12.4.1.1.1">IA-Flag:</dt> | |||
e TLVs | <dd pn="section-4-6.1.1.12.4.1.1.2"> | |||
between areas as follows: | <t pn="section-4-6.1.1.12.4.1.1.2.1">Inter-Area Flag. If s | |||
<list style="hanging"> | et, advertisement is of | |||
inter-area type. An Area Border Router (ABR) that is | ||||
<t> An ABR only propagates an inter-area Prefix Range advertisem | advertising the OSPF Extended Prefix Range TLV between areas | |||
ent from | <bcp14>MUST</bcp14> set this bit. | |||
the backbone area to connected non-backbone areas if the adverti | </t> | |||
sement | <t pn="section-4-6.1.1.12.4.1.1.2.2">This bit is used to p | |||
is considered to be the best one. The following rules are used t | revent redundant flooding of Prefix | |||
o select the | Range TLVs between areas as follows:</t> | |||
best range from the set of advertisements for the same Prefix R | <ul empty="true" bare="false" spacing="normal" pn="section | |||
ange: | -4-6.1.1.12.4.1.1.2.3"> | |||
<list style="hanging"> | <li pn="section-4-6.1.1.12.4.1.1.2.3.1"> | |||
<t pn="section-4-6.1.1.12.4.1.1.2.3.1.1"> | ||||
<t> An ABR always prefers intra-area Prefix Range advertisem | An ABR only propagates an inter-area Prefix Range | |||
ents over | advertisement from the backbone area to connected | |||
inter-area advertisements.</t> | nonbackbone areas if the advertisement is considered | |||
to be the best one. The following rules are used to | ||||
<t> An ABR does not consider inter-area Prefix Range adverti | select the best range from the set of advertisements | |||
sements coming | for the same Prefix Range:</t> | |||
from non-backbone areas.</t> | <ul empty="true" bare="false" spacing="normal" pn="sec | |||
tion-4-6.1.1.12.4.1.1.2.3.1.2"> | ||||
</list></t> | <li pn="section-4-6.1.1.12.4.1.1.2.3.1.2.1">An ABR a | |||
</list></t> | lways prefers intra-area Prefix Range | |||
</list></t> | advertisements over inter-area advertisements.</li> | |||
<li pn="section-4-6.1.1.12.4.1.1.2.3.1.2.2">An ABR d | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | oes not consider inter-area Prefix Range | |||
on reception.</t> | advertisements coming from nonbackbone areas.</li> | |||
</ul> | ||||
<t>Address Prefix: For the address family IPv4 unicast, the prefix i | </li> | |||
tself is | </ul> | |||
encoded as a 32-bit value. The default route is represented by a | </dd> | |||
prefix of | </dl> | |||
length 0. Prefix encoding for other address families is beyond th | </li> | |||
e scope of | </ul> | |||
this specification.</t> | </dd> | |||
</list></t> | <dt pn="section-4-6.1.1.13">Reserved:</dt> | |||
<dd pn="section-4-6.1.1.14"> | ||||
<bcp14>SHOULD</bcp14> be set to 0 on transmission and | ||||
<bcp14>MUST</bcp14> be ignored on reception</dd> | ||||
<dt pn="section-4-6.1.1.15">Address Prefix:</dt> | ||||
<dd pn="section-4-6.1.1.16">For the address family IPv4 unicast, the | ||||
prefix itself is | ||||
encoded as a 32-bit value. The default route is represented by | ||||
a prefix of length 0. Prefix encoding for other address | ||||
families is beyond the scope of this specification.</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
</section> | </section> | |||
<section anchor="PREFIXSID" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="PREFIXSID" title="Prefix SID Sub-TLV"> | " pn="section-5"> | |||
<t>The Prefix SID Sub-TLV is a Sub-TLV of the OSPF Extended Prefix TLV des | <name slugifiedName="name-prefix-sid-sub-tlv">Prefix-SID Sub-TLV</name> | |||
cribed | <t pn="section-5-1">The Prefix-SID Sub-TLV is a sub-TLV of the OSPF Extend | |||
in <xref target="RFC7684"/> and the OSPF Extended Prefix Range | ed Prefix TLV described | |||
TLV described in <xref target="PFXRANGE"/>. It MAY appear more than once i | in <xref target="RFC7684" format="default" sectionFormat="of" derivedConte | |||
n the | nt="RFC7684"/> and the OSPF Extended Prefix Range | |||
parent TLV and has the following format: <figure> | TLV described in <xref target="PFXRANGE" format="default" sectionFormat="o | |||
<artwork> | f" derivedContent="Section 4"/>. It <bcp14>MAY</bcp14> appear more than once in | |||
the | ||||
parent TLV and has the following format: </t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-5-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | MT-ID | Algorithm | | | Flags | Reserved | MT-ID | Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Index/Label (variable) | | | SID/Index/Label (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork> | |||
<t pn="section-5-3">where:</t> | ||||
where:</artwork> | <ul empty="true" bare="false" spacing="normal" pn="section-5-4"> | |||
</figure><list style="hanging"> | <li pn="section-5-4.1"> | |||
<t>Type: 2</t> | <dl newline="false" spacing="normal" pn="section-5-4.1.1"> | |||
<dt pn="section-5-4.1.1.1">Type:</dt> | ||||
<t>Length: 7 or 8 octets, dependent on the V-flag</t> | <dd pn="section-5-4.1.1.2">2</dd> | |||
<dt pn="section-5-4.1.1.3">Length:</dt> | ||||
<t>Flags: Single octet field. The following flags are defined: <figu | <dd pn="section-5-4.1.1.4">7 or 8 octets, depending on the V-Flag</d | |||
re | d> | |||
align="center"> | <dt pn="section-5-4.1.1.5">Flags:</dt> | |||
<artwork> | <dd pn="section-5-4.1.1.6"> | |||
<t pn="section-5-4.1.1.6.1">Single-octet field. The following flag | ||||
0 1 2 3 4 5 6 7 | s are defined: </t> | |||
+--+--+--+--+--+--+--+--+ | <artwork name="" type="" align="left" alt="" pn="section-5-4.1.1.6 | |||
| |NP|M |E |V |L | | | | .2"> | |||
+--+--+--+--+--+--+--+--+ | 0 1 2 3 4 5 6 7 | |||
+--+--+--+--+--+--+--+--+ | ||||
where:</artwork> | | |NP|M |E |V |L | | | | |||
</figure><list style="hanging"> | +--+--+--+--+--+--+--+--+</artwork> | |||
<t pn="section-5-4.1.1.6.3">where:</t> | ||||
<t>NP-Flag: No-PHP flag. If set, then the penultimate hop MUST | <ul empty="true" bare="false" spacing="normal" pn="section-5-4.1.1 | |||
NOT pop the Prefix-SID before delivering packets to the | .6.4"> | |||
node that advertised the Prefix-SID.</t> | <li pn="section-5-4.1.1.6.4.1"> | |||
<dl newline="false" spacing="normal" pn="section-5-4.1.1.6.4.1 | ||||
<t>M-Flag: Mapping Server Flag. If set, the SID was advertised | .1"> | |||
by a Segment Routing Mapping Server as described in | <dt pn="section-5-4.1.1.6.4.1.1.1">NP-Flag:</dt> | |||
<xref target="I-D.ietf-spring-segment-routing-ldp-interop"/>.</t | <dd pn="section-5-4.1.1.6.4.1.1.2">No-PHP (Penultimate Hop P | |||
> | opping) Flag. If set, then the | |||
penultimate hop <bcp14>MUST NOT</bcp14> pop the Prefix-SID before | ||||
<t>E-Flag: Explicit-Null Flag. If set, any upstream neighbor | delivering packets to the node that advertised the | |||
of the Prefix-SID originator MUST replace the Prefix-SID with | Prefix-SID.</dd> | |||
the Explicit-NULL label (0 for IPv4) before forwarding the packe | <dt pn="section-5-4.1.1.6.4.1.1.3">M-Flag:</dt> | |||
t.</t> | <dd pn="section-5-4.1.1.6.4.1.1.4">Mapping Server Flag. If | |||
set, the SID was advertised | ||||
<t>V-Flag: Value/Index Flag. If set, then the Prefix-SID | by an SR Mapping Server as described in | |||
<xref target="RFC8661" format="default" sectionFormat="of" deriv | ||||
edContent="RFC8661"/>.</dd> | ||||
<dt pn="section-5-4.1.1.6.4.1.1.5">E-Flag:</dt> | ||||
<dd pn="section-5-4.1.1.6.4.1.1.6">Explicit Null Flag. If se | ||||
t, any upstream neighbor of the | ||||
Prefix-SID originator <bcp14>MUST</bcp14> replace the Prefix-SID | ||||
with the Explicit NULL label (0 for IPv4) before forwarding the | ||||
packet.</dd> | ||||
<dt pn="section-5-4.1.1.6.4.1.1.7">V-Flag:</dt> | ||||
<dd pn="section-5-4.1.1.6.4.1.1.8">Value/Index Flag. If set, | ||||
then the Prefix-SID | ||||
carries an absolute value. If not set, then the Prefix-SID carri es | carries an absolute value. If not set, then the Prefix-SID carri es | |||
an index.</t> | an index.</dd> | |||
<dt pn="section-5-4.1.1.6.4.1.1.9">L-Flag:</dt> | ||||
<t>L-Flag: Local/Global Flag. If set, then the value/index | <dd pn="section-5-4.1.1.6.4.1.1.10">Local/Global Flag. If se | |||
t, then the value/index | ||||
carried by the Prefix-SID has local significance. If not set, th en | carried by the Prefix-SID has local significance. If not set, th en | |||
the value/index carried by this Sub-TLV has global significance. | the value/index carried by this sub-TLV has global significance. | |||
</t> | </dd> | |||
<dt pn="section-5-4.1.1.6.4.1.1.11">Other bits:</dt> | ||||
<t>Other bits: Reserved. These MUST be zero when sent and are ig | <dd pn="section-5-4.1.1.6.4.1.1.12">Reserved. These <bcp14>M | |||
nored when | UST</bcp14> be zero when sent and are | |||
received.</t> | ignored when received.</dd> | |||
</list></t> | </dl> | |||
</li> | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | </ul> | |||
on reception.</t> | </dd> | |||
<dt pn="section-5-4.1.1.7">Reserved:</dt> | ||||
<t>MT-ID: Multi-Topology ID (as defined in <xref | <dd pn="section-5-4.1.1.8"> | |||
target="RFC4915"/>).</t> | <bcp14>SHOULD</bcp14> be set to 0 on transmission and | |||
<bcp14>MUST</bcp14> be ignored on reception</dd> | ||||
<t>Algorithm: Single octet identifying the algorithm the Prefix-SID | <dt pn="section-5-4.1.1.9">MT-ID:</dt> | |||
is associated with as defined in <xref target="SRALGO"/>.</t> | <dd pn="section-5-4.1.1.10">Multi-Topology ID (as defined in <xref t | |||
arget="RFC4915" format="default" sectionFormat="of" derivedContent="RFC4915"/>)< | ||||
<t>A router receiving a Prefix-SID from a remote node and with an a | /dd> | |||
lgorithm | <dt pn="section-5-4.1.1.11">Algorithm:</dt> | |||
value that such remote node has not advertised in the SR-Algorithm S | <dd pn="section-5-4.1.1.12"> | |||
ub-TLV | <t pn="section-5-4.1.1.12.1">Single octet identifying the algorith | |||
(<xref target="SRALGO"/>) MUST ignore the Prefix-SID Sub-TLV.</t> | m the Prefix-SID is | |||
associated with as defined in <xref target="SRALGO" format="default" sec | ||||
<t>SID/Index/Label: According to the V and L flags, it contains: | tionFormat="of" derivedContent="Section 3.1"/></t> | |||
<list style="hanging"> | <t pn="section-5-4.1.1.12.2">A router receiving a Prefix-SID from | |||
a remote node and with an | ||||
<t>V-flag is set to 0 and L-flag is set to 0: The SID/Index/Label fi | algorithm value that the remote node has not advertised in the | |||
eld | SR-Algorithm TLV (<xref target="SRALGO" format="default" sectionFormat=" | |||
is a 4 octet index defining the offset in the SID/Labe | of" derivedContent="Section 3.1"/>) | |||
l space | <bcp14>MUST</bcp14> ignore the Prefix-SID Sub-TLV.</t> | |||
advertised by this router</t> | </dd> | |||
<dt pn="section-5-4.1.1.13">SID/Index/Label:</dt> | ||||
<t>V-flag is set to 1 and L-flag is set to 1: The SID/Index/Label fi | <dd pn="section-5-4.1.1.14"> | |||
eld | <t pn="section-5-4.1.1.14.1">According to the V- and L-Flags, it c | |||
is a 3 octet local label where the 20 rightmost bits a | ontains: | |||
re used for | </t> | |||
encoding the label value.</t> | <ul empty="true" bare="false" spacing="normal" pn="section-5-4.1.1 | |||
.14.2"> | ||||
<t>All other combinations of V-flag and L-flag are invalid and any S | <li pn="section-5-4.1.1.14.2.1">V-Flag is set to 0 and L-Flag is | |||
ID | set to 0: The SID/Index/Label | |||
advertisement received with an invalid setting for V a | field is a 4-octet index defining the offset in the SID/Label | |||
nd L flags MUST | space advertised by this router.</li> | |||
be ignored.</t> | <li pn="section-5-4.1.1.14.2.2">V-Flag is set to 1 and L-Flag is | |||
</list></t> | set to 1: The SID/Index/Label | |||
field is a 3-octet local label where the 20 rightmost bits are | ||||
</list></t> | used for encoding the label value.</li> | |||
<li pn="section-5-4.1.1.14.2.3">All other combinations of V-Flag | ||||
<t>If an OSPF router advertises multiple Prefix-SIDs for the same prefix | and L-Flag are invalid and | |||
, | any SID Advertisement received with an invalid setting for V- and L- | |||
topology and algorithm, all of them MUST be ignored.</t> | Flags <bcp14>MUST</bcp14> be ignored.</li> | |||
</ul> | ||||
<t>When calculating the outgoing label for the prefix, the router MUST | </dd> | |||
take into account, as described below, the E, NP and M flags advertised | </dl> | |||
by the next-hop router if | </li> | |||
that router advertised the SID for the prefix. This MUST be done | </ul> | |||
<t pn="section-5-5">If an OSPF router advertises multiple Prefix-SIDs for | ||||
the same prefix, | ||||
topology, and algorithm, all of them <bcp14>MUST</bcp14> be ignored.</t> | ||||
<t pn="section-5-6">When calculating the outgoing label for the prefix, th | ||||
e router <bcp14>MUST</bcp14> | ||||
take into account, as described below, the E-, NP-, and M-Flags advertis | ||||
ed by the next-hop router if | ||||
that router advertised the SID for the prefix. This <bcp14>MUST</bcp14> | ||||
be done | ||||
regardless of whether the next-hop router contributes to the best path t o the | regardless of whether the next-hop router contributes to the best path t o the | |||
prefix.</t> | prefix.</t> | |||
<t pn="section-5-7">The NP-Flag (No-PHP) <bcp14>MUST</bcp14> be set and th | ||||
<t>The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for Pre | e E-Flag | |||
fix-SIDs | <bcp14>MUST</bcp14> be clear for Prefix-SIDs | |||
allocated to inter-area prefixes that are originated by the ABR based on intra-area | allocated to inter-area prefixes that are originated by the ABR based on intra-area | |||
or inter-area reachability between areas, unless the advertised prefix i s directly | or inter-area reachability between areas unless the advertised prefix is directly | |||
attached to the ABR.</t> | attached to the ABR.</t> | |||
<t pn="section-5-8">The NP-Flag (No-PHP) <bcp14>MUST</bcp14> be set and th | ||||
<t>The NP-Flag (No-PHP) MUST be set and the E-flag MUST be clear for Pre | e E-Flag | |||
fix-SIDs | <bcp14>MUST</bcp14> be clear for Prefix-SIDs | |||
allocated to redistributed prefixes, unless the redistributed prefix is directly | allocated to redistributed prefixes, unless the redistributed prefix is directly | |||
attached to the ASBR.</t> | attached to the Autonomous System Boundary Router (ASBR).</t> | |||
<t pn="section-5-9">If the NP-Flag is not set, then: | ||||
<t>If the NP-Flag is not set, then any upstream neighbor of the Prefix-S | </t> | |||
ID | <ul empty="true" bare="false" spacing="normal" pn="section-5-10"> | |||
originator MUST pop the Prefix-SID. This is equivalent to the penultimat | <li pn="section-5-10.1">Any upstream neighbor of the Prefix-SID originat | |||
e | or <bcp14>MUST</bcp14> pop | |||
hop popping mechanism used in the MPLS dataplane. If the NP-flag is not | the Prefix-SID. This is equivalent to the penultimate hop-popping mechanism | |||
set, | used in the MPLS data plane. | |||
then the received E-flag is ignored.</t> | </li> | |||
<li pn="section-5-10.2">The received E-Flag is ignored. | ||||
<t>If the NP-flag is set then:<list style="hanging"> | </li> | |||
</ul> | ||||
<t> If the E-flag is not set, then any upstream neighbor of the Prefix-S | <t pn="section-5-11">If the NP-Flag is set and the E-Flag is not set, then | |||
ID | : | |||
originator MUST keep the Prefix-SID on top of the stack. This is useful | </t> | |||
when | <ul empty="true" bare="false" spacing="normal" pn="section-5-12"> | |||
the originator of the Prefix-SID need to stitch the incoming packet into | <li pn="section-5-12.1">Any upstream neighbor of the Prefix-SID originat | |||
a continuing | or <bcp14>MUST</bcp14> | |||
MPLS LSP to the final destination. This could occur at an Area Border Ro | keep the Prefix-SID on top of the stack. This is useful when the originator of | |||
uter | the Prefix-SID needs to stitch the incoming packet into a continuing MPLS LSP | |||
(prefix propagation from one area to another) or at an AS Boundary Route | to the final destination. This could occur at an ABR (prefix propagation from | |||
r | one area to another) or at an ASBR (prefix propagation from one | |||
(prefix propagation from one domain to another).</t> | domain to another). | |||
</li> | ||||
<t>If the E-flag is set, then any upstream neighbor of the Prefix-SID o | </ul> | |||
riginator | <t pn="section-5-13">If both the NP-Flag and E-Flag are set, then: | |||
MUST replace the Prefix-SID with an Explicit-NULL label. This | </t> | |||
is useful, e.g., when the originator of the Prefix-SID is the final des | <ul empty="true" bare="false" spacing="normal" pn="section-5-14"> | |||
tination | <li pn="section-5-14.1">Any upstream neighbor of the Prefix-SID originat | |||
for the related prefix and the originator wishes to receive the packet | or <bcp14>MUST</bcp14> | |||
with the | replace the Prefix-SID with an Explicit NULL label. This is useful, e.g., when | |||
original EXP bits.</t> | the originator of the Prefix-SID is the final destination for the related | |||
</list></t> | prefix and the originator wishes to receive the packet with the original EXP | |||
bits. | ||||
<t>When the M-Flag is set, the NP-flag and the E-flag MUST be ignored at | </li> | |||
reception.</t> | </ul> | |||
<t pn="section-5-15">When the M-Flag is set, the NP-Flag and the E-Flag <b | ||||
<t>As the Mapping Server does not specify the originator of a prefix adv | cp14>MUST</bcp14> be ignored on reception.</t> | |||
ertisement, | <t pn="section-5-16">As the Mapping Server does not specify the originator | |||
of a prefix advertisement, | ||||
it is not possible to determine PHP behavior solely based on the Mapping Server | it is not possible to determine PHP behavior solely based on the Mapping Server | |||
advertisement. However, PHP behavior SHOULD be done in following cases: | Advertisement. However, PHP behavior <bcp14>SHOULD</bcp14> be done in th | |||
<list style="hanging"> | e following cases: | |||
<t>The Prefix is intra-area type and the downstream neighbor is t | </t> | |||
he originator | <ul empty="true" bare="false" spacing="normal" pn="section-5-17"> | |||
of the prefix.</t> | <li pn="section-5-17.1">The Prefix is intra-area type and the downstream | |||
neighbor is the originator | ||||
<t>The Prefix is inter-area type and downstream neighbor is an AB | of the prefix.</li> | |||
R, which is | <li pn="section-5-17.2">The Prefix is inter-area type and the downstream | |||
advertising prefix reachability and is also generating the Extend | neighbor is an | |||
ed Prefix | ABR, which is advertising prefix reachability and is also generating | |||
TLV with the A-flag set for this prefix as described in section 2 | the Extended Prefix TLV with the A-Flag set for this prefix as | |||
.1 of | described in <xref target="RFC7684" sectionFormat="of" section="2.1" form | |||
<xref target="RFC7684"/>.</t> | at="default" derivedLink="https://rfc-editor.org/rfc/rfc7684#section-2.1" derive | |||
dContent="RFC7684"/>.</li> | ||||
<t> The Prefix is external type and downstream neighbor is an ASB | <li pn="section-5-17.3"> The Prefix is external type and the downstream | |||
R, which is | neighbor is an ASBR, | |||
advertising prefix reachability and is also generating the Extend | which is advertising prefix reachability and is also generating the | |||
ed Prefix | Extended Prefix TLV with the A-Flag set for this prefix as described | |||
TLV with the A-flag set for this prefix as described in section 2 | in <xref target="RFC7684" sectionFormat="of" section="2.1" format="defau | |||
.1 of | lt" derivedLink="https://rfc-editor.org/rfc/rfc7684#section-2.1" derivedContent= | |||
<xref target="RFC7684"/>.</t> | "RFC7684"/>.</li> | |||
</list></t> | </ul> | |||
<t pn="section-5-18">When a Prefix-SID is advertised in an Extended Prefix | ||||
<t>When a Prefix-SID is advertised in an Extended Prefix Range TL | Range TLV, then | |||
V, then the value | the value advertised in the Prefix-SID Sub-TLV is interpreted as a | |||
advertised in the Prefix SID Sub-TLV is interpreted as a startin | starting SID/Label value.</t> | |||
g SID/Label value.</t> | <t pn="section-5-19">Example 1: If the following router addresses (loopbac | |||
k addresses) | ||||
<t>Example 1: If the following router addresses (loopback addresses) | need to be mapped into the corresponding Prefix-SID indexes: </t> | |||
need to be mapped into the corresponding Prefix SID indexes: <figure | <artwork name="" type="" align="left" alt="" pn="section-5-20"> | |||
suppress-title="true"> | ||||
<artwork> | ||||
Router-A: 192.0.2.1/32, Prefix-SID: Index 1 | Router-A: 192.0.2.1/32, Prefix-SID: Index 1 | |||
Router-B: 192.0.2.2/32, Prefix-SID: Index 2 | Router-B: 192.0.2.2/32, Prefix-SID: Index 2 | |||
Router-C: 192.0.2.3/32, Prefix-SID: Index 3 | Router-C: 192.0.2.3/32, Prefix-SID: Index 3 | |||
Router-D: 192.0.2.4/32, Prefix-SID: Index 4 | Router-D: 192.0.2.4/32, Prefix-SID: Index 4</artwork> | |||
</artwork> | <t pn="section-5-21">then the Prefix field in the Extended Prefix Range TL | |||
</figure></t> | V would be set to | |||
<t>then the Prefix field in the Extended Prefix Range TLV would be set t | ||||
o | ||||
192.0.2.1, Prefix Length would be set to 32, Range Size would be set to 4, and | 192.0.2.1, Prefix Length would be set to 32, Range Size would be set to 4, and | |||
the Index value in the Prefix-SID Sub-TLV would be set to 1.</t> | the Index value in the Prefix-SID Sub-TLV would be set to 1.</t> | |||
<t pn="section-5-22">Example 2: If the following prefixes need to be mappe | ||||
<t>Example 2: If the following prefixes need to be mapped into the | d into the | |||
corresponding Prefix-SID indexes: <figure suppress-title="true"> | corresponding Prefix-SID indexes: </t> | |||
<artwork> | <artwork name="" type="" align="left" alt="" pn="section-5-23"> | |||
192.0.2.0/30, Prefix-SID: Index 51 | 192.0.2.0/30, Prefix-SID: Index 51 | |||
192.0.2.4/30, Prefix-SID: Index 52 | 192.0.2.4/30, Prefix-SID: Index 52 | |||
192.0.2.8/30, Prefix-SID: Index 53 | 192.0.2.8/30, Prefix-SID: Index 53 | |||
192.0.2.12/30, Prefix-SID: Index 54 | 192.0.2.12/30, Prefix-SID: Index 54 | |||
192.0.2.16/30, Prefix-SID: Index 55 | 192.0.2.16/30, Prefix-SID: Index 55 | |||
192.0.2.20/30, Prefix-SID: Index 56 | 192.0.2.20/30, Prefix-SID: Index 56 | |||
192.0.2.24/30, Prefix-SID: Index 57 | 192.0.2.24/30, Prefix-SID: Index 57</artwork> | |||
</artwork> | <t pn="section-5-24">then the Prefix field in the Extended Prefix Range TL | |||
</figure></t> | V would be set to | |||
<t>then the Prefix field in the Extended Prefix Range TLV would be set t | ||||
o | ||||
192.0.2.0, Prefix Length would be set to 30, Range Size would be 7, and | 192.0.2.0, Prefix Length would be set to 30, Range Size would be 7, and | |||
the Index value in the Prefix-SID Sub-TLV would be set to 51.</t> | the Index value in the Prefix-SID Sub-TLV would be set to 51.</t> | |||
</section> | </section> | |||
<section anchor="ADJSID" numbered="true" toc="include" removeInRFC="false" p | ||||
<section anchor="ADJSID" title="Adjacency Segment Identifier (Adj-SID)"> | n="section-6"> | |||
<t>An Adjacency Segment Identifier (Adj-SID) represents a router | <name slugifiedName="name-adjacency-segment-identifie">Adjacency Segment I | |||
dentifier (Adj-SID)</name> | ||||
<t pn="section-6-1">An Adjacency Segment Identifier (Adj-SID) represents a | ||||
router | ||||
adjacency in Segment Routing.</t> | adjacency in Segment Routing.</t> | |||
<section anchor="ADJSIDSUBTLV" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="ADJSIDSUBTLV" title="Adj-SID Sub-TLV"> | false" pn="section-6.1"> | |||
<t>Adj-SID is an optional Sub-TLV of the Extended Link TLV defined in | <name slugifiedName="name-adj-sid-sub-tlv">Adj-SID Sub-TLV</name> | |||
<xref target="RFC7684"/>. It MAY appear multiple times | <t pn="section-6.1-1">Adj-SID is an optional sub-TLV of the Extended Lin | |||
k TLV defined in | ||||
<xref target="RFC7684" format="default" sectionFormat="of" derivedConten | ||||
t="RFC7684"/>. It <bcp14>MAY</bcp14> appear multiple times | ||||
in the Extended Link TLV. | in the Extended Link TLV. | |||
The Adj-SID Sub-TLV has the following format: <figure> | The Adj-SID Sub-TLV has the following format: </t> | |||
<artwork> | <artwork name="" type="" align="left" alt="" pn="section-6.1-2"> | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | MT-ID | Weight | | | Flags | Reserved | MT-ID | Weight | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+</artwork> | |||
<t pn="section-6.1-3">where:</t> | ||||
where:</artwork> | <ul empty="true" bare="false" spacing="normal" pn="section-6.1-4"> | |||
</figure><list style="hanging"> | <li pn="section-6.1-4.1"> | |||
<t>Type: 2</t> | <dl newline="false" spacing="normal" pn="section-6.1-4.1.1"> | |||
<dt pn="section-6.1-4.1.1.1">Type:</dt> | ||||
<t>Length: 7 or 8 octets, dependent on the V flag.</t> | <dd pn="section-6.1-4.1.1.2">2</dd> | |||
<dt pn="section-6.1-4.1.1.3">Length:</dt> | ||||
<t>Flags: Single octet field containing the following flags:<figure | <dd pn="section-6.1-4.1.1.4">7 or 8 octets, depending on the V-Fla | |||
align="center"> | g</dd> | |||
<artwork> | <dt pn="section-6.1-4.1.1.5">Flags:</dt> | |||
0 1 2 3 4 5 6 7 | <dd pn="section-6.1-4.1.1.6"> | |||
+-+-+-+-+-+-+-+-+ | <t pn="section-6.1-4.1.1.6.1">Single-octet field containing the | |||
|B|V|L|G|P| | | following flags:</t> | |||
+-+-+-+-+-+-+-+-+ | <artwork name="" type="" align="left" alt="" pn="section-6.1-4.1 | |||
.1.6.2"> | ||||
where:</artwork> | 0 1 2 3 4 5 6 7 | |||
</figure><list style="hanging"> | +-+-+-+-+-+-+-+-+ | |||
<t>B-Flag: Backup Flag. If set, the Adj-SID refers to an | |B|V|L|G|P| | | |||
adjacency that is eligible for protection (e.g., using IPFRR or | +-+-+-+-+-+-+-+-+</artwork> | |||
MPLS-FRR) | <t pn="section-6.1-4.1.1.6.3">where:</t> | |||
as described in section 3.5 of <xref | <ul empty="true" bare="false" spacing="normal" pn="section-6.1-4 | |||
target="I-D.ietf-spring-segment-routing"/>.</t> | .1.1.6.4"> | |||
<li pn="section-6.1-4.1.1.6.4.1"> | ||||
<t>The V-Flag: Value/Index Flag. If set, then the Adj-SID | <dl newline="false" spacing="normal" pn="section-6.1-4.1.1.6 | |||
.4.1.1"> | ||||
<dt pn="section-6.1-4.1.1.6.4.1.1.1">B-Flag:</dt> | ||||
<dd pn="section-6.1-4.1.1.6.4.1.1.2">Backup Flag. If set, | ||||
the Adj-SID refers to an | ||||
adjacency that is eligible for protection (e.g., using IP Fast | ||||
Reroute or MPLS-FRR (MPLS-Fast Reroute) | ||||
as described in <xref target="RFC8402" sectionFormat="of" sectio | ||||
n="2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section | ||||
-2.1" derivedContent="RFC8402"/>.</dd> | ||||
<dt pn="section-6.1-4.1.1.6.4.1.1.3">V-Flag:</dt> | ||||
<dd pn="section-6.1-4.1.1.6.4.1.1.4">Value/Index Flag. If | ||||
set, then the Adj-SID | ||||
carries an absolute value. If not set, then the Adj-SID carries | carries an absolute value. If not set, then the Adj-SID carries | |||
an index.</t> | an index.</dd> | |||
<dt pn="section-6.1-4.1.1.6.4.1.1.5">L-Flag:</dt> | ||||
<t>The L-Flag: Local/Global Flag. If set, then the value/index | <dd pn="section-6.1-4.1.1.6.4.1.1.6">Local/Global Flag. If | |||
set, then the value/index | ||||
carried by the Adj-SID has local significance. If not set, then | carried by the Adj-SID has local significance. If not set, then | |||
the value/index carried by this Sub-TLV has global significance. | the value/index carried by this sub-TLV has global significance. | |||
</t> | </dd> | |||
<dt pn="section-6.1-4.1.1.6.4.1.1.7">G-Flag:</dt> | ||||
<t>The G-Flag: Group Flag. When set, the G-Flag indicates that t | <dd pn="section-6.1-4.1.1.6.4.1.1.8">Group Flag. When set, | |||
he | the G-Flag indicates that the | |||
Adj-SID refers to a group of adjacencies (and therefore MAY be a | Adj-SID refers to a group of adjacencies (and therefore <bcp14>M | |||
ssigned | AY</bcp14> be assigned | |||
to other adjacencies as well).</t> | to other adjacencies as well).</dd> | |||
<dt pn="section-6.1-4.1.1.6.4.1.1.9">P-Flag:</dt> | ||||
<t>P-Flag. Persistent flag. When set, the P-Flag indicates that | <dd pn="section-6.1-4.1.1.6.4.1.1.10">Persistent Flag. Whe | |||
n set, the P-Flag indicates that | ||||
the Adj-SID is persistently allocated, i.e., the Adj- SID value | the Adj-SID is persistently allocated, i.e., the Adj- SID value | |||
remains consistent across router restart and/or inter | remains consistent across router restart and/or inter | |||
face flap.</t> | face flap.</dd> | |||
<dt pn="section-6.1-4.1.1.6.4.1.1.11">Other bits:</dt> | ||||
<t>Other bits: Reserved. These MUST be zero when sent and are ig | <dd pn="section-6.1-4.1.1.6.4.1.1.12">Reserved. These <bcp | |||
nored when | 14>MUST</bcp14> be zero when sent and are ignored when | |||
received.</t> | received.</dd> | |||
</list></t> | </dl> | |||
</li> | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | </ul> | |||
on reception.</t> | </dd> | |||
<dt pn="section-6.1-4.1.1.7">Reserved:</dt> | ||||
<t>MT-ID: Multi-Topology ID (as defined in <xref | <dd pn="section-6.1-4.1.1.8"> | |||
target="RFC4915"/>.</t> | <bcp14>SHOULD</bcp14> be set to 0 on transmission and <bcp14>MUS | |||
T</bcp14> be ignored on reception</dd> | ||||
<t>Weight: Weight used for load-balancing purposes. The use of the | <dt pn="section-6.1-4.1.1.9">MT-ID:</dt> | |||
weight is defined in <xref | <dd pn="section-6.1-4.1.1.10">Multi-Topology ID (as defined in <xr | |||
target="I-D.ietf-spring-segment-routing"/>.</t> | ef target="RFC4915" format="default" sectionFormat="of" derivedContent="RFC4915" | |||
/></dd> | ||||
<t>SID/Index/Label: as described in <xref target="PREFIXSID"/>.</t> | <dt pn="section-6.1-4.1.1.11">Weight:</dt> | |||
<dd pn="section-6.1-4.1.1.12"> Weight used for load-balancing purp | ||||
</list></t> | oses. The use of the | |||
weight is defined in <xref target="RFC8402" format="default" section | ||||
<t>An SR capable router MAY allocate an Adj-SID for each of its | Format="of" derivedContent="RFC8402"/>.</dd> | |||
<dt pn="section-6.1-4.1.1.13">SID/Index/Label:</dt> | ||||
<dd pn="section-6.1-4.1.1.14">As described in <xref target="PREFIX | ||||
SID" format="default" sectionFormat="of" derivedContent="Section 5"/></dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t pn="section-6.1-5">An SR-capable router <bcp14>MAY</bcp14> allocate a | ||||
n Adj-SID for each of its | ||||
adjacencies and set the B-Flag when the adjacency is eligible for protec tion by | adjacencies and set the B-Flag when the adjacency is eligible for protec tion by | |||
an FRR mechanism (IP or MPLS) as described in section 3.5 of <xref | an FRR mechanism (IP or MPLS) as described in | |||
target="I-D.ietf-spring-segment-routing"/>.</t> | <xref target="RFC8402" sectionFormat="of" section="3.5" format="default" | |||
derivedLink="https://rfc-editor.org/rfc/rfc8402#section-3.5" derivedContent="RFC | ||||
<t>An SR capable router MAY allocate more than one Adj-SID to an adjacen | 8402"/>.</t> | |||
cy</t> | <t pn="section-6.1-6">An SR-capable router <bcp14>MAY</bcp14> allocate m | |||
ore than one Adj-SID to an adjacency.</t> | ||||
<t>An SR capable router MAY allocate the same Adj-SID to different adjac | <t pn="section-6.1-7">An SR-capable router <bcp14>MAY</bcp14> allocate t | |||
encies</t> | he same Adj-SID to different adjacencies.</t> | |||
<t pn="section-6.1-8">When the P-Flag is not set, the Adj-SID <bcp14>MAY | ||||
<t>When the P-flag is not set, the Adj-SID MAY be persistent. When | </bcp14> be persistent. When | |||
the P-flag is set, the Adj-SID MUST be persistent.</t> | the P-Flag is set, the Adj-SID <bcp14>MUST</bcp14> be persistent.</t> | |||
</section> | </section> | |||
<section anchor="LANADJSIDSUBTLV" numbered="true" toc="include" removeInRF | ||||
<section anchor="LANADJSIDSUBTLV" title="LAN Adj-SID Sub-TLV"> | C="false" pn="section-6.2"> | |||
<t>LAN Adj-SID is an optional Sub-TLV of the Extended Link TLV defined i | <name slugifiedName="name-lan-adj-sid-sub-tlv">LAN Adj-SID Sub-TLV</name | |||
n | > | |||
<xref target="RFC7684"/>. It MAY appear multiple | <t pn="section-6.2-1">The LAN Adjacency SID is an optional sub-TLV of th | |||
times in the Extended-Link TLV. It is used to advertise a SID/Label for | e Extended Link TLV defined in | |||
an adjacency | <xref target="RFC7684" format="default" sectionFormat="of" derivedConten | |||
to a non-DR router on a broadcast, NBMA, or hybrid <xref target="RFC6845 | t="RFC7684"/>. It <bcp14>MAY</bcp14> appear multiple | |||
"/> network. | times in the Extended Link TLV. It is used to advertise a SID/Label for | |||
<figure> | an adjacency | |||
<artwork> | to a non-DR (Designated Router) router on a broadcast, Non-Broadcast Mul | |||
ti-Access (NBMA), or hybrid <xref target="RFC6845" format="default" sectionForma | ||||
t="of" derivedContent="RFC6845"/> network. | ||||
</t> | ||||
<artwork name="" type="" align="left" alt="" pn="section-6.2-2"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | MT-ID | Weight | | | Flags | Reserved | MT-ID | Weight | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Neighbor ID | | | Neighbor ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+</artwork> | |||
<t pn="section-6.2-3">where:</t> | ||||
where:</artwork> | <ul empty="true" bare="false" spacing="normal" pn="section-6.2-4"> | |||
</figure><list style="hanging"> | <li pn="section-6.2-4.1"> | |||
<t>Type: 3</t> | <dl newline="false" spacing="normal" pn="section-6.2-4.1.1"> | |||
<dt pn="section-6.2-4.1.1.1">Type:</dt> | ||||
<t>Length: 11 or 12 octets, dependent on V-flag.</t> | <dd pn="section-6.2-4.1.1.2">3</dd> | |||
<dt pn="section-6.2-4.1.1.3">Length:</dt> | ||||
<t>Flags: same as in <xref target="ADJSIDSUBTLV"/></t> | <dd pn="section-6.2-4.1.1.4">11 or 12 octets, depending on the V-F | |||
lag</dd> | ||||
<t>Reserved: SHOULD be set to 0 on transmission and MUST be ignored | <dt pn="section-6.2-4.1.1.5">Flags:</dt> | |||
on reception.</t> | <dd pn="section-6.2-4.1.1.6">Same as in <xref target="ADJSIDSUBTLV | |||
" format="default" sectionFormat="of" derivedContent="Section 6.1"/></dd> | ||||
<t>MT-ID: Multi-Topology ID (as defined in <xref | <dt pn="section-6.2-4.1.1.7">Reserved:</dt> | |||
target="RFC4915"/>.</t> | <dd pn="section-6.2-4.1.1.8"> | |||
<bcp14>SHOULD</bcp14> be set to 0 on transmission and <bcp14>MUS | ||||
<t>Weight: Weight used for load-balancing purposes. The use of the | T</bcp14> be ignored on reception</dd> | |||
weight is defined in <xref target="I-D.ietf-spring-segment-routing"/ | <dt pn="section-6.2-4.1.1.9">MT-ID:</dt> | |||
>.</t> | <dd pn="section-6.2-4.1.1.10">Multi-Topology ID (as defined in <xr | |||
ef target="RFC4915" format="default" sectionFormat="of" derivedContent="RFC4915" | ||||
<t>Neighbor ID: The Router ID of the neighbor for which the LAN-Adj- | />)</dd> | |||
SID is | <dt pn="section-6.2-4.1.1.11">Weight:</dt> | |||
advertised.</t> | <dd pn="section-6.2-4.1.1.12">Weight used for load-balancing purpo | |||
ses. The use of the | ||||
<t>SID/Index/Label: as described in <xref target="PREFIXSID"/>.</t> | weight is defined in <xref target="RFC8402" format="default" section | |||
Format="of" derivedContent="RFC8402"/>.</dd> | ||||
<t>When the P-flag is not set, the Adj-SID MAY be persistent. When | <dt pn="section-6.2-4.1.1.13">Neighbor ID:</dt> | |||
the P-flag is set, the Adj-SID MUST be persistent.</t> | <dd pn="section-6.2-4.1.1.14">The Router ID of the neighbor for wh | |||
ich the LAN Adjacency SID is | ||||
</list></t> | advertised</dd> | |||
<dt pn="section-6.2-4.1.1.15">SID/Index/Label:</dt> | ||||
<dd pn="section-6.2-4.1.1.16"> | ||||
<t pn="section-6.2-4.1.1.16.1">As described in <xref target="PRE | ||||
FIXSID" format="default" sectionFormat="of" derivedContent="Section 5"/></t> | ||||
</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t pn="section-6.2-5">When the P-Flag is not set, the LAN Adjacency SID | ||||
<bcp14>MAY</bcp14> be persistent. When | ||||
the P-Flag is set, the LAN Adjacency SID <bcp14>MUST</bcp14> be persistent. | ||||
</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-7"> | ||||
<section title="Elements of Procedure"> | <name slugifiedName="name-elements-of-procedure">Elements of Procedure</na | |||
<section title="Intra-area Segment routing in OSPFv2 "> | me> | |||
<t>An OSPFv2 router that supports segment routing MAY advertise Prefix- | <section numbered="true" toc="include" removeInRFC="false" pn="section-7.1 | |||
"> | ||||
<name slugifiedName="name-intra-area-segment-routing-">Intra-area Segmen | ||||
t Routing in OSPFv2</name> | ||||
<t pn="section-7.1-1">An OSPFv2 router that supports Segment Routing <bc | ||||
p14>MAY</bcp14> advertise Prefix- | ||||
SIDs for any prefix to which it is advertising reachability (e.g., | SIDs for any prefix to which it is advertising reachability (e.g., | |||
a loopback IP address as described in <xref target="PREFIXSID"/>).</t> | a loopback IP address as described in <xref target="PREFIXSID" format="d | |||
efault" sectionFormat="of" derivedContent="Section 5"/>).</t> | ||||
<t>A Prefix-SID can also be advertised by the SR Mapping Servers (as | <t pn="section-7.1-2">A Prefix-SID can also be advertised by the SR Mapp | |||
described in <xref | ing Servers (as | |||
target="I-D.ietf-spring-segment-routing-ldp-interop"/>). A Mapping | described in <xref target="RFC8661" format="default" sectionFormat="of" | |||
derivedContent="RFC8661"/>). A Mapping | ||||
Server advertises Prefix-SIDs for remote prefixes that exist in the | Server advertises Prefix-SIDs for remote prefixes that exist in the | |||
OSPFv2 routing domain. Multiple Mapping Servers can advertise Prefix-SID s | OSPFv2 routing domain. Multiple Mapping Servers can advertise Prefix-SID s | |||
for the same prefix, in which case the same Prefix-SID MUST be advertise d by | for the same prefix; in which case, the same Prefix-SID <bcp14>MUST</bcp 14> be advertised by | |||
all of them. The flooding scope of the OSPF Extended Prefix Opaque LSA | all of them. The flooding scope of the OSPF Extended Prefix Opaque LSA | |||
that is generated by the SR Mapping Server could be either area-scoped | that is generated by the SR Mapping Server could be either area scoped | |||
or AS-scoped and is determined based on the configuration of the | or AS scoped and is determined based on the configuration of the | |||
SR Mapping Server.</t> | SR Mapping Server.</t> | |||
<t pn="section-7.1-3">An SR Mapping Server <bcp14>MUST</bcp14> use the O | ||||
<t>An SR Mapping Server MUST use the OSPF Extended Prefix Range TLV when | SPF Extended Prefix Range TLV when advertising SIDs | |||
advertising SIDs | for prefixes. Prefixes of different route types can be combined in a sin | |||
for prefixes. Prefixes of different route-types can be combined in a sin | gle OSPF | |||
gle OSPF | ||||
Extended Prefix Range TLV advertised by an SR Mapping Server. Because th e OSPF | Extended Prefix Range TLV advertised by an SR Mapping Server. Because th e OSPF | |||
Extended Prefix Range TLV doesn't include a Route-Type field, as in the OSPF | Extended Prefix Range TLV doesn't include a Route-Type field, as in the OSPF | |||
Extended Prefix TLV, it is possible to include adjacent prefixes from di fferent | Extended Prefix TLV, it is possible to include adjacent prefixes from di fferent | |||
Route-Types in the OSPF Extended Prefix Range TLV.</t> | route types in the OSPF Extended Prefix Range TLV.</t> | |||
<t pn="section-7.1-4">Area-scoped OSPF Extended Prefix Range TLVs are pr | ||||
<t>Area-scoped OSPF Extended Prefix Range TLVs are propagated between ar | opagated between areas. Similar | |||
eas. Similar | ||||
to propagation of prefixes between areas, an ABR only propagates the OSP F Extended | to propagation of prefixes between areas, an ABR only propagates the OSP F Extended | |||
Prefix Range TLV that it considers to be the best from the set it receiv ed. The | Prefix Range TLV that it considers to be the best from the set it receiv ed. The | |||
rules used to pick the best OSPF Extended Prefix Range TLV are described in | rules used to pick the best OSPF Extended Prefix Range TLV are described in | |||
<xref target="PFXRANGE"/>.</t> | <xref target="PFXRANGE" format="default" sectionFormat="of" derivedConte | |||
nt="Section 4"/>.</t> | ||||
<t>When propagating an OSPF Extended Prefix Range TLV between areas, ABR | <t pn="section-7.1-5">When propagating an OSPF Extended Prefix Range TLV | |||
s MUST set the | between areas, ABRs <bcp14>MUST</bcp14> set the | |||
IA-Flag, that is used to prevent redundant flooding of the OSPF Extended | IA-Flag. This is used to prevent redundant flooding of the OSPF Extended | |||
Prefix Range TLV between areas as described in <xref target="PFXRANGE"/> | Prefix Range TLV between areas as described in <xref target="PFXRANGE" f | |||
.</t> | ormat="default" sectionFormat="of" derivedContent="Section 4"/>.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-7.2 | ||||
<section title="Inter-area Segment routing in OSPFv2"> | "> | |||
<t>In order to support SR in a multi-area environment, OSPFv2 MUST | <name slugifiedName="name-inter-area-segment-routing-">Inter-area Segmen | |||
t Routing in OSPFv2</name> | ||||
<t pn="section-7.2-1">In order to support SR in a multiarea environment, | ||||
OSPFv2 <bcp14>MUST</bcp14> | ||||
propagate Prefix-SID information between areas. The following | propagate Prefix-SID information between areas. The following | |||
procedure is used to propagate Prefix SIDs between areas.</t> | procedure is used to propagate Prefix-SIDs between areas.</t> | |||
<t pn="section-7.2-2">When an OSPF ABR advertises a Type-3 Summary LSA f | ||||
<t>When an OSPF ABR advertises a Type-3 Summary LSA from an intra-area | rom an intra-area | |||
prefix to all its connected areas, it will also originate an Extended | prefix to all its connected areas, it will also originate an OSPF Extend | |||
Prefix Opaque LSA, as described in <xref target="RFC7684"/>. | ed | |||
The flooding scope of the Extended Prefix Opaque LSA type will be set to | Prefix Opaque LSA as described in <xref target="RFC7684" format="default | |||
area-local scope. The route-type in the OSPF Extended Prefix TLV is set | " sectionFormat="of" derivedContent="RFC7684"/>. | |||
to | The flooding scope of the OSPF Extended Prefix Opaque LSA type will be s | |||
et to | ||||
area-local scope. The route type in the OSPF Extended Prefix TLV is set | ||||
to | ||||
inter-area. The Prefix-SID Sub-TLV will be included in this LSA and | inter-area. The Prefix-SID Sub-TLV will be included in this LSA and | |||
the Prefix-SID value will be set as follows: <list style="hanging"> | the Prefix-SID value will be set as follows: </t> | |||
<t>The ABR will look at its best path to the prefix in the source | <ul empty="true" spacing="normal" bare="false" pn="section-7.2-3"> | |||
<li pn="section-7.2-3.1">The ABR will look at its best path to the pre | ||||
fix in the source | ||||
area and find the advertising router associated with the best | area and find the advertising router associated with the best | |||
path to that prefix.</t> | path to that prefix.</li> | |||
<li pn="section-7.2-3.2">The ABR will then determine if this router ad | ||||
<t>The ABR will then determine if such router advertised a Prefix-SI | vertised a | |||
D | Prefix-SID for the prefix and use it when advertising the | |||
for the prefix and use it when advertising the Prefix-SID | Prefix-SID to other connected areas.</li> | |||
to other | <li pn="section-7.2-3.3">If no Prefix-SID was advertised for the prefi | |||
connected areas.</t> | x in the source | |||
<t>If no Prefix-SID was advertised for the prefix in the source | ||||
area by the router that contributes to the best path to the | area by the router that contributes to the best path to the | |||
prefix, the originating ABR will use the Prefix-SID advertised by an y | prefix, the originating ABR will use the Prefix-SID advertised by an y | |||
other router when propagating the Prefix-SID for the prefix to other | other router when propagating the Prefix-SID for the prefix to other | |||
areas.</t> | areas.</li> | |||
</list></t> | </ul> | |||
<t pn="section-7.2-4">When an OSPF ABR advertises Type-3 Summary LSAs fr | ||||
<t>When an OSPF ABR advertises Type-3 Summary LSAs from an inter-area | om an inter-area | |||
route to all its connected areas, it will also originate an Extended | route to all its connected areas, it will also originate an OSPF Extende | |||
Prefix Opaque LSA, as described in <xref target="RFC7684"/>. | d | |||
The flooding scope of the Extended Prefix Opaque LSA type will be set to | Prefix Opaque LSA as described in <xref target="RFC7684" format="default | |||
area-local scope. The route-type in OSPF Extended Prefix TLV is set to | " sectionFormat="of" derivedContent="RFC7684"/>. | |||
The flooding scope of the OSPF Extended Prefix Opaque LSA type will be s | ||||
et to | ||||
area-local scope. The route type in the OSPF Extended Prefix TLV is set | ||||
to | ||||
inter-area. The Prefix-SID Sub-TLV will be included in this LSA and | inter-area. The Prefix-SID Sub-TLV will be included in this LSA and | |||
the Prefix-SID will be set as follows: <list style="hanging"> | the Prefix-SID will be set as follows: </t> | |||
<t>The ABR will look at its best path to the prefix in the backbone | <ul empty="true" spacing="normal" bare="false" pn="section-7.2-5"> | |||
<li pn="section-7.2-5.1">The ABR will look at its best path to the pre | ||||
fix in the backbone | ||||
area and find the advertising router associated with the best | area and find the advertising router associated with the best | |||
path to that prefix.</t> | path to that prefix.</li> | |||
<li pn="section-7.2-5.2">The ABR will then determine if such a router | ||||
<t>The ABR will then determine if such router advertised a Prefix-SI | advertised a | |||
D | Prefix-SID for the prefix and use it when advertising the Prefix-SID | |||
for the prefix and use it when advertising the Prefix-SID to other | to other connected areas.</li> | |||
connected areas.</t> | <li pn="section-7.2-5.3">If no Prefix-SID was advertised for the prefi | |||
x in the backbone | ||||
<t>If no Prefix-SID was advertised for the prefix in the backbone | ||||
area by the ABR that contributes to the best path to the prefix, | area by the ABR that contributes to the best path to the prefix, | |||
the originating ABR will use the Prefix-SID advertised by any | the originating ABR will use the Prefix-SID advertised by any | |||
other router when propagating the Prefix-SID for the prefix to other | other router when propagating the Prefix-SID for the prefix to other | |||
areas.</t> | areas.</li> | |||
</list></t> | </ul> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-7.3 | ||||
<section title="Segment Routing for External Prefixes"> | "> | |||
<t>Type-5 LSAs are flooded domain wide. When an ASBR, which supports | <name slugifiedName="name-segment-routing-for-externa">Segment Routing f | |||
SR, generates Type-5 LSAs, it SHOULD also originate Extended Prefix | or External Prefixes</name> | |||
Opaque LSAs, as described in <xref target="RFC7684"/>. | <t pn="section-7.3-1">Type-5 LSAs are flooded domain wide. When an ASBR, | |||
The flooding scope of the Extended Prefix Opaque LSA type is set to AS-w | which supports | |||
ide scope. | SR, generates Type-5 LSAs, it <bcp14>SHOULD</bcp14> also originate | |||
The route-type in the OSPF Extended Prefix TLV is set to external. The | OSPF Extended Prefix Opaque LSAs as described in <xref target="RFC7684" | |||
Prefix-SID Sub-TLV is included in this LSA and the Prefix-SID value will | format="default" sectionFormat="of" derivedContent="RFC7684"/>. The flooding sc | |||
be set | ope of the | |||
to the SID that has been reserved for that prefix.</t> | OSPF Extended Prefix Opaque LSA type is set to AS-wide scope. The route | |||
type in the OSPF Extended Prefix TLV is set to external. The | ||||
<t>When an NSSA <xref target="RFC3101"/> ABR translates Type-7 LSAs into | Prefix-SID Sub-TLV is included in this LSA and the Prefix-SID value | |||
Type-5 | will be set to the SID that has been reserved for that prefix.</t> | |||
LSAs, it SHOULD also advertise the Prefix-SID for the prefix. The NSSA A | <t pn="section-7.3-2">When a Not-So-Stubby Area (NSSA) <xref target="RFC | |||
BR determines | 3101" format="default" sectionFormat="of" derivedContent="RFC3101"/> ABR transla | |||
tes Type-7 LSAs into Type-5 | ||||
LSAs, it <bcp14>SHOULD</bcp14> also advertise the Prefix-SID for the pre | ||||
fix. The NSSA ABR determines | ||||
its best path to the prefix advertised in the translated Type-7 LSA | its best path to the prefix advertised in the translated Type-7 LSA | |||
and finds the advertising router associated with that path. If the | and finds the advertising router associated with that path. If the | |||
advertising router has advertised a Prefix-SID for the prefix, then | advertising router has advertised a Prefix-SID for the prefix, then | |||
the NSSA ABR uses it when advertising the Prefix-SID for the Type-5 | the NSSA ABR uses it when advertising the Prefix-SID for the Type-5 | |||
prefix. Otherwise, the Prefix-SID advertised by any other router will | prefix. Otherwise, the Prefix-SID advertised by any other router will | |||
be used.</t> | be used.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-7.4 | ||||
<section title="Advertisement of Adj-SID"> | "> | |||
<t>The Adjacency Segment Routing Identifier (Adj-SID) is advertised | <name slugifiedName="name-advertisement-of-adj-sid">Advertisement of Adj | |||
using the Adj-SID Sub-TLV as described in <xref target="ADJSID"/>.</t> | -SID</name> | |||
<t pn="section-7.4-1">The Adjacency Segment Routing Identifier (Adj-SID) | ||||
<section title="Advertisement of Adj-SID on Point-to-Point Links"> | is advertised | |||
<t>An Adj-SID MAY be advertised for any adjacency on a P2P link that i | using the Adj-SID Sub-TLV as described in <xref target="ADJSID" format=" | |||
s | default" sectionFormat="of" derivedContent="Section 6"/>.</t> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-7 | ||||
.4.1"> | ||||
<name slugifiedName="name-advertisement-of-adj-sid-on">Advertisement o | ||||
f Adj-SID on Point-to-Point Links</name> | ||||
<t pn="section-7.4.1-1">An Adj-SID <bcp14>MAY</bcp14> be advertised fo | ||||
r any adjacency on a point-to-point (P2P) link that is | ||||
in neighbor state 2-Way or higher. If the adjacency on a P2P link | in neighbor state 2-Way or higher. If the adjacency on a P2P link | |||
transitions from the FULL state, then the Adj-SID for that adjacency | transitions from the FULL state, then the Adj-SID for that adjacency | |||
MAY be removed from the area. If the adjacency transitions to a | <bcp14>MAY</bcp14> be removed from the area. If the adjacency transiti | |||
state lower then 2-Way, then the Adj-SID advertisement MUST be withdra | ons to a | |||
wn from the | state lower than 2-Way, then the Adj-SID Advertisement <bcp14>MUST</bc | |||
p14> be withdrawn from the | ||||
area.</t> | area.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-7 | ||||
<section title="Adjacency SID on Broadcast or NBMA Interfaces"> | .4.2"> | |||
<t>Broadcast, NBMA, or hybrid <xref target="RFC6845"/> networks in OSP | <name slugifiedName="name-adjacency-sid-on-broadcast-">Adjacency SID o | |||
F are | n Broadcast or NBMA Interfaces</name> | |||
<t pn="section-7.4.2-1">Broadcast, NBMA, or hybrid <xref target="RFC68 | ||||
45" format="default" sectionFormat="of" derivedContent="RFC6845"/> networks in O | ||||
SPF are | ||||
represented by a star topology where the Designated Router (DR) is the central | represented by a star topology where the Designated Router (DR) is the central | |||
point to which all other routers on the broadcast, NBMA, or hybrid net work connect. | point to which all other routers on the broadcast, NBMA, or hybrid net work connect. | |||
As a result, routers on the broadcast, NBMA, or hybrid network adverti se only | As a result, routers on the broadcast, NBMA, or hybrid network adverti se only | |||
their adjacency to the DR. Routers that do not act as DR do not form o r | their adjacency to the DR. Routers that do not act as DR do not form o r | |||
advertise adjacencies with each other. They do, however, maintain 2-Wa y adjacency | advertise adjacencies with each other. They do, however, maintain 2-Wa y adjacency | |||
state with each other and are directly reachable.</t> | state with each other and are directly reachable.</t> | |||
<t pn="section-7.4.2-2">When Segment Routing is used, each router on t | ||||
<t>When Segment Routing is used, each router on the broadcast, NBMA, o | he broadcast, NBMA, or hybrid | |||
r hybrid | network <bcp14>MAY</bcp14> advertise the Adj-SID for its adjacency to | |||
network MAY advertise the Adj-SID for its adjacency to the DR using | the DR using | |||
the Adj-SID Sub-TLV as described in <xref target="ADJSIDSUBTLV"/>.</t> | the Adj-SID Sub-TLV as described in <xref target="ADJSIDSUBTLV" format | |||
="default" sectionFormat="of" derivedContent="Section 6.1"/>.</t> | ||||
<t>SR capable routers MAY also advertise a LAN-Adj-SID for other neigh | <t pn="section-7.4.2-3">SR-capable routers <bcp14>MAY</bcp14> also adv | |||
bors | ertise a LAN Adjacency SID for other neighbors | |||
(e.g., BDR, DR-OTHER) on the broadcast, NBMA, or hybrid network using | (e.g., Backup Designated Router, DR-OTHER, etc.) on the broadcast, NBM | |||
the | A, or hybrid network using the | |||
LAN-ADJ-SID Sub-TLV as described in <xref target="LANADJSIDSUBTLV"/>.< | LAN Adj-SID Sub-TLV as described in <xref target="LANADJSIDSUBTLV" for | |||
/t> | mat="default" sectionFormat="of" derivedContent="Section 6.2"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn= | ||||
<section anchor="IANA" title="IANA Considerations"> | "section-8"> | |||
<t>This specification updates several existing OSPF registries.</t> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
<t pn="section-8-1">This specification updates several existing OSPF | ||||
<section anchor="RITLVREG" title="OSPF Router Information (RI) TLVs Reg | registries and creates a new IGP registry.</t> | |||
istry"> | <section anchor="RITLVREG" numbered="true" toc="include" removeInRFC="fals | |||
e" pn="section-8.1"> | ||||
<t>o 8 (IANA Preallocated) - SR-Algorithm TLV</t> | <name slugifiedName="name-ospf-router-information-ri-">OSPF Router Infor | |||
mation (RI) TLVs Registry</name> | ||||
<t>o 9 (IANA Preallocated) - SID/Label Range TLV</t> | <t pn="section-8.1-1">The following values have been allocated:</t> | |||
<table anchor="IANA1" align="left" pn="table-1"> | ||||
<t>o 14 - SR Local Block TLV</t> | <name slugifiedName="name-ospf-router-information-ri-t">OSPF Router In | |||
formation (RI) TLVs</name> | ||||
<t>o 15 - SRMS Preference TLV</t> | <thead> | |||
<tr> | ||||
</section> | <th align="left" colspan="1" rowspan="1">Value</th> | |||
<th align="left" colspan="1" rowspan="1">TLV Name</th> | ||||
<section anchor="EPLTLVREG" title="OSPFv2 Extended Prefix Opaque LSA TLVs | <th align="left" colspan="1" rowspan="1">Reference</th> | |||
Registry"> | </tr> | |||
</thead> | ||||
<t>Following values are allocated:</t> | <tbody> | |||
<tr> | ||||
<t>o 2 - OSPF Extended Prefix Range TLV</t> | <td align="left" colspan="1" rowspan="1">8</td> | |||
<td align="left" colspan="1" rowspan="1">SR-Algorithm TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">9</td> | ||||
<td align="left" colspan="1" rowspan="1">SID/Label Range TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">14</td> | ||||
<td align="left" colspan="1" rowspan="1">SR Local Block TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">15</td> | ||||
<td align="left" colspan="1" rowspan="1">SRMS Preference TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="EPLTLVREG" numbered="true" toc="include" removeInRFC="fal | ||||
<section anchor="EPLSTLVREG" title="OSPFv2 Extended Prefix TLV Sub-TLVs Re | se" pn="section-8.2"> | |||
gistry"> | <name slugifiedName="name-ospfv2-extended-prefix-opaq">OSPFv2 Extended P | |||
refix Opaque LSA TLVs Registry</name> | ||||
<t>Following values are allocated:</t> | <t pn="section-8.2-1">The following values have been allocated: | |||
</t> | ||||
<t>o 1 - SID/Label Sub-TLV</t> | <table anchor="IANA2" align="left" pn="table-2"> | |||
<name slugifiedName="name-ospfv2-extended-prefix-opaqu">OSPFv2 Extende | ||||
<t>o 2 - Prefix SID Sub-TLV</t> | d Prefix Opaque LSA TLVs</name> | |||
<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">2</td> | ||||
<td align="left" colspan="1" rowspan="1">OSPF Extended Prefix Rang | ||||
e TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="EPLSTLVREG" numbered="true" toc="include" removeInRFC="fa | ||||
<section anchor="ELLSTLVREG" title="OSPFv2 Extended Link TLV Sub-TLVs Regi | lse" pn="section-8.3"> | |||
stry"> | <name slugifiedName="name-ospfv2-extended-prefix-tlv-">OSPFv2 Extended P | |||
refix TLV Sub-TLVs Registry</name> | ||||
<t>Following initial values are allocated:</t> | <t pn="section-8.3-1">The following values have been allocated:</t> | |||
<table anchor="IANA3" align="left" pn="table-3"> | ||||
<t>o 1 - SID/Label Sub-TLV</t> | <name slugifiedName="name-ospfv2-extended-prefix-tlv-s">OSPFv2 Extende | |||
d Prefix TLV Sub-TLVs</name> | ||||
<t>o 2 - Adj-SID Sub-TLV</t> | <thead> | |||
<tr> | ||||
<t>o 3 - LAN Adj-SID/Label Sub-TLV</t> | <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">SID/Label Sub-TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">2</td> | ||||
<td align="left" colspan="1" rowspan="1">Prefix-SID Sub-TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="ELLSTLVREG" numbered="true" toc="include" removeInRFC="fa | ||||
<section anchor="IGPALGOREG" title="IGP Algorithm Type Registry"> | lse" pn="section-8.4"> | |||
<name slugifiedName="name-ospfv2-extended-link-tlv-su">OSPFv2 Extended L | ||||
<t>IANA is requested to set up a registry called "IGP Algorithm Type" under | ink TLV Sub-TLVs Registry</name> | |||
a new | <t pn="section-8.4-1">The following initial values have been allocated:< | |||
category of "Interior Gateway Protocol (IGP) Parameters" IANA registries. | /t> | |||
<table anchor="IANA4" align="left" pn="table-4"> | ||||
<name slugifiedName="name-ospfv2-extended-link-tlv-sub">OSPFv2 Extende | ||||
d Link TLV Sub-TLVs</name> | ||||
<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">1</td> | ||||
<td align="left" colspan="1" rowspan="1">SID/Label Sub-TLV</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">2</td> | ||||
<td align="left" colspan="1" rowspan="1">Adj-SID Sub-TLV</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">LAN Adj-SID/Label Sub-TLV | ||||
</td> | ||||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="IGPALGOREG" numbered="true" toc="include" removeInRFC="fa | ||||
lse" pn="section-8.5"> | ||||
<name slugifiedName="name-igp-algorithm-types-registr">IGP Algorithm Typ | ||||
es Registry</name> | ||||
<t pn="section-8.5-1">IANA has set up a subregistry called "IGP Algorith | ||||
m Type" under the | ||||
"Interior Gateway Protocol (IGP) Parameters" registry. | ||||
The registration policy for this registry is "Standards Action" | The registration policy for this registry is "Standards Action" | |||
(<xref target="RFC8126"/> and <xref target="RFC7120"/>).</t> | (<xref target="RFC8126" format="default" sectionFormat="of" derivedConten | |||
t="RFC8126"/> and <xref target="RFC7120" format="default" sectionFormat="of" der | ||||
<t>Values in this registry come from the range 0-255.</t> | ivedContent="RFC7120"/>).</t> | |||
<t pn="section-8.5-2">Values in this registry come from the range 0-255. | ||||
<t> The initial values in the IGP Algorithm Type registry are:<list style='ha | </t> | |||
nging'> | <t pn="section-8.5-3"> The initial values in the IGP Algorithm Type regi | |||
stry are | ||||
<t>0: Shortest Path First (SPF) algorithm based on link metric. | as follows:</t> | |||
This is | <table anchor="IANA5" align="left" pn="table-5"> | |||
<name slugifiedName="name-igp-algorithm-types">IGP Algorithm Types</na | ||||
me> | ||||
<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">0</td> | ||||
<td align="left" colspan="1" rowspan="1">Shortest Path First (SPF) | ||||
algorithm based on link metric. This is | ||||
the standard shortest path algorithm as computed by the IGP prot ocol. | the standard shortest path algorithm as computed by the IGP prot ocol. | |||
Consistent with the deployed practice for link-state protocols, Algorithm 0 | Consistent with the deployed practice for link-state protocols, Algorithm 0 | |||
permits any node to overwrite the SPF path with a different path based on | permits any node to overwrite the SPF path with a different path based on | |||
its local policy.</t> | its local policy.</td> | |||
<td align="left" colspan="1" rowspan="1">This document</td> | ||||
<t>1: Strict Shortest Path First (SPF) algorithm based on link m | </tr> | |||
etric. | <tr> | |||
The algorithm is identical to Algorithm 0 but Algorithm 1 requir | <td align="left" colspan="1" rowspan="1">1</td> | |||
es that | <td align="left" colspan="1" rowspan="1">Strict Shortest Path Firs | |||
t (SPF) algorithm based on link metric. | ||||
The algorithm is identical to Algorithm 0, but Algorithm 1 requi | ||||
res that | ||||
all nodes along the path will honor the SPF routing decision. Lo cal policy | all nodes along the path will honor the SPF routing decision. Lo cal policy | |||
at the node claiming support for Algorithm 1 MUST NOT alter the | at the node claiming support for Algorithm 1 <bcp14>MUST NOT</bc | |||
SPF paths computed by Algorithm 1.</t> | p14> alter the | |||
SPF paths computed by Algorithm 1.</td> | ||||
</list></t> | <td align="left" colspan="1" rowspan="1">This document</td> | |||
</section> | </tr> | |||
</tbody> | ||||
</table> | ||||
</section> | ||||
</section> | </section> | |||
<section anchor="Error-handling" numbered="true" toc="include" removeInRFC=" | ||||
<section anchor="Implementation" title="Implementation Status"> | false" pn="section-9"> | |||
<name slugifiedName="name-tlv-sub-tlv-error-handling">TLV/Sub-TLV Error Ha | ||||
<t>An implementation survey with seven questions related to the | ndling</name> | |||
implementer's support of OSPFv2 Segment Routing was sent to | <t pn="section-9-1">For any new TLVs/sub-TLVs defined in this document, if | |||
the OSPF WG list and several known implementers. This section | the length is | |||
contains responses from three implementers who completed the survey. | invalid, the LSA in which it is advertised is considered malformed and <bcp14>MU | |||
No external means were used to verify the accuracy of the information | ST</bcp14> be | |||
submitted by the respondents. The respondents are considered experts | ignored. An error <bcp14>SHOULD</bcp14> be logged subject to rate limiting. | |||
on the products they reported on. Additionally, responses were | </t> | |||
omitted from implementers who indicated that they have not | </section> | |||
implemented the function yet.</t> | <section anchor="Security" numbered="true" toc="include" removeInRFC="false" | |||
pn="section-10"> | ||||
<t>This section will be removed before publication as an RFC.</t> | <name slugifiedName="name-security-considerations">Security Considerations | |||
</name> | ||||
<t>Responses from Nokia (former Alcatel-Lucent):</t> | <t pn="section-10-1">With the OSPFv2 Segment Routing extensions defined he | |||
rein, | ||||
<t>Link to a web page describing the implementation: | OSPFv2 will now program the MPLS data plane <xref target="RFC3031" format= | |||
https://infoproducts.alcatel-lucent.com/cgi-bin/dbaccessfilename. | "default" sectionFormat="of" derivedContent="RFC3031"/> in addition to the IP | |||
cgi/3HE10799AAAATQZZA01_V1_7450%20ESS%207750%20SR%20and%207950%20XRS%20Unicast%2 | data plane. Previously, LDP <xref target="RFC5036" format="default" sectio | |||
0Routing%20Protocols%20Guide%20R14.0.R1.pdf</t> | nFormat="of" derivedContent="RFC5036"/> or another label distribution | |||
<t>The implementation's level of maturity: Production.</t> | ||||
<t>Coverage: We have implemented all sections and have support fo | ||||
r the latest draft.</t> | ||||
<t>Licensing: Part of the software package that needs to be purch | ||||
ased.</t> | ||||
<t>Implementation experience: Great spec. We also performed inter | ||||
-operability | ||||
testing with Cisco's OSPF Segment Routing implementation. </t> | ||||
<t>Contact information: wim.henderickx@nokia.com </t> | ||||
<t> Responses from Cisco Systems: </t> | ||||
<t> Link to a web page describing the implementation:</t> | ||||
<t> http://www.segment-routing.net/home/tutorial</t> | ||||
<t> The implementation's level of maturity: Production.</t> | ||||
<t> Coverage: All sections have been implemented according to the | ||||
latest draft.</t> | ||||
<t> Licensing: Part of a commercial software package.</t> | ||||
<t> Implementation experience: Many aspects of the draft are resu | ||||
lt of the | ||||
actual implementation experience, as the draft evolved from its i | ||||
nitial version | ||||
to the current one. Interoperability testing with Alcatel-Lucent | ||||
was performed, which confirmed the draft's ability to serve as a | ||||
reference for the | ||||
implementors.</t> | ||||
<t> Contact information: ppsenak@cisco.com </t> | ||||
<t> Responses from Juniper: </t> | ||||
<t> The implementation's name and/or a link to a web page describ | ||||
ing | ||||
the implementation:</t> | ||||
<t> Feature name is OSPF SPRING</t> | ||||
<t> The implementation's level of maturity: | ||||
To be released in 16.2 (second half of 2016)</t> | ||||
<t> Coverage: All sections implemented except Sections 4, and 6.< | ||||
/t> | ||||
<t> Licensing: JUNOS Licensing needed.</t> | ||||
<t> Implementation experience: NA</t> | ||||
<t> Contact information: shraddha@juniper.net </t> | ||||
</section> | ||||
<section anchor="Security" title="Security Considerations"> | ||||
<t>With the OSPFv2 segment routing extensions defined herein, | ||||
OSPFv2 will now program the MPLS data plane [RFC3031] in addition to the I | ||||
P | ||||
data plane. Previously, LDP [RFC5036] or another label distribution | ||||
mechanism was required to advertise MPLS labels and program the MPLS data plane.</t> | mechanism was required to advertise MPLS labels and program the MPLS data plane.</t> | |||
<t pn="section-10-2">In general, the same types of attacks that can be car | ||||
<t>In general, the same types of attacks that can be carried out on the IP | ried out on the IP | |||
control plane can be carried out on the MPLS control plane resulting in tr affic | control plane can be carried out on the MPLS control plane resulting in tr affic | |||
being misrouted in the respective data planes. However, the latter can be more | being misrouted in the respective data planes. However, the latter can be more | |||
difficult to detect and isolate.</t> | difficult to detect and isolate.</t> | |||
<t pn="section-10-3">Existing security extensions as described in <xref ta | ||||
<t>Existing security extensions as described in <xref target="RFC2328"></x | rget="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> an | |||
ref> and | d | |||
<xref target="RFC7684"></xref> apply to these segment routing extensions. | <xref target="RFC7684" format="default" sectionFormat="of" derivedContent | |||
While | ="RFC7684"/> apply to these Segment Routing extensions. While | |||
OSPF is under a single administrative domain, there can be deployments wh ere | OSPF is under a single administrative domain, there can be deployments wh ere | |||
potential attackers have access to one or more networks in the OSPF routi ng domain. | potential attackers have access to one or more networks in the OSPF routi ng domain. | |||
In these deployments, stronger authentication mechanisms such as those sp ecified | In these deployments, stronger authentication mechanisms such as those sp ecified | |||
in <xref target="RFC7474"></xref> SHOULD be used.</t> | in <xref target="RFC7474" format="default" sectionFormat="of" derivedCont | |||
ent="RFC7474"/> <bcp14>SHOULD</bcp14> be used.</t> | ||||
<t>Implementations MUST assure that malformed TLV and Sub-TLV defined in | <t pn="section-10-4">Implementations <bcp14>MUST</bcp14> assure that malfo | |||
this document | rmed TLVs and sub-TLVs defined in this document | |||
are detected and do not provide a vulnerability for attackers to crash th e OSPFv2 | are detected and do not provide a vulnerability for attackers to crash th e OSPFv2 | |||
router or routing process. Reception of malformed TLV or Sub-TLV SHOULD b | router or routing process. Reception of malformed TLVs or sub-TLVs <bcp14 | |||
e counted | >SHOULD</bcp14> be counted | |||
and/or logged for further analysis. Logging of malformed TLVs and Sub-TLV | and/or logged for further analysis. Logging of malformed TLVs and sub-TLV | |||
s SHOULD | s <bcp14>SHOULD</bcp14> | |||
be rate-limited to prevent a Denial of Service (DoS) attack (distributed | be rate limited to prevent a Denial of Service (DoS) attack (distributed | |||
or otherwise) | or otherwise) | |||
from overloading the OSPF control plane.</t> | from overloading the OSPF control plane.</t> | |||
</section> | ||||
<section anchor="Contributors" title="Contributors"> | ||||
<t>The following people gave a substantial contribution to the content | ||||
of this document: Acee Lindem, Ahmed Bashandy, Martin Horneffer, Bruno Dec | ||||
raene, | ||||
Stephane Litkowski, Igor Milojevic, Rob Shakir and Saku Ytti.</t> | ||||
</section> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | ||||
<t>We would like to thank Anton Smirnov for his contribution.</t> | ||||
<t>Thanks to Acee Lindem for the detail review of the draft, corrections, | ||||
as well as discussion about details of the encoding.</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <references pn="section-11"> | |||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <name slugifiedName="name-references">References</name> | |||
FC.2119.xml"?> | <references pn="section-11.1"> | |||
<name slugifiedName="name-normative-references">Normative References</na | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | me> | |||
FC.7770.xml"?> | <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | |||
119" quoteTitle="true" derivedAnchor="RFC2119"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <front> | |||
FC.4915.xml"?> | <title>Key words for use in RFCs to Indicate Requirement Levels</tit | |||
le> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <author initials="S." surname="Bradner" fullname="S. Bradner"> | |||
FC.7684.xml"?> | <organization showOnFrontPage="true"/> | |||
</author> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <date year="1997" month="March"/> | |||
FC.6845.xml"?> | <abstract> | |||
<t>In many standards track documents several words are used to sig | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | nify the requirements in the specification. These words are often capitalized. | |||
FC.8126.xml"?> | This document defines these words as they should be interpreted in IETF document | |||
s. This document specifies an Internet Best Current Practices for the Internet | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | Community, and requests discussion and suggestions for improvements.</t> | |||
FC.7120.xml"?> | </abstract> | |||
</front> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <seriesInfo name="BCP" value="14"/> | |||
FC.3101.xml"?> | <seriesInfo name="RFC" value="2119"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | </reference> | |||
FC.2328.xml"?> | <reference anchor="RFC2328" target="https://www.rfc-editor.org/info/rfc2 | |||
328" quoteTitle="true" derivedAnchor="RFC2328"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | <front> | |||
I-D.ietf-spring-segment-routing.xml"?> | <title>OSPF Version 2</title> | |||
<author initials="J." surname="Moy" fullname="J. Moy"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | <organization showOnFrontPage="true"/> | |||
I-D.ietf-spring-segment-routing-ldp-interop.xml"?> | </author> | |||
<date year="1998" month="April"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | <abstract> | |||
I-D.ietf-spring-segment-routing-mpls.xml"?> | <t>This memo documents version 2 of the OSPF protocol. OSPF is a | |||
link- state routing protocol. [STANDARDS-TRACK]</t> | ||||
<?rfc ?> | </abstract> | |||
</references> | </front> | |||
<seriesInfo name="STD" value="54"/> | ||||
<references title="Informative References"> | <seriesInfo name="RFC" value="2328"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC2328"/> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | </reference> | |||
FC.7855.xml"?> | <reference anchor="RFC3101" target="https://www.rfc-editor.org/info/rfc3 | |||
101" quoteTitle="true" derivedAnchor="RFC3101"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.R | <front> | |||
FC.7474.xml"?> | <title>The OSPF Not-So-Stubby Area (NSSA) Option</title> | |||
<author initials="P." surname="Murphy" fullname="P. Murphy"> | ||||
<?rfc include="http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference. | <organization showOnFrontPage="true"/> | |||
I-D.ietf-ospf-ospfv3-segment-routing-extensions.xml"?> | </author> | |||
<date year="2003" month="January"/> | ||||
<abstract> | ||||
<t>This memo documents an optional type of Open Shortest Path Firs | ||||
t (OSPF) area that is somewhat humorously referred to as a "not-so-stubby" area | ||||
(or NSSA). NSSAs are similar to the existing OSPF stub area configuration optio | ||||
n but have the additional capability of importing AS external routes in a limite | ||||
d fashion. The OSPF NSSA Option was originally defined in RFC 1587. The functio | ||||
nal differences between this memo and RFC 1587 are explained in Appendix F. All | ||||
differences, while expanding capability, are backward-compatible in nature. Imp | ||||
lementations of this memo and of RFC 1587 will interoperate. [STANDARDS-TRACK]</ | ||||
t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3101"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3101"/> | ||||
</reference> | ||||
<reference anchor="RFC4915" target="https://www.rfc-editor.org/info/rfc4 | ||||
915" quoteTitle="true" derivedAnchor="RFC4915"> | ||||
<front> | ||||
<title>Multi-Topology (MT) Routing in OSPF</title> | ||||
<author initials="P." surname="Psenak" fullname="P. Psenak"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Mirtorabi" fullname="S. Mirtorabi"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Roy" fullname="A. Roy"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L." surname="Nguyen" fullname="L. Nguyen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="P." surname="Pillay-Esnault" fullname="P. Pillay-E | ||||
snault"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2007" month="June"/> | ||||
<abstract> | ||||
<t>This document describes an extension to Open Shortest Path Firs | ||||
t (OSPF) in order to define independent IP topologies called Multi- Topologies ( | ||||
MTs). The Multi-Topologies extension can be used for computing different paths | ||||
for unicast traffic, multicast traffic, different classes of service based on fl | ||||
exible criteria, or an in- band network management topology.</t> | ||||
<t>An optional extension to exclude selected links from the defaul | ||||
t topology is also described. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4915"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4915"/> | ||||
</reference> | ||||
<reference anchor="RFC6845" target="https://www.rfc-editor.org/info/rfc6 | ||||
845" quoteTitle="true" derivedAnchor="RFC6845"> | ||||
<front> | ||||
<title>OSPF Hybrid Broadcast and Point-to-Multipoint Interface Type< | ||||
/title> | ||||
<author initials="N." surname="Sheth" fullname="N. Sheth"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L." surname="Wang" fullname="L. Wang"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Zhang" fullname="J. Zhang"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2013" month="January"/> | ||||
<abstract> | ||||
<t>This document describes a mechanism to model a broadcast networ | ||||
k as a hybrid of broadcast and point-to-multipoint networks for purposes of OSPF | ||||
operation. Neighbor discovery and maintenance as well as Link State Advertisem | ||||
ent (LSA) database synchronization are performed using the broadcast model, but | ||||
the network is represented using the point-to-multipoint model in the router-LSA | ||||
s of the routers connected to it. This allows an accurate representation of the | ||||
cost of communication between different routers on the network, while maintaini | ||||
ng the network efficiency of broadcast operation. This approach is relatively s | ||||
imple and requires minimal changes to OSPF.</t> | ||||
<t>This document updates both OSPFv2 (RFC 2328) and OSPFv3 (RFC 53 | ||||
40). [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6845"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6845"/> | ||||
</reference> | ||||
<reference anchor="RFC7120" target="https://www.rfc-editor.org/info/rfc7 | ||||
120" quoteTitle="true" derivedAnchor="RFC7120"> | ||||
<front> | ||||
<title>Early IANA Allocation of Standards Track Code Points</title> | ||||
<author initials="M." surname="Cotton" fullname="M. Cotton"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2014" month="January"/> | ||||
<abstract> | ||||
<t>This memo describes the process for early allocation of code po | ||||
ints by IANA from registries for which "Specification Required", "RFC | ||||
Required", "IETF Review", or "Standards Action" policies apply. Th | ||||
is process can be used to alleviate the problem where code point allocation is n | ||||
eeded to facilitate desired or required implementation and deployment experience | ||||
prior to publication of an RFC, which would normally trigger code point allocat | ||||
ion. The procedures in this document are intended to apply only to IETF Stream | ||||
documents.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="100"/> | ||||
<seriesInfo name="RFC" value="7120"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7120"/> | ||||
</reference> | ||||
<reference anchor="RFC7684" target="https://www.rfc-editor.org/info/rfc7 | ||||
684" quoteTitle="true" derivedAnchor="RFC7684"> | ||||
<front> | ||||
<title>OSPFv2 Prefix/Link Attribute Advertisement</title> | ||||
<author initials="P." surname="Psenak" fullname="P. Psenak"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H." surname="Gredler" fullname="H. Gredler"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Shakir" fullname="R. Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="W." surname="Henderickx" fullname="W. Henderickx"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Tantsura" fullname="J. Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Lindem" fullname="A. Lindem"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2015" month="November"/> | ||||
<abstract> | ||||
<t>OSPFv2 requires functional extension beyond what can readily be | ||||
done with the fixed-format Link State Advertisements (LSAs) as described in RFC | ||||
2328. This document defines OSPFv2 Opaque LSAs based on Type-Length-Value (TLV | ||||
) tuples that can be used to associate additional attributes with prefixes or li | ||||
nks. Depending on the application, these prefixes and links may or may not be a | ||||
dvertised in the fixed-format LSAs. The OSPFv2 Opaque LSAs are optional and ful | ||||
ly backward compatible.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7684"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7684"/> | ||||
</reference> | ||||
<reference anchor="RFC7770" target="https://www.rfc-editor.org/info/rfc7 | ||||
770" quoteTitle="true" derivedAnchor="RFC7770"> | ||||
<front> | ||||
<title>Extensions to OSPF for Advertising Optional Router Capabiliti | ||||
es</title> | ||||
<author initials="A." surname="Lindem" fullname="A. Lindem" role="ed | ||||
itor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="N." surname="Shen" fullname="N. Shen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="JP." surname="Vasseur" fullname="JP. Vasseur"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Aggarwal" fullname="R. Aggarwal"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Shaffer" fullname="S. Shaffer"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2016" month="February"/> | ||||
<abstract> | ||||
<t>It is useful for routers in an OSPFv2 or OSPFv3 routing domain | ||||
to know the capabilities of their neighbors and other routers in the routing dom | ||||
ain. This document proposes extensions to OSPFv2 and OSPFv3 for advertising opt | ||||
ional router capabilities. The Router Information (RI) Link State Advertisement | ||||
(LSA) is defined for this purpose. In OSPFv2, the RI LSA will be implemented w | ||||
ith an Opaque LSA type ID. In OSPFv3, the RI LSA will be implemented with a uni | ||||
que LSA type function code. In both protocols, the RI LSA can be advertised at | ||||
any of the defined flooding scopes (link, area, or autonomous system (AS)). Thi | ||||
s document obsoletes RFC 4970 by providing a revised specification that includes | ||||
support for advertisement of multiple instances of the RI LSA and a TLV for fun | ||||
ctional capabilities.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7770"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7770"/> | ||||
</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="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="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="RFC8660" target="https://www.rfc-editor.org/info/rfc8 | ||||
660" quoteTitle="true" derivedAnchor="RFC8660"> | ||||
<front> | ||||
<title>Segment Routing with 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> | ||||
<reference anchor="RFC8661" target="https://www.rfc-editor.org/info/rfc8 | ||||
661" quoteTitle="true" derivedAnchor="RFC8661"> | ||||
<front> | ||||
<title>Segment Routing Interworking with LDP</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> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8661"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8661"/> | ||||
</reference> | ||||
</references> | ||||
<references pn="section-11.2"> | ||||
<name slugifiedName="name-informative-references">Informative References | ||||
</name> | ||||
<reference anchor="RFC3031" target="https://www.rfc-editor.org/info/rfc3 | ||||
031" quoteTitle="true" derivedAnchor="RFC3031"> | ||||
<front> | ||||
<title>Multiprotocol Label Switching Architecture</title> | ||||
<author initials="E." surname="Rosen" fullname="E. Rosen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Viswanathan" fullname="A. Viswanathan | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Callon" fullname="R. Callon"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2001" month="January"/> | ||||
<abstract> | ||||
<t>This document specifies the architecture for Multiprotocol Labe | ||||
l Switching (MPLS). [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3031"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3031"/> | ||||
</reference> | ||||
<reference anchor="RFC5036" target="https://www.rfc-editor.org/info/rfc5 | ||||
036" quoteTitle="true" derivedAnchor="RFC5036"> | ||||
<front> | ||||
<title>LDP Specification</title> | ||||
<author initials="L." surname="Andersson" fullname="L. Andersson" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="I." surname="Minei" fullname="I. Minei" role="edit | ||||
or"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B." surname="Thomas" fullname="B. Thomas" role="ed | ||||
itor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2007" month="October"/> | ||||
<abstract> | ||||
<t>The architecture for Multiprotocol Label Switching (MPLS) is de | ||||
scribed in RFC 3031. A fundamental concept in MPLS is that two Label Switching | ||||
Routers (LSRs) must agree on the meaning of the labels used to forward traffic b | ||||
etween and through them. This common understanding is achieved by using a set o | ||||
f procedures, called a label distribution protocol, by which one LSR informs ano | ||||
ther of label bindings it has made. This document defines a set of such procedu | ||||
res called LDP (for Label Distribution Protocol) by which LSRs distribute labels | ||||
to support MPLS forwarding along normally routed paths. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5036"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5036"/> | ||||
</reference> | ||||
<reference anchor="RFC7474" target="https://www.rfc-editor.org/info/rfc7 | ||||
474" quoteTitle="true" derivedAnchor="RFC7474"> | ||||
<front> | ||||
<title>Security Extension for OSPFv2 When Using Manual Key Managemen | ||||
t</title> | ||||
<author initials="M." surname="Bhatia" fullname="M. Bhatia"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Hartman" fullname="S. Hartman"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D." surname="Zhang" fullname="D. Zhang"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Lindem" fullname="A. Lindem" role="ed | ||||
itor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2015" month="April"/> | ||||
<abstract> | ||||
<t>The current OSPFv2 cryptographic authentication mechanism as de | ||||
fined in RFCs 2328 and 5709 is vulnerable to both inter-session and intra- sessi | ||||
on replay attacks when using manual keying. Additionally, the existing cryptogr | ||||
aphic authentication mechanism does not cover the IP header. This omission can | ||||
be exploited to carry out various types of attacks.</t> | ||||
<t>This document defines changes to the authentication sequence nu | ||||
mber mechanism that will protect OSPFv2 from both inter-session and intra- sessi | ||||
on replay attacks when using manual keys for securing OSPFv2 protocol packets. | ||||
Additionally, we also describe some changes in the cryptographic hash computatio | ||||
n that will eliminate attacks resulting from OSPFv2 not protecting the IP header | ||||
.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7474"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7474"/> | ||||
</reference> | ||||
<reference anchor="RFC7855" target="https://www.rfc-editor.org/info/rfc7 | ||||
855" quoteTitle="true" derivedAnchor="RFC7855"> | ||||
<front> | ||||
<title>Source Packet Routing in Networking (SPRING) Problem Statemen | ||||
t and Requirements</title> | ||||
<author initials="S." surname="Previdi" fullname="S. Previdi" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C." surname="Filsfils" fullname="C. Filsfils" role | ||||
="editor"> | ||||
<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="M." surname="Horneffer" fullname="M. Horneffer"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Shakir" fullname="R. Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2016" month="May"/> | ||||
<abstract> | ||||
<t>The ability for a node to specify a forwarding path, other than | ||||
the normal shortest path, that a particular packet will traverse, benefits a nu | ||||
mber of network functions. Source-based routing mechanisms have previously been | ||||
specified for network protocols but have not seen widespread adoption. In this | ||||
context, the term "source" means "the point at which the explicit route is impo | ||||
sed"; therefore, it is not limited to the originator of the packet (i.e., the no | ||||
de imposing the explicit route may be the ingress node of an operator's network) | ||||
.</t> | ||||
<t>This document outlines various use cases, with their requiremen | ||||
ts, that need to be taken into account by the Source Packet Routing in Networkin | ||||
g (SPRING) architecture for unicast traffic. Multicast use cases and requiremen | ||||
ts are out of scope for this document.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7855"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7855"/> | ||||
</reference> | ||||
<reference anchor="RFC8666" target="https://www.rfc-editor.org/info/rfc8 | ||||
666" quoteTitle="true" derivedAnchor="RFC8666"> | ||||
<front> | ||||
<title>OSPFv3 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> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8666"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8666"/> | ||||
</reference> | ||||
</references> | </references> | |||
</references> | ||||
<section anchor="Acknowledgements" numbered="false" toc="include" removeInRF | ||||
C="false" pn="section-appendix.a"> | ||||
<name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
<t pn="section-appendix.a-1">We would like to thank Anton Smirnov for his | ||||
contribution.</t> | ||||
<t pn="section-appendix.a-2">Thanks to Acee Lindem for the detailed review | ||||
of the document, corrections, | ||||
as well as discussion about details of the encoding.</t> | ||||
</section> | ||||
<section anchor="Contributors" numbered="false" toc="include" removeInRFC="f | ||||
alse" pn="section-appendix.b"> | ||||
<name slugifiedName="name-contributors">Contributors</name> | ||||
<t pn="section-appendix.b-1">The following people gave a substantial contr | ||||
ibution to the content | ||||
of this document: Acee Lindem, Ahmed Bashandy, Martin Horneffer, Bruno Dec | ||||
raene, | ||||
Stephane Litkowski, Igor Milojevic, and Saku Ytti.</t> | ||||
</section> | ||||
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
="include" pn="section-appendix.c"> | ||||
<name slugifiedName="name-authors-addresses">Authors' Addresses</name> | ||||
<author fullname="Peter Psenak" initials="P." role="editor" surname="Psena | ||||
k"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Apollo Business Center</street> | ||||
<street>Mlynske nivy 43</street> | ||||
<city>Bratislava</city> | ||||
<code>821 09</code> | ||||
<country>Slovakia</country> | ||||
</postal> | ||||
<email>ppsenak@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Stefano Previdi" initials="S." role="editor" surname="Pr | ||||
evidi"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Via Del Serafico, 200</street> | ||||
<city>Rome</city> | ||||
<code>00142</code> | ||||
<country>Italy</country> | ||||
</postal> | ||||
<email>stefano@previdi.net</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Brussels</city> | ||||
<region/> | ||||
<code/> | ||||
<country>Belgium</country> | ||||
</postal> | ||||
<email>cfilsfil@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Hannes Gredler" initials="H." surname="Gredler"> | ||||
<organization showOnFrontPage="true">RtBrick Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<region/> | ||||
<code/> | ||||
<country/> | ||||
</postal> | ||||
<email>hannes@rtbrick.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Rob Shakir" initials="R." surname="Shakir"> | ||||
<organization showOnFrontPage="true">Google, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>1600 Amphitheatre Parkway</street> | ||||
<city>Mountain View</city> | ||||
<code>94043</code> | ||||
<region>CA</region> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>robjs@google.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</city> | ||||
<code>2018</code> | ||||
<country>Belgium</country> | ||||
</postal> | ||||
<email>wim.henderickx@nokia.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Jeff Tantsura" initials="J." surname="Tantsura"> | ||||
<organization showOnFrontPage="true">Apstra, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<region/> | ||||
<code/> | ||||
<country/> | ||||
</postal> | ||||
<email>jefftant.ietf@gmail.com</email> | ||||
</address> | ||||
</author> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 161 change blocks. | ||||
1235 lines changed or deleted | 2231 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/ |