| rfc8667xml2.original.xml | rfc8667.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc toc="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
| <?rfc tocompact="yes"?> | std" consensus="true" number="8667" ipr="trust200902" obsoletes="" updates="" xm | |||
| <?rfc tocdepth="3"?> | l:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3" docName | |||
| <?rfc tocindent="yes"?> | ="draft-ietf-pce-segment-routing-16"> | |||
| <?rfc symrefs="yes"?> | <!-- xml2rfc v2v3 conversion 2.27.1 --> | |||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-isis-segment-routing-extensions-25" | ||||
| ipr="trust200902"> | ||||
| <front> | <front> | |||
| <title abbrev="IS-IS Extensions for Segment Routing">IS-IS Extensions for | <title abbrev="IS-IS Extensions for Segment Routing">IS-IS Extensions for | |||
| Segment Routing</title> | Segment Routing</title> | |||
| <seriesInfo name="RFC" value="8667"/> | ||||
| <author fullname="Stefano Previdi" initials="S." role="editor" | <author fullname="Stefano Previdi" initials="S." role="editor" surname="Prev | |||
| surname="Previdi"> | idi"> | |||
| <organization>Huawei</organization> | <organization>Huawei Technologies</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <code/> | <code/> | |||
| <country>Italy</country> | ||||
| <country>IT</country> | ||||
| </postal> | </postal> | |||
| <email>stefano@previdi.net</email> | <email>stefano@previdi.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Les Ginsberg" initials="L." role="editor" surname="Ginsber | ||||
| <author fullname="Les Ginsberg" initials="L." role="editor" | g"> | |||
| surname="Ginsberg"> | ||||
| <organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <code/> | <code/> | |||
| <country>United States of America</country> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <email>ginsberg@cisco.com</email> | <email>ginsberg@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | <author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> | |||
| <organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city>Brussels</city> | <city>Brussels</city> | |||
| <region/> | <region/> | |||
| <code/> | <code/> | |||
| <country>Belgium</country> | ||||
| <country>BE</country> | ||||
| </postal> | </postal> | |||
| <email>cfilsfil@cisco.com</email> | <email>cfilsfil@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Ahmed Bashandy" initials="A." surname="Bashandy"> | <author fullname="Ahmed Bashandy" initials="A." surname="Bashandy"> | |||
| <organization>Arrcus</organization> | <organization>Arrcus</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <region/> | <region/> | |||
| <country/> | <country/> | |||
| </postal> | </postal> | |||
| <email>abashandy.ietf@gmail.com</email> | <email>abashandy.ietf@gmail.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>RtBrick Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <region/> | <region/> | |||
| <code/> | <code/> | |||
| <country/> | <country/> | |||
| </postal> | </postal> | |||
| <email>hannes@rtbrick.com</email> | <email>hannes@rtbrick.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Bruno Decraene" initials="B." surname="Decraene"> | <author fullname="Bruno Decraene" initials="B." surname="Decraene"> | |||
| <organization>Orange</organization> | <organization>Orange</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <code/> | <code/> | |||
| <country>France</country> | ||||
| <country>FR</country> | ||||
| </postal> | </postal> | |||
| <email>bruno.decraene@orange.com</email> | <email>bruno.decraene@orange.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2019" month="December"/> | ||||
| <date day="19" month="May" year="2019"/> | ||||
| <area>Routing</area> | <area>Routing</area> | |||
| <workgroup>IS-IS for IP Internets</workgroup> | <workgroup>IS-IS for IP Internets</workgroup> | |||
| <keyword>MPLS</keyword> | <keyword>MPLS</keyword> | |||
| <keyword>SID</keyword> | <keyword>SID</keyword> | |||
| <keyword>IGP</keyword> | <keyword>IGP</keyword> | |||
| <keyword>IS-IS</keyword> | <keyword>IS-IS</keyword> | |||
| <keyword>Label advertisement</keyword> | <keyword>Label advertisement</keyword> | |||
| <keyword>Segment Routing</keyword> | <keyword>Segment Routing</keyword> | |||
| <abstract> | <abstract> | |||
| <t>Segment Routing (SR) allows for a flexible definition of end-to-end | <t>Segment Routing (SR) allows for a flexible definition 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 sub-paths, 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>This document describes the IS-IS extensions that need to be | ||||
| <t>This draft describes the necessary IS-IS extensions that need to be | introduced for Segment Routing operating on an MPLS data plane.</t> | |||
| introduced for Segment Routing operating on an MPLS data-plane.</t> | ||||
| </abstract> | </abstract> | |||
| <note title="Requirements Language"> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | ||||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | ||||
| they appear in all capitals, as shown here.</t> | ||||
| </note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t>Segment Routing (SR) allows for a flexible definition of end-to-end | <t>Segment Routing (SR) allows for a flexible definition 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 sub-paths, 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 | specific adjacency between two nodes in the IGP. A prefix segment is | |||
| typically a multi-hop path while an adjacency segment, in most of the | typically a multi-hop path while an adjacency segment, in most of the | |||
| cases, is a one-hop path. SR's control-plane can be applied to both IPv6 | cases, is a one-hop path. SR's control plane can be applied to both IPv6 | |||
| and MPLS data-planes, and does not require any additional signaling | and MPLS data planes and does not require any additional signaling | |||
| (other than the regular IGP). For example, when used in MPLS networks, | (other than the regular IGP). For example, when used in MPLS networks, | |||
| SR paths do not require any LDP or RSVP-TE signaling. Still, SR can | SR paths do not require any LDP or RSVP-TE signaling. Still, SR can | |||
| interoperate in the presence of LSPs established with RSVP or LDP.</t> | interoperate in the presence of Label Switched Paths (LSPs) established wi | |||
| th RSVP or LDP.</t> | ||||
| <t>There are additional segment types, e.g., Binding SID defined in | <t>There are additional segment types, e.g., the Binding SID as defined in | |||
| <xref target="RFC8402"/>. This document also defines an advertisement | <xref target="RFC8402" format="default"/>. This document also defines an a | |||
| dvertisement | ||||
| for one type of Binding SID: the Mirror Context segment.</t> | for one type of Binding SID: the Mirror Context segment.</t> | |||
| <t>This document describes the IS-IS extensions that need to be | ||||
| <t>This draft describes the necessary IS-IS extensions that need to be | introduced for Segment Routing operating on an MPLS data plane.</t> | |||
| introduced for Segment Routing operating on an MPLS data-plane.</t> | <t>The Segment Routing architecture is described in <xref target="RFC8402" | |||
| format="default"/>. Segment Routing use cases are described in <xref target="R | ||||
| <t>The Segment Routing architecture is described in <xref | FC7855" format="default"/>.</t> | |||
| target="RFC8402"/>.</t> | <section numbered="true" toc="default"> | |||
| <name>Requirements Language</name> | ||||
| <t>Segment Routing use cases are described in <xref | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp | |||
| target="RFC7855"/>.</t> | 14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119" format="default"/> <xref target=" | ||||
| RFC8174" format="default"/> | ||||
| when, and only when, they appear in all capitals, as shown here.</t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Segment Routing Identifiers"> | <name>Segment Routing Identifiers</name> | |||
| <t>The Segment Routing architecture <xref target="RFC8402"/> defines | <t>The Segment Routing architecture <xref target="RFC8402" format="default | |||
| different types of Segment Identifiers (SID). This document defines the | "/> defines | |||
| different types of Segment Identifiers (SIDs). This document defines the | ||||
| IS-IS encodings for the IGP-Prefix Segment, the IGP-Adjacency Segment, | IS-IS encodings for the IGP-Prefix Segment, the IGP-Adjacency Segment, | |||
| the IGP-LAN-Adjacency Segment and the Binding Segment.</t> | the IGP-LAN-Adjacency Segment, and the Binding Segment.</t> | |||
| <section anchor="PREFIXSIDSUBTLV" numbered="true" toc="default"> | ||||
| <section anchor="PREFIXSIDSUBTLV" | <name>Prefix Segment Identifier (Prefix-SID) Sub-TLV</name> | |||
| title="Prefix Segment Identifier (Prefix-SID Sub-TLV)"> | ||||
| <t>A new IS-IS sub-TLV is defined: the Prefix Segment Identifier | <t>A new IS-IS sub-TLV is defined: the Prefix Segment Identifier | |||
| sub-TLV (Prefix-SID sub-TLV).</t> | (Prefix-SID) sub-TLV.</t> | |||
| <t>The Prefix-SID sub-TLV carries the Segment Routing IGP-Prefix-SID | <t>The Prefix-SID sub-TLV carries the Segment Routing IGP-Prefix-SID | |||
| as defined in <xref target="RFC8402"/>. The 'Prefix SID' MUST be | as defined in <xref target="RFC8402" format="default"/>. The 'Prefix-SID | |||
| unique within a given IGP domain (when the L-flag is not set).</t> | ' <bcp14>MUST</bcp14> be | |||
| unique within a given IGP domain (when the L-Flag is not set).</t> | ||||
| <t>A Prefix-SID sub-TLV is associated to a prefix advertised by a node | <t>A Prefix-SID sub-TLV is associated to a prefix advertised by a node | |||
| and MAY be present in any of the following TLVs: <list style="hanging"> | and <bcp14>MAY</bcp14> be present in any of the following TLVs: </t> | |||
| <t>TLV-135 (Extended IPv4 reachability) defined in <xref | ||||
| target="RFC5305"/>.</t> | ||||
| <t>TLV-235 (Multitopology IPv4 Reachability) defined in <xref | <ul empty="true"> | |||
| target="RFC5120"/>.</t> | <li>TLV-135 (Extended IPv4 reachability) defined in <xref target="RFC5 | |||
| 305" format="default"/>.</li> | ||||
| <t>TLV-236 (IPv6 IP Reachability) defined in <xref | <li>TLV-235 (Multi-topology IPv4 Reachability) defined in <xref target | |||
| target="RFC5308"/>.</t> | ="RFC5120" format="default"/>.</li> | |||
| <t>TLV-237 (Multitopology IPv6 IP Reachability) defined in <xref | <li>TLV-236 (IPv6 IP Reachability) defined in <xref target="RFC5308" f | |||
| target="RFC5120"/>.</t> | ormat="default"/>.</li> | |||
| <t>Binding-TLV and Multi-Topology Binding-TLV defined in <xref | <li>TLV-237 (Multi-topology IPv6 IP Reachability) defined in <xref tar | |||
| target="BINDINGTLV"/> and <xref target="MTBINDINGTLV"/> | get="RFC5120" format="default"/>.</li> | |||
| respectively.</t> | ||||
| </list></t> | ||||
| <t>The Prefix-SID sub-TLV has the following format:<figure> | <li>The Binding TLV and Multi-Topology Binding TLV are defined in Sect | |||
| <artwork><![CDATA[ | ions <xref target="BINDINGTLV" format="counter"/> and <xref target="MTBINDINGTLV | |||
| " format="counter"/>, | ||||
| respectively.</li> | ||||
| </ul> | ||||
| <t>The Prefix-SID sub-TLV has the following format:</t> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | Flags | Algorithm | | | Type | Length | Flags | Algorithm | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Index/Label (variable) | | | SID/Index/Label (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| <t>where:</t> | ||||
| where:]]></artwork> | <ul empty="true"> | |||
| </figure><list style="hanging"> | <li> | |||
| <t>Type: 3</t> | <dl newline="false" spacing="normal" indent="9"> | |||
| <dt>Type:</dt><dd>3</dd> | ||||
| <t>Length: 5 or 6 depending on the size of the SID (described | <dt>Length:</dt><dd>5 or 6 depending on the size of the SID (described | |||
| below)</t> | below)</dd> | |||
| <dt> | ||||
| <t>Flags: 1 octet field of following flags: <figure> | Flags:</dt><dd><t> 1-octet field of the following flags:</t> | |||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |R|N|P|E|V|L| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| ]]></artwork> | ||||
| </figure> where: <list style="hanging"> | ||||
| <t>R-Flag: Re-advertisement flag. If set, then the prefix to | ||||
| which this Prefix-SID is attached, has been propagated by the | ||||
| router either from another level (i.e., from level-1 to | ||||
| level-2 or the opposite) or from redistribution (e.g.: from | ||||
| another protocol).</t> | ||||
| <t>N-Flag: Node-SID flag. If set, then the Prefix-SID refers | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |R|N|P|E|V|L| | | ||||
| +-+-+-+-+-+-+-+-+]]></artwork> | ||||
| <t> where: </t> | ||||
| <dl newline="false" spacing="normal" indent="9"> | ||||
| <dt>R-Flag:</dt><dd>Re-advertisement Flag. If set, then the prefix | ||||
| to | ||||
| which this Prefix-SID is attached has been propagated by the | ||||
| router from either another level (i.e., from Level-1 to | ||||
| Level-2 or the opposite) or redistribution (e.g., from | ||||
| another protocol).</dd> | ||||
| <dt>N-Flag:</dt><dd>Node-SID Flag. If set, then the Prefix-SID ref | ||||
| ers | ||||
| to the router identified by the prefix. Typically, the N-Flag | to the router identified by the prefix. Typically, the N-Flag | |||
| is set on Prefix-SIDs attached to a router loopback address. | is set on Prefix-SIDs that are attached to a router loopback add ress. | |||
| The N-Flag is set when the Prefix-SID is a Node-SID as | The N-Flag is set when the Prefix-SID is a Node-SID as | |||
| described in <xref target="RFC8402"/>.</t> | described in <xref target="RFC8402" format="default"/>.</dd> | |||
| <dt>P-Flag:</dt><dd>No-PHP | ||||
| <t>P-Flag: no-PHP flag. If set, then the penultimate hop MUST | (No Penultimate Hop-Popping) Flag. If set, then the penultimate hop <bcp14>MUST | |||
| NOT pop the Prefix-SID before delivering the packet to the | NOT</bcp14> pop the Prefix-SID before delivering the packet to t | |||
| node that advertised the Prefix-SID.</t> | he | |||
| node that advertised the Prefix-SID.</dd> | ||||
| <t>E-Flag: Explicit-Null Flag. If set, any upstream neighbor | <dt>E-Flag:</dt><dd>Explicit NULL Flag. If set, any upstream neigh | |||
| of the Prefix-SID originator MUST replace the Prefix-SID with | bor | |||
| a Prefix-SID having an Explicit-NULL value (0 for IPv4 and 2 | of the Prefix-SID originator <bcp14>MUST</bcp14> replace the Pre | |||
| for IPv6) before forwarding the packet.</t> | fix-SID with | |||
| a Prefix-SID that has an Explicit NULL value (0 for IPv4 and 2 | ||||
| <t>V-Flag: Value flag. If set, then the Prefix-SID carries a | for IPv6) before forwarding the packet.</dd> | |||
| value (instead of an index). By default the flag is UNSET.</t> | <dt>V-Flag:</dt><dd>Value Flag. If set, then the Prefix-SID carrie | |||
| s a | ||||
| <t>L-Flag: Local Flag. If set, then the value/index carried by | value (instead of an index). By default, the flag is UNSET.</dd> | |||
| the Prefix-SID has local significance. By default the flag is | <dt>L-Flag:</dt><dd>Local Flag. If set, then the value/index carri | |||
| UNSET.</t> | ed by | |||
| the Prefix-SID has local significance. By default, the flag is | ||||
| <t>Other bits: MUST be zero when originated and ignored when | UNSET.</dd> | |||
| received.</t> | <dt>Other bits:</dt><dd><bcp14>MUST</bcp14> be zero when originate | |||
| </list></t> | d and ignored when | |||
| received.</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"> | ||||
| <li><dl newline="false" spacing="normal"> | ||||
| <t>Algorithm: the router may use various algorithms when | <dt>Algorithm:</dt><dd>the router may use various algorithms when | |||
| calculating reachability to other nodes or to prefixes attached to | calculating reachability to other nodes or to prefixes attached to | |||
| these nodes. Algorithm identifiers are defined in <xref | these nodes. Algorithm identifiers are defined in <xref target="SRAL | |||
| target="SRALGOSUBTLV"/>. Examples of these algorithms are metric | GOSUBTLV" format="default"/>. Examples of these algorithms are metric-based | |||
| based Shortest Path First (SPF), various sorts of Constrained SPF, | Shortest Path First (SPF), various sorts of Constrained SPF, | |||
| etc. The algorithm field of the Prefix-SID contains the identifier | etc. The Algorithm field of the Prefix-SID contains the identifier | |||
| of the algorithm the router uses to compute the reachability of | of the algorithm the router uses to compute the reachability of | |||
| the prefix to which the Prefix-SID is associated.</t> | the prefix to which the Prefix-SID is associated.</dd> | |||
| </dl></li></ul> | ||||
| <t>At origination, the Prefix-SID algorithm field MUST be set to 0 | <ul empty="true"> | |||
| or to any value advertised in the SR-Algorithm sub-TLV (<xref | <li> | |||
| target="SRALGOSUBTLV"/>).</t> | At origination, the Prefix-SID Algorithm field <bcp14>MUST</bcp14> be | |||
| set to 0 | ||||
| or to any value advertised in the SR-Algorithm sub-TLV (see <xref ta | ||||
| rget="SRALGOSUBTLV" format="default"/>).</li> | ||||
| <t>A router receiving a Prefix-SID from a remote node and with an | <li>A router receiving a Prefix-SID from a remote node and with an | |||
| algorithm value that such remote node has not advertised in the | algorithm value that such remote node has not advertised in the | |||
| SR-Algorithm sub-TLV (<xref target="SRALGOSUBTLV"/>) MUST ignore | SR-Algorithm sub-TLV (see <xref target="SRALGOSUBTLV" format="defaul | |||
| the Prefix-SID sub-TLV.</t> | t"/>) <bcp14>MUST</bcp14> ignore | |||
| the Prefix-SID sub-TLV.</li> | ||||
| <t>SID/Index/Label as defined in <xref target="VANDLFLAGS"/>.</t> | ||||
| </list></t> | ||||
| <t>When the Prefix SID is an index (the V-flag is not set) the value | <li>SID/Index/Label as defined in <xref target="VANDLFLAGS" format="de | |||
| fault"/>.</li> | ||||
| </ul> | ||||
| <t>When the Prefix-SID is an index (and the V-Flag is not set), the valu | ||||
| e | ||||
| is used to determine the actual label value inside the set of all | is used to determine the actual label value inside the set of all | |||
| advertised label ranges of a given router. This allows a receiving | advertised label ranges of a given router. This allows a receiving | |||
| router to construct forwarding state to a particular destination | router to construct the forwarding state to a particular destination | |||
| router.</t> | router.</t> | |||
| <t>In many use cases, a 'stable transport' address is overloaded as an | ||||
| <t>In many use-cases a 'stable transport' address is overloaded as an | ||||
| identifier of a given node. Because Prefixes may be re-advertised into | identifier of a given node. Because Prefixes may be re-advertised into | |||
| other levels there may be some ambiguity (e.g. Originating router vs. | other levels, there may be some ambiguity (e.g., originating router vs. | |||
| L1L2 router) for which node a particular IP prefix serves as | L1L2 router) for which node a particular IP prefix serves as the | |||
| identifier. The Prefix-SID sub-TLV contains the necessary flags to | identifier. The Prefix-SID sub-TLV contains the necessary flags to | |||
| disambiguate Prefix to node mappings. Furthermore if a given node has | disambiguate Prefix-to-node mappings. Furthermore, if a given node has | |||
| several 'stable transport' addresses there are flags to differentiate | several 'stable transport' addresses, there are flags to differentiate | |||
| those among other Prefixes advertised from a given node.</t> | those among other Prefixes advertised from a given node.</t> | |||
| <section anchor="FLAGS" title="Flags"> | <section anchor="FLAGS" numbered="true" toc="default"> | |||
| <section anchor="VANDLFLAGS" title="V and L Flags"> | <name>Flags</name> | |||
| <t>The V-flag indicates whether the SID/Index/Label field is a | <section anchor="VANDLFLAGS" numbered="true" toc="default"> | |||
| <name>V-Flag and L-Flag</name> | ||||
| <t>The V-Flag indicates whether the SID/Index/Label field is a | ||||
| value or an index.</t> | value or an index.</t> | |||
| <t>The L-Flag indicates whether the value/index in the | <t>The L-Flag indicates whether the value/index in the | |||
| SID/Index/Label field has local or global significance.</t> | SID/Index/Label field has local or global significance.</t> | |||
| <t>The following settings for V and L flags are valid:</t> | <t>The following settings for V-Flag and L-Flag are valid:</t> | |||
| <ul empty="true"><li> | ||||
| <t>V-flag is set to 0 and L-flag is set to 0: The SID/Index/Label | <dl> | |||
| field is a 4 octet index defining the offset in the SID/Label | <dt>The V-Flag and L-Flag are set to 0:</dt><dd>The SID/Index/Label | |||
| field is a 4-octet index defining the offset in the SID/Label | ||||
| space advertised by this router using the encodings defined in | space advertised by this router using the encodings defined in | |||
| <xref target="SRCAPSUBTLV"/>.</t> | <xref target="SRCAPSUBTLV" format="default"/>.</dd> | |||
| <t>V-flag is set to 1 and L-flag is set to 1: The SID/Index/Label | <dt>The V-Flag and L-Flag are set to 1:</dt><dd>The SID/Index/Label | |||
| field is a 3 octet local label where the 20 rightmost bits are | field is a 3-octet local label where the 20 rightmost bits are | |||
| used for encoding the label value.</t> | used for encoding the label value.</dd> | |||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <t>All other combinations of V-flag and L-flag are invalid and any | <t>All other combinations of V-Flag and L-Flag are invalid, and any | |||
| SID advertisement received with an invalid setting for V and L | SID advertisement received with an invalid setting for the V-Flag an | |||
| flags MUST be ignored.</t> | d | |||
| L-Flag <bcp14>MUST</bcp14> be ignored.</t> | ||||
| </section> | </section> | |||
| <section anchor="RANDNFLAGS" title="R and N Flags"> | <section anchor="RANDNFLAGS" numbered="true" toc="default"> | |||
| <t>The R-Flag MUST be set for prefixes that are not local to the | <name>R-Flag and N-Flag</name> | |||
| router and either:<list style="hanging"> | <t>The R-Flag <bcp14>MUST</bcp14> be set for prefixes that are not l | |||
| <t>advertised because of propagation (Level-1 into | ocal to the | |||
| Level-2);</t> | router and are advertised because of:</t> | |||
| <t>advertised because of leaking (Level-2 into Level-1);</t> | ||||
| <t>advertised because of redistribution (e.g.: from another | <ul empty="true"> | |||
| protocol).</t> | <li>propagation (Level-1 into Level-2);</li> | |||
| </list></t> | <li>leaking (Level-2 into Level-1); or</li> | |||
| <li>redistribution (e.g., from another protocol).</li> | ||||
| </ul> | ||||
| <t>In the case where a Level-1-2 router has local interface | <t>In the case where a Level-1-2 router has local interface | |||
| addresses configured in one level, it may also propagate these | addresses configured in one level, it may also propagate these | |||
| addresses into the other level. In such case, the Level-1-2 router | addresses into the other level. In such case, the Level-1-2 router | |||
| MUST NOT set the R bit.</t> | <bcp14>MUST NOT</bcp14> set the R bit.</t> | |||
| <t>The N-Flag is used in order to define a Node-SID. A router <bcp14 | ||||
| <t>The N-Flag is used in order to define a Node-SID. A router MAY | >MAY</bcp14> | |||
| set the N-Flag only if all of the following conditions are | set the N-Flag only if all of the following conditions are | |||
| met:<list style="hanging"> | met:</t> | |||
| <t>The prefix to which the Prefix-SID is attached is local to | ||||
| the router (i.e., the prefix is configured on one of the local | ||||
| interfaces, e.g., a 'stable transport' loopback).</t> | ||||
| <t>The prefix to which the Prefix-SID is attached has a Prefix | <ul empty="true"> | |||
| length of either /32 (IPv4) or /128 (IPv6).</t> | <li>The prefix to which the Prefix-SID is attached is local to | |||
| </list></t> | the router (i.e., the prefix is configured on one of the local | |||
| interfaces, e.g., a 'stable transport' loopback).</li> | ||||
| <li>The prefix to which the Prefix-SID is attached has a Prefix | ||||
| length of either /32 (IPv4) or /128 (IPv6).</li> | ||||
| </ul> | ||||
| <t>The router MUST ignore the N-Flag on a received Prefix-SID if | <t>The router <bcp14>MUST</bcp14> ignore the N-Flag on a received Pr efix-SID if | |||
| the prefix has a Prefix length different than /32 (IPv4) or /128 | the prefix has a Prefix length different than /32 (IPv4) or /128 | |||
| (IPv6).</t> | (IPv6).</t> | |||
| <t>The Prefix Attribute Flags sub-TLV <xref target="RFC7794" format= | ||||
| <t>The Prefix Attributes Flags sub-TLV <xref target="RFC7794"/> | "default"/> | |||
| also defines the N and R flags and with the same semantics of the | also defines the N-Flag and R-Flag and with the same semantics of th | |||
| e | ||||
| equivalent flags defined in this document. Whenever the Prefix | equivalent flags defined in this document. Whenever the Prefix | |||
| Attributes Flags sub-TLV is present for a given prefix the values | Attribute Flags sub-TLV is present for a given prefix, the values | |||
| of the N and R flags advertised in that sub-TLV MUST be used and | of the N-Flag and R-Flag advertised in that sub-TLV <bcp14>MUST</bcp | |||
| the values in a corresponding Prefix SID sub-TLV (if present) MUST | 14> be used, and | |||
| the values in a corresponding Prefix-SID sub-TLV (if present) <bcp14 | ||||
| >MUST</bcp14> | ||||
| be ignored.</t> | be ignored.</t> | |||
| </section> | </section> | |||
| <section anchor="EANDPFLAGS" numbered="true" toc="default"> | ||||
| <section anchor="EANDPFLAGS" title="E and P Flags"> | <name>E-Flag and P-Flag</name> | |||
| <t>The following behavior is associated with the settings of the E | <t>The following behavior is associated with the settings of the E-F | |||
| and P flags:<list style="symbols"> | lag | |||
| <t>If the P-flag is not set then any upstream neighbor of the | and P-Flag:</t> | |||
| Prefix-SID originator MUST pop the Prefix-SID. This is | <ul spacing="normal"> | |||
| equivalent to the penultimate hop popping mechanism used in | <li>If the P-Flag is not set, then any upstream neighbor of the | |||
| the MPLS dataplane which improves performance of the ultimate | Prefix-SID originator <bcp14>MUST</bcp14> pop the Prefix-SID. Th | |||
| is is | ||||
| equivalent to the "penultimate hop-popping" mechanism used in | ||||
| the MPLS data plane, which improves performance of the ultimate | ||||
| hop. MPLS EXP bits of the Prefix-SID are not preserved to the | hop. MPLS EXP bits of the Prefix-SID are not preserved to the | |||
| ultimate hop (the Prefix-SID being removed). If the P-flag is | ultimate hop (the Prefix-SID being removed). If the P-Flag is | |||
| unset the received E-flag is ignored.</t> | unset, the received E-Flag is ignored.</li> | |||
| <li> | ||||
| <t>If the P-flag is set then:<list style="symbols"> | <t>If the P-Flag is set, then:</t> | |||
| <t>If the E-flag is not set then any upstream neighbor of | <ul spacing="normal"> | |||
| the Prefix-SID originator MUST keep the Prefix-SID on top | <li>If the E-Flag is not set, then any upstream neighbor of | |||
| the Prefix-SID originator <bcp14>MUST</bcp14> keep the Prefi | ||||
| x-SID on top | ||||
| of the stack. This is useful when, e.g., the originator of | of the stack. This is useful when, e.g., the originator of | |||
| the Prefix-SID must stitch the incoming packet into a | the Prefix-SID must stitch the incoming packet into a | |||
| continuing MPLS LSP to the final destination. This could | continuing MPLS LSP to the final destination. This could | |||
| occur at an inter-area border router (prefix propagation | occur at an inter-area border router (prefix propagation | |||
| from one area to another) or at an inter-domain border | from one area to another) or at an interdomain border | |||
| router (prefix propagation from one domain to | router (prefix propagation from one domain to | |||
| another).</t> | another).</li> | |||
| <li>If the E-Flag is set, then any upstream neighbor of the | ||||
| <t>If the E-flag is set then any upstream neighbor of the | Prefix-SID originator <bcp14>MUST</bcp14> replace the Prefix | |||
| Prefix-SID originator MUST replace the PrefixSID with a | -SID with a | |||
| Prefix-SID having an Explicit-NULL value. This is useful, | Prefix-SID having an Explicit NULL value. This is useful, | |||
| e.g., when the originator of the Prefix-SID is the final | e.g., when the originator of the Prefix-SID is the final | |||
| destination for the related prefix and the originator | destination for the related prefix and the originator | |||
| wishes to receive the packet with the original EXP | wishes to receive the packet with the original EXP | |||
| bits.</t> | bits.</li> | |||
| </list></t> | </ul> | |||
| </list></t> | </li> | |||
| </ul> | ||||
| <t>When propagating (either from Level-1 to Level-2 or vice versa) | <t>When propagating (from either Level-1 to Level-2 or Level-2 to Le | |||
| vel-1) | ||||
| a reachability advertisement originated by another IS-IS speaker, | a reachability advertisement originated by another IS-IS speaker, | |||
| the router MUST set the P-flag and MUST clear the E-flag of the | the router <bcp14>MUST</bcp14> set the P-Flag and <bcp14>MUST</bcp14 > clear the E-Flag of the | |||
| related Prefix-SIDs.</t> | related Prefix-SIDs.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="PROPAGATION" title="Prefix-SID Propagation"> | <section anchor="PROPAGATION" numbered="true" toc="default"> | |||
| <t>The Prefix-SID sub-TLV MUST be included when the associated | <name>Prefix-SID Propagation</name> | |||
| <t>The Prefix-SID sub-TLV <bcp14>MUST</bcp14> be included when the ass | ||||
| ociated | ||||
| Prefix Reachability TLV is propagated across level boundaries.</t> | Prefix Reachability TLV is propagated across level boundaries.</t> | |||
| <t>The Level-1-2 router that propagates the Prefix-SID sub-TLV | ||||
| <t>The level-1-2 router that propagates the Prefix-SID sub-TLV | between levels maintains the content (flags and SID), except as noted | |||
| between levels maintains the content (flags and SID) except as noted | in Sections <xref target="RANDNFLAGS" format="counter"/> and <xref tar | |||
| in <xref target="RANDNFLAGS"/> and <xref target="EANDPFLAGS"/>.</t> | get="EANDPFLAGS" format="counter"/>.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Adjacency Segment Identifier "> | <name>Adjacency Segment Identifier</name> | |||
| <t>A new IS-IS sub-TLV is defined: the Adjacency Segment Identifier | <t>A new IS-IS sub-TLV is defined: the Adjacency Segment Identifier (Adj | |||
| sub-TLV (Adj-SID sub-TLV).</t> | -SID) | |||
| sub-TLV.</t> | ||||
| <t>The Adj-SID sub-TLV is an optional sub-TLV carrying the Segment | <t>The Adj-SID sub-TLV is an optional sub-TLV carrying the Segment | |||
| Routing IGP-Adjacency-SID as defined in <xref target="RFC8402"/> with | Routing IGP-Adjacency-SID as defined in <xref target="RFC8402" format="d efault"/> with | |||
| flags and fields that may be used, in future extensions of Segment | flags and fields that may be used, in future extensions of Segment | |||
| Routing, for carrying other types of SIDs.</t> | Routing, for carrying other types of SIDs.</t> | |||
| <t>IS-IS adjacencies are advertised using one of the IS Neighbor TLVs | ||||
| below:</t> | ||||
| <ul empty="true"> | ||||
| <li>TLV-22 (Extended IS reachability) <xref target="RFC5305" format="d | ||||
| efault"/></li> | ||||
| <li>TLV-222 (MT-ISN) <xref target="RFC5120" format="default"/></li> | ||||
| <li>TLV-23 (IS Neighbor Attribute) <xref target="RFC5311" format="defa | ||||
| ult"/></li> | ||||
| <li>TLV-223 (MT IS Neighbor Attribute) <xref target="RFC5311" format=" | ||||
| default"/></li> | ||||
| <li>TLV-141 (inter-AS reachability information) <xref target="RFC5316" | ||||
| format="default"/></li> | ||||
| </ul> | ||||
| <t>Multiple Adj-SID sub-TLVs <bcp14>MAY</bcp14> be associated with a sin | ||||
| gle | ||||
| IS Neighbor.</t> | ||||
| <t>IS-IS adjacencies are advertised using one of the IS-Neighbor TLVs | <section anchor="ADJSIDSUBTLV" numbered="true" toc="default"> | |||
| below:<list style="hanging"> | <name>Adjacency Segment Identifier (Adj-SID) Sub-TLV</name> | |||
| <t>TLV-22 (Extended IS reachability)<xref target="RFC5305"/></t> | ||||
| <t>TLV-222 (Multitopology IS)<xref target="RFC5120"/></t> | ||||
| <t>TLV-23 (IS Neighbor Attribute)<xref target="RFC5311"/></t> | ||||
| <t>TLV-223 (Multitopology IS Neighbor Attribute)<xref | ||||
| target="RFC5311"/></t> | ||||
| <t>TLV-141 (inter-AS reachability information)<xref | ||||
| target="RFC5316"/></t> | ||||
| </list></t> | ||||
| <t>Multiple Adj-SID sub-TLVs MAY be associated with a single | ||||
| IS-neighbor.</t> | ||||
| <section anchor="ADJSIDSUBTLV" | <t>The following format is defined for the Adj-SID sub-TLV:</t> | |||
| title="Adjacency Segment Identifier (Adj-SID) Sub-TLV"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <t>The following format is defined for the Adj-SID sub-TLV:<figure> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | Flags | Weight | | | Type | Length | Flags | Weight | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| <t>where:</t> | ||||
| where:]]></artwork> | <ul empty="true"><li> | |||
| </figure><list style="hanging"> | <dl newline="false" spacing="normal" indent="9"> | |||
| <t>Type: 31</t> | <dt>Type:</dt><dd>31</dd> | |||
| <dt>Length:</dt><dd>5 or 6 depending on size of the SID</dd> | ||||
| <t>Length: 5 or 6 depending on size of the SID</t> | <dt>Flags:</dt><dd><t>1-octet field of the following flags:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ 0 1 2 | ||||
| <t>Flags: 1 octet field of following flags: <figure> | 3 4 5 6 7 | |||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |F|B|V|L|S|P| | | |F|B|V|L|S|P| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t> where: </t> | |||
| </figure> where: <list style="hanging"> | <dl newline="false" spacing="normal" indent="9"> | |||
| <t>F-Flag: Address-Family flag. If unset, then the Adj-SID | ||||
| is used when forwarding IPv4 encapsulated traffic to the | ||||
| neighbor. If set then the Adj-SID is used when forwarding | ||||
| IPv6 encapsulated traffic to the neighbor.</t> | ||||
| <t>B-Flag: Backup flag. If set, the Adj-SID is eligible for | <dt>F-Flag:</dt><dd>Address-Family Flag. If unset, then the Adj- | |||
| protection (e.g.: using IPFRR or MPLS-FRR) as described in | SID | |||
| <xref target="RFC8402"/>.</t> | is used when forwarding IPv4-encapsulated traffic to the | |||
| neighbor. If set, then the Adj-SID is used when forwarding | ||||
| IPv6-encapsulated traffic to the neighbor.</dd> | ||||
| <t>V-Flag: Value flag. If set, then the Adj-SID carries a | <dt>B-Flag:</dt><dd>Backup Flag. If set, the Adj-SID is eligible | |||
| value. By default the flag is SET.</t> | for | |||
| protection (e.g., using IP Fast Reroute (IPFRR) or MPLS Fast R | ||||
| eroute (MPLS-FRR)) as described in | ||||
| <xref target="RFC8402" format="default"/>.</dd> | ||||
| <t>L-Flag: Local Flag. If set, then the value/index carried | <dt>V-Flag:</dt><dd>Value Flag. If set, then the Adj-SID carries | |||
| by the Adj-SID has local significance. By default the flag | a | |||
| is SET.</t> | value. By default, the flag is SET.</dd> | |||
| <t>S-Flag. Set flag. When set, the S-Flag indicates that the | <dt>L-Flag:</dt><dd>Local Flag. If set, then the value/index car | |||
| Adj-SID refers to a set of adjacencies (and therefore MAY be | ried | |||
| assigned to other adjacencies as well).</t> | by the Adj-SID has local significance. By default, the flag | |||
| is SET.</dd> | ||||
| <t>P-Flag. Persistent flag. When set, the P-Flag indicates | <dt>S-Flag:</dt><dd>Set Flag. When set, the S-Flag indicates tha | |||
| t the | ||||
| Adj-SID refers to a set of adjacencies (and therefore <bcp14>M | ||||
| AY</bcp14> be | ||||
| assigned to other adjacencies as well).</dd> | ||||
| <dt>P-Flag:</dt><dd>Persistent Flag. When set, the P-Flag indica | ||||
| tes | ||||
| that the Adj-SID is persistently allocated, i.e., the | that the Adj-SID is persistently allocated, i.e., the | |||
| Adj-SID value remains consistent across router restart | Adj-SID value remains consistent across router restart | |||
| and/or interface flap.</t> | and/or interface flap.</dd> | |||
| <t>Other bits: MUST be zero when originated and ignored when | <dt>Other bits:</dt><dd><bcp14>MUST</bcp14> be zero when origina | |||
| received.</t> | ted and ignored when | |||
| </list></t> | received.</dd> | |||
| </dl> | ||||
| </dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"> | ||||
| <li><dl newline="false" spacing="normal" indent="9"> | ||||
| <t>Weight: 1 octet. The value represents the weight of the | <dt>Weight:</dt><dd>1 octet. The value represents the weight of the | |||
| Adj-SID for the purpose of load balancing. The use of the weight | Adj-SID for the purpose of load balancing. The use of the weight | |||
| is defined in <xref target="RFC8402"/>.</t> | is defined in <xref target="RFC8402" format="default"/>.</dd> | |||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <t>SID/Index/Label as defined in <xref | <ul empty="true"> | |||
| target="VANDLFLAGS"/>.</t> | <li>SID/Index/Label as defined in <xref target="VANDLFLAGS" format="defa | |||
| ult"/>.</li> | ||||
| <t>An SR capable router MAY allocate an Adj-SID for each of its | <li>An SR-capable router <bcp14>MAY</bcp14> allocate an Adj-SID for | |||
| adjacencies</t> | each of its | |||
| adjacencies.</li> | ||||
| <t>An SR capable router MAY allocate more than one Adj-SID to an | <li>An SR-capable router <bcp14>MAY</bcp14> allocate more than one A | |||
| adjacency.</t> | dj-SID to an | |||
| adjacency.</li> | ||||
| <t>An SR capable router MAY allocate the same Adj-SID to | <li>An SR-capable router <bcp14>MAY</bcp14> allocate the same Adj-SI | |||
| different adjacencies.</t> | D to | |||
| different adjacencies.</li> | ||||
| <t>When the P-flag is not set, the Adj-SID MAY be persistent. | <li>When the P-Flag is not set, the Adj-SID <bcp14>MAY</bcp14> be pe | |||
| When the P-flag is set, the Adj-SID MUST be persistent.</t> | rsistent. | |||
| When the P-Flag is set, the Adj-SID <bcp14>MUST</bcp14> be persist | ||||
| ent.</li> | ||||
| <t>Examples of use of the Adj-SID sub-TLV are described in <xref | <li>Examples of Adj-SID sub-TLV use are described in <xref target="R | |||
| target="RFC8402"/>.</t> | FC8402" format="default"/>.</li> | |||
| <t>The F-flag is used in order for the router to advertise the | <li>The F-Flag is used in order for the router to advertise the | |||
| outgoing encapsulation of the adjacency the Adj-SID is attached | outgoing encapsulation of the adjacency the Adj-SID is attached | |||
| to.</t> | to.</li> | |||
| </list></t> | </ul> | |||
| </section> | </section> | |||
| <section anchor="LANADJSIDSUBTLV" | <section anchor="LANADJSIDSUBTLV" numbered="true" toc="default"> | |||
| title="Adjacency Segment Identifiers in LANs"> | <name>Adjacency Segment Identifier (LAN-Adj-SID) Sub-TLV</name> | |||
| <t>In LAN subnetworks, the Designated Intermediate System (DIS) is | <t>In LAN subnetworks, the Designated Intermediate System (DIS) is | |||
| elected and originates the Pseudonode-LSP (PN-LSP) including all | elected and originates the Pseudonode LSP (PN LSP) including all | |||
| neighbors of the DIS.</t> | neighbors of the DIS.</t> | |||
| <t>When Segment Routing is used, each router in the LAN <bcp14>MAY</bc | ||||
| <t>When Segment Routing is used, each router in the LAN MAY | p14> | |||
| advertise the Adj-SID of each of its neighbors. Since, on LANs, each | advertise the Adj-SID of each of its neighbors. Since, on LANs, each | |||
| router only advertises one adjacency to the DIS (and doesn't | router only advertises one adjacency to the DIS (and doesn't | |||
| advertise any other adjacency), each router advertises the set of | advertise any other adjacency), each router advertises the set of | |||
| Adj-SIDs (for each of its neighbors) inside a newly defined sub-TLV | Adj-SIDs (for each of its neighbors) inside a newly defined sub-TLV | |||
| part of the TLV advertising the adjacency to the DIS (e.g.: | that is a part of the TLV advertising the adjacency to the DIS (e.g., | |||
| TLV-22).</t> | TLV-22).</t> | |||
| <t>The following new sub-TLV is defined: LAN Adjacency Segment Identif | ||||
| <t>The following new sub-TLV is defined: LAN-Adj-SID containing the | ier (LAN-Adj-SID) containing the | |||
| set of Adj-SIDs the router assigned to each of its LAN | set of Adj-SIDs the router assigned to each of its LAN | |||
| neighbors.</t> | neighbors.</t> | |||
| <t>The format of the LAN-Adj-SID sub-TLV is as follows:</t> | ||||
| <t>The format of the LAN-Adj-SID sub-TLV is as follows:<figure> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | Flags | Weight | | | Type | Length | Flags | Weight | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Neighbor System-ID (ID length octets) | | | Neighbor System-ID (ID length octets) | | |||
| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| <t>where:</t> | ||||
| <ul empty="true"><li> | ||||
| <dl newline="false" spacing="normal" indent="9"> | ||||
| where: ]]></artwork> | <dt>Type:</dt><dd>32</dd> | |||
| </figure><list style="hanging"> | ||||
| <t>Type: 32</t> | ||||
| <t>Length: variable.</t> | <dt>Length:</dt><dd>Variable</dd> | |||
| <t>Flags: 1 octet field of following flags: <figure> | <dt>Flags:</dt><dd><t> 1-octet field of the following flags:</t> | |||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | <artwork name="" type="" align="left" alt=""><![CDATA[ 0 1 2 | |||
| 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |F|B|V|L|S|P| | | |F|B|V|L|S|P| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t> where the F-Flag, B-Flag, V-Flag, L-Flag, S-Flag, and P-Flag a | |||
| </figure> where F, B, V, L, S and P flags are defined in <xref | re defined in <xref target="ADJSIDSUBTLV" format="default"/>. </t> | |||
| target="ADJSIDSUBTLV"/>. Other bits: MUST be zero when | </dd> | |||
| originated and ignored when received.</t> | </dl> | |||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"><li> | ||||
| <dl newline="false" spacing="normal" indent="13"> | ||||
| <dt>Other bits:</dt><dd><bcp14>MUST</bcp14> be zero when | ||||
| originated and ignored when received.</dd> | ||||
| <t>Weight: 1 octet. The value represents the weight of the | <dt>Weight:</dt><dd>1 octet. The value represents the weight of the | |||
| Adj-SID for the purpose of load balancing. The use of the weight | Adj-SID for the purpose of load balancing. The use of the weight | |||
| is defined in <xref target="RFC8402"/>.</t> | is defined in <xref target="RFC8402" format="default"/>.</dd> | |||
| <t>Neighbor System-ID: IS-IS System-ID of length "ID Length" as | ||||
| defined in <xref target="ISO10589"/>.</t> | ||||
| <t>SID/Index/Label as defined in <xref | ||||
| target="VANDLFLAGS"/>.</t> | ||||
| </list></t> | ||||
| <t>Multiple LAN-Adj-SID sub-TLVs MAY be encoded.</t> | <dt>Neighbor System-ID:</dt><dd>IS-IS System-ID of length "ID Length | |||
| " as | ||||
| defined in <xref target="ISO10589" format="default"/>.</dd> | ||||
| <t>Note that this sub-TLV MUST NOT appear in TLV 141.</t> | <dt>SID/Index/Label:</dt><dd>As defined in <xref target="VANDLFLAGS" | |||
| format="default"/>.</dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <t>In case one TLV-22/23/222/223 (reporting the adjacency to the | <t>Multiple LAN-Adj-SID sub-TLVs <bcp14>MAY</bcp14> be encoded.</t> | |||
| <t>Note that this sub-TLV <bcp14>MUST NOT</bcp14> appear in TLV 141.</ | ||||
| t> | ||||
| <t>In case TLV-22, TLV-23, TLV-222, or TLV-223 (reporting the adjacenc | ||||
| y to the | ||||
| DIS) can't contain the whole set of LAN-Adj-SID sub-TLVs, multiple | DIS) can't contain the whole set of LAN-Adj-SID sub-TLVs, multiple | |||
| advertisements of the adjacency to the DIS MUST be used and all | advertisements of the adjacency to the DIS <bcp14>MUST</bcp14> be used | |||
| advertisements MUST have the same metric.</t> | , and all | |||
| advertisements <bcp14>MUST</bcp14> have the same metric.</t> | ||||
| <t>Each router within the level, by receiving the DIS PN LSP as well | <t>Each router within the level, by receiving the DIS PN LSP as well | |||
| as the non-PN LSP of each router in the LAN, is capable of | as the non-PN LSP of each router in the LAN, is capable of | |||
| reconstructing the LAN topology as well as the set of Adj-SIDs each | reconstructing the LAN topology as well as the set of Adj-SIDs each | |||
| router uses for each of its neighbors.</t> | router uses for each of its neighbors.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="SIDLABELSUBTLV" title="SID/Label Sub-TLV"> | <section anchor="SIDLABELSUBTLV" numbered="true" toc="default"> | |||
| <name>SID/Label Sub-TLV</name> | ||||
| <t>The SID/Label sub-TLV may be present in the following TLVs/sub-TLVs | <t>The SID/Label sub-TLV may be present in the following TLVs/sub-TLVs | |||
| defined in this document:</t> | defined in this document:</t> | |||
| <ul empty="true"> | ||||
| <li>SR-Capabilities sub-TLV (<xref target="SRCAPSUBTLV" format="default" | ||||
| />)</li> | ||||
| <li>SR Local Block sub-TLV (<xref target="SRLBSUBTLV" format="default"/> | ||||
| )</li> | ||||
| <li>SID/Label Binding TLV (<xref target="BINDINGTLV" format="default"/>) | ||||
| </li> | ||||
| <li>Multi-Topology SID/Label Binding TLV (<xref target="MTBINDINGTLV" fo | ||||
| rmat="default"/>)</li> | ||||
| </ul> | ||||
| <t>SR-Capabilities Sub-TLV (<xref target="SRCAPSUBTLV"/>)</t> | <t>Note that the codepoint used in all of the above cases is the | |||
| SID/Label sub-TLV codepoint specified in the new "sub-TLVs for | ||||
| <t>SR Local Block Sub-TLV (<xref target="SRLBSUBTLV"/>)</t> | TLV 149 and 150" registry created by this document.</t> | |||
| <t>The SID/Label sub-TLV contains a SID or an MPLS label. The SID/Label | ||||
| <t>SID/Label Binding TLV (<xref target="BINDINGTLV"/>)</t> | sub-TLV has the following format: </t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| <t>Multi-Topology SID/Label Binding TLV (<xref | ||||
| target="MTBINDINGTLV"/>)</t> | ||||
| <t>Note that the code point used in all of the above cases is the | ||||
| SID/Label Sub-TLV code point specified in the new “sub-TLVs for | ||||
| TLV 149 and 150” registry created by this document.</t> | ||||
| <t>The SID/Label sub-TLV contains a SID or a MPLS Label. The SID/Label | ||||
| sub-TLV has the following format: <figure> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label (variable) | | | SID/Label (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| <t>where:</t> | ||||
| <ul empty="true"><li> | ||||
| <dl newline="false" spacing="normal" indent="12"> | ||||
| where:]]></artwork> | <dt>Type:</dt><dd>1</dd> | |||
| </figure><list> | ||||
| <t>Type: 1</t> | ||||
| <t>Length: 3 or 4</t> | <dt>Length:</dt><dd>3 or 4</dd> | |||
| <t>SID/Label: if length is set to 3 then the 20 rightmost bits | <dt>SID/Label:</dt><dd>If the length is set to 3, then the 20 rightmos | |||
| represent a MPLS label. If length is set to 4 then the value is a | t bits | |||
| 32 bit index</t> | represent an MPLS label. If the length is set to 4, then the value i | |||
| </list></t> | s a | |||
| 32-bit index.</dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="BINDINGTLV" title="SID/Label Binding TLV"> | <section anchor="BINDINGTLV" numbered="true" toc="default"> | |||
| <t>The SID/Label Binding TLV MAY be originated by any router in an | <name>SID/Label Binding TLV</name> | |||
| <t>The SID/Label Binding TLV <bcp14>MAY</bcp14> be originated by any rou | ||||
| ter in an | ||||
| IS-IS domain. There are multiple uses of the SID/Label Binding | IS-IS domain. There are multiple uses of the SID/Label Binding | |||
| TLV.</t> | TLV.</t> | |||
| <t>The SID/Label Binding TLV may be used to advertise prefixes to | <t>The SID/Label Binding TLV may be used to advertise prefixes to | |||
| SID/Label mappings. This functionality is called the Segment Routing | SID/Label mappings. This functionality is called the Segment Routing | |||
| Mapping Server (SRMS). The behavior of the SRMS is defined in <xref | Mapping Server (SRMS). The behavior of the SRMS is defined in <xref targ | |||
| target="I-D.ietf-spring-segment-routing-ldp-interop"/>.</t> | et="RFC8661" format="default"/>.</t> | |||
| <t>The SID/Label Binding TLV may also be used to advertise a Mirror | <t>The SID/Label Binding TLV may also be used to advertise a Mirror | |||
| SID to advertise the ability to process traffic originally destined to | SID indicating the ability of a node to process traffic originally desti | |||
| another IGP node. This behavior is defined in <xref | ned to | |||
| target="RFC8402"/>.</t> | another IGP node. This behavior is defined in <xref target="RFC8402" for | |||
| mat="default"/>.</t> | ||||
| <t>The SID/Label Binding TLV has the following format:</t> | <t>The SID/Label Binding TLV has the following format:</t> | |||
| <figure anchor="SID-MPLS-Binding-TLV-figure" | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| title="SID/Label Binding TLV format"> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | Flags | RESERVED | | | Type | Length | Flags | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range | Prefix Length | Prefix | | | Range | Prefix Length | Prefix | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Prefix (continued, variable) // | // Prefix (continued, variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t>where:</t> | |||
| </figure> | <ul empty="true"><li> | |||
| <dl newline="false" spacing="normal" indent="12"> | ||||
| <t><list style="symbols"> | <dt>Type:</dt><dd>149</dd> | |||
| <t>Type: 149</t> | <dt>Length:</dt><dd>Variable</dd> | |||
| <dt>Flags:</dt><dd>1 octet</dd> | ||||
| <t>Length: variable.</t> | <dt>RESERVED:</dt><dd>1 octet (<bcp14>SHOULD</bcp14> be transmitted as | |||
| 0 and <bcp14>MUST</bcp14> be | ||||
| <t>1 octet of flags</t> | ignored on receipt)</dd> | |||
| <dt>Range:</dt><dd>2 octets</dd> | ||||
| <t>1 octet of RESERVED (SHOULD be transmitted as 0 and MUST be | <dt>Prefix Length:</dt><dd>1 octet</dd> | |||
| ignored on receipt)</t> | <dt>Prefix:</dt><dd>0-16 octets</dd></dl> | |||
| <t>sub-TLVs, where each sub-TLV consists of a sequence of:</t> | ||||
| <t>2 octets of Range</t> | <ul spacing="normal"> | |||
| <li>1 octet of sub-TLV type</li> | ||||
| <t>1 octet of Prefix Length</t> | <li>1 octet of length of the value field of the sub-TLV</li> | |||
| <li>0-243 octets of value</li> | ||||
| <t>0-16 octets of Prefix</t> | </ul> | |||
| </li> | ||||
| <t>sub-TLVs, where each sub-TLV consists of a sequence of: <list | </ul> | |||
| style="symbols"> | ||||
| <t>1 octet of sub-TLV type</t> | ||||
| <t>1 octet of length of the value field of the sub-TLV</t> | ||||
| <t>0-243 octets of value</t> | ||||
| </list></t> | ||||
| </list></t> | ||||
| <section title="Flags"> | <section numbered="true" toc="default"> | |||
| <t>Flags: 1 octet field of following flags:<figure> | <name>Flags</name> | |||
| <artwork><![CDATA[ | <t>Flags: 1-octet field of the following flags:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |F|M|S|D|A| | | |F|M|S|D|A| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t> where: </t> | |||
| </figure> where: <list style="hanging"> | <ul empty="true"><li> | |||
| <t>F-Flag: Address Family flag. If unset, then the Prefix | <dl newline="false" spacing="normal" indent="9"> | |||
| carries an IPv4 Prefix. If set then the Prefix carries an IPv6 | ||||
| Prefix.</t> | ||||
| <t>M-Flag: Mirror Context flag. Set if the advertised SID | <dt>F-Flag:</dt><dd>Address-Family Flag. If unset, then the prefix | |||
| carries an IPv4 prefix. If set, then the prefix carries an IPv6 | ||||
| prefix.</dd> | ||||
| <dt>M-Flag:</dt><dd>Mirror Context Flag. Set if the advertised SID | ||||
| corresponds to a mirrored context. The use of a mirrored context | corresponds to a mirrored context. The use of a mirrored context | |||
| is described in <xref target="RFC8402"/>.</t> | is described in <xref target="RFC8402" format="default"/>.</dd> | |||
| <t>S-Flag: If set, the SID/Label Binding TLV SHOULD be flooded | <dt>S-Flag:</dt><dd>If set, the SID/Label Binding TLV <bcp14>SHOULD< | |||
| across the entire routing domain. If the S flag is not set, the | /bcp14> be flooded | |||
| SID/Label Binding TLV MUST NOT be leaked between levels. This | across the entire routing domain. If the S-Flag is not set, the | |||
| bit MUST NOT be altered during the TLV leaking.</t> | SID/Label Binding TLV <bcp14>MUST NOT</bcp14> be leaked between le | |||
| vels. This | ||||
| bit <bcp14>MUST NOT</bcp14> be altered during the TLV leaking.</dd | ||||
| > | ||||
| <t>D-Flag: when the SID/Label Binding TLV is leaked from level-2 | <dt>D-Flag:</dt><dd>When the SID/Label Binding TLV is leaked from Le | |||
| to level-1, the D-Flag MUST be set. Otherwise, this flag MUST be | vel-2 | |||
| clear. SID/Label Binding TLVs with the D-Flag set MUST NOT be | to Level-1, the D-Flag <bcp14>MUST</bcp14> be set. Otherwise, this | |||
| leaked from level-1 to level-2. This is to prevent TLV looping | flag <bcp14>MUST</bcp14> be | |||
| across levels.</t> | clear. SID/Label Binding TLVs with the D-Flag set <bcp14>MUST NOT< | |||
| /bcp14> be | ||||
| leaked from Level-1 to Level-2. This is to prevent TLV looping | ||||
| across levels.</dd> | ||||
| <t>A-Flag: Attached flag. The originator of the SID/Label | <dt>A-Flag:</dt><dd>Attached Flag. The originator of the SID/Label | |||
| Binding TLV MAY set the A bit in order to signal that the | Binding TLV <bcp14>MAY</bcp14> set the A bit in order to signal th | |||
| at the | ||||
| prefixes and SIDs advertised in the SID/Label Binding TLV are | prefixes and SIDs advertised in the SID/Label Binding TLV are | |||
| directly connected to their originators. The mechanisms through | directly connected to their originators. The mechanisms through | |||
| which the originator of the SID/Label Binding TLV can figure out | which the originator of the SID/Label Binding TLV can figure out | |||
| if a prefix is attached or not are outside the scope of this | if a prefix is attached or not are outside the scope of this | |||
| document (e.g.: through explicit configuration). If the Binding | document (e.g., through explicit configuration). If the Binding | |||
| TLV is leaked to other areas/levels the A-flag MUST be | TLV is leaked to other areas/levels, the A-Flag <bcp14>MUST</bcp14 | |||
| cleared.</t> | > be | |||
| cleared.</dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <t>An implementation may decide not to honor the S-flag in order | <ul empty="true"> | |||
| not to leak Binding TLV's between levels (for policy | <li>An implementation may decide not to honor the S-Flag in order | |||
| reasons).</t> | to not leak Binding TLVs between levels (for policy | |||
| reasons).</li></ul> | ||||
| <t>Other bits: MUST be zero when originated and ignored when | <ul empty="true"><li> | |||
| received.</t> | <dl> | |||
| </list></t> | <dt>Other bits:</dt><dd><bcp14>MUST</bcp14> be zero when originated | |||
| </section> | and ignored when | |||
| received.</dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <section title="Range"> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Range</name> | ||||
| <t>The 'Range' field provides the ability to specify a range of | <t>The 'Range' field provides the ability to specify a range of | |||
| addresses and their associated Prefix SIDs. This advertisement | addresses and their associated Prefix-SIDs. This advertisement | |||
| supports the SRMS functionality. It is essentially a compression | supports the SRMS functionality. It is essentially a compression | |||
| scheme to distribute a continuous Prefix and their continuous, | scheme to distribute a continuous prefix and their continuous, | |||
| corresponding SID/Label Block. If a single SID is advertised then | corresponding SID/Label Block. If a single SID is advertised, then | |||
| the range field MUST be set to one. For range advertisements > 1, | the Range field <bcp14>MUST</bcp14> be set to one. For range advertise | |||
| the range field MUST be set to the number of addresses that need to | ments > 1, | |||
| be mapped into a Prefix-SID. In either case the prefix is the first | the Range field <bcp14>MUST</bcp14> be set to the number of addresses | |||
| that need to | ||||
| be mapped into a Prefix-SID. In either case, the prefix is the first | ||||
| address to which a SID is to be assigned.</t> | address to which a SID is to be assigned.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Prefix Length, Prefix"> | <name>Prefix Length, Prefix</name> | |||
| <t>The 'Prefix' represents the Forwarding equivalence class at the | <t>The 'Prefix' represents the Forwarding Equivalence Class at the | |||
| tail-end of the advertised path. The 'Prefix' does not need to | tail end of the advertised path. The 'Prefix' does not need to | |||
| correspond to a routable prefix of the originating node.</t> | correspond to a routable prefix of the originating node.</t> | |||
| <t>The 'Prefix Length' field contains the length of the prefix in | <t>The 'Prefix Length' field contains the length of the prefix in | |||
| bits. Only the most significant octets of the Prefix are encoded | bits. Only the most significant octets of the prefix are encoded | |||
| (i.e., 1 octet for prefix length 1 up to 8, 2 octets for prefix | (i.e., 1 octet for prefix length 1 up to 8, 2 octets for prefix | |||
| length 9 to 16, 3 octets for prefix length 17 up to 24 and 4 octets | length 9 to up 16, 3 octets for prefix length 17 up to 24, 4 octets | |||
| for prefix length 25 up to 32, ...., 16 octets for prefix length 113 | for prefix length 25 up to 32, ...., and 16 octets for prefix length 1 | |||
| 13 | ||||
| up to 128).</t> | up to 128).</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Mapping Server Prefix-SID"> | <name>Mapping Server Prefix-SID</name> | |||
| <t>The Prefix-SID sub-TLV is defined in <xref | <t>The Prefix-SID sub-TLV is defined in <xref target="PREFIXSIDSUBTLV" | |||
| target="PREFIXSIDSUBTLV"/> and contains the SID/index/label value | format="default"/> and contains the SID/Index/Label value | |||
| associated with the prefix and range. The Prefix-SID Sub-TLV MUST be | associated with the prefix and range. The Prefix-SID sub-TLV <bcp14>MU | |||
| present in the SID/Label Binding TLV when the M-flag is clear. The | ST</bcp14> be | |||
| Prefix-SID Sub-TLV MUST NOT be present when the M-flag is set.</t> | present in the SID/Label Binding TLV when the M-Flag is clear. The | |||
| Prefix-SID sub-TLV <bcp14>MUST NOT</bcp14> be present when the M-Flag | ||||
| <section title="Prefix-SID Flags"> | is set.</t> | |||
| <t>The Prefix-SID flags are defined in <xref | <section numbered="true" toc="default"> | |||
| target="PREFIXSIDSUBTLV"/>. The Mapping Server MAY advertise a | <name>Prefix-SID Flags</name> | |||
| mapping with the N flag set when the prefix being mapped is known | <t>The Prefix-SID Flags are defined in <xref target="PREFIXSIDSUBTLV | |||
| " format="default"/>. The Mapping Server <bcp14>MAY</bcp14> advertise a | ||||
| mapping with the N-Flag set when the prefix being mapped is known | ||||
| in the link-state topology with a mask length of 32 (IPv4) or 128 | in the link-state topology with a mask length of 32 (IPv4) or 128 | |||
| (IPv6) and when the prefix represents a node. The mechanisms | (IPv6) and when the prefix represents a node. The mechanisms | |||
| through which the operator defines that a prefix represents a node | through which the operator defines that a prefix represents a node | |||
| are outside the scope of this document (typically it will be | are outside the scope of this document (typically it will be | |||
| through configuration).</t> | through configuration).</t> | |||
| <t>The other flags defined in <xref target="PREFIXSIDSUBTLV" format= | ||||
| <t>The other flags defined in <xref target="PREFIXSIDSUBTLV"/> are | "default"/> are | |||
| not used by the Mapping Server and MUST be ignored at | not used by the Mapping Server and <bcp14>MUST</bcp14> be ignored at | |||
| reception.</t> | reception.</t> | |||
| </section> | </section> | |||
| <section anchor="MSPHP" numbered="true" toc="default"> | ||||
| <section anchor="MSPHP" | <name>PHP Behavior when Using Mapping Server Advertisements</name> | |||
| title=" PHP Behavior when using Mapping Server Advertisements | <t>As the Mapping Server does not specify the originator of a | |||
| "> | prefix advertisement, it is not possible to determine PHP behavior | |||
| <t>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 Advertisement. However, if | solely based on the Mapping Server Advertisement. However, if | |||
| additional information is available PHP behavior may safely be | additional information is available, PHP behavior may safely be | |||
| done. The required information consists of:<list style="symbols"> | done. The required information consists of:</t> | |||
| <t>A prefix reachability advertisement for the prefix has been | <ul spacing="normal"> | |||
| received which includes the Prefix Attribute Flags sub-TLV | <li>A prefix reachability advertisement for the prefix has been | |||
| <xref target="RFC7794"/>.</t> | received, which includes the Prefix Attribute Flags sub-TLV | |||
| <xref target="RFC7794" format="default"/>.</li> | ||||
| <t>X and R flags are both set to 0 in the Prefix Attribute | <li>X-Flag and R-Flag are both set to 0 in the Prefix Attribute | |||
| Flags sub-TLV.</t> | Flags sub-TLV.</li> | |||
| </list></t> | </ul> | |||
| <t>In the absence of a Prefix Attribute Flags sub-TLV <xref target=" | ||||
| <t>In the absence of an Prefix Attribute Flags sub-TLV <xref | RFC7794" format="default"/>, the A-Flag in the Binding TLV indicates that | |||
| target="RFC7794"/> the A flag in the binding TLV indicates that | ||||
| the originator of a prefix reachability advertisement is directly | the originator of a prefix reachability advertisement is directly | |||
| connected to the prefix and thus PHP MUST be done by the neighbors | connected to the prefix; thus, PHP <bcp14>MUST</bcp14> be done by th e neighbors | |||
| of the router originating the prefix reachability advertisement. | of the router originating the prefix reachability advertisement. | |||
| Note that A-flag is only valid in the original area in which the | Note that the A-Flag is only valid in the original area in which the | |||
| Binding TLV is advertised.</t> | Binding TLV is advertised.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Prefix-SID Algorithm"> | <name>Prefix-SID Algorithm</name> | |||
| <t>The algorithm field contains the identifier of the algorithm | <t>The Algorithm field contains the identifier of the algorithm | |||
| associated with the SIDs for the prefix(es) in the range. Use of | associated with the SIDs for the prefix(es) in the range. Use of | |||
| the algorithm field is described in <xref | the Algorithm field is described in <xref target="PREFIXSIDSUBTLV" f | |||
| target="PREFIXSIDSUBTLV"/>.</t> | ormat="default"/>.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="BSIDSUBTLV" numbered="true" toc="default"> | ||||
| <section anchor="BSIDSUBTLV" title="SID/Label Sub-TLV"> | <name>SID/Label Sub-TLV</name> | |||
| <t>The SID/Label sub-TLV (Type: 1) contains the SID/Label value as | <t>The SID/Label sub-TLV (Type: 1) contains the SID/Label value as | |||
| defined in <xref target="SIDLABELSUBTLV"/>. It MUST be present in | defined in <xref target="SIDLABELSUBTLV" format="default"/>. It <bcp14 | |||
| the SID/Label Binding TLV when the M-flag is set in the Flags field | >MUST</bcp14> be present in | |||
| the SID/Label Binding TLV when the M-Flag is set in the Flags field | ||||
| of the parent TLV.</t> | of the parent TLV.</t> | |||
| </section> | </section> | |||
| <section anchor="BSIDEXAMPLE" numbered="true" toc="default"> | ||||
| <name>Example Encodings</name> | ||||
| <t>Example 1: If the following IPv4 router addresses (loopback | ||||
| addresses) need to be mapped into the corresponding Prefix-SID | ||||
| indexes, then: </t> | ||||
| <section anchor="BSIDEXAMPLE" title="Example Encodings"> | <ul empty="true"> | |||
| <t>Example 1: if the following IPv4 router addresses (loopback | <li>Router-A: 192.0.2.1/32, Prefix-SID: Index 1</li> | |||
| addresses) need to be mapped into the corresponding Prefix SID | <li>Router-B: 192.0.2.2/32, Prefix-SID: Index 2</li> | |||
| indexes. <figure suppress-title="true"> | <li>Router-C: 192.0.2.3/32, Prefix-SID: Index 3</li> | |||
| <artwork><![CDATA[ | <li>Router-D: 192.0.2.4/32, Prefix-SID: Index 4</li> | |||
| Router-A: 192.0.2.1/32, Prefix-SID: Index 1 | </ul> | |||
| Router-B: 192.0.2.2/32, Prefix-SID: Index 2 | ||||
| Router-C: 192.0.2.3/32, Prefix-SID: Index 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| Router-D: 192.0.2.4/32, Prefix-SID: Index 4 | ||||
| ]]></artwork> | ||||
| </figure> <figure suppress-title="true"> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length |0|0|0|0|0| | RESERVED | | | Type | Length |0|0|0|0|0| | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range = 4 | 32 | 192 | | | Range = 4 | 32 | 192 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 0 | 2 | 1 |Prefix-SID Type| | | 0 | 2 | 1 |Prefix-SID Type| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | sub-TLV Length| Flags | Algorithm | | | | Sub-TLV Length| Flags | Algorithm | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 1 | | | 1 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> | |||
| ]]></artwork> | <t>Example 2: If the following IPv4 prefixes need to be mapped into | |||
| </figure></t> | the corresponding Prefix-SID indexes, then: </t> | |||
| <t>Example-2: If the following IPv4 prefixes need to be mapped into | <ul empty="true"> | |||
| the corresponding Prefix-SID indexes: <figure suppress-title="true"> | <li>10.1.1/24, Prefix-SID: Index 51</li> | |||
| <artwork><![CDATA[ | <li>10.1.2/24, Prefix-SID: Index 52</li> | |||
| 10.1.1/24, Prefix-SID: Index 51 | <li>10.1.3/24, Prefix-SID: Index 53</li> | |||
| 10.1.2/24, Prefix-SID: Index 52 | <li>10.1.4/24, Prefix-SID: Index 54</li> | |||
| 10.1.3/24, Prefix-SID: Index 53 | <li>10.1.5/24, Prefix-SID: Index 55</li> | |||
| 10.1.4/24, Prefix-SID: Index 54 | <li>10.1.6/24, Prefix-SID: Index 56</li> | |||
| 10.1.5/24, Prefix-SID: Index 55 | <li>10.1.7/24, Prefix-SID: Index 57</li> | |||
| 10.1.6/24, Prefix-SID: Index 56 | </ul> | |||
| 10.1.7/24, Prefix-SID: Index 57 | ||||
| ]]></artwork> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| </figure> <figure suppress-title="true"> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length |0|0|0|0|0| | RESERVED | | | Type | Length |0|0|0|0|0| | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range = 7 | 24 | 10 | | | Range = 7 | 24 | 10 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 1 | 1 |Prefix-SID Type| sub-TLV Length| | | 1 | 1 |Prefix-SID Type| Sub-TLV Length| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Algorithm | | | | Flags | Algorithm | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 51 | | | 51 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t>Example 3: If the following IPv6 prefixes need to be mapped into | |||
| </figure></t> | the corresponding Prefix-SID indexes, then: </t> | |||
| <t>Example-3: If the following IPv6 prefixes need to be mapped into | <ul empty="true"> | |||
| the corresponding Prefix-SID indexes: <figure suppress-title="true"> | <li>2001:db8:1/48, Prefix-SID: Index 151</li> | |||
| <artwork><![CDATA[ | <li>2001:db8:2/48, Prefix-SID: Index 152</li> | |||
| 2001:db8:1/48, Prefix-SID: Index 151 | <li>2001:db8:3/48, Prefix-SID: Index 153</li> | |||
| 2001:db8:2/48, Prefix-SID: Index 152 | <li>2001:db8:4/48, Prefix-SID: Index 154</li> | |||
| 2001:db8:3/48, Prefix-SID: Index 153 | </ul> | |||
| 2001:db8:4/48, Prefix-SID: Index 154 | ||||
| ]]></artwork> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| </figure> <figure suppress-title="true"> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length |1|0|0|0|0| | RESERVED | | | Type | Length |1|0|0|0|0| | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range = 4 | 48 | 0x20 | | | Range = 4 | 48 | 0x20 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 0x01 | 0x0d | 0xb8 | 0x00 | | | 0x01 | 0x0d | 0xb8 | 0x00 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 0x01 |Prefix-SID Type| sub-TLV Length| Flags | | | 0x01 |Prefix-SID Type| Sub-TLV Length| Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Algorithm | 0 | | | Algorithm | 0 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 151 | | | 151 | | |||
| +-+-+-+-+-+-+-+-+]]></artwork> | +-+-+-+-+-+-+-+-+]]></artwork> | |||
| </figure></t> | ||||
| <t>It is not expected that a network operator will be able to keep | <t>It is not expected that a network operator will be able to keep | |||
| fully continuous Prefix / SID/Index mappings. In order to support | fully continuous Prefix/SID/Index mappings. In order to support | |||
| noncontinuous mapping ranges an implementation MAY generate several | noncontinuous mapping ranges, an implementation <bcp14>MAY</bcp14> gen | |||
| erate several | ||||
| instances of Binding TLVs.</t> | instances of Binding TLVs.</t> | |||
| <t>For example, if a router wants to advertise the following ranges: | ||||
| </t> | ||||
| <ul empty="true"><li> | ||||
| <dl newline="false" spacing="normal" indent="12"> | ||||
| <t>For example if a router wants to advertise the following ranges: | <dt>Range 16:</dt><dd>{ 192.0.2.1-15, Index 1-15 }</dd> | |||
| <list style="hanging"> | ||||
| <t>Range 16: { 192.0.2.1-15, Index 1-15 }</t> | ||||
| <t>Range 6: { 192.0.2.22-27, Index 22-27 }</t> | <dt>Range 6:</dt><dd>{ 192.0.2.22-27, Index 22-27 }</dd> | |||
| <t>Range 41: { 192.0.2.44-84, Index 80-120 }</t> | <dt>Range 41:</dt><dd>{ 192.0.2.44-84, Index 80-120 }</dd> | |||
| </list> A router would need to advertise three instances of the | </dl> | |||
| </li> | ||||
| </ul> | ||||
| <t> a router would need to advertise three instances of the | ||||
| Binding TLV.</t> | Binding TLV.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="MTBINDINGTLV" numbered="true" toc="default"> | ||||
| <section anchor="MTBINDINGTLV" | <name>Multi-Topology SID/Label Binding TLV</name> | |||
| title="Multi-Topology SID/Label Binding TLV"> | ||||
| <t>The Multi-Topology SID/Label Binding TLV allows the support of | <t>The Multi-Topology SID/Label Binding TLV allows the support of | |||
| M-ISIS as defined in <xref target="RFC5120"/>. The Multi-Topology | Multi-Topology IS-IS (M-ISIS) as defined in <xref target="RFC5120" forma t="default"/>. The Multi-Topology | |||
| SID/Label Binding TLV has the same format as the SID/Label Binding TLV | SID/Label Binding TLV has the same format as the SID/Label Binding TLV | |||
| defined in <xref target="BINDINGTLV"/> with the difference consisting | defined in <xref target="BINDINGTLV" format="default"/> with the differe | |||
| of a Multitopology Identifier (MTID) as defined here below:</t> | nce consisting | |||
| of a Multi-topology Identifier (MT ID) as defined here below:</t> | ||||
| <figure anchor="MTBINDINGTLVFIG" | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| title="Multi-Topology SID/Label Binding TLV format"> | ||||
| <artwork><![CDATA[ | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | MTID | | | Type | Length | MT ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | RESERVED | Range | | | Flags | RESERVED | Range | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Prefix Length | Prefix (variable) // | | Prefix Length | Prefix (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Sub-TLVs (variable) | | | Sub-TLVs (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t>where: </t> | |||
| </figure> | <ul empty="true"><li> | |||
| <dl newline="false" spacing="normal" indent="9"> | ||||
| <t>where: <list style="hanging"> | <dt>Type:</dt><dd>150</dd> | |||
| <t>Type: 150</t> | ||||
| <t>Length: variable</t> | <dt>Length:</dt><dd>Variable</dd> | |||
| </dl> | ||||
| <t>MTID is the multitopology identifier defined as: <figure | <t>MT ID is the Multi-topology Identifier defined as:</t> | |||
| anchor="MTIDFIG" suppress-title="true"> | ||||
| <artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 0 1 | 0 1 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | RESVD | MTID | | | RESVD | MT ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <ul empty="true"><li> | |||
| </figure><list style="hanging"> | <dl newline="false" spacing="normal" indent="9"> | |||
| <t>RESVD: reserved bits. MUST be reset on transmission and | ||||
| ignored on receive.</t> | ||||
| <t>MTID: a 12-bit field containing the non-zero ID of the | <dt>RESVD:</dt><dd>Reserved bits. <bcp14>MUST</bcp14> be reset on | |||
| topology being announced. The TLV MUST be ignored if the ID is | transmission and | |||
| ignored on receive.</dd> | ||||
| <dt>MT ID:</dt><dd>A 12-bit field containing the non-zero ID of th | ||||
| e | ||||
| topology being announced. The TLV <bcp14>MUST</bcp14> be ignored | ||||
| if the ID is | ||||
| zero. This is to ensure the consistent view of the standard | zero. This is to ensure the consistent view of the standard | |||
| unicast topology.</t> | unicast topology.</dd> | |||
| </list></t> | ||||
| <t>The other fields and Sub-TLVs are defined in <xref | </dl> | |||
| target="BINDINGTLV"/>.</t> | </li> | |||
| </list></t> | </ul> | |||
| </section> | </li> | |||
| </section> | </ul> | |||
| <section title="Router Capabilities"> | <ul empty="true"><li> | |||
| <t>This section defines sub-TLVs which are inserted into the IS-IS | <t>The other fields and sub-TLVs are defined in <xref target="BINDINGT | |||
| Router Capability TLV-242 that is defined in <xref | LV" format="default"/>.</t> | |||
| target="RFC7981"/>.</t> | </li></ul> | |||
| <section anchor="SRCAPSUBTLV" title="SR-Capabilities Sub-TLV"> | </section> | |||
| <t>Segment Routing requires each router to advertise its SR data-plane | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Router Capabilities</name> | ||||
| <t>This section defines sub-TLVs that are inserted into the IS-IS | ||||
| Router Capability that is defined in <xref target="RFC7981" format="defaul | ||||
| t"/>.</t> | ||||
| <section anchor="SRCAPSUBTLV" numbered="true" toc="default"> | ||||
| <name>SR-Capabilities Sub-TLV</name> | ||||
| <t>Segment Routing requires each router to advertise its SR data plane | ||||
| capability and the range of MPLS label values it uses for Segment | capability and the range of MPLS label values it uses for Segment | |||
| Routing in the case where global SIDs are allocated (i.e., global | Routing in the case where global SIDs are allocated (i.e., global | |||
| indexes). Data-plane capabilities and label ranges are advertised | indexes). Data plane capabilities and label ranges are advertised | |||
| using the newly defined SR-Capabilities sub-TLV.</t> | using the newly defined SR-Capabilities sub-TLV.</t> | |||
| <t>The Router Capability TLV specifies flags that control its | <t>The Router Capability TLV specifies flags that control its | |||
| advertisement. The SR Capabilities sub-TLV MUST be propagated | advertisement. The SR-Capabilities sub-TLV <bcp14>MUST</bcp14> be propag | |||
| throughout the level and MUST NOT be advertised across level | ated | |||
| boundaries. Therefore Router Capability TLV distribution flags are set | throughout the level and <bcp14>MUST NOT</bcp14> be advertised across le | |||
| accordingly, i.e., the S flag in the Router Capability TLV <xref | vel | |||
| target="RFC7981"/> MUST be unset.</t> | boundaries. Therefore, Router Capability TLV distribution flags are set | |||
| accordingly, i.e., the S-Flag in the Router Capability TLV <xref target= | ||||
| <t>The SR Capabilities sub-TLV has following format:<figure> | "RFC7981" format="default"/> <bcp14>MUST</bcp14> be unset.</t> | |||
| <artwork><![CDATA[ 0 1 2 | <t>The SR-Capabilities sub-TLV has the following format:</t> | |||
| 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 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 | Flags | | | Type | Length | Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range | | | Range | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID/Label Sub-TLV (variable) // | // SID/Label Sub-TLV (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| </figure><list style="hanging"> | <ul empty="true"><li> | |||
| <t>Type: 2</t> | <dl newline="false" spacing="normal" indent="9"> | |||
| <dt>Type:</dt><dd>2</dd> | ||||
| <t>Length: variable.</t> | <dt>Length:</dt><dd>Variable</dd> | |||
| <t>Flags: 1 octet of flags. The following are defined: <figure> | <dt>Flags:</dt><dd><t>1 octet of flags. The following are defined: </t | |||
| <artwork><![CDATA[ | > | |||
| 0 1 2 3 4 5 6 7 | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ 0 1 2 3 4 | ||||
| 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |I|V| | | |I|V| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | ||||
| </figure>where: <list style="hanging"> | ||||
| <t>I-Flag: MPLS IPv4 flag. If set, then the router is capable | ||||
| of processing SR MPLS encapsulated IPv4 packets on all | ||||
| interfaces.</t> | ||||
| <t>V-Flag: MPLS IPv6 flag. If set, then the router is capable | </dd></dl> | |||
| of processing SR MPLS encapsulated IPv6 packets on all | </li> | |||
| interfaces.</t> | </ul> | |||
| </list></t> | <ul empty="true"><li> | |||
| <t>where: </t> | ||||
| <ul empty="true"><li> | ||||
| <dl newline="false" spacing="normal" indent="9"> | ||||
| <dt>I-Flag:</dt><dd>MPLS IPv4 Flag. If set, then the router is cap | ||||
| able | ||||
| of processing SR-MPLS-encapsulated IPv4 packets on all | ||||
| interfaces.</dd> | ||||
| <t>One or more SRGB Descriptor entries, each of which have the | <dt>V-Flag:</dt><dd>MPLS IPv6 Flag. If set, then the router is cap | |||
| following format:<list style="hanging"> | able | |||
| <t>Range: 3 octets.</t> | of processing SR-MPLS-encapsulated IPv6 packets on all | |||
| interfaces.</dd> | ||||
| </dl> | ||||
| </li></ul></li></ul> | ||||
| <t>SID/Label sub-TLV (as defined in <xref | <ul empty="true"><li> | |||
| target="SIDLABELSUBTLV"/>).</t> | <t>One or more Segment Routing Global Block (SRGB) Descriptor entrie | |||
| </list></t> | s, each of which have the | |||
| </list></t> | following format:</t> | |||
| <t>SID/Label sub-TLV contains the first value of the SRGB while the | <ul empty="true"><li> | |||
| range contains the number of SRGB elements. The range value MUST be | <dl newline="false" spacing="normal" indent="9"> | |||
| higher than 0.</t> | <dt>Range:</dt><dd>3 octets</dd> | |||
| <dt>SID/Label sub-TLV:</dt><dd>MPLS label as defined in <xref targ | ||||
| et="SIDLABELSUBTLV" format="default"/></dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| <t>The SR-Capabilities sub-TLV MAY be advertised in an LSP of any | <t>The SID/Label sub-TLV contains the first value of the SRGB while the | |||
| number but a router MUST NOT advertise more than one SR-Capabilities | range contains the number of SRGB elements. The range value <bcp14>MUST< | |||
| /bcp14> be | ||||
| higher than 0.</t> | ||||
| <t>The SR-Capabilities sub-TLV <bcp14>MAY</bcp14> be advertised in an LS | ||||
| P of any | ||||
| number, but a router <bcp14>MUST NOT</bcp14> advertise more than one SR- | ||||
| Capabilities | ||||
| sub-TLV. A router receiving multiple SR-Capabilities sub-TLVs from the | sub-TLV. A router receiving multiple SR-Capabilities sub-TLVs from the | |||
| same originator SHOULD select the first advertisement in the lowest | same originator <bcp14>SHOULD</bcp14> select the first advertisement in | |||
| numbered LSP.</t> | the lowest-numbered | |||
| LSP.</t> | ||||
| <t>When multiple SRGB Descriptors are advertised the entries define an | <t>When multiple SRGB Descriptors are advertised, the entries define an | |||
| ordered set of ranges on which a SID index is to be applied. For this | ordered set of ranges on which a SID index is to be applied. For this | |||
| reason changing the order in which the descriptors are advertised will | reason, changing the order in which the descriptors are advertised will | |||
| have a disruptive effect on forwarding.</t> | have a disruptive effect on forwarding.</t> | |||
| <t>When a router adds a new SRGB Descriptor to an existing | <t>When a router adds a new SRGB Descriptor to an existing | |||
| SR-Capabilities sub-TLV the new Descriptor SHOULD add the newly | SR-Capabilities sub-TLV, the new descriptor <bcp14>SHOULD</bcp14> add th | |||
| configured block at the end of the sub-TLV and SHOULD NOT change the | e newly | |||
| configured block at the end of the sub-TLV and <bcp14>SHOULD NOT</bcp14> | ||||
| change the | ||||
| order of previously advertised blocks. Changing the order of the | order of previously advertised blocks. Changing the order of the | |||
| advertised descriptors will create label churn in the FIB and | advertised descriptors will create label churn in the FIB and | |||
| blackhole / misdirect some traffic during the IGP convergence. In | black hole / misdirect some traffic during the IGP convergence. In | |||
| particular, if a range which is not the last is extended it's | particular, if a range that is not the last is extended, it's | |||
| preferable to add a new range rather than extending the previously | preferable to add a new range rather than extending the previously | |||
| advertised range.</t> | advertised range.</t> | |||
| <t>The originating router <bcp14>MUST</bcp14> ensure the order is unchan | ||||
| <t>The originating router MUST ensure the order is unchanged after a | ged after a | |||
| graceful restart (using checkpointing, non-volatile storage or any | graceful restart (using checkpointing, non-volatile storage, or any | |||
| other mechanism).</t> | other mechanism).</t> | |||
| <t>The originating router <bcp14>MUST NOT</bcp14> advertise overlapping | ||||
| ranges.</t> | ||||
| <t>When a router receives multiple overlapping ranges, it <bcp14>MUST</b | ||||
| cp14> conform | ||||
| to the procedures defined in <xref target="RFC8660" format="default"/>.< | ||||
| /t> | ||||
| <t>The originating router MUST NOT advertise overlapping ranges.</t> | <t>Here follows an example of the advertisement of multiple ranges:</t> | |||
| <t>When a router receives multiple overlapping ranges, it MUST conform | ||||
| to the procedures defined in <xref | ||||
| target="I-D.ietf-spring-segment-routing-mpls"/>.</t> | ||||
| <t>Here follows an example of advertisement of multiple ranges:<figure | <ul empty="true" spacing="normal"> | |||
| anchor="SRGBEXAMPLE" suppress-title="true"> | <li> | |||
| <artwork><![CDATA[ | <ul empty="true" spacing="normal"> | |||
| The originating router advertises following ranges: | <li>The originating router advertises the following ranges:</li> | |||
| SR-Cap: range: 100, SID value: 100 | <li>SR-Cap: range: 100, SID value: 100 </li> | |||
| SR-Cap: range: 100, SID value: 1000 | <li>SR-Cap: range: 100, SID value: 1000</li> | |||
| SR-Cap: range: 100, SID value: 500 | <li>SR-Cap: range: 100, SID value: 500</li> | |||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| <ul empty="true" spacing="normal"> | ||||
| <li> | ||||
| The receiving routers concatenate the ranges in the received | The receiving routers concatenate the ranges in the received | |||
| order and build the SRGB as follows: | order and build the SRGB as follows:</li> | |||
| </ul> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| SRGB = [100, 199] | SRGB = [100, 199] | |||
| [1000, 1099] | [1000, 1099] | |||
| [500, 599] | [500, 599]]]></artwork> | |||
| The indexes span multiple ranges: | <ul empty="true" spacing="normal"> | |||
| <li>The indexes span multiple ranges:</li> | ||||
| </ul> | ||||
| index=0 means label 100 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 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> | ||||
| </figure></t> | ||||
| </section> | ||||
| <section anchor="SRALGOSUBTLV" title="SR-Algorithm Sub-TLV"> | </section> | |||
| <section anchor="SRALGOSUBTLV" numbered="true" toc="default"> | ||||
| <name>SR-Algorithm Sub-TLV</name> | ||||
| <t>The router may use various algorithms when calculating reachability | <t>The router may use various algorithms when calculating reachability | |||
| to other nodes or to prefixes attached to these nodes. Examples of | to other nodes or to prefixes attached to these nodes. Examples of | |||
| these algorithms are metric based Shortest Path First (SPF), various | these algorithms are metric-based SPF, various | |||
| sorts of Constrained SPF, etc. The SR-Algorithm sub-TLV allows the | sorts of Constrained SPF, etc. The SR-Algorithm sub-TLV allows the | |||
| router to advertise the algorithms that the router is currently using. | router to advertise the algorithms that the router is currently using. | |||
| Algorithm values are defined in the "IGP Algorithm Type" registry | Algorithm values are defined in the "IGP Algorithm Type" registry | |||
| defined in <xref target="I-D.ietf-ospf-segment-routing-extensions"/>. | defined in <xref target="RFC8665" format="default"/>. | |||
| The following values have been defined:<list> | The following values have been defined:</t> | |||
| <t>0: Shortest Path First (SPF) algorithm based on link metric. | ||||
| <ul empty="true" spacing="normal"><li> | ||||
| <dl newline="false" spacing="normal"> | ||||
| <dt>0:</dt><dd>SPF algorithm based on link metric. | ||||
| This is the well-known shortest path algorithm as computed by the | This is the well-known shortest path algorithm as computed by the | |||
| IS-IS Decision process. Consistent with the deployed practice for | IS-IS Decision Process. Consistent with the deployed practice for | |||
| link-state protocols, algorithm 0 permits any node to overwrite | link-state protocols, algorithm 0 permits any node to overwrite | |||
| the SPF path with a different path based on local policy.</t> | the SPF path with a different path based on local policy.</dd> | |||
| <dt>1:</dt><dd>Strict SPF algorithm based on link | ||||
| <t>1: Strict Shortest Path First (SPF) algorithm based on link | metric. The algorithm is identical to algorithm 0, but algorithm 1 | |||
| metric. The algorithm is identical to algorithm 0 but algorithm 1 | ||||
| requires that all nodes along the path will honor the SPF routing | requires that all nodes along the path will honor the SPF routing | |||
| decision. Local policy MUST NOT alter the forwarding decision | decision. Local policy <bcp14>MUST NOT</bcp14> alter the forwarding decision | |||
| computed by algorithm 1 at the node claiming to support algorithm | computed by algorithm 1 at the node claiming to support algorithm | |||
| 1.</t> | 1.</dd> | |||
| </list></t> | </dl> | |||
| </li> | ||||
| </ul> | ||||
| <t>The Router Capability TLV specifies flags that control its | <t>The Router Capability TLV specifies flags that control its | |||
| advertisement. The SR-Algorithm MUST be propagated throughout the | advertisement. The SR-Algorithm <bcp14>MUST</bcp14> be propagated throug | |||
| level and MUST NOT be advertised across level boundaries. Therefore | hout the | |||
| level and <bcp14>MUST NOT</bcp14> be advertised across level boundaries. | ||||
| Therefore, | ||||
| Router Capability TLV distribution flags are set accordingly, i.e., | Router Capability TLV distribution flags are set accordingly, i.e., | |||
| the S flag MUST be unset.</t> | the S-Flag <bcp14>MUST</bcp14> be unset.</t> | |||
| <t>The SR-Algorithm sub-TLV is optional. It <bcp14>MUST NOT</bcp14> be a | ||||
| <t>The SR-Algorithm sub-TLV is optional. It MUST NOT be advertsied | dvertised | |||
| more than once at a given level. A router receiving multiple | more than once at a given level. A router receiving multiple | |||
| SR-Algorithm sub-TLVs from the same originator SHOULD select the first | SR-Algorithm sub-TLVs from the same originator <bcp14>SHOULD</bcp14> sel | |||
| advertisement in the lowest numbered LSP.</t> | ect the first | |||
| advertisement in the lowest-numbered LSP.</t> | ||||
| <t>When the originating router does not advertise the SR-Algorithm | <t>When the originating router does not advertise the SR-Algorithm | |||
| sub-TLV, this implies that the only algorithm supported by routers | sub-TLV, it implies that algorithm 0 is the only algorithm supported by | |||
| supporting the extensions defined in this document is Algorithm 0.</t> | the routers | |||
| that support the extensions defined in this document.</t> | ||||
| <t>When the originating router does advertise the SR-Algorithm | <t>When the originating router does advertise the SR-Algorithm | |||
| sub-TLV, then algorithm 0 MUST be present while non-zero algorithms | sub-TLV, then algorithm 0 <bcp14>MUST</bcp14> be present while non-zero | |||
| MAY be present.</t> | algorithms | |||
| <bcp14>MAY</bcp14> be present.</t> | ||||
| <t>The SR-Algorithm sub-TLV has the following format: <figure> | <t>The SR-Algorithm sub-TLV has the following format: </t> | |||
| <artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Algorithm 1 | Algorithm 2 | Algorithm ... | Algorithm n | | | Algorithm 1 | Algorithm 2 | Algorithm ... | Algorithm n | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | <t> where: </t> | |||
| </figure> where: <list style="hanging"> | <ul empty="true"><li> | |||
| <t>Type: 19</t> | <dl newline="false" spacing="normal" indent="12"> | |||
| <t>Length: variable.</t> | <dt>Type:</dt><dd>19</dd> | |||
| <t>Algorithm: 1 octet of algorithm</t> | <dt>Length:</dt><dd>Variable</dd> | |||
| </list></t> | ||||
| </section> | ||||
| <section anchor="SRLBSUBTLV" title="SR Local Block Sub-TLV"> | <dt>Algorithm:</dt><dd>1 octet of algorithm</dd> | |||
| <t>The SR Local Block (SRLB) Sub-TLV contains the range of labels the | </dl></li></ul> | |||
| node has reserved for local SIDs. Local SIDs are used, e.g., for | </section> | |||
| Adjacency-SIDs, and may also be allocated by components other than the | <section anchor="SRLBSUBTLV" numbered="true" toc="default"> | |||
| <name>SR Local Block Sub-TLV</name> | ||||
| <t>The SR Local Block (SRLB) sub-TLV contains the range of labels the | ||||
| node has reserved for Local SIDs. Local SIDs are used, e.g., for | ||||
| Adj-SIDs, and may also be allocated by components other than the | ||||
| IS-IS protocol. As an example, an application or a controller may | IS-IS protocol. As an example, an application or a controller may | |||
| instruct the router to allocate a specific local SID. Therefore, in | instruct the router to allocate a specific Local SID. Therefore, in | |||
| order for such applications or controllers to know what are the local | order for such applications or controllers to know what Local | |||
| SIDs available in the router, it is required that the router | SIDs are available in the router, it is required that the router | |||
| advertises its SRLB.</t> | advertises its SRLB.</t> | |||
| <t>The SRLB sub-TLV is used for this purpose and has following | ||||
| <t>The SRLB Sub-TLV is used for this purpose and has following | format:</t> | |||
| format:<figure> | <artwork name="" type="" align="left" alt=""><![CDATA[ 0 | |||
| <artwork><![CDATA[ 0 1 2 | 1 2 3 | |||
| 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 | Flags | | | Type | Length | Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Range | | | Range | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID/Label Sub-TLV (variable) // | // SID/Label Sub-TLV (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| </figure><list style="hanging"> | <ul empty="true"><li> | |||
| <t>Type: 22</t> | <dl newline="false" spacing="normal" indent="9"> | |||
| <dt>Type:</dt><dd>22</dd> | ||||
| <t>Length: variable.</t> | ||||
| <t>Flags: 1 octet of flags. None are defined at this stage.</t> | <dt>Length:</dt><dd>Variable</dd> | |||
| <dt>Flags:</dt><dd>1 octet of flags. None are defined at this stage.</ | ||||
| dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"><li> | ||||
| <t>One or more SRLB Descriptor entries, each of which have the | <t>One or more SRLB Descriptor entries, each of which have the | |||
| following format:<list style="hanging"> | following format:</t> | |||
| <t>Range: 3 octets.</t> | ||||
| <t>SID/Label sub-TLV (as defined in <xref | ||||
| target="SIDLABELSUBTLV"/>).</t> | ||||
| </list></t> | ||||
| </list></t> | ||||
| <t>SID/Label sub-TLV contains the first value of the SRLB while the | ||||
| range contains the number of SRLB elements. The range value MUST be | ||||
| higher than 0.</t> | ||||
| <t>The SRLB sub-TLV MAY be advertised in an LSP of any number but a | ||||
| router MUST NOT advertise more than one SRLB sub-TLV. A router | ||||
| receiving multiple SRLB sub-TLVs, from the same originator, SHOULD | ||||
| select the first advertisement in the lowest numbered LSP.</t> | ||||
| <t>The originating router MUST NOT advertise overlapping ranges.</t> | <ul empty="true"><li> | |||
| <dl newline="false" spacing="normal" indent="9"> | ||||
| <t>When a router receives multiple overlapping ranges, it MUST conform | <dt>Range:</dt><dd>3 octets</dd> | |||
| to the procedures defined in <xref | ||||
| target="I-D.ietf-spring-segment-routing-mpls"/>.</t> | ||||
| <dt>SID/Label sub-TLV:</dt><dd>MPLS label as defined in <xref targ | ||||
| et="SIDLABELSUBTLV" format="default"/></dd> | ||||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| <t>The SID/Label sub-TLV contains the first value of the SRLB while the | ||||
| range contains the number of SRLB elements. The range value <bcp14>MUST< | ||||
| /bcp14> be | ||||
| higher than 0.</t> | ||||
| <t>The SRLB sub-TLV <bcp14>MAY</bcp14> be advertised in an LSP of any nu | ||||
| mber, but a | ||||
| router <bcp14>MUST NOT</bcp14> advertise more than one SRLB sub-TLV. A r | ||||
| outer | ||||
| receiving multiple SRLB sub-TLVs, from the same originator, <bcp14>SHOUL | ||||
| D</bcp14> | ||||
| select the first advertisement in the lowest-numbered LSP.</t> | ||||
| <t>The originating router <bcp14>MUST NOT</bcp14> advertise overlapping | ||||
| ranges.</t> | ||||
| <t>When a router receives multiple overlapping ranges, it <bcp14>MUST</b | ||||
| cp14> conform | ||||
| to the procedures defined in <xref target="RFC8660" format="default"/>.< | ||||
| /t> | ||||
| <t>It is important to note that each time a SID from the SRLB is | <t>It is important to note that each time a SID from the SRLB is | |||
| allocated, it should also be reported to all components (e.g.: | allocated, it should also be reported to all components (e.g., | |||
| controller or applications) in order for these components to have an | controller or applications) in order for these components to have an | |||
| up-to-date view of the current SRLB allocation and in order to avoid | up-to-date view of the current SRLB allocation and to avoid | |||
| collision between allocation instructions.</t> | collision between allocation instructions.</t> | |||
| <t>Within the context of IS-IS, the reporting of Local SIDs is done | ||||
| <t>Within the context of IS-IS, the reporting of local SIDs is done | through IS-IS sub-TLVs such as the Adj-SID. However, the | |||
| through IS-IS Sub-TLVs such as the Adjacency-SID. However, the | reporting of allocated Local SIDs may also be done through other means | |||
| reporting of allocated local SIDs may also be done through other means | and protocols that are outside the scope of this document.</t> | |||
| and protocols which are outside the scope of this document.</t> | ||||
| <t>A router advertising the SRLB sub-TLV may also have other label | <t>A router advertising the SRLB sub-TLV may also have other label | |||
| ranges, outside the SRLB, for its local allocation purposes which are | ranges, outside the SRLB, for its local allocation purposes that are | |||
| NOT advertised in the SRLB. For example, it is possible that an | NOT advertised in the SRLB. For example, it is possible that an | |||
| Adjacency-SID is allocated using a local label not part of the | Adj-SID is allocated using a local label not part of the | |||
| SRLB.</t> | SRLB.</t> | |||
| </section> | </section> | |||
| <section anchor="SRMSPREFSUBTLV" numbered="true" toc="default"> | ||||
| <section anchor="SRMSPREFSUBTLV" title="SRMS Preference Sub-TLV"> | <name>SRMS Preference Sub-TLV</name> | |||
| <t>The Segment Routing Mapping Server (SRMS) Preference sub-TLV is | <t>The SRMS Preference sub-TLV is | |||
| used in order to associate a preference with SRMS advertisements from | used in order to associate a preference with SRMS advertisements from | |||
| a particular source.</t> | a particular source.</t> | |||
| <t>The SRMS Preference sub-TLV has the following format:</t> | ||||
| <t>The SRMS Preference sub-TLV has following format:<figure> | <artwork name="" type="" align="left" alt=""><![CDATA[ 0 | |||
| <artwork><![CDATA[ 0 1 2 | 1 2 3 | |||
| 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 | Preference | | | Type | Length | Preference | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> | |||
| </figure><list style="hanging"> | <ul empty="true"><li> | |||
| <t>Type: 24</t> | <dl newline="false" spacing="normal" indent="13"> | |||
| <dt>Type:</dt><dd>24</dd> | ||||
| <t>Length: 1.</t> | ||||
| <t>Preference: 1 octet. Unsigned 8 bit SRMS preference.</t> | <dt>Length:</dt><dd>1</dd> | |||
| </list></t> | ||||
| <t>The SRMS Preference sub-TLV MAY be advertised in an LSP of any | <dt>Preference:</dt><dd>1 octet and unsigned 8-bit SRMS preference.</d | |||
| number but a router MUST NOT advertise more than one SRMS Preference | d> | |||
| </dl> | ||||
| </li> | ||||
| </ul> | ||||
| <t>The SRMS Preference sub-TLV <bcp14>MAY</bcp14> be advertised in an LS | ||||
| P of any | ||||
| number, but a router <bcp14>MUST NOT</bcp14> advertise more than one SRM | ||||
| S Preference | ||||
| sub-TLV. A router receiving multiple SRMS Preference sub-TLVs, from | sub-TLV. A router receiving multiple SRMS Preference sub-TLVs, from | |||
| the same originator, SHOULD select the first advertisement in the | the same originator, <bcp14>SHOULD</bcp14> select the first advertisemen | |||
| lowest numbered LSP.</t> | t in the | |||
| lowest-numbered LSP.</t> | ||||
| <t>The use of the SRMS Preference during the SID selection process is | <t>The use of the SRMS preference during the SID selection process is | |||
| described in <xref | described in <xref target="RFC8661" format="default"/>.</t> | |||
| target="I-D.ietf-spring-segment-routing-ldp-interop"/></t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <t>Per this document, IANA has allocated the following TLVs and | ||||
| sub-TLVs.</t> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Sub-TLVs for Types 22, 23, 25, 141, 222, and 223</name> | ||||
| <t>This document makes the following registrations in the "Sub-TLVs | ||||
| for TLV 22, 23, 25, 141, 222, and 223" registry.</t> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <table anchor="IANA_table_1" align="left"> | |||
| <t>This document requests allocation for the following TLVs and | <thead> | |||
| Sub-TLVs.</t> | <tr> | |||
| <th align='center'>Type</th> | ||||
| <section title="Sub TLVs for Type 22,23,25,141,222, and 223"> | <th align='left'>Description</th> | |||
| <t>This document makes the following registrations in the "sub-TLVs | <th align='center'>22</th> | |||
| for TLV 22, 23, 25, 141, 222 and 223" registry.</t> | <th align='center'>23</th> | |||
| <th align='center'>25</th> | ||||
| <t><figure> | <th align='center'>141</th> | |||
| <artwork><![CDATA[Type Description 22 23 25 | <th align='center'>222</th> | |||
| 141 222 223 | <th align='center'>223</th> | |||
| 31 Adjacency Segment Identifier y y n y y y | </tr> | |||
| 32 LAN Adjacency Segment Identifier y y n y y y | </thead> | |||
| <tbody> | ||||
| <tr> | ||||
| <td align="center">31</td> | ||||
| <td align="left">Adjacency Segment Identifier</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">n</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">32</td> | ||||
| <td align="left">LAN Adjacency Segment Identifier</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">n</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section title="Sub TLVs for Type 135,235,236 and 237"> | <section numbered="true" toc="default"> | |||
| <t>This document makes the following registrations in the "sub-TLVs | <name>Sub-TLVs for Types 135, 235, 236, and 237</name> | |||
| for TLV 135,235,236 and 237" registry.</t> | <t>This document makes the following registrations in the "Sub-TLVs | |||
| for TLV 135, 235, 236, and 237" registry.</t> | ||||
| <figure> | <table anchor="IANA_table_2" align="left"> | |||
| <artwork><![CDATA[Type Description 135 235 236 | <thead> | |||
| 237 | <tr> | |||
| 3 Prefix Segment Identifier y y y y | <th align='center'>Type</th> | |||
| <th align='left'>Description</th> | ||||
| <th align='center'>135</th> | ||||
| <th align='center'>235</th> | ||||
| <th align='center'>236</th> | ||||
| <th align='center'>237</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="center">3</td> | ||||
| <td align="left">Prefix Segment Identifier</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">y</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Sub TLVs for Type 242"> | <name>Sub-TLVs for Type 242</name> | |||
| <t>This document makes the following registrations in the "sub-TLVs | <t>This document makes the following registrations in the "Sub-TLVs | |||
| for TLV 242" registry.</t> | for TLV 242" registry.</t> | |||
| <figure> | <table anchor="IANA_table_3" align="left"> | |||
| <artwork><![CDATA[Type Description | <thead> | |||
| 2 Segment Routing Capability | <tr> | |||
| 19 Segment Routing Algorithm | <th align='center'>Type</th> | |||
| 22 Segment Routing Local Block (SRLB) | <th align='left'>Description</th> | |||
| 24 Segment Routing Mapping Server Preference | </tr> | |||
| (SRMS Preference) | </thead> | |||
| <tbody> | ||||
| ]]></artwork> | <tr> | |||
| </figure> | <td align="center">2</td> | |||
| <td align="left">Segment Routing Capability</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">19</td> | ||||
| <td align="left">Segment Routing Algorithm</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">22</td> | ||||
| <td align="left">Segment Routing Local Block (SRLB)</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">24</td> | ||||
| <td align="left">Segment Routing Mapping Server Preference (SRMS Preferenc | ||||
| e)</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t/> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="New TLV Codepoint and Sub-TLV registry"> | <name>New TLV Codepoint and Sub-TLV Registry</name> | |||
| <t>This document registers the following TLV:</t> | <t>This document registers the following TLV:</t> | |||
| <t><figure> | <table anchor="IANA_table_4" align="left"> | |||
| <artwork><![CDATA[Value Name IIH LSP SN | <thead> | |||
| P Purge | <tr> | |||
| 149 Segment Identifier/Label Binding n y n n | <th align='center'>Value</th> | |||
| 150 Multi-Topology Segment Identifier n y n n | <th align='left'>Name</th> | |||
| /Label Binding | <th align='center'>IIH</th> | |||
| <th align='center'>LSP</th> | ||||
| ]]></artwork> | <th align='center'>SNP</th> | |||
| </figure></t> | <th align='center'>Purge</th> | |||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="center">149</td> | ||||
| <td align="left">Segment Identifier / Label Binding</td> | ||||
| <td align="center">n</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">n</td> | ||||
| <td align="center">n</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">150</td> | ||||
| <td align="left">Multi-Topology Segment Identifier / Label Binding</td> | ||||
| <td align="center">n</td> | ||||
| <td align="center">y</td> | ||||
| <td align="center">n</td> | ||||
| <td align="center">n</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>This document creates the following sub-TLV Registry:</t> | <t>This document creates the following sub-TLV Registry:</t> | |||
| <t><figure> | <dl> | |||
| <artwork><![CDATA[Name: sub-TLVs for TLVs 149 and 150 | <dt>Name:</dt> | |||
| Registration Procedure: Expert Review | <dd>Sub-TLVs for TLVs 149 and 150</dd> | |||
| <dt>Registration Procedure:</dt> | ||||
| Type Description | <dd>Expert Review <xref target="RFC8126" format="default"/></dd> | |||
| 0 Reserved | </dl> | |||
| 1 SID/Label | ||||
| 2 Unassigned | ||||
| 3 Prefix SID | ||||
| 4-255 Unassigned | ||||
| ]]></artwork> | <table anchor="IANA_table_5" align="left"> | |||
| </figure></t> | <thead> | |||
| <tr> | ||||
| <th align='center'>Type</th> | ||||
| <th align='center'>Description</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="center">0</td> | ||||
| <td align="left">Reserved</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">1</td> | ||||
| <td align="left">SID/Label</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">2</td> | ||||
| <td align="left">Unassigned</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">3</td> | ||||
| <td align="left">Prefix Segment Identifier</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="center">4-255</td> | ||||
| <td align="left">Unassigned</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="Security" title="Security Considerations"> | <section anchor="Security" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | ||||
| <t>With the use of the extensions defined in this document, IS-IS | <t>With the use of the extensions defined in this document, IS-IS | |||
| carries information which will be used to program the MPLS data plane | carries information that will be used to program the MPLS data plane | |||
| [RFC3031]. In general, the same types of attacks that can be carried out | <xref target="RFC3031" format="default"/>. In general, the same type of at | |||
| tacks that can be carried out | ||||
| on the IP/IPv6 control plane can be carried out on the MPLS control | on the IP/IPv6 control plane can be carried out on the MPLS control | |||
| plane resulting in traffic being misrouted in the respective data | plane, resulting in traffic being misrouted in the respective data | |||
| planes. However, the latter may be more difficult to detect and | planes. However, the latter may be more difficult to detect and | |||
| isolate.</t> | isolate.</t> | |||
| <t>Existing security extensions as described in <xref target="RFC5304" for | ||||
| <t>Existing security extensions as described in [RFC5304] and [RFC5310] | mat="default"/> | |||
| apply to these segment routing extensions.</t> | and <xref target="RFC5310" format="default"/> apply to these Segment Ro | |||
| uting extensions.</t> | ||||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <section anchor="Acknowledgements" title="Acknowledgements"> | <references> | |||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3031. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5304. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5310. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5120. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7981. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7794. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8402. | ||||
| xml"/> | ||||
| <reference anchor="ISO10589"> | ||||
| <front> | ||||
| <title>Information technology -- Telecommunications and information | ||||
| exchange between systems -- Intermediate system to Intermediate system intra-dom | ||||
| ain | ||||
| routeing information exchange protocol for use in conjunction with | ||||
| the protocol for providing the connectionless-mode network service | ||||
| (ISO 8473)</title> | ||||
| <seriesInfo name="ISO/IEC 10589:2002," value="Second Edition"/> | ||||
| <author> | ||||
| <organization abbrev="ISO">International Organization for Standard | ||||
| ization</organization> | ||||
| </author> | ||||
| <date month="November" year="2002"/> | ||||
| </front> | ||||
| </reference> | ||||
| <!--draft-ietf-ospf-segment-routing-extensions">; companion document RFC | ||||
| 8665 --> | ||||
| <reference anchor="RFC8665" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 665"> | ||||
| <front> | ||||
| <title>OSPF Extensions for Segment Routing</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8665"/> | ||||
| <seriesInfo name="RFC" value="8665"/> | ||||
| <author initials="P" surname="Psenak" fullname="Peter Psenak" role=" | ||||
| editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Previdi" fullname="Stefano Previdi" ro | ||||
| le="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
| > | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="H" surname="Gredler" fullname="Hannes Gredler"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="W" surname="Henderickx" fullname="Wim Henderickx"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J" surname="Tantsura" fullname="Jeff Tantsura"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="December" year="2019"/> | ||||
| </front> | ||||
| </reference> | ||||
| <!--draft-ietf-spring-segment-routing-mpls">; companion document RFC 866 | ||||
| 0--> | ||||
| <reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 660"> | ||||
| <front> | ||||
| <title>Segment Routing with the MPLS Data Plane</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8660"/> | ||||
| <seriesInfo name="RFC" value="8660"/> | ||||
| <author initials="A" surname="Bashandy" fullname="Ahmed Bashandy" ro | ||||
| le="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
| role="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Litkowski" fullname="Stephane Litkowsk | ||||
| i"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="December" year="2019"/> | ||||
| </front> | ||||
| </reference> | ||||
| <!--draft-ietf-spring-segment-routing-ldp-interop">; companion document | ||||
| RFC 8661--> | ||||
| <reference anchor="RFC8661" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 661"> | ||||
| <front> | ||||
| <title>Segment Routing MPLS Interworking with LDP</title> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8661"/> | ||||
| <seriesInfo name="RFC" value="8661"/> | ||||
| <author initials="A" surname="Bashandy" fullname="Ahmed Bashandy" ro | ||||
| le="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
| role="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Litkowski" fullname="Stephane Litkowsk | ||||
| i"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="December" year="2019"/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5305. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5308. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5311. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5316. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7855. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126. | ||||
| xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>We would like to thank Dave Ward, Dan Frost, Stewart Bryant, Pierre | <t>We would like to thank Dave Ward, Dan Frost, Stewart Bryant, Pierre | |||
| Francois and Jesper Skrivers for their contribution to the content of | Francois, and Jesper Skrivers for their contribution to the content of | |||
| this document.</t> | this document.</t> | |||
| </section> | </section> | |||
| <section anchor="Contributors" numbered="false" toc="default"> | ||||
| <section anchor="Contributors" title="Contributors"> | <name>Contributors</name> | |||
| <t>The following people gave a substantial contribution to the content | <t>The following people gave a substantial contribution to the content | |||
| of this document and should be considered as co-authors:</t> | of this document and should be considered as coauthors:</t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[Stephane Litkowski | ||||
| <figure> | ||||
| <artwork><![CDATA[Stephane Litkowski | ||||
| Orange | Orange | |||
| FR | France | |||
| Email: stephane.litkowski@orange.com]]></artwork> | ||||
| Email: stephane.litkowski@orange.com | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Jeff Tantsura | Jeff Tantsura | |||
| Apstra, Inc. | Apstra, Inc. | |||
| Email: jefftant@gmail.com]]></artwork> | ||||
| Email: jefftant@gmail.com | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| Peter Psenak | Peter Psenak | |||
| Cisco Systems Inc. | Cisco Systems Inc. | |||
| US | United States of America | |||
| Email: ppsenak@cisco.com]]></artwork> | ||||
| Email: ppsenak@cisco.com | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Martin Horneffer | Martin Horneffer | |||
| Deutsche Telekom | Deutsche Telekom | |||
| DE | Germany | |||
| Email: Martin.Horneffer@telekom.de]]></artwork> | ||||
| Email: Martin.Horneffer@telekom.de | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Wim Henderickx | Wim Henderickx | |||
| Nokia | Nokia | |||
| BE | Belgium | |||
| Email: wim.henderickx@nokia.com]]></artwork> | ||||
| Email: wim.henderickx@nokia.com | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Edward Crabbe | Edward Crabbe | |||
| Oracle | Oracle | |||
| US | United States of America | |||
| Email: edward.crabbe@oracle.com]]></artwork> | ||||
| Email: edward.crabbe@oracle.com | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Rob Shakir | Rob Shakir | |||
| UK | United Kingdom | |||
| Email: robjs@google.com]]></artwork> | ||||
| Email: robjs@google.com | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Igor Milojevic | Igor Milojevic | |||
| Individual | Individual | |||
| RS | Serbia | |||
| Email: milojevicigor@gmail.com]]></artwork> | ||||
| Email: milojevicigor@gmail.com | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| Saku Ytti | Saku Ytti | |||
| TDC | TDC | |||
| FI | Finland | |||
| Email: saku@ytti.fi]]></artwork> | ||||
| Email: saku@ytti.fi | ||||
| Steven Luong | ||||
| Cisco Systems Inc. | ||||
| US | ||||
| Email: sluong@cisco.com]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.211 | ||||
| 9.xml"?> | ||||
| <reference anchor="ISO10589"> | ||||
| <front> | ||||
| <title>Intermediate system to Intermediate system intra-domain | ||||
| routeing information exchange protocol for use in conjunction with | ||||
| the protocol for providing the connectionless-mode Network Service | ||||
| (ISO 8473)</title> | ||||
| <author> | ||||
| <organization abbrev="ISO">International Organization for | ||||
| Standardization</organization> | ||||
| </author> | ||||
| <date month="Nov" year="2002"/> | ||||
| </front> | ||||
| <seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | ||||
| </reference> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.303 | ||||
| 1.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.530 | ||||
| 4.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.531 | ||||
| 0.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.512 | ||||
| 0.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.798 | ||||
| 1.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.779 | ||||
| 4.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.817 | ||||
| 4.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.840 | ||||
| 2.xml"?> | ||||
| <?rfc include="reference.I-D.ietf-ospf-segment-routing-extensions.xml"?> | ||||
| <?rfc include="reference.I-D.ietf-spring-segment-routing-mpls.xml"?> | ||||
| <?rfc include="reference.I-D.ietf-spring-segment-routing-ldp-interop.xml"? | ||||
| > | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.530 | ||||
| 5.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.530 | ||||
| 8.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.531 | ||||
| 1.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.531 | ||||
| 6.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.785 | ||||
| 5.xml"?> | ||||
| </references> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 317 change blocks. | ||||
| 1002 lines changed or deleted | 1287 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/ | ||||