rfc9085xml2.original.xml | rfc9085.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 tocompact="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" number="9085" | |||
<?rfc tocdepth="3"?> | docName="draft-ietf-idr-bgp-ls-segment-routing-ext-18" ipr="trust200902" | |||
<?rfc tocindent="yes"?> | consensus="true" obsoletes="" updates="" submissionType="IETF" xml:lang="en | |||
<?rfc symrefs="yes"?> | " | |||
<?rfc sortrefs="yes"?> | tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" | |||
<?rfc comments="yes"?> | version="3"> | |||
<?rfc inline="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<rfc category="std" docName="draft-ietf-idr-bgp-ls-segment-routing-ext-16" | ||||
ipr="trust200902"> | ||||
<front> | <front> | |||
<title abbrev="BGP LS extensions for Segment Routing">BGP Link-State | ||||
extensions for Segment Routing</title> | ||||
<title abbrev="BGP-LS Extensions for Segment Routing">Border Gateway Protoco | ||||
l - Link State (BGP-LS) Extensions for Segment Routing</title> | ||||
<seriesInfo name="RFC" value="9085"/> | ||||
<author fullname="Stefano Previdi" initials="S." surname="Previdi"> | <author fullname="Stefano Previdi" initials="S." surname="Previdi"> | |||
<organization>Huawei Technologies</organization> | <organization>Huawei Technologies</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | ||||
<city>Rome</city> | <city>Rome</city> | |||
<code/> | ||||
<country>Italy</country> | <country>Italy</country> | |||
</postal> | </postal> | |||
<email>stefano@previdi.net</email> | <email>stefano@previdi.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Tal | ||||
<author fullname="Ketan Talaulikar" initials="K." role="editor" | aulikar"> | |||
surname="Talaulikar"> | ||||
<organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>India</country> | <country>India</country> | |||
</postal> | </postal> | |||
<email>ketant@cisco.com</email> | <email>ketant@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/> | ||||
<city>Brussels</city> | <city>Brussels</city> | |||
<code/> | ||||
<country>Belgium</country> | <country>Belgium</country> | |||
</postal> | </postal> | |||
<email>cfilsfil@cisco.com</email> | <email>cfilsfil@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Hannes Gredler" initials="H." surname="Gredler"> | <author fullname="Hannes Gredler" initials="H." surname="Gredler"> | |||
<organization>RtBrick Inc.</organization> | <organization>RtBrick Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal/> | |||
<street/> | ||||
<city/> | ||||
<region/> | ||||
<code/> | ||||
<country/> | ||||
</postal> | ||||
<email>hannes@rtbrick.com</email> | <email>hannes@rtbrick.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen"> | <author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen"> | |||
<organization>Huawei Technologies</organization> | <organization>Huawei Technologies</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Huawei Building, No. 156 Beiqing Rd.</street> | <street>Huawei Building, No. 156 Beiqing Rd.</street> | |||
<city>Beijing</city> | <city>Beijing</city> | |||
<code>100095</code> | <code>100095</code> | |||
<country>China</country> | <country>China</country> | |||
</postal> | </postal> | |||
<email>mach.chen@huawei.com</email> | <email>mach.chen@huawei.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="August" year="2021"/> | ||||
<date year=""/> | ||||
<area>Routing</area> | <area>Routing</area> | |||
<workgroup>Inter-Domain Routing</workgroup> | <workgroup>Inter-Domain Routing</workgroup> | |||
<keyword>BGP-LS</keyword> | <keyword>BGP-LS</keyword> | |||
<keyword>Segment Routing</keyword> | <keyword>Segment Routing</keyword> | |||
<keyword>SID</keyword> | <keyword>SID</keyword> | |||
<keyword>MPLS</keyword> | <keyword>MPLS</keyword> | |||
<keyword>Label advertisement</keyword> | <keyword>Label advertisement</keyword> | |||
<keyword>IS-IS</keyword> | <keyword>IS-IS</keyword> | |||
<keyword>OSPF</keyword> | <keyword>OSPF</keyword> | |||
<keyword>OSPFv3</keyword> | <keyword>OSPFv3</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 by encoding paths as sequences of topological sub-paths, called | paths by encoding paths as sequences of topological subpaths, called | |||
"segments". These segments are advertised by routing protocols e.g. by | "segments". These segments are advertised by routing protocols, e.g., by | |||
the link state routing protocols (IS-IS, OSPFv2 and OSPFv3) within IGP | the link-state routing protocols (IS-IS, OSPFv2, and OSPFv3) within IGP | |||
topologies.</t> | topologies.</t> | |||
<t>This document defines extensions to the BGP Link-state address-family | <t>This document defines extensions to the Border Gateway Protocol - Link | |||
in order to carry segment routing information via BGP.</t> | State (BGP-LS) address family | |||
in order to carry SR information via BGP.</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 by combining sub-paths called "segments". A segment can represent | paths by combining subpaths called "segments". A segment can represent | |||
any instruction: topological or service-based. A segment can have a | any instruction: topological or service based. A segment can have a | |||
local semantic to an SR node or global semantic within a domain. Within | local semantic to an SR node or global semantic within a domain. Within | |||
IGP topologies, an SR path is encoded as a sequence of topological | IGP topologies, an SR path is encoded as a sequence of topological | |||
sub-paths, called "IGP segments". These segments are advertised by the | subpaths, called "IGP segments". These segments are advertised by the | |||
link-state routing protocols (IS-IS, OSPFv2 and OSPFv3).</t> | link-state routing protocols (IS-IS, OSPFv2, and OSPFv3).</t> | |||
<t><xref target="RFC8402"/> defines the Link-State IGP segments - | <t><xref target="RFC8402" format="default"/> defines the link-state IGP se | |||
Prefix, Node, Anycast and Adjacency segments. Prefix segments, by | gments -- | |||
prefix, node, anycast, and adjacency segments. Prefix segments, by | ||||
default, represent an ECMP-aware shortest-path to a prefix, as per the | default, represent an ECMP-aware shortest-path to a prefix, as per the | |||
state of the IGP topology. Adjacency segments represent a hop over a | 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. Node and anycast segments are variations of | cases, is a one-hop path. Node and anycast segments are variations of | |||
the prefix segment with their specific characteristics.</t> | the prefix segment with their specific characteristics.</t> | |||
<t>When Segment Routing is enabled in an IGP domain, segments are | <t>When SR is enabled in an IGP domain, segments are | |||
advertised in the form of Segment Identifiers (SIDs). The IGP link-state | advertised in the form of Segment Identifiers (SIDs). The IGP link-state | |||
routing protocols have been extended to advertise SIDs and other | routing protocols have been extended to advertise SIDs and other | |||
SR-related information. IGP extensions are described for: <xref | SR-related information. IGP extensions are described for: <xref target="RF | |||
target="I-D.ietf-isis-segment-routing-extensions">IS-IS</xref>, <xref | C8667" format="default">IS-IS</xref>, <xref target="RFC8665" format="default">OS | |||
target="I-D.ietf-ospf-segment-routing-extensions">OSPFv2</xref> and | PFv2</xref>, and | |||
<xref | <xref target="RFC8666" format="default">OSPFv3</xref>. | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions">OSPFv3</xref>. | Using these extensions, SR can be enabled within an IGP | |||
Using these extensions, Segment Routing can be enabled within an IGP | ||||
domain.</t> | domain.</t> | |||
<t>Segment Routing (SR) allows advertisement of single or multi-hop | <t>SR allows advertisement of single or multi-hop | |||
paths. The flooding scope for the IGP extensions for Segment routing is | paths. The flooding scope for the IGP extensions for SR is | |||
IGP area-wide. Consequently, the contents of a Link State Database | IGP area-wide. Consequently, the contents of a Link-State Database | |||
(LSDB) or a Traffic Engineering Database (TED) has the scope of an IGP | (LSDB) or a Traffic Engineering Database (TED) has the scope of an IGP | |||
area and therefore, by using the IGP alone it is not enough to construct | area; therefore, by using the IGP alone, it is not enough to construct | |||
segments across multiple IGP Area or AS boundaries.</t> | segments across multiple IGP area or Autonomous | |||
System (AS) boundaries.</t> | ||||
<t>In order to address the need for applications that require | <t>In order to address the need for applications that require | |||
topological visibility across IGP areas, or even across Autonomous | topological visibility across IGP areas, or even across ASes, | |||
Systems (AS), the BGP-LS address-family/sub-address-family have been | the BGP-LS address family / subaddress family have been | |||
defined to allow BGP to carry Link-State information. The BGP Network | defined to allow BGP to carry link-state information. | |||
The BGP Network | ||||
Layer Reachability Information (NLRI) encoding format for BGP-LS and a | Layer Reachability Information (NLRI) encoding format for BGP-LS and a | |||
new BGP Path Attribute called the BGP-LS attribute are defined in <xref | new BGP Path Attribute called the "BGP-LS Attribute" are defined in <xref | |||
target="RFC7752"/>. The identifying key of each Link-State object, | target="RFC7752" format="default"/>. The identifying key of each link-state obje | |||
namely a node, link, or prefix, is encoded in the NLRI and the | ct, | |||
properties of the object are encoded in the BGP-LS attribute.</t> | namely a node, link, or prefix, is encoded in the NLRI, and the | |||
properties of the object are encoded in the BGP-LS Attribute.</t> | ||||
<t><figure anchor="MECHANISM-CONSUMER-PRODUCER" | <figure anchor="MECHANISM-CONSUMER-PRODUCER"> | |||
title="Link State info collection"> | <name>Link-State Information Collection</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
+------------+ | +------------+ | |||
| Consumer | | | Consumer | | |||
+------------+ | +------------+ | |||
^ | ^ | |||
| | | | |||
v | v | |||
+-------------------+ | +-------------------+ | |||
| BGP Speaker | +-----------+ | | BGP Speaker | +-----------+ | |||
| (Route-Reflector) | | Consumer | | | (Route Reflector) | | Consumer | | |||
+-------------------+ +-----------+ | +-------------------+ +-----------+ | |||
^ ^ ^ ^ | ^ ^ ^ ^ | |||
| | | | | | | | | | |||
+---------------+ | +-------------------+ | | +---------------+ | +-------------------+ | | |||
| | | | | | | | | | |||
v v v v | v v v v | |||
+-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| BGP | | BGP | | BGP | | | BGP | | BGP | | BGP | | |||
| Speaker | | Speaker | . . . | Speaker | | | Speaker | | Speaker | . . . | Speaker | | |||
+-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
^ ^ ^ | ^ ^ ^ | |||
| | | | | | | | |||
IGP IGP IGP | IGP IGP IGP | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t><xref target="MECHANISM-CONSUMER-PRODUCER" format="default"/> denotes a | ||||
<t><xref target="MECHANISM-CONSUMER-PRODUCER"/> denotes a typical | typical | |||
deployment scenario. In each IGP area, one or more nodes are configured | deployment scenario. In each IGP area, one or more nodes are configured | |||
with BGP-LS. These BGP speakers form an IBGP mesh by connecting to one | with BGP-LS. These BGP speakers form an Internal BGP (IBGP) mesh by connec | |||
or more route-reflectors. This way, all BGP speakers (specifically the | ting to one | |||
route-reflectors) obtain Link-State information from all IGP areas (and | or more route reflectors. This way, all BGP speakers (specifically the | |||
from other ASes from EBGP peers). An external component connects to the | route reflectors) obtain link-state information from all IGP areas (and | |||
route-reflector to obtain this information (perhaps moderated by a | from other ASes from External BGP (EBGP) peers). An external component con | |||
nects to the | ||||
route reflector to obtain this information (perhaps moderated by a | ||||
policy regarding what information is or isn't advertised to the external | policy regarding what information is or isn't advertised to the external | |||
component) as described in <xref target="RFC7752"/>.</t> | component) as described in <xref target="RFC7752" format="default"/>.</t> | |||
<t>This document describes extensions to BGP-LS to advertise the SR | <t>This document describes extensions to BGP-LS to advertise the SR | |||
information. An external component (e.g., a controller) can collect SR | information. An external component (e.g., a controller) can collect SR | |||
information from across an SR domain (as described in <xref | information from across an SR domain (as described in <xref target="RFC840 | |||
target="RFC8402"/>) and construct the end-to-end path (with its | 2" format="default"/>) and construct the end-to-end path (with its | |||
associated SIDs) that need to be applied to an incoming packet to | associated SIDs) that needs to be applied to an incoming packet to | |||
achieve the desired end-to-end forwarding. SR operates within a trusted | achieve the desired end-to-end forwarding. SR operates within a trusted | |||
domain consisting of a single or multiple ASes managed by the same | domain consisting of a single AS or multiple ASes managed by the same | |||
administrative entity e.g. within a single provider network.</t> | administrative entity, e.g., within a single provider network.</t> | |||
<section numbered="true" toc="default"> | ||||
<name>Requirements Language</name> | ||||
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 | ||||
>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", | ||||
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED< | ||||
/bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and | ||||
"<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as descri | ||||
bed in BCP 14 | ||||
<xref target="RFC2119" format="default"/> <xref target="RFC8174" format="d | ||||
efault"/> when, and only when, | ||||
they appear in all capitals, as shown here.</t> | ||||
</section> | </section> | |||
</section> | ||||
<section title="BGP-LS Extensions for Segment Routing"> | <section numbered="true" toc="default"> | |||
<name>BGP-LS Extensions for Segment Routing</name> | ||||
<t>This document defines SR extensions to BGP-LS and specifies the TLVs | <t>This document defines SR extensions to BGP-LS and specifies the TLVs | |||
and sub-TLVs for advertising SR information within the BGP-LS Attribute. | and sub-TLVs for advertising SR information within the BGP-LS Attribute. | |||
<xref target="ISISTLV"/> and <xref target="OSPFTLV"/> lists the | Sections <xref target="ISISTLV" format="counter"/> and <xref target="OSPF | |||
equivalent TLVs and sub-TLVs in IS-IS, OSPFv2 and OSPFv3 protocols.</t> | TLV" format="counter"/> list the | |||
equivalent TLVs and sub-TLVs in the IS-IS, OSPFv2, and OSPFv3 protocols.</ | ||||
t> | ||||
<t><xref target="RFC7752">BGP-LS</xref> defines the BGP-LS NLRI that can | <t><xref target="RFC7752" format="default">BGP-LS</xref> defines the BGP-L | |||
be a Node NLRI, a Link NLRI or a Prefix NLRI. <xref | S NLRI that can | |||
target="RFC7752">BGP-LS</xref> defines the TLVs that map link-state | be a Node NLRI, a Link NLRI, or a Prefix NLRI, and it defines the TLVs tha | |||
t map link-state | ||||
information to BGP-LS NLRI within the BGP-LS Attribute. This document | information to BGP-LS NLRI within the BGP-LS Attribute. This document | |||
adds additional BGP-LS Attribute TLVs in order to encode SR information. | adds additional BGP-LS Attribute TLVs in order to encode SR information. | |||
It does not introduce any changes to the encoding of the BGP-LS | It does not introduce any changes to the encoding of the BGP-LS | |||
NLRIs.</t> | NLRIs.</t> | |||
<section anchor="NODE" numbered="true" toc="default"> | ||||
<section anchor="NODE" title="Node Attributes TLVs"> | <name>Node Attribute TLVs</name> | |||
<t>The following Node Attribute TLVs are defined:</t> | <t>The following Node Attribute TLVs are defined:</t> | |||
<table anchor="node-attribute_tlv" align="center"> | ||||
<texttable anchor="node-attribute_tlv" title="Node Attribute TLVs"> | <name>Node Attribute TLVs</name> | |||
<ttcol align="center">Type</ttcol> | <thead> | |||
<tr> | ||||
<ttcol align="left">Description</ttcol> | <th align="left">Type</th> | |||
<th align="left">Description</th> | ||||
<ttcol align="right">Section</ttcol> | <th align="left">Section</th> | |||
</tr> | ||||
<c>1161</c> | </thead> | |||
<tbody> | ||||
<c>SID/Label</c> | <tr> | |||
<td align="center">1161</td> | ||||
<c><xref target="SIDLABELTLV"/></c> | <td align="left">SID/Label</td> | |||
<td align="right"> | ||||
<c>1034</c> | <xref target="SIDLABELTLV" format="default"/></td> | |||
</tr> | ||||
<c>SR Capabilities</c> | <tr> | |||
<td align="center">1034</td> | ||||
<c><xref target="SRCAPTLV"/></c> | <td align="left">SR Capabilities</td> | |||
<td align="right"> | ||||
<c>1035</c> | <xref target="SRCAPTLV" format="default"/></td> | |||
</tr> | ||||
<c>SR Algorithm</c> | <tr> | |||
<td align="center">1035</td> | ||||
<c><xref target="SRALGOTLV"/></c> | <td align="left">SR Algorithm</td> | |||
<td align="right"> | ||||
<c>1036</c> | <xref target="SRALGOTLV" format="default"/></td> | |||
</tr> | ||||
<c>SR Local Block</c> | <tr> | |||
<td align="center">1036</td> | ||||
<c><xref target="SRLB"/></c> | <td align="left">SR Local Block</td> | |||
<td align="right"> | ||||
<c>1037</c> | <xref target="SRLB" format="default"/></td> | |||
</tr> | ||||
<c>SRMS Preference</c> | <tr> | |||
<td align="center">1037</td> | ||||
<c><xref target="SRMSPREF"/></c> | <td align="left">SRMS Preference</td> | |||
</texttable> | <td align="right"> | |||
<xref target="SRMSPREF" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>These TLVs should only be added to the BGP-LS Attribute associated | <t>These TLVs should only be added to the BGP-LS Attribute associated | |||
with the Node NLRI describing the IGP node that is originating the | with the Node NLRI that describes the IGP node that is originating the | |||
corresponding IGP TLV/sub-TLV described below.</t> | corresponding IGP TLV/sub-TLV described below.</t> | |||
<section anchor="SIDLABELTLV" numbered="true" toc="default"> | ||||
<section anchor="SIDLABELTLV" title="SID/Label TLV"> | <name>SID/Label TLV</name> | |||
<t>The SID/Label TLV is used as a sub-TLV by the SR Capabilities | <t>The SID/Label TLV is used as a sub-TLV by the SR Capabilities | |||
(<xref target="SRCAPTLV"/>) and Segment Routing Local Block (SRLB) | (<xref target="SRCAPTLV" format="default"/>) and Segment Routing Local | |||
(<xref target="SRLB"/>) TLVs. This information is derived from the | Block (SRLB) | |||
protocol specific advertisements. <list style="symbols"> | (<xref target="SRLB" format="default"/>) TLVs. This information is der | |||
<t>IS-IS, as defined by the SID/Label sub-TLV in section 2.3 of | ived from the | |||
<xref target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | protocol-specific advertisements. </t> | |||
<ul spacing="normal"> | ||||
<t>OSPFv2/OSPFv3, as defined by the SID/Label sub-TLV in section | <li>IS-IS, as defined by the SID/Label Sub-TLV in | |||
2.1 of <xref target="I-D.ietf-ospf-segment-routing-extensions"/> | <xref target="RFC8667" section="2.3" sectionFormat="of"/>.</li> | |||
and section 3.1 of <xref | <li>OSPFv2/OSPFv3, as defined by the SID/Label Sub-TLV in <xref targ | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>.</t> | et="RFC8665" section="2.1" sectionFormat="of"/> | |||
</list></t> | and <xref target="RFC8666" section="3.1" sectionFormat="of"/>.</li | |||
> | ||||
<t>The TLV has the following format: <figure anchor="SIDLTLVFIG" | </ul> | |||
title="SID/Label TLV Format"> | <t>The TLV has the following format: </t> | |||
<artwork><![CDATA[ | <figure anchor="SIDLTLVFIG"> | |||
<name>SID/Label TLV Format</name> | ||||
<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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label (variable) // | | SID/Label (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list style="hanging"> | <dl newline="false"> | |||
<t>Type: 1161</t> | ||||
<t>Length: Variable. Either 3 or 4 depending whether the value | <dt>Type:</dt><dd> 1161</dd> | |||
is encoded as a label or as an index/SID.</t> | <dt>Length:</dt><dd> Variable. Either 3 or 4 octets depending on whe | |||
ther the value | ||||
is encoded as a label or as an index/SID.</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 right | |||
represent a label (the total TLV size is 7) and the 4 leftmost | most bits | |||
bits are set to 0. If length is set to 4, then the value | represent a label (the total TLV size is 7), and the 4 leftmost | |||
represents a 32 bit SID (the total TLV size is 8).</t> | bits are set to 0. If the length is set to 4, then the value | |||
</list></t> | represents a 32-bit SID (the total TLV size is 8).</dd> | |||
</dl> | ||||
</section> | </section> | |||
<section anchor="SRCAPTLV" numbered="true" toc="default"> | ||||
<section anchor="SRCAPTLV" title="SR Capabilities TLV"> | <name>SR Capabilities TLV</name> | |||
<t>The SR Capabilities TLV is used in order to advertise the node's | <t>The SR Capabilities TLV is used in order to advertise the node's | |||
SR Capabilities including its Segment Routing Global Base (SRGB) | SR capabilities including its Segment Routing Global Base (SRGB) | |||
range(s). In the case of IS-IS, the capabilities also include the | range(s). In the case of IS-IS, the capabilities also include the | |||
IPv4 and IPv6 support for the SR-MPLS forwarding plane. This | IPv4 and IPv6 support for the SR-MPLS forwarding plane. This | |||
information is derived from the protocol specific advertisements. | information is derived from the protocol-specific advertisements. | |||
<list style="symbols"> | </t> | |||
<t>IS-IS, as defined by the SR Capabilities sub-TLV in section | <ul spacing="normal"> | |||
3.1 of <xref | <li>IS-IS, as defined by the SR-Capabilities Sub-TLV in <xref target | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ="RFC8667" section="3.1" sectionFormat="of"/>.</li> | |||
<li>OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in | ||||
<t>OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in | <xref target="RFC8665" section="3.2" sectionFormat="of"/>. OSPFv3 | |||
section 3.2 of <xref | leverages the same TLV as defined for OSPFv2.</li> | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>. OSPFv3 | </ul> | |||
leverages the same TLV as defined for OSPFv2.</t> | <t>The SR Capabilities TLV has the following format: </t> | |||
</list></t> | <figure anchor="SRCAPTLVFIG"> | |||
<name>SR Capabilities TLV Format</name> | ||||
<t>The SR Capabilities TLV has the following format: <figure | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
anchor="SRCAPTLVFIG" title="SR Capabilities 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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Range Size 1 | | | Range Size 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV 1 // | | SID/Label Sub-TLV 1 // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
... | ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Range Size N | | | Range Size N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV N // | | SID/Label Sub-TLV N // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:<list style="hanging"> | <t>Where:</t> | |||
<t>Type: 1034</t> | ||||
<t>Length: Variable. Minimum length is 12.</t> | <dl spacing="normal"> | |||
<t>Flags: 1 octet of flags as defined in section 3.1 of <xref | <dt>Type:</dt> <dd>1034</dd> | |||
target="I-D.ietf-isis-segment-routing-extensions"/> for IS-IS. | ||||
The flags are not currently defined for OSPFv2 and OSPFv3 and | ||||
MUST be set to 0 and ignored on receipt.</t> | ||||
<t>Reserved: 1 octet that MUST be set to 0 and ignored on | <dt>Length:</dt><dd>Variable. The minimum length is 12 octets.</dd> | |||
receipt.</t> | ||||
<t>One or more entries, each of which have the following | <dt>Flags:</dt><dd> 1 octet of flags as defined in | |||
format:<list style="hanging"> | <xref | |||
<t>Range Size: 3 octet with a non-zero value indicating the | target="RFC8667" section="3.1" | |||
number of labels in the range.</t> | sectionFormat="of"/> for IS-IS. The flags are not currently | |||
defined for OSPFv2 and OSPFv3 and <bcp14>MUST</bcp14> be | ||||
set to 0 and ignored on receipt.</dd> | ||||
<t>SID/Label TLV (as defined in <xref | <dt>Reserved:</dt><dd> 1 octet that <bcp14>MUST</bcp14> be set to 0 | |||
target="SIDLABELTLV"/>) used as sub-TLV which encodes the | and ignored on | |||
receipt.</dd> | ||||
<dt>One or more entries, each of which have the following | ||||
format:</dt> | ||||
<dd> | ||||
<t><br/></t> | ||||
<dl> | ||||
<dt>Range Size:</dt><dd> 3 octets with a non-zero value | ||||
indicating the number of labels in the range.</dd> | ||||
<dt>SID/Label TLV:</dt><dd>(as defined in <xref target="SIDLABEL | ||||
TLV" format="default"/>) used as a sub-TLV, which encodes the | ||||
first label in the range. Since the SID/Label TLV is used to | first label in the range. Since the SID/Label TLV is used to | |||
indicate the first label of the SRGB range, only label | indicate the first label of the SRGB range, only label | |||
encoding is valid under the SR Capabilities TLV.</t> | encoding is valid under the SR Capabilities TLV.</dd> | |||
</list></t> | ||||
</list></t> | ||||
</section> | ||||
<section anchor="SRALGOTLV" title="SR Algorithm TLV"> | </dl> | |||
<t>The SR Algorithm TLV is used in order to advertise the SR | </dd> | |||
Algorithms supported by the node. This information is derived from | </dl> | |||
the protocol specific advertisements. <list style="symbols"> | ||||
<t>IS-IS, as defined by the SR-Algorithm sub-TLV in section 3.2 | ||||
of <xref | ||||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in section | </section> | |||
3.1 of <xref | ||||
target="I-D.ietf-ospf-segment-routing-extensions"/>. OSPFv3 | <section anchor="SRALGOTLV" numbered="true" toc="default"> | |||
leverages the same TLV as defined for OSPFv2.</t> | <name>SR-Algorithm TLV</name> | |||
</list>The SR Algorithm TLV has the following format: <figure | <t>The SR-Algorithm TLV is used in order to advertise the SR algorithm | |||
anchor="SRALGTLVFIG" title="SR Algorithm TLV Format"> | s | |||
<artwork><![CDATA[ | supported by the node. This information is derived from | |||
the protocol-specific advertisements. </t> | ||||
<ul spacing="normal"> | ||||
<li>IS-IS, as defined by the SR-Algorithm Sub-TLV in | ||||
<xref target="RFC8667" section="3.2" sectionFormat="of"/>.</li> | ||||
<li>OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in | ||||
<xref target="RFC8665" section="3.1" sectionFormat="of"/>. OSPFv3 | ||||
leverages the same TLV as defined for OSPFv2.</li> | ||||
</ul> | ||||
<t>The SR-Algorithm TLV has the following format: </t> | ||||
<figure anchor="SRALGTLVFIG"> | ||||
<name>SR-Algorithm TLV Format</name> | ||||
<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... | Algorithm N | | | Algorithm 1 | Algorithm... | Algorithm N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
</figure> | ||||
<t>Where:</t> | ||||
<dl newline="false" spacing="normal"> | ||||
]]></artwork> | <dt>Type:</dt><dd> 1035</dd> | |||
</figure></t> | ||||
<t>Where:<list style="hanging"> | <dt>Length:</dt><dd> Variable. The minimum length is 1 octet and the | |||
<t>Type: 1035</t> | maximum can be | |||
256.</dd> | ||||
<t>Length: Variable. Minimum length is 1 and maximum can be | <dt>Algorithm:</dt><dd> One or more fields of 1 octet each that iden | |||
256.</t> | tifies the | |||
algorithm.</dd> | ||||
</dl> | ||||
<t>Algorithm: One or more fields of 1 octet each identifying the | ||||
algorithm.</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section anchor="SRLB" numbered="true" toc="default"> | ||||
<section anchor="SRLB" title="SR Local Block TLV"> | <name>SR Local Block TLV</name> | |||
<t>The SR Local Block (SRLB) TLV contains the range(s) of labels the | <t>The SRLB TLV contains the range(s) of labels the | |||
node has reserved for local SIDs. Local SIDs are used, e.g., in IGP | node has reserved for local SIDs. Local SIDs are used, e.g., in IGP | |||
(IS-IS, OSPF) for Adjacency-SIDs, and may also be allocated by | (IS-IS, OSPF) for Adjacency SIDs and may also be allocated by | |||
components other than IGP protocols. As an example, an application | components other than IGP protocols. As an example, an application | |||
or a controller may instruct a node to allocate a specific local | or a controller may instruct a node to allocate a specific local | |||
SID. Therefore, in order for such applications or controllers to | SID. Therefore, in order for such applications or controllers to | |||
know the range of local SIDs available, it is required that the node | know the range of local SIDs available, the node is required to | |||
advertises its SRLB.</t> | advertise its SRLB.</t> | |||
<t>This information is derived from the protocol-specific | ||||
<t>This information is derived from the protocol specific | advertisements. </t> | |||
advertisements. <list style="symbols"> | <ul spacing="normal"> | |||
<t>IS-IS, as defined by the SR Local Block sub-TLV in section | <li>IS-IS, as defined by the SRLB Sub-TLV in | |||
3.3 of <xref | <xref target="RFC8667" section="3.3" sectionFormat="of"/>.</li> | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | <li>OSPFv2/OSPFv3, as defined by the SR Local Block TLV in | |||
<xref target="RFC8665" section="3.3" sectionFormat="of"/>. OSPFv3 | ||||
<t>OSPFv2/OSPFv3, as defined by the SR Local Block TLV in | leverages the same TLV as defined for OSPFv2.</li> | |||
section 3.3. of <xref | </ul> | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>. OSPFv3 | <t>The SRLB TLV has the following format: </t> | |||
leverages the same TLV as defined for OSPFv2.</t> | <figure anchor="SRLBTLVFIG"> | |||
</list></t> | <name>SRLB TLV Format</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ 0 | ||||
<t>The SRLB TLV has the following format: <figure | 1 2 3 | |||
anchor="SRLBTLVFIG" title="SRLB TLV Format"> | ||||
<artwork><![CDATA[ 0 1 2 | ||||
3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | | | Flags | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-Range Size 1 | | | Sub-Range Size 1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV 1 // | | SID/Label Sub-TLV 1 // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
... | ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-Range Size N | | | Sub-Range Size N | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label sub-TLV N // | | SID/Label Sub-TLV N // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list style="hanging"> | <dl newline="false" spacing="normal"> | |||
<t>Type: 1036</t> | ||||
<t>Length: Variable. Minimum length is 12.</t> | <dt>Type:</dt><dd> 1036</dd> | |||
<t>Flags: 1 octet of flags. The flags are as defined in section | <dt>Length:</dt><dd> Variable. The minimum length is 12 octets.</dd> | |||
3.3 of <xref target="I-D.ietf-isis-segment-routing-extensions"/> | ||||
<dt>Flags:</dt><dd> 1 octet of flags. The flags are as defined in | ||||
<xref target="RFC8667" section="3.3" sectionFormat="of"/> | ||||
for IS-IS. The flags are not currently defined for OSPFv2 and | for IS-IS. The flags are not currently defined for OSPFv2 and | |||
OSPFv3 and MUST be set to 0 and ignored on receipt.</t> | OSPFv3 and <bcp14>MUST</bcp14> be set to 0 and ignored on receipt. </dd> | |||
<t>Reserved: 1 octet that MUST be set to 0 and ignored on | <dt>Reserved:</dt><dd> 1 octet that <bcp14>MUST</bcp14> be set to 0 | |||
receipt.</t> | and ignored on | |||
receipt.</dd> | ||||
<t>One or more entries corresponding to sub-range(s), each of | <dt>One or more entries corresponding to a sub-range(s), each of | |||
which have the following format:<list style="hanging"> | which have the following format:</dt> | |||
<t>Range Size: 3 octet value indicating the number of labels | <dd> | |||
in the range.</t> | ||||
<t>SID/Label TLV (as defined in <xref | <t><br/></t> | |||
target="SIDLABELTLV"/>) used as sub-TLV which encodes the | <dl> | |||
<dt>Range Size:</dt><dd> 3-octet value indicating the number of | ||||
labels | ||||
in the range.</dd> | ||||
<dt>SID/Label TLV:</dt><dd>(as defined in <xref target="SIDLABEL | ||||
TLV" format="default"/>) used as a sub-TLV, which encodes the | ||||
first label in the sub-range. Since the SID/Label TLV is | first label in the sub-range. Since the SID/Label TLV is | |||
used to indicate the first label of the SRLB sub-range, only | used to indicate the first label of the SRLB sub-range, only | |||
label encoding is valid under the SR Local Block TLV.</t> | label encoding is valid under the SR Local Block TLV.</dd> | |||
</list></t> | </dl> | |||
</list></t> | </dd> | |||
</section> | </dl> | |||
<section anchor="SRMSPREF" title="SRMS Preference TLV"> | </section> | |||
<section anchor="SRMSPREF" numbered="true" toc="default"> | ||||
<name>SRMS Preference TLV</name> | ||||
<t>The Segment Routing Mapping Server (SRMS) Preference TLV is used | <t>The Segment Routing Mapping Server (SRMS) Preference TLV is used | |||
in order to associate a preference with SRMS advertisements from a | in order to associate a preference with SRMS advertisements from a | |||
particular source. <xref | particular source. <xref target="RFC8661" format="default"/> specifies | |||
target="I-D.ietf-spring-segment-routing-ldp-interop"/> specifies the | the | |||
SRMS functionality along with SRMS preference of the node | SRMS functionality along with the SRMS preference of the node | |||
advertising the SRMS Prefix-to-SID Mapping ranges.</t> | advertising the SRMS Prefix-to-SID mapping ranges.</t> | |||
<t>This information is derived from the protocol-specific | ||||
<t>This information is derived from the protocol specific | advertisements. </t> | |||
advertisements. <list style="symbols"> | <ul spacing="normal"> | |||
<t>IS-IS, as defined by the SRMS Preference sub-TLV in section | <li>IS-IS, as defined by the SRMS Preference Sub-TLV in | |||
3.4 of <xref | <xref target="RFC8667" section="3.4" sectionFormat="of"/>.</li> | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | <li>OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in | |||
<xref target="RFC8665" section="3.4" sectionFormat="of"/>. OSPFv3 | ||||
<t>OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in | leverages the same TLV as defined for OSPFv2.</li> | |||
section 3.4 of <xref | </ul> | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>. OSPFv3 | <t>The SRMS Preference TLV has the following format: </t> | |||
leverages the same TLV as defined for OSPFv2.</t> | <figure anchor="SRMSTLVFIG"> | |||
</list></t> | <name>SRMS Preference TLV Format</name> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[ 0 | ||||
<t>The SRMS Preference TLV has the following format: <figure | 1 2 3 | |||
anchor="SRMSTLVFIG" title="SRMS Preference TLV Format"> | ||||
<artwork><![CDATA[ 0 1 2 | ||||
3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Preference | | | Preference | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:<list style="hanging"> | ||||
<t>Type: 1037</t> | ||||
<t>Length: 1.</t> | ||||
<t>Preference: 1 octet carrying an unsigned 8 bit SRMS | ||||
preference.</t> | ||||
</list></t> | ||||
</section> | ||||
</section> | ||||
<section anchor="LINK" title="Link Attribute TLVs"> | ||||
<t>The following Link Attribute TLVs are are defined:</t> | ||||
<texttable anchor="link-attribute_tlv" title="Link Attribute TLVs"> | ||||
<ttcol align="center">Type</ttcol> | ||||
<ttcol align="left">Description</ttcol> | ||||
<ttcol align="right">Section</ttcol> | ||||
<c>1099</c> | ||||
<c>Adjacency SID TLV</c> | ||||
<c><xref target="ADJSIDTLV"/></c> | ||||
<c>1100</c> | ||||
<c>LAN Adjacency SID TLV</c> | <t>Where:</t> | |||
<c><xref target="LANADJSIDTLV"/></c> | <dl newline="false" spacing="normal"> | |||
<c>1172</c> | <dt>Type:</dt><dd> 1037</dd> | |||
<c>L2 Bundle Member TLV</c> | <dt>Length:</dt><dd> 1 octet</dd> | |||
<c><xref target="L2BUNDLETLV"/></c> | <dt>Preference:</dt><dd> 1 octet carrying an unsigned 8-bit SRMS | |||
</texttable> | preference.</dd> | |||
</dl> | ||||
</section> | ||||
</section> | ||||
<section anchor="LINK" numbered="true" toc="default"> | ||||
<name>Link Attribute TLVs</name> | ||||
<t>The following Link Attribute TLVs are defined:</t> | ||||
<table anchor="link-attribute_tlv" align="center"> | ||||
<name>Link Attribute TLVs</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Type</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Section</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="center">1099</td> | ||||
<td align="left">Adjacency SID TLV</td> | ||||
<td align="right"> | ||||
<xref target="ADJSIDTLV" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="center">1100</td> | ||||
<td align="left">LAN Adjacency SID TLV</td> | ||||
<td align="right"> | ||||
<xref target="LANADJSIDTLV" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="center">1172</td> | ||||
<td align="left">L2 Bundle Member Attributes TLV</td> | ||||
<td align="right"> | ||||
<xref target="L2BUNDLETLV" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>These TLVs should only be added to the BGP-LS Attribute associated | <t>These TLVs should only be added to the BGP-LS Attribute associated | |||
with the Link NLRI describing the link of the IGP node that is | with the Link NLRI that describes the link of the IGP node that is | |||
originating the corresponding IGP TLV/sub-TLV described below.</t> | originating the corresponding IGP TLV/sub-TLV described below.</t> | |||
<section anchor="ADJSIDTLV" numbered="true" toc="default"> | ||||
<section anchor="ADJSIDTLV" title="Adjacency SID TLV"> | <name>Adjacency SID TLV</name> | |||
<t>The Adjacency SID TLV is used in order to advertise information | <t>The Adjacency SID TLV is used in order to advertise information | |||
related to an Adjacency SID. This information is derived from | related to an Adjacency SID. This information is derived from | |||
Adj-SID sub-TLV of IS-IS (section 2.2.1 of <xref | the Adj-SID Sub-TLV of IS-IS (<xref target="RFC8667" section="2.2.1" s | |||
target="I-D.ietf-isis-segment-routing-extensions"/>), OSPFv2 | ectionFormat="of"/>), OSPFv2 | |||
(section 6.1 of <xref | (<xref target="RFC8665" section="6.1" sectionFormat="of"/>), and OSPFv | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>) and OSPFv3 | 3 | |||
(section 7.1 of <xref | (<xref target="RFC8666" section="7.1" sectionFormat="of"/>).</t> | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>).</t> | <t>The Adjacency SID TLV has the following format: </t> | |||
<figure anchor="ADJSIDTLVFIG"> | ||||
<t>The Adjacency SID TLV has the following format: <figure | <name>Adjacency SID TLV Format</name> | |||
anchor="ADJSIDTLVFIG" title="Adjacency SID TLV Format"> | <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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Weight | Reserved | | | Flags | Weight | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label/Index (variable) // | | SID/Label/Index (variable) // | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list style="hanging"> | <dl newline="false" spacing="normal"> | |||
<t>Type: 1099</t> | ||||
<t>Length: Variable. Either 7 or 8 depending on Label or Index | ||||
encoding of the SID</t> | ||||
<t>Flags. 1 octet value which should be set as: <list | ||||
style="symbols"> | ||||
<t>IS-IS Adj-SID flags are defined in section 2.2.1 of <xref | ||||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2 Adj-SID flags are defined in section 6.1 of <xref | <dt>Type:</dt><dd>1099</dd> | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv3 Adj-SID flags are defined in section 7.1 of <xref | <dt>Length:</dt><dd> Variable. Either 7 or 8 octets depending on the | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>.</t | label or index | |||
> | encoding of the SID.</dd> | |||
</list></t> | ||||
<t>Weight: 1 octet carrying the weight used for load-balancing | <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t> | |||
purposes. The use of weight is described in section 3.4 of <xref | <ul spacing="normal"> | |||
target="RFC8402"/>.</t> | <li>IS-IS Adj-SID flags as defined in <xref target="RFC8667" sec | |||
tion="2.2.1" sectionFormat="of"/>.</li> | ||||
<li>OSPFv2 Adj-SID flags as defined in <xref target="RFC8665" se | ||||
ction="6.1" sectionFormat="of"/>.</li> | ||||
<li>OSPFv3 Adj-SID flags as defined in <xref target="RFC8666" se | ||||
ction="7.1" sectionFormat="of"/>.</li> | ||||
</ul> | ||||
</dd> | ||||
<t>Reserved: 2 octets that MUST be set to 0 and ignored on | <dt>Weight:</dt><dd> 1 octet carrying the weight used for load-balan | |||
receipt.</t> | cing | |||
purposes. The use of weight is described in <xref target="RFC8402" | ||||
section="3.4" sectionFormat="of"/>.</dd> | ||||
<t>SID/Index/Label: <list style="symbols"> | <dt>Reserved:</dt><dd> 2 octets that <bcp14>MUST</bcp14> be set to 0 | |||
<t>IS-IS: Label or index value as defined in section 2.2.1 | and ignored on | |||
of <xref | receipt.</dd> | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2: Label or index value as defined in section 6.1 of | <dt>SID/Index/Label: </dt> | |||
<xref | ||||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv3: Label or index value as defined in section 7.1 of | <dd><t><br/></t> | |||
<xref | <dl spacing="normal"> | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>.</t | <dt>IS-IS:</dt><dd> Label or index value as defined in | |||
> | <xref target="RFC8667" section="2.2.1" sectionFormat="of"/>.</d | |||
</list></t> | d> | |||
</list></t> | <dt>OSPFv2:</dt><dd> Label or index value as defined in | |||
<xref target="RFC8665" section="6.1" sectionFormat="of"/>.</dd | ||||
> | ||||
<dt>OSPFv3:</dt><dd> Label or index value as defined in | ||||
<xref target="RFC8666" section="7.1" sectionFormat="of"/>.</dd | ||||
> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t>The Flags and, as an extension, the SID/Index/Label fields of | <t>The Flags and, as an extension, the SID/Index/Label fields of | |||
this TLV are interpreted according to the respective underlying | this TLV are interpreted according to the respective underlying | |||
IS-IS, OSPFv2 or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link | IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link | |||
NLRI is used to determine the underlying protocol specification for | NLRI is used to determine the underlying protocol specification for | |||
parsing these fields.</t> | parsing these fields.</t> | |||
</section> | </section> | |||
<section anchor="LANADJSIDTLV" numbered="true" toc="default"> | ||||
<name>LAN Adjacency SID TLV</name> | ||||
<section anchor="LANADJSIDTLV" title="LAN Adjacency SID TLV"> | ||||
<t>For a LAN, normally a node only announces its adjacency to the | <t>For a LAN, normally a node only announces its adjacency to the | |||
IS-IS pseudo-node (or the equivalent OSPF Designated and Backup | IS-IS pseudonode (or the equivalent OSPF Designated and Backup | |||
Designated Routers). The LAN Adjacency Segment TLV allows a node to | Designated Routers). The LAN Adjacency SID TLV allows a node to | |||
announce adjacencies to all other nodes attached to the LAN in a | announce adjacencies to all other nodes attached to the LAN in a | |||
single instance of the BGP-LS Link NLRI. Without this TLV, the | single instance of the BGP-LS Link NLRI. Without this TLV, the | |||
corresponding BGP-LS link NLRI would need to be originated for each | corresponding BGP-LS Link NLRI would need to be originated for each | |||
additional adjacency in order to advertise the SR TLVs for these | additional adjacency in order to advertise the SR TLVs for these | |||
neighbor adjacencies.</t> | neighbor adjacencies.</t> | |||
<t>This information is derived from LAN-Adj-SID sub-TLV of IS-IS | <t>This information is derived from the LAN-Adj-SID Sub-TLV of | |||
(section 2.2.2 of <xref | IS-IS (<xref target="RFC8667" sectionFormat="of" section="2.2.2"/>), t | |||
target="I-D.ietf-isis-segment-routing-extensions"/>) and LAN Adj-SID | he LAN Adj-SID Sub-TLV of OSPFv2 | |||
sub-TLV of OSPFv2 (section 6.2 of <xref | (<xref target="RFC8665" sectionFormat="of" section="6.2"/>), and the L | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>) and OSPFv3 | AN Adj-SID Sub-TLV of OSPFv3 (<xref | |||
(section 7.2 of <xref | target="RFC8666" sectionFormat="of" section="7.2"/>).</t> | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>).</t> | <t>The LAN Adjacency SID TLV has the following format: </t> | |||
<figure anchor="LADJSIDTLVFIG"> | ||||
<t>The LAN Adjacency SID TLV has the following format: <figure | <name>LAN Adjacency SID TLV Format</name> | |||
anchor="LADJSIDTLVFIG" title="LAN Adjacency SID TLV Format"> | <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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Weight | Reserved | | | Flags | Weight | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| OSPF Neighbor ID / IS-IS System-ID | | | OSPF Neighbor ID / IS-IS System ID | | |||
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Label/Index (variable) // | | SID/Label/Index (variable) // | |||
+---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list style="hanging"> | <dl newline="false" spacing="normal"> | |||
<t>Type: 1100</t> | ||||
<t>Length: Variable. For IS-IS it would be 13 or 14 depending on | <dt>Type:</dt> <dd>1100</dd> | |||
Label or Index encoding of the SID. For OSPF it would be 11 or | ||||
12 depending on Label or Index encoding of the SID.</t> | ||||
<t>Flags. 1 octet value which should be set as: <list | <dt>Length:</dt><dd> Variable. For IS-IS, it would be 13 or 14 octet | |||
style="symbols"> | s depending on | |||
<t>IS-IS LAN Adj-SID flags are defined in section 2.2.2 of | the label or index encoding of the SID. For OSPF, it would be 11 o | |||
<xref | r | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | 12 octets depending on the label or index encoding of the SID.</dd | |||
> | ||||
<t>OSPFv2 LAN Adj-SID flags are defined in section 6.2 of | <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t> | |||
<xref | ||||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv3 LAN Adj-SID flags are defined in section 7.2 of | <ul spacing="normal"> | |||
<xref | <li>IS-IS LAN Adj-SID flags as defined in | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | <xref target="RFC8667" section="2.2.2" sectionFormat="of"/>.</ | |||
</list></t> | li> | |||
<li>OSPFv2 LAN Adj-SID flags as defined in | ||||
<xref target="RFC8665" section="6.2" sectionFormat="of"/>.</li | ||||
> | ||||
<t>Weight: 1 octet carrying the weight used for load-balancing | <li>OSPFv3 LAN Adj-SID flags as defined in | |||
purposes. The use of weight is described in section 3.4 of <xref | <xref target="RFC8666" section="7.2" sectionFormat="of"/>.</li | |||
target="RFC8402"/>.</t> | > | |||
</ul> | ||||
</dd> | ||||
<t>Reserved: 2 octets that MUST be set to 0 and ignored on | <dt>Weight:</dt><dd> 1 octet carrying the weight used for load-balan | |||
receipt.</t> | cing | |||
purposes. The use of weight is described in <xref target="RFC8402" | ||||
section="3.4" sectionFormat="of"/>.</dd> | ||||
<t>Neighbor ID: 6 octets for IS-IS for the System-ID and 4 | <dt>Reserved:</dt><dd> 2 octets that <bcp14>MUST</bcp14> be set to 0 | |||
octets for OSPF for the OSPF Router-ID of the neighbor.</t> | and ignored on | |||
receipt.</dd> | ||||
<t>SID/Index/Label: <list style="symbols"> | <dt>Neighbor ID:</dt><dd> 6 octets for IS-IS for the System ID, and | |||
<t>IS-IS: Label or index value as defined in section 2.2.2 | 4 | |||
of <xref | octets for OSPF for the OSPF Router-ID of the neighbor.</dd> | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2: Label or index value as defined in section 6.2 of | <dt>SID/Index/Label: </dt> | |||
<xref | ||||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv3: Label or index value as defined in section 7.2 of | <dd><t><br/></t> | |||
<xref | <dl spacing="normal"> | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>.</t | <dt>IS-IS:</dt><dd> Label or index value as defined in | |||
> | <xref target="RFC8667" section="2.2.2" sectionFormat="of"/>.</ | |||
</list></t> | dd> | |||
</list></t> | <dt>OSPFv2:</dt><dd> Label or index value as defined in | |||
<xref target="RFC8665" section="6.2" sectionFormat="of"/>.</dd | ||||
> | ||||
<dt>OSPFv3:</dt><dd> Label or index value as defined in | ||||
<xref target="RFC8666" section="7.2" sectionFormat="of"/>.</dd | ||||
> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t>The Neighbor ID, Flags and, as an extension, the SID/Index/Label | <t>The Neighbor ID, Flags, and, as an extension, the SID/Index/Label | |||
fields of this TLV are interpreted according to the respective | fields of this TLV are interpreted according to the respective | |||
underlying IS-IS, OSPFv2 or OSPFv3 protocol. The Protocol-ID of the | underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the | |||
BGP-LS Link NLRI is used to determine the underlying protocol | BGP-LS Link NLRI is used to determine the underlying protocol | |||
specification for parsing these fields.</t> | specification for parsing these fields.</t> | |||
</section> | </section> | |||
<section anchor="L2BUNDLETLV" numbered="true" toc="default"> | ||||
<section anchor="L2BUNDLETLV" title="L2 Bundle Member Attribute TLV"> | <name>L2 Bundle Member Attributes TLV</name> | |||
<t>The L2 Bundle Member Attribute TLV identifies an L2 Bundle Member | <t>The L2 Bundle Member Attributes TLV identifies an L2 Bundle Member | |||
link which in turn is associated with a parent L3 link. The L3 link | link, which in turn is associated with a parent L3 link. The L3 link | |||
is described by the Link NLRI defined in <xref target="RFC7752"/> | is described by the Link NLRI defined in <xref target="RFC7752" format | |||
and the L2 Bundle Member Attribute TLV is associated with the Link | ="default"/>, | |||
NLRI. The TLV MAY include sub-TLVs which describe attributes | and the L2 Bundle Member Attributes TLV is associated with the Link | |||
NLRI. The TLV <bcp14>MAY</bcp14> include sub-TLVs that describe attrib | ||||
utes | ||||
associated with the bundle member. The identified bundle member | associated with the bundle member. The identified bundle member | |||
represents a unidirectional path from the originating router to the | represents a unidirectional path from the originating router to the | |||
neighbor specified in the parent L3 Link. Multiple L2 Bundle Member | neighbor specified in the parent L3 link. Multiple L2 Bundle Member | |||
Attribute TLVs MAY be associated with a Link NLRI.</t> | Attributes TLVs <bcp14>MAY</bcp14> be associated with a Link NLRI.</t> | |||
<t>This information is derived from L2 Bundle Member Attributes TLV | <t>This information is derived from L2 Bundle Member Attributes TLV | |||
of IS-IS (section 2 of <xref target="I-D.ietf-isis-l2bundles"/>). | of IS-IS (<xref target="RFC8668" section="2" sectionFormat="of"/>). | |||
The equivalent functionality has not been specified as yet for | The equivalent functionality has not been specified as yet for | |||
OSPF.</t> | OSPF.</t> | |||
<t>The L2 Bundle Member Attributes TLV has the following format: | ||||
<t>The L2 Bundle Member Attribute TLV has the following format: | </t> | |||
<figure anchor="L2BTLVFIG" | <figure anchor="L2BTLVFIG"> | |||
title="L2 Bundle Member Attributes TLV Format"> | <name>L2 Bundle Member Attributes TLV Format</name> | |||
<artwork><![CDATA[ 0 1 2 | <artwork name="" type="" align="left" alt=""><![CDATA[ 0 | |||
3 | 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| L2 Bundle Member Descriptor | | | L2 Bundle Member Descriptor | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Link attribute sub-TLVs(variable) // | | Link Attribute Sub-TLVs(variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list style="hanging"> | <dl newline="false" spacing="normal"> | |||
<t>Type: 1172</t> | ||||
<t>Length: Variable.</t> | <dt>Type:</dt><dd> 1172</dd> | |||
<t>L2 Bundle Member Descriptor: 4 octets field that carries a | <dt>Length:</dt><dd> Variable.</dd> | |||
Link Local Identifier as defined in <xref | ||||
target="RFC4202"/>.</t> | ||||
</list></t> | ||||
<t>Link attributes for L2 Bundle Member Links are advertised as | <dt>L2 Bundle Member Descriptor:</dt><dd> 4-octet field that carries | |||
sub-TLVs of the L2 Bundle Member Attribute TLV. The sub-TLVs are | a | |||
link-local identifier as defined in <xref target="RFC4202" format= | ||||
"default"/>.</dd> | ||||
</dl> | ||||
<t>Link attributes for L2 Bundle Member links are advertised as | ||||
sub-TLVs of the L2 Bundle Member Attributes TLV. The sub-TLVs are | ||||
identical to existing BGP-LS TLVs as identified in the table | identical to existing BGP-LS TLVs as identified in the table | |||
below.</t> | below.</t> | |||
<table anchor="l2subtlvs" align="center"> | ||||
<texttable anchor="l2subtlvs" | <name>BGP-LS Attribute TLVs are also used as sub-TLVs of the L2 Bund | |||
title="BGP-LS Attribute TLVs also used as sub-TLVs of L2 Bu | le Member Attributes TLV</name> | |||
ndle Member Attribute TLV"> | <thead> | |||
<ttcol align="center">TLV Code Point</ttcol> | <tr> | |||
<th align="center">TLV Code Point</th> | ||||
<ttcol align="left">Description</ttcol> | <th align="left">Description</th> | |||
<th align="left">Reference Document</th> | ||||
<ttcol align="left">Reference Document</ttcol> | </tr> | |||
</thead> | ||||
<c>1088</c> | <tbody> | |||
<tr> | ||||
<c>Administrative group (color)</c> | <td align="center">1088</td> | |||
<td align="left">Administrative group (color)</td> | ||||
<c><xref target="RFC7752"/></c> | <td align="left"> | |||
<xref target="RFC7752" format="default"/></td> | ||||
<c>1089</c> | </tr> | |||
<tr> | ||||
<c>Maximum link bandwidth</c> | <td align="center">1089</td> | |||
<td align="left">Maximum link bandwidth</td> | ||||
<c><xref target="RFC7752"/></c> | <td align="left"> | |||
<xref target="RFC7752" format="default"/></td> | ||||
<c>1090</c> | </tr> | |||
<tr> | ||||
<c>Max. reservable link bandwidth</c> | <td align="center">1090</td> | |||
<td align="left">Max. reservable link bandwidth</td> | ||||
<c><xref target="RFC7752"/></c> | <td align="left"> | |||
<xref target="RFC7752" format="default"/></td> | ||||
<c>1091</c> | </tr> | |||
<tr> | ||||
<c>Unreserved bandwidth</c> | <td align="center">1091</td> | |||
<td align="left">Unreserved bandwidth</td> | ||||
<c><xref target="RFC7752"/></c> | <td align="left"> | |||
<xref target="RFC7752" format="default"/></td> | ||||
<c>1092</c> | </tr> | |||
<tr> | ||||
<c>TE default metric</c> | <td align="center">1092</td> | |||
<td align="left">TE default metric</td> | ||||
<c><xref target="RFC7752"/></c> | <td align="left"> | |||
<xref target="RFC7752" format="default"/></td> | ||||
<c>1093</c> | </tr> | |||
<tr> | ||||
<c>Link protection type</c> | <td align="center">1093</td> | |||
<td align="left">Link protection type</td> | ||||
<c><xref target="RFC7752"/></c> | <td align="left"> | |||
<xref target="RFC7752" format="default"/></td> | ||||
<c>1099</c> | </tr> | |||
<tr> | ||||
<c>Adjacency Segment Identifier (Adj-SID) TLV</c> | <td align="center">1099</td> | |||
<td align="left">Adjacency Segment Identifier (Adj-SID) TLV</td> | ||||
<c><xref target="ADJSIDTLV"/></c> | <td align="left"> | |||
<xref target="ADJSIDTLV" format="default"/></td> | ||||
<c>1100</c> | </tr> | |||
<tr> | ||||
<c>LAN Adjacency Segment Identifier (Adj-SID) TLV</c> | <td align="center">1100</td> | |||
<td align="left">LAN Adjacency Segment Identifier (Adj-SID) TLV< | ||||
<c><xref target="LANADJSIDTLV"/></c> | /td> | |||
<td align="left"> | ||||
<c>1114</c> | <xref target="LANADJSIDTLV" format="default"/></td> | |||
</tr> | ||||
<c>Unidirectional link delay</c> | <tr> | |||
<td align="center">1114</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Unidirectional link delay</td> | |||
<td align="left"> | ||||
<c>1115</c> | <xref target="RFC8571" format="default"/></td> | |||
</tr> | ||||
<c>Min/Max Unidirectional link delay</c> | <tr> | |||
<td align="center">1115</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Min/Max Unidirectional link delay</td> | |||
<td align="left"> | ||||
<c>1116</c> | <xref target="RFC8571" format="default"/></td> | |||
</tr> | ||||
<c>Unidirectional Delay Variation</c> | <tr> | |||
<td align="center">1116</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Unidirectional Delay Variation</td> | |||
<td align="left"> | ||||
<c>1117</c> | <xref target="RFC8571" format="default"/></td> | |||
</tr> | ||||
<c>Unidirectional packet loss</c> | <tr> | |||
<td align="center">1117</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Unidirectional Link Loss</td> | |||
<td align="left"> | ||||
<c>1118</c> | <xref target="RFC8571" format="default"/></td> | |||
</tr> | ||||
<c>Unidirectional residual bandwidth</c> | <tr> | |||
<td align="center">1118</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Unidirectional residual bandwidth</td> | |||
<td align="left"> | ||||
<c>1119</c> | <xref target="RFC8571" format="default"/></td> | |||
</tr> | ||||
<c>Unidirectional available bandwidth</c> | <tr> | |||
<td align="center">1119</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Unidirectional available bandwidth</td> | |||
<td align="left"> | ||||
<c>1120</c> | <xref target="RFC8571" format="default"/></td> | |||
</tr> | ||||
<c>Unidirectional bandwidth utilization</c> | <tr> | |||
<td align="center">1120</td> | ||||
<c><xref target="RFC8571"/></c> | <td align="left">Unidirectional Utilized Bandwidth</td> | |||
</texttable> | <td align="left"> | |||
<xref target="RFC8571" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="PREFIX" numbered="true" toc="default"> | ||||
<section anchor="PREFIX" title="Prefix Attribute TLVs "> | <name>Prefix Attribute TLVs</name> | |||
<t>The following Prefix Attribute TLVs are defined:</t> | <t>The following Prefix Attribute TLVs are defined:</t> | |||
<texttable anchor="prefix-attribute_tlv" title="Prefix Attribute TLVs"> | <table anchor="prefix-attribute_tlv" align="center"> | |||
<ttcol align="center">Type</ttcol> | <name>Prefix Attribute TLVs</name> | |||
<thead> | ||||
<ttcol align="left">Description</ttcol> | <tr> | |||
<th align="center">Type</th> | ||||
<ttcol align="left">Section</ttcol> | <th align="left">Description</th> | |||
<th align="left">Section</th> | ||||
<c>1158</c> | </tr> | |||
</thead> | ||||
<c>Prefix SID</c> | <tbody> | |||
<tr> | ||||
<c><xref target="PREFIXSIDTLV"/></c> | <td align="center">1158</td> | |||
<td align="left">Prefix-SID</td> | ||||
<c>1159</c> | <td align="left"> | |||
<xref target="PREFIXSIDTLV" format="default"/></td> | ||||
<c>Range</c> | </tr> | |||
<tr> | ||||
<c><xref target="RANGETLV"/></c> | <td align="center">1159</td> | |||
<td align="left">Range</td> | ||||
<c>1170</c> | <td align="left"> | |||
<xref target="RANGETLV" format="default"/></td> | ||||
<c>Prefix Attribute Flags</c> | </tr> | |||
<tr> | ||||
<c><xref target="PREFIXATTRFLAGTLV"/></c> | <td align="center">1170</td> | |||
<td align="left">Prefix Attribute Flags</td> | ||||
<c>1171</c> | <td align="left"> | |||
<xref target="PREFIXATTRFLAGTLV" format="default"/></td> | ||||
<c>Source Router-ID</c> | </tr> | |||
<tr> | ||||
<c><xref target="SOURCEIDTLV"/></c> | <td align="center">1171</td> | |||
</texttable> | <td align="left">Source Router Identifier</td> | |||
<td align="left"> | ||||
<xref target="SOURCEIDTLV" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="center">1174</td> | ||||
<td align="left">Source OSPF Router-ID</td> | ||||
<td align="left"> | ||||
<xref target="SOURCEOSPFRIDTLV" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t>These TLVs should only be added to the BGP-LS Attribute associated | <t>These TLVs should only be added to the BGP-LS Attribute associated | |||
with the Prefix NLRI describing the prefix of the IGP node that is | with the Prefix NLRI that describes the prefix of the IGP node that is | |||
originating the corresponding IGP TLV/sub-TLV described below.</t> | originating the corresponding IGP TLV/sub-TLV described below.</t> | |||
<section anchor="PREFIXSIDTLV" numbered="true" toc="default"> | ||||
<section anchor="PREFIXSIDTLV" title="Prefix SID TLV"> | <name>Prefix-SID TLV</name> | |||
<t>The Prefix SID TLV is used in order to advertise information | <t>The Prefix-SID TLV is used in order to advertise information | |||
related to a Prefix SID. This information is derived from Prefix-SID | related to a Prefix-SID. This information is derived from the Prefix-S | |||
sub-TLV of IS-IS (section 2.1 of <xref | ID | |||
target="I-D.ietf-isis-segment-routing-extensions"/>) and the Prefix | Sub-TLV of IS-IS (<xref target="RFC8667" section="2.1" sectionFormat=" | |||
SID sub-TLV of OSPFv2 (section 5 of <xref | of"/>), the Prefix-SID | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>) and OSPFv3 | Sub-TLV of OSPFv2 (<xref target="RFC8665" section="5" sectionFormat="o | |||
(section 6 of <xref | f"/>), and the Prefix-SID | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>).</t> | Sub-TLV of OSPFv3 | |||
(<xref target="RFC8666" section="6" sectionFormat="of"/>).</t> | ||||
<t>The Prefix SID TLV has the following format: <figure | <t>The Prefix-SID TLV has the following format: </t> | |||
anchor="PFXSIDTLVFIG" title="Prefix SID TLV Format"> | <figure anchor="PFXSIDTLVFIG"> | |||
<artwork><![CDATA[ | <name>Prefix-SID TLV Format</name> | |||
<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 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Algorithm | Reserved | | | Flags | Algorithm | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID/Index/Label (variable) // | | SID/Index/Label (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list style="hanging"> | ||||
<t>Type: 1158</t> | ||||
<t>Length: Variable. 7 or 8 depending on Label or Index encoding | <dl> | |||
of the SID</t> | ||||
<t>Flags: 1 octet value which should be set as: <list | <dt>Type:</dt><dd> 1158</dd> | |||
style="symbols"> | ||||
<t>IS-IS Prefix SID flags are defined in section 2.1.1 of | ||||
<xref | ||||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2 Prefix SID flags are defined in section 5 of <xref | <dt>Length:</dt><dd> Variable. 7 or 8 octets depending on the label | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | or index encoding | |||
of the SID.</dd> | ||||
<t>OSPFv3 Prefix SID flags are defined in section 6 of <xref | <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t> | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | ||||
</list></t> | ||||
<t>Algorithm: 1 octet value identify the algorithm. The | <ul spacing="normal"> | |||
semantics of algorithm are described in section 3.1.1 of <xref | <li>IS-IS Prefix-SID flags as defined in | |||
target="RFC8402"/>.</t> | <xref target="RFC8667" section="2.1.1" sectionFormat="of"/>.</ | |||
li> | ||||
<li>OSPFv2 Prefix-SID flags as defined in <xref target="RFC8665" | ||||
section="5" sectionFormat="of"/>.</li> | ||||
<li>OSPFv3 Prefix-SID flags as defined in <xref target="RFC8665" | ||||
section="6" sectionFormat="of"/>.</li> | ||||
</ul> | ||||
</dd> | ||||
<t>Reserved: 2 octets that MUST be set to 0 and ignored on | <dt>Algorithm:</dt><dd> 1-octet value identifies the algorithm. The | |||
receipt.</t> | semantics of the algorithm are described in <xref target="RFC8402" | |||
section="3.1.1" sectionFormat="of"/>.</dd> | ||||
<t>SID/Index/Label: <list style="symbols"> | <dt>Reserved:</dt><dd> 2 octets that <bcp14>MUST</bcp14> be set to 0 | |||
<t>IS-IS: Label or index value as defined in section 2.1 of | and ignored on | |||
<xref | receipt.</dd> | |||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2: Label or index value as defined in section 5 of | <dt>SID/Index/Label:</dt> | |||
<xref | <dd><t><br/></t> | |||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | <dl spacing="normal"> | |||
<t>OSPFv3: Label or index value as defined in section 6 of | <dt>IS-IS:</dt><dd> Label or index value as defined in | |||
<xref | <xref target="RFC8667" section="2.1" sectionFormat="of"/>.</dd | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>.</t | > | |||
> | <dt>OSPFv2:</dt><dd> Label or index value as defined in | |||
</list></t> | <xref target="RFC8665" section="5" sectionFormat="of"/>.</dd> | |||
</list></t> | <dt>OSPFv3:</dt><dd> Label or index value as defined in | |||
<xref target="RFC8666" section="6" sectionFormat="of"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t>The Flags and, as an extension, the SID/Index/Label fields of | <t>The Flags and, as an extension, the SID/Index/Label fields of | |||
this TLV are interpreted according to the respective underlying | this TLV are interpreted according to the respective underlying | |||
IS-IS, OSPFv2 or OSPFv3 protocol. The Protocol-ID of the BGP-LS | IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS | |||
Prefix NLRI is used to determine the underlying protocol | Prefix NLRI is used to determine the underlying protocol | |||
specification for parsing these fields.</t> | specification for parsing these fields.</t> | |||
</section> | </section> | |||
<section anchor="PREFIXATTRFLAGTLV" title="Prefix Attribute Flags TLV"> | <section anchor="PREFIXATTRFLAGTLV" numbered="true" toc="default"> | |||
<name>Prefix Attribute Flags TLV</name> | ||||
<t>The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute | <t>The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute | |||
flags information. These flags are defined for OSPFv2 in section 2.1 | flags information. These flags are defined for OSPFv2 in | |||
of <xref target="RFC7684"/>, for OSPFv3 in section A.4.1.1 of <xref | <xref target="RFC7684" section="2.1" sectionFormat="of"/>, OSPFv3 in | |||
target="RFC5340"/> and for IS-IS in section 2.1 of <xref | <xref target="RFC5340" section="A.4.1.1" sectionFormat="of"/>, and IS-IS in <xre | |||
target="RFC7794"/>.</t> | f target="RFC7794" section="2.1" sectionFormat="of"/>.</t> | |||
<t>The Prefix Attribute Flags TLV has the following format: <figure | <t>The Prefix Attribute Flags TLV has the following format: </t> | |||
anchor="PFXATRTLVFIG" title="Prefix Attribute Flags TLV Format"> | <figure anchor="PFXATRTLVFIG"> | |||
<artwork><![CDATA[ 0 1 2 | <name>Prefix Attribute Flags TLV Format</name> | |||
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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags (variable) // | | Flags (variable) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<dl> | ||||
<t>Where:<list style="hanging"> | <dt>Type:</dt><dd> 1170</dd> | |||
<t>Type: 1170</t> | ||||
<t>Length: Variable.</t> | <dt>Length:</dt><dd> Variable.</dd> | |||
<t>Flags: a variable length flag field (according to the length | <dt>Flags:</dt><dd><t> a variable-length Flag field (according to the Length | |||
field). Flags are routing protocol specific and are to be set as | field). Flags are routing protocol specific and are to be set as | |||
below:<list style="symbols"> | below:</t> | |||
<t>IS-IS flags correspond to the IPv4/IPv6 Extended | ||||
Reachability Attribute Flags defined in section 2.1 of <xref | ||||
target="RFC7794"/></t> | ||||
<t>OSPFv2 flags correspond to the Flags field of the OSPFv2 | <ul spacing="normal"> | |||
Extended Prefix TLV defined in section 2.1 of <xref | <li>IS-IS flags correspond to the IPv4/IPv6 Extended | |||
target="RFC7684"/></t> | Reachability Attribute Flags defined in <xref target="RFC7794" s | |||
ection="2.1" sectionFormat="of"/>. | ||||
In the case of the X-flag when associated with IPv6 prefix | ||||
reachability, the setting corresponds to the setting of the | ||||
X-flag in the fixed format of IS-IS TLVs 236 <xref target="RF | ||||
C5308" format="default"/> and 237 | ||||
<xref target="RFC5120" format="default"/>. | ||||
</li> | ||||
<t>OSPFv3 flags map to the Prefix Options field defined in | <li>OSPFv2 flags correspond to the Flags field of the | |||
section A.4.1.1 of <xref target="RFC5340"/> and extended in | OSPFv2 Extended Prefix TLV defined in | |||
section 3.1 of <xref target="RFC8362"/></t> | <xref target="RFC7684" section="2.1" sectionFormat="of"/>.</li> | |||
</list></t> | <li>OSPFv3 flags map to the Prefix Options field defined in | |||
</list></t> | <xref target="RFC5340" section="A.4.1.1" sectionFormat="of"/> a | |||
nd extended in | ||||
<xref target="RFC8362" section="3.1" sectionFormat="of"/>.</li> | ||||
</ul> | ||||
</dd> | ||||
</dl> | ||||
<t>The Flags field of this TLV is interpreted according to the | <t>The Flags field of this TLV is interpreted according to the | |||
respective underlying IS-IS, OSPFv2 or OSPFv3 protocol. The | respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The | |||
Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | |||
underlying protocol specification for parsing this field.</t> | underlying protocol specification for parsing this field.</t> | |||
</section> | </section> | |||
<section anchor="SOURCEIDTLV" | <section anchor="SOURCEIDTLV" numbered="true" toc="default"> | |||
title="Source Router Identifier (Source Router-ID) TLV"> | ||||
<t>The Source Router-ID TLV contains the IPv4 or IPv6 Router-ID of | ||||
the originator of the Prefix. For the IS-IS protocol this is derived | ||||
from the IPv4/IPv6 Source Router ID sub-TLV as defined in section | ||||
2.2 of <xref target="RFC7794"/>. For the OSPF protocol, this is | ||||
derived from the Prefix Source Router-ID sub-TLV as defined in | ||||
section 4 of <xref | ||||
target="I-D.ietf-lsr-ospf-prefix-originator"/>.</t> | ||||
<t>The Source Router-ID TLV has the following format: <figure | <name>Source Router Identifier TLV</name> | |||
anchor="SRCRIDTLVFIG" title="Source Router-ID TLV Format"> | <t>The Source Router Identifier TLV contains the IPv4 or IPv6 Router I | |||
<artwork><![CDATA[ 0 1 2 | dentifier of | |||
3 | the originator of the prefix. For the IS-IS protocol, this is derived | |||
from the IPv4/IPv6 Source Router ID Sub-TLV as defined in | ||||
<xref target="RFC7794" section="2.2" sectionFormat="of"/>. For the OSPF | ||||
protocol, this is | ||||
derived from the Prefix Source Router Address Sub-TLV as defined in | ||||
<xref target="RFC9084" section="2.2" sectionFormat="of"/>.</t> | ||||
<t>The Source Router Identifier TLV has the following format: </t> | ||||
<figure anchor="SRCRIDTLVFIG"> | ||||
<name>Source Router Identifier TLV Format</name> | ||||
<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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 4 or 16 octet Router-ID // | | 4- or 16-octet Router Identifier // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ||||
</figure> | ||||
<t>Where:</t> | ||||
<dl> | ||||
<dt>Type:</dt><dd> 1171</dd> | ||||
<dt>Length:</dt><dd> Variable. 4 or 16 octets for the IPv4 or IPv6 p | ||||
refix, respectively.</dd> | ||||
<dt>Router-ID:</dt><dd> the IPv4 or IPv6 Router-ID in the case of IS | ||||
-IS, and | ||||
the IPv4 or IPv6 Router Address in the case of OSPF.</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="SOURCEOSPFRIDTLV" title="Source OSPF Router-ID TLV"> | ||||
<t>The Source OSPF Router-ID TLV is applicable only for the OSPF | ||||
protocol and contains the OSPF Router-ID of the originator of the | ||||
prefix. It is derived from the Prefix Source OSPF Router-ID Sub-TLV | ||||
as defined in <xref target="RFC9084" section="2.1" sectionFormat="of"/ | ||||
>.</t> | ||||
<t>The Source OSPF Router-ID TLV has the following format:</t> | ||||
<figure anchor="SRCOSPFRIDTLVFIG"> | ||||
<name>Source OSPF Router-ID TLV Format</name> | ||||
<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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| 4-octet OSPF Router-ID // | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:<list style="hanging"> | <t>Where:</t> | |||
<t>Type: 1171</t> | <dl> | |||
<dt>Type:</dt><dd>1174</dd> | ||||
<t>Length: Variable. 4 or 16 in case of IS-IS and 4 in case of | <dt>Length:</dt><dd>4 octets</dd> | |||
OSPF.</t> | ||||
<t>Router-ID: the IPv4 or IPv6 Router-ID in case of IS-IS and | <dt>OSPF Router-ID:</dt><dd>the OSPF Router-ID of the node origina | |||
the OSPF Router-ID in the case of OSPF.</t> | ting | |||
</list></t> | the prefix.</dd> | |||
</dl> | ||||
</section> | </section> | |||
<section anchor="RANGETLV" title="Range TLV"> | <section anchor="RANGETLV" numbered="true" toc="default"> | |||
<name>Range TLV</name> | ||||
<t>The Range TLV is used in order to advertise a range of | <t>The Range TLV is used in order to advertise a range of | |||
prefix-to-SID mappings as part of the Segment Routing Mapping Server | prefix-to-SID mappings as part of the | |||
(SRMS) functionality <xref | SRMS functionality <xref target="RFC8661" format="default"/>, as defin | |||
target="I-D.ietf-spring-segment-routing-ldp-interop"/>, as defined | ed | |||
in the respective underlying IGP SR extensions <xref | in the respective underlying IGP SR extensions: <xref target="RFC8665" | |||
target="I-D.ietf-ospf-segment-routing-extensions"/> (section 4), | section="4" sectionFormat="of"/>, | |||
<xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/> | <xref target="RFC8666" section="5" sectionFormat="of"/>, | |||
(section 5) and <xref | and <xref target="RFC8667" section="2.4" sectionFormat="of"/>. | |||
target="I-D.ietf-isis-segment-routing-extensions"/> (section 2.4). | ||||
The information advertised in the Range TLV is derived from the | The information advertised in the Range TLV is derived from the | |||
SID/Label Binding TLV in the case of IS-IS and the OSPFv2/OSPFv3 | SID/Label Binding TLV in the case of IS-IS and the OSPFv2/OSPFv3 | |||
Extended Prefix Range TLV in the case of OSPFv2/OSPFv3.</t> | Extended Prefix Range TLV in the case of OSPFv2/OSPFv3.</t> | |||
<t>A Prefix NLRI, that been advertised with a Range TLV, is | <t>A Prefix NLRI, that has been advertised with a Range TLV, is | |||
considered a normal routing prefix (i.e. prefix reachability) only | considered a normal routing prefix (i.e., prefix reachability) only | |||
when there is also an IGP metric TLV (TLV 1095) associated it. | when there is also an IGP metric TLV (TLV 1095) associated it. | |||
Otherwise, it is considered only as the first prefix in the range | Otherwise, it is considered only as the first prefix in the range | |||
for prefix-to-SID mapping advertisement.</t> | for prefix-to-SID mapping advertisement.</t> | |||
<t>The format of the Range TLV is as follows:</t> | ||||
<t>The format of the Range TLV is as follows:<figure | <figure anchor="RANGETLVFIG"> | |||
anchor="RANGETLVFIG" title="Range TLV Format"> | <name>Range TLV Format</name> | |||
<artwork><![CDATA[ 0 1 2 | <artwork name="" type="" align="left" alt=""><![CDATA[ 0 | |||
3 | 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Reserved | Range Size | | | Flags | Reserved | Range Size | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| sub-TLVs // | | sub-TLVs // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>Where:</t> | ||||
<t>Where:<list> | <dl> | |||
<t>Type: 1159</t> | <dt>Type:</dt><dd> 1159</dd> | |||
<dt>Length:</dt><dd> Variable. 11 or 12 octets depending on the labe | ||||
<t>Length: Variable. 11 or 12 depending on Label or Index | l or index | |||
encoding of the SID</t> | encoding of the SID.</dd> | |||
<t>Flags: 1 octet value which should be set as: <list | ||||
style="symbols"> | ||||
<t>IS-IS SID/Label Binding TLV flags are defined in section | ||||
2.4.1 of <xref | ||||
target="I-D.ietf-isis-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv2 OSPF Extended Prefix Range TLV flags are defined | ||||
in section 4 of <xref | ||||
target="I-D.ietf-ospf-segment-routing-extensions"/>.</t> | ||||
<t>OSPFv3 Extended Prefix Range TLV flags are defined in | <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t> | |||
section 5 of <xref | ||||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>.</t | ||||
> | ||||
</list></t> | ||||
<t>Reserved: 1 octet that MUST be set to 0 and ignored on | <ul spacing="normal"> | |||
receipt.</t> | <li>IS-IS SID/Label Binding TLV flags as defined in | |||
<xref target="RFC8667" section="2.4.1" sectionFormat="of"/>.</ | ||||
li> | ||||
<li>OSPFv2 OSPF Extended Prefix Range TLV flags as defined | ||||
in <xref target="RFC8665" section="4" sectionFormat="of"/>.</l | ||||
i> | ||||
<li>OSPFv3 Extended Prefix Range TLV flags as defined in | ||||
<xref target="RFC8666" section="5" sectionFormat="of"/>.</li> | ||||
</ul> | ||||
</dd> | ||||
<t>Range Size: 2 octets that carry the number of prefixes that | <dt>Reserved:</dt><dd> 1 octet that <bcp14>MUST</bcp14> be set to 0 | |||
are covered by the advertisement..</t> | and ignored on | |||
</list></t> | receipt.</dd> | |||
<dt>Range Size:</dt><dd> 2 octets that carry the number of prefixes | ||||
that | ||||
are covered by the advertisement.</dd> | ||||
</dl> | ||||
<t>The Flags field of this TLV is interpreted according to the | <t>The Flags field of this TLV is interpreted according to the | |||
respective underlying IS-IS, OSPFv2 or OSPFv3 protocol. The | respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The | |||
Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | Protocol-ID of the BGP-LS Prefix NLRI is used to determine the | |||
underlying protocol specification for parsing this field.</t> | underlying protocol specification for parsing this field.</t> | |||
<t>The prefix-to-SID mappings are advertised using sub-TLVs as | <t>The prefix-to-SID mappings are advertised using sub-TLVs as | |||
below:<figure> | below:</t> | |||
<artwork><![CDATA[IS-IS: | ||||
SID/Label Range TLV | ||||
Prefix-SID sub-TLV | ||||
OSPFv2/OSPFv3: | <dl newline="true"> | |||
OSPFv2/OSPFv3 Extended Prefix Range TLV | <dt>IS-IS:</dt> | |||
Prefix SID sub-TLV | <dd> | |||
<dl newline="true" spacing="compact"> | ||||
<dt>SID/Label Range TLV</dt> | ||||
<dd>Prefix-SID Sub-TLV</dd> | ||||
</dl> | ||||
</dd> | ||||
BGP-LS: | <dt>OSPFv2/OSPFv3:</dt> | |||
Range TLV | <dd> | |||
Prefix-SID TLV (used as a sub-TLV in this context) | <dl newline="true" spacing="compact"> | |||
<dt> | ||||
OSPFv2/OSPFv3 Extended Prefix Range TLV | ||||
</dt> | ||||
<dd> | ||||
Prefix-SID Sub-TLV | ||||
</dd> | ||||
</dl> | ||||
</dd> | ||||
]]></artwork> | <dt>BGP-LS:</dt> | |||
</figure></t> | <dd> | |||
<dl newline="true" spacing="compact"> | ||||
<dt>Range TLV</dt> | ||||
<dd>Prefix-SID TLV (used as a sub-TLV in this context)</dd> | ||||
</dl> | ||||
</dd> | ||||
</dl> | ||||
<t>The prefix-to-SID mapping information for the BGP-LS Prefix-SID | <t>The prefix-to-SID mapping information for the BGP-LS Prefix-SID | |||
TLV (used as sub-TLV in this context) is encoded as described in | TLV (used as a sub-TLV in this context) is encoded as described in | |||
<xref target="PREFIXSIDTLV"/>.</t> | <xref target="PREFIXSIDTLV" format="default"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ISISTLV" numbered="true" toc="default"> | ||||
<section anchor="ISISTLV" | <name>Equivalent IS-IS Segment Routing TLVs/Sub-TLVs</name> | |||
title="Equivalent IS-IS Segment Routing TLVs/Sub-TLVs"> | <t>This section illustrates the IS-IS Segment Routing Extensions TLVs | |||
<t>This section illustrate the IS-IS Segment Routing Extensions TLVs | ||||
and sub-TLVs mapped to the ones defined in this document.</t> | and sub-TLVs mapped to the ones defined in this document.</t> | |||
<t>The following table, illustrates for each BGP-LS TLV, its | <t>For each BGP-LS TLV, the following table illustrates its | |||
equivalence in IS-IS.</t> | equivalence in IS-IS.</t> | |||
<texttable anchor="ISISTLVTAB" | <table anchor="ISISTLVTAB" align="center"> | |||
title="IS-IS Segment Routing Extensions TLVs/Sub-TLVs"> | <name>IS-IS Segment Routing Extensions TLVs/Sub-TLVs</name> | |||
<ttcol align="left">Description</ttcol> | <thead> | |||
<tr> | ||||
<ttcol align="left">IS-IS TLV/sub-TLV</ttcol> | <th align="left">Description</th> | |||
<th align="left">IS-IS TLV/sub-TLV</th> | ||||
<ttcol align="left">Reference</ttcol> | <th align="left">Reference</th> | |||
</tr> | ||||
<c>SR Capabilities</c> | </thead> | |||
<tbody> | ||||
<c>SR-Capabilities sub-TLV (2)</c> | <tr> | |||
<td align="left">SR Capabilities</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">SR-Capabilities Sub-TLV (2)</td> | |||
<td align="left"> | ||||
<c>SR Algorithm</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>SR-Algorithm sub-TLV (19)</c> | <tr> | |||
<td align="left">SR Algorithm</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">SR-Algorithm Sub-TLV (19)</td> | |||
<td align="left"> | ||||
<c>SR Local Block</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>SR Local Block sub-TLV (22)</c> | <tr> | |||
<td align="left">SR Local Block</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">SR Local Block Sub-TLV (22)</td> | |||
<td align="left"> | ||||
<c>SRMS Preference</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>SRMS Preference sub-TLV (19)</c> | <tr> | |||
<td align="left">SRMS Preference</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">SRMS Preference Sub-TLV (19)</td> | |||
<td align="left"> | ||||
<c>Adjacency SID</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>Adj-SID sub-TLV (31)</c> | <tr> | |||
<td align="left">Adjacency SID</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">Adj-SID Sub-TLV (31)</td> | |||
<td align="left"> | ||||
<c>LAN Adjacency SID</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>LAN-Adj-SID sub-TLV (32)</c> | <tr> | |||
<td align="left">LAN Adjacency SID</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">LAN-Adj-SID Sub-TLV (32)</td> | |||
<td align="left"> | ||||
<c>Prefix SID</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>Prefix-SID sub-TLV (3)</c> | <tr> | |||
<td align="left">Prefix-SID</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">Prefix-SID Sub-TLV (3)</td> | |||
<td align="left"> | ||||
<c>Range</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>SID/Label Binding TLV (149)</c> | <tr> | |||
<td align="left">Range</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">SID/Label Binding TLV (149)</td> | |||
<td align="left"> | ||||
<c>SID/Label</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>SID/Label sub-TLV (1)</c> | <tr> | |||
<td align="left">SID/Label</td> | ||||
<c><xref target="I-D.ietf-isis-segment-routing-extensions"/></c> | <td align="left">SID/Label Sub-TLV (1)</td> | |||
<td align="left"> | ||||
<c>Prefix Attribute Flags</c> | <xref target="RFC8667" format="default"/></td> | |||
</tr> | ||||
<c>Prefix Attributes Flags sub-TLV (4)</c> | <tr> | |||
<td align="left">Prefix Attribute Flags</td> | ||||
<c><xref target="RFC7794"/></c> | <td align="left">Prefix Attribute Flags Sub-TLV (4)</td> | |||
<td align="left"> | ||||
<c>Source Router-ID</c> | <xref target="RFC7794" format="default"/></td> | |||
</tr> | ||||
<c>IPv4/IPv6 Source Router ID sub-TLV (11/12)</c> | <tr> | |||
<td align="left">Source Router Identifier</td> | ||||
<c><xref target="RFC7794"/></c> | <td align="left">IPv4/IPv6 Source Router ID Sub-TLV (11/12)</td> | |||
<td align="left"> | ||||
<c>L2 Bundle Member Attributes</c> | <xref target="RFC7794" format="default"/></td> | |||
</tr> | ||||
<c>L2 Bundle Member Attributes TLV (25)</c> | <tr> | |||
<td align="left">L2 Bundle Member Attributes</td> | ||||
<c><xref target="I-D.ietf-isis-l2bundles"/></c> | <td align="left">L2 Bundle Member Attributes TLV (25)</td> | |||
</texttable> | <td align="left"> | |||
<xref target="RFC8668" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
<section anchor="OSPFTLV" numbered="true" toc="default"> | ||||
<section anchor="OSPFTLV" | <name>Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs</name> | |||
title="Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs"> | <t>This section illustrates the OSPFv2 and OSPFv3 Segment Routing | |||
<t>This section illustrate the OSPFv2 and OSPFv3 Segment Routing | ||||
Extensions TLVs and sub-TLVs mapped to the ones defined in this | Extensions TLVs and sub-TLVs mapped to the ones defined in this | |||
document.</t> | document.</t> | |||
<t>The following table, illustrates for each BGP-LS TLV, its | <t>For each BGP-LS TLV, the following tables illustrate its | |||
equivalence in OSPFv2 and OSPFv3.</t> | equivalence in OSPFv2 and OSPFv3.</t> | |||
<table anchor="OSPFTVLTAB" align="center"> | ||||
<name>OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Description</th> | ||||
<th align="left">OSPFv2 TLV/sub-TLV</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">SR Capabilities</td> | ||||
<td align="left">SID/Label Range TLV (9)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">SR Algorithm</td> | ||||
<td align="left">SR-Algorithm TLV (8)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">SR Local Block</td> | ||||
<td align="left">SR Local Block TLV (14)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">SRMS Preference</td> | ||||
<td align="left">SRMS Preference TLV (15)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Adjacency SID</td> | ||||
<td align="left">Adj-SID Sub-TLV (2)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">LAN Adjacency SID</td> | ||||
<td align="left">LAN Adj-SID Sub-TLV (3)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Prefix-SID</td> | ||||
<td align="left">Prefix-SID Sub-TLV (2)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Range</td> | ||||
<td align="left">OSPF Extended Prefix Range TLV (2)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">SID/Label</td> | ||||
<td align="left">SID/Label Sub-TLV (1)</td> | ||||
<td align="left"> | ||||
<xref target="RFC8665" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Prefix Attribute Flags</td> | ||||
<td align="left">Flags of OSPFv2 Extended Prefix TLV (1)</td> | ||||
<td align="left"> | ||||
<xref target="RFC7684" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Source Router Identifier</td> | ||||
<td align="left">Prefix Source Router Address Sub-TLV (5)</td> | ||||
<td align="left"> | ||||
<xref target="RFC9084" format="default"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Source OSPF Router-ID</td> | ||||
<td align="left">Prefix Source OSPF Router-ID Sub-TLV (4)</td> | ||||
<td align="left"> | ||||
<xref target="RFC9084" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<texttable anchor="OSPFTVLTAB" | <table anchor="OSPFV3TVLTAB" align="center"> | |||
title="OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs"> | <name>OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs</name> | |||
<ttcol align="left">Description</ttcol> | <thead> | |||
<tr> | ||||
<ttcol align="left">OSPFv2 TLV/sub-TLV</ttcol> | <th align="left">Description</th> | |||
<th align="left">OSPFv3 TLV/sub-TLV</th> | ||||
<ttcol align="left">Reference</ttcol> | <th align="left">Reference</th> | |||
</tr> | ||||
<c>SR Capabilities</c> | </thead> | |||
<tbody> | ||||
<c>SID/Label Range TLV (9)</c> | <tr> | |||
<td align="left">SR Capabilities</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">SID/Label Range TLV (9)</td> | |||
<td align="left"> | ||||
<c>SR Algorithm</c> | <xref target="RFC8665" format="default"/></td> | |||
</tr> | ||||
<c>SR-Algorithm TLV (8)</c> | <tr> | |||
<td align="left">SR Algorithm</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">SR-Algorithm TLV (8)</td> | |||
<td align="left"> | ||||
<c>SR Local Block</c> | <xref target="RFC8665" format="default"/></td> | |||
</tr> | ||||
<c>SR Local Block TLV (14)</c> | <tr> | |||
<td align="left">SR Local Block</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">SR Local Block TLV (14)</td> | |||
<td align="left"> | ||||
<c>SRMS Preference</c> | <xref target="RFC8665" format="default"/></td> | |||
</tr> | ||||
<c>SRMS Preference TLV (15)</c> | <tr> | |||
<td align="left">SRMS Preference</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">SRMS Preference TLV (15)</td> | |||
<td align="left"> | ||||
<c>Adjacency SID</c> | <xref target="RFC8665" format="default"/></td> | |||
</tr> | ||||
<c>Adj-SID sub-TLV (2)</c> | <tr> | |||
<td align="left">Adjacency SID</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">Adj-SID Sub-TLV (5)</td> | |||
<td align="left"> | ||||
<c>LAN Adjacency SID</c> | <xref target="RFC8666" format="default"/></td> | |||
</tr> | ||||
<c>LAN Adj-SID sub-TLV (3)</c> | <tr> | |||
<td align="left">LAN Adjacency SID</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">LAN Adj-SID Sub-TLV (6)</td> | |||
<td align="left"> | ||||
<c>Prefix SID</c> | <xref target="RFC8666" format="default"/></td> | |||
</tr> | ||||
<c>Prefix SID sub-TLV (2)</c> | <tr> | |||
<td align="left">Prefix-SID</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">Prefix-SID Sub-TLV (4)</td> | |||
<td align="left"> | ||||
<c>Range</c> | <xref target="RFC8666" format="default"/></td> | |||
</tr> | ||||
<c>OSPF Extended Prefix Range TLV (2)</c> | <tr> | |||
<td align="left">Range</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">OSPFv3 Extended Prefix Range TLV (9)</td> | |||
<td align="left"> | ||||
<c>SID/Label</c> | <xref target="RFC8666" format="default"/></td> | |||
</tr> | ||||
<c>SID/Label sub-TLV (1)</c> | <tr> | |||
<td align="left">SID/Label</td> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | <td align="left">SID/Label Sub-TLV (7)</td> | |||
<td align="left"> | ||||
<c>Prefix Attribute Flags</c> | <xref target="RFC8666" format="default"/></td> | |||
</tr> | ||||
<c>Flags of OSPFv2 Extended Prefix TLV (1)</c> | <tr> | |||
<td align="left">Prefix Attribute Flags</td> | ||||
<c><xref target="RFC7684"/></c> | <td align="left">Prefix Option Fields of Prefix TLV types 3,5,6</t | |||
d> | ||||
<c>Source Router-ID</c> | <td align="left"> | |||
<xref target="RFC8362" format="default"/></td> | ||||
<c>Prefix Source Router-ID sub-TLV (TBD)</c> | </tr> | |||
<tr> | ||||
<c><xref target="I-D.ietf-lsr-ospf-prefix-originator"/></c> | <td align="left">Source OSPF Router Identifier</td> | |||
</texttable> | <td align="left">Prefix Source Router Address Sub-TLV (28)</td> | |||
<td align="left"> | ||||
<texttable anchor="OSPFV3TVLTAB" | <xref target="RFC9084" format="default"/></td> | |||
title="OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs"> | </tr> | |||
<ttcol align="left">Description</ttcol> | <tr> | |||
<td align="left">Source OSPF Router-ID</td> | ||||
<ttcol align="left">OSPFv3 TLV/sub-TLV</ttcol> | <td align="left">Prefix Source OSPF Router-ID Sub-TLV (27)</td> | |||
<td align="left"> | ||||
<ttcol align="left">Reference</ttcol> | <xref target="RFC9084" format="default"/></td> | |||
</tr> | ||||
<c>SR Capabilities</c> | </tbody> | |||
</table> | ||||
<c>SID/Label Range TLV (9)</c> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | ||||
<c>SR Algorithm</c> | ||||
<c>SR-Algorithm TLV (8)</c> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | ||||
<c>SR Local Block</c> | ||||
<c>SR Local Block TLV (14)</c> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | ||||
<c>SRMS Preference</c> | ||||
<c>SRMS Preference TLV (15)</c> | ||||
<c><xref target="I-D.ietf-ospf-segment-routing-extensions"/></c> | ||||
<c>Adjacency SID</c> | ||||
<c>Adj-SID sub-TLV (5)</c> | ||||
<c><xref | ||||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/></c> | ||||
<c>LAN Adjacency SID</c> | ||||
<c>LAN Adj-SID sub-TLV (6)</c> | ||||
<c><xref | ||||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/></c> | ||||
<c>Prefix SID</c> | ||||
<c>Prefix SID sub-TLV (4)</c> | ||||
<c><xref | ||||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/></c> | ||||
<c>Range</c> | ||||
<c>OSPFv3 Extended Prefix Range TLV (9)</c> | ||||
<c><xref | ||||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/></c> | ||||
<c>SID/Label</c> | ||||
<c>SID/Label sub-TLV (7)</c> | ||||
<c><xref | ||||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/></c> | ||||
<c>Prefix Attribute Flags</c> | ||||
<c>Prefix Option Fields of Prefix TLV types 3,5,6</c> | ||||
<c><xref target="RFC8362"/></c> | ||||
<c>Source Router-ID</c> | ||||
<c>Prefix Source Router-ID sub-TLV (TBD)</c> | ||||
<c><xref target="I-D.ietf-lsr-ospf-prefix-originator"/></c> | ||||
</texttable> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<t>Early allocation of codepoints has been done by IANA for this | <t>IANA has registered the following code points in the "BGP-LS Node | |||
document from the registry "BGP-LS Node Descriptor, Link Descriptor, | Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs" | |||
Prefix Descriptor, and Attribute TLVs" under the "BGP-LS Parameters" | registry under the "Border Gateway Protocol - Link State (BGP-LS) | |||
registry based on <xref target="BGPLSCODEPOINTS"/>. The column "IS-IS | Parameter" registry based on <xref | |||
target="BGPLSCODEPOINTS" format="default"/>. The column "IS-IS | ||||
TLV/Sub-TLV" defined in the registry does not require any value and | TLV/Sub-TLV" defined in the registry does not require any value and | |||
should be left empty.</t> | should be left empty.</t> | |||
<section anchor="TLVSUMMARY" numbered="true" toc="default"> | ||||
<section anchor="TLVSUMMARY" title="TLV/Sub-TLV Code Points Summary"> | <name>TLV/Sub-TLV Code Points Summary</name> | |||
<t>This section contains the global table of all TLVs/sub-TLVs defined | <t>This section contains the global table of all TLVs/sub-TLVs defined | |||
in this document.</t> | in this document.</t> | |||
<table anchor="BGPLSCODEPOINTS" align="center"> | ||||
<texttable anchor="BGPLSCODEPOINTS" | <name>Summary of TLV/Sub-TLV Code Points</name> | |||
title="Summary Table of TLV/Sub-TLV Codepoints"> | <thead> | |||
<ttcol align="center">TLV Code Point</ttcol> | <tr> | |||
<th align="center">TLV Code Point</th> | ||||
<ttcol align="left">Description</ttcol> | <th align="left">Description</th> | |||
<th align="left">Reference</th> | ||||
<ttcol align="right">Reference</ttcol> | </tr> | |||
</thead> | ||||
<c>1034</c> | <tbody> | |||
<tr> | ||||
<c>SR Capabilities</c> | <td align="center">1034</td> | |||
<td align="left">SR Capabilities</td> | ||||
<c><xref target="SRCAPTLV"/></c> | <td align="right"> | |||
<xref target="SRCAPTLV" format="default"/></td> | ||||
<c>1035</c> | </tr> | |||
<tr> | ||||
<c>SR Algorithm</c> | <td align="center">1035</td> | |||
<td align="left">SR Algorithm</td> | ||||
<c><xref target="SRALGOTLV"/></c> | <td align="right"> | |||
<xref target="SRALGOTLV" format="default"/></td> | ||||
<c>1036</c> | </tr> | |||
<tr> | ||||
<c>SR Local Block</c> | <td align="center">1036</td> | |||
<td align="left">SR Local Block</td> | ||||
<c><xref target="SRLB"/></c> | <td align="right"> | |||
<xref target="SRLB" format="default"/></td> | ||||
<c>1037</c> | </tr> | |||
<tr> | ||||
<c>SRMS Preference</c> | <td align="center">1037</td> | |||
<td align="left">SRMS Preference</td> | ||||
<c><xref target="SRMSPREF"/></c> | <td align="right"> | |||
<xref target="SRMSPREF" format="default"/></td> | ||||
<c>1099</c> | </tr> | |||
<tr> | ||||
<c>Adjacency SID</c> | <td align="center">1099</td> | |||
<td align="left">Adjacency SID</td> | ||||
<c><xref target="ADJSIDTLV"/></c> | <td align="right"> | |||
<xref target="ADJSIDTLV" format="default"/></td> | ||||
<c>1100</c> | </tr> | |||
<tr> | ||||
<c>LAN Adjacency SID</c> | <td align="center">1100</td> | |||
<td align="left">LAN Adjacency SID</td> | ||||
<c><xref target="LANADJSIDTLV"/></c> | <td align="right"> | |||
<xref target="LANADJSIDTLV" format="default"/></td> | ||||
<c>1158</c> | </tr> | |||
<tr> | ||||
<c>Prefix SID</c> | <td align="center">1158</td> | |||
<td align="left">Prefix-SID</td> | ||||
<c><xref target="PREFIXSIDTLV"/></c> | <td align="right"> | |||
<xref target="PREFIXSIDTLV" format="default"/></td> | ||||
<c>1159</c> | </tr> | |||
<tr> | ||||
<c>Range</c> | <td align="center">1159</td> | |||
<td align="left">Range</td> | ||||
<c><xref target="RANGETLV"/></c> | <td align="right"> | |||
<xref target="RANGETLV" format="default"/></td> | ||||
<c>1161</c> | </tr> | |||
<tr> | ||||
<c>SID/Label</c> | <td align="center">1161</td> | |||
<td align="left">SID/Label</td> | ||||
<c><xref target="SIDLABELTLV"/></c> | <td align="right"> | |||
<xref target="SIDLABELTLV" format="default"/></td> | ||||
<c>1170</c> | </tr> | |||
<tr> | ||||
<c>Prefix Attribute Flags</c> | <td align="center">1170</td> | |||
<td align="left">Prefix Attribute Flags</td> | ||||
<c><xref target="PREFIXATTRFLAGTLV"/></c> | <td align="right"> | |||
<xref target="PREFIXATTRFLAGTLV" format="default"/></td> | ||||
<c>1171</c> | </tr> | |||
<tr> | ||||
<c>Source Router-ID</c> | <td align="center">1171</td> | |||
<td align="left">Source Router Identifier</td> | ||||
<c><xref target="SOURCEIDTLV"/></c> | <td align="right"> | |||
<xref target="SOURCEIDTLV" format="default"/></td> | ||||
<c>1172</c> | </tr> | |||
<tr> | ||||
<c>L2 Bundle Member Attributes</c> | <td align="center">1172</td> | |||
<td align="left">L2 Bundle Member Attributes</td> | ||||
<c><xref target="L2BUNDLETLV"/></c> | <td align="right"> | |||
</texttable> | <xref target="L2BUNDLETLV" format="default"/></td> | |||
</tr> | ||||
<tr> | ||||
<td align="center">1174</td> | ||||
<td align="left">Source OSPF Router-ID</td> | ||||
<td align="right"> | ||||
<xref target="SOURCEOSPFRIDTLV" format="default"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="Manageability" numbered="true" toc="default"> | ||||
<section anchor="Manageability" title="Manageability Considerations"> | <name>Manageability Considerations</name> | |||
<t>This section is structured as recommended in <xref | <t>This section is structured as recommended in <xref target="RFC5706" for | |||
target="RFC5706"/>.</t> | mat="default"/>.</t> | |||
<t>The new protocol extensions introduced in this document augment the | <t>The new protocol extensions introduced in this document augment the | |||
existing IGP topology information that is distributed via <xref | existing IGP topology information that is distributed via <xref target="RF | |||
target="RFC7752"/>. Procedures and protocol extensions defined in this | C7752" format="default"/>. Procedures and protocol extensions defined in this | |||
document do not affect the BGP protocol operations and management other | document do not affect the BGP protocol operations and management other | |||
than as discussed in the Manageability Considerations section of <xref | than as discussed in the Manageability Considerations section of <xref tar | |||
target="RFC7752"/>. Specifically, the malformed attribute tests for | get="RFC7752" format="default"/>. Specifically, the malformed attribute tests fo | |||
syntactic checks in the Fault Management section of <xref | r | |||
target="RFC7752"/> now encompass the new BGP-LS Attribute TLVs defined | syntactic checks in the Fault Management section of <xref target="RFC7752" | |||
format="default"/> now encompass the new BGP-LS Attribute TLVs defined | ||||
in this document. The semantic or content checking for the TLVs | in this document. The semantic or content checking for the TLVs | |||
specified in this document and their association with the BGP-LS NLRI | specified in this document and their association with the BGP-LS NLRI | |||
types or their BGP-LS Attribute is left to the consumer of the BGP-LS | types or their BGP-LS Attribute is left to the consumer of the BGP-LS | |||
information (e.g. an application or a controller) and not the BGP | information (e.g., an application or a controller) and not the BGP | |||
protocol.</t> | protocol.</t> | |||
<t>A consumer of the BGP-LS information retrieves this information over | <t>A consumer of the BGP-LS information retrieves this information over | |||
a BGP-LS session (refer Section 1 and 2 of <xref target="RFC7752"/>). | a BGP-LS session (refer to Sections <xref target="RFC7752" section="1" sec tionFormat="bare"/> and <xref target="RFC7752" section="2" sectionFormat="bare"/ > of <xref target="RFC7752"/>). | |||
The handling of semantic or content errors by the consumer would be | The handling of semantic or content errors by the consumer would be | |||
dictated by the nature of its application usage and hence is beyond the | dictated by the nature of its application usage and hence is beyond the | |||
scope of this document.</t> | scope of this document.</t> | |||
<t>This document only introduces new Attribute TLVs and any syntactic | <t>This document only introduces new Attribute TLVs, and any syntactic | |||
error in them would result in only that specific attribute being | error in them would result in the BGP-LS Attribute being | |||
discarded with an error log. The SR information introduced in BGP-LS by | discarded with an error log. | |||
this specification, may be used by BGP-LS consumer applications like a | The SR information introduced in BGP-LS by | |||
SR path computation engine (PCE) to learn the SR capabilities of the | this specification may be used by BGP-LS consumer applications like an | |||
SR Path Computation Engine (PCE) to learn the SR capabilities of the | ||||
nodes in the topology and the mapping of SR segments to those nodes. | nodes in the topology and the mapping of SR segments to those nodes. | |||
This can enable the SR PCE to perform path computations based on SR for | This can enable the SR PCE to perform path computations based on SR for | |||
traffic engineering use-cases and to steer traffic on paths different | traffic engineering use cases and to steer traffic on paths different | |||
from the underlying IGP based distributed best path computation. Errors | from the underlying IGP-based distributed best-path computation. Errors | |||
in the encoding or decoding of the SR information may result in the | in the encoding or decoding of the SR information may result in the | |||
unavailability of such information to the SR PCE or incorrect | unavailability of such information to the SR PCE or incorrect | |||
information being made available to it. This may result in the SR PCE | information being made available to it. This may result in the SR PCE | |||
not being able to perform the desired SR based optimization | not being able to perform the desired SR-based optimization | |||
functionality or to perform it in an unexpected or inconsistent manner. | functionality or to perform it in an unexpected or inconsistent manner. | |||
The handling of such errors by applications like SR PCE may be | The handling of such errors by applications like SR PCE may be | |||
implementation specific and out of scope of this document.</t> | implementation specific and out of scope of this document.</t> | |||
<t>The extensions, specified in this document, do not introduce any new | <t>The extensions, specified in this document, do not introduce any new | |||
configuration or monitoring aspects in BGP or BGP-LS other than as | configuration or monitoring aspects in BGP or BGP-LS other than as | |||
discussed in <xref target="RFC7752"/>. The manageability aspects of the | discussed in <xref target="RFC7752" format="default"/>. The manageability | |||
underlying SR features are covered by <xref | aspects of the | |||
target="I-D.ietf-spring-sr-yang"/>, <xref | underlying SR features are covered by <xref target="RFC9020" format="defau | |||
target="I-D.ietf-isis-sr-yang"/> and <xref | lt"/>, <xref target="I-D.ietf-isis-sr-yang" format="default"/>, and <xref target | |||
target="I-D.ietf-ospf-sr-yang"/>.</t> | ="I-D.ietf-ospf-sr-yang" format="default"/>.</t> | |||
</section> | </section> | |||
<section anchor="Security" numbered="true" toc="default"> | ||||
<section anchor="Security" title="Security Considerations"> | <name>Security Considerations</name> | |||
<t>The new protocol extensions introduced in this document augment the | <t>The new protocol extensions introduced in this document augment the | |||
existing IGP topology information that is distributed via <xref | existing IGP topology information that is distributed via <xref target="RF | |||
target="RFC7752"/>. The advertisement of the SR link attribute | C7752" format="default"/>. The advertisement of the SR link attribute | |||
information defined in this document presents similar risk as associated | information defined in this document presents similar risk as associated | |||
with the existing set of link attribute information as described in | with the existing set of link attribute information as described in | |||
<xref target="RFC7752"/>. The Security Considerations section of <xref | <xref target="RFC7752" format="default"/>. The Security Considerations sec | |||
target="RFC7752"/> also applies to these extensions. The procedures and | tion of <xref target="RFC7752" format="default"/> also applies to these extensio | |||
ns. The procedures and | ||||
new TLVs defined in this document, by themselves, do not affect the | new TLVs defined in this document, by themselves, do not affect the | |||
BGP-LS security model discussed in <xref target="RFC7752"/>.</t> | BGP-LS security model discussed in <xref target="RFC7752" format="default" />.</t> | |||
<t>The TLVs introduced in this document are used to propagate IGP | <t>The TLVs introduced in this document are used to propagate IGP-defined | |||
defined information (<xref | information (see <xref target="RFC8665" format="default"/>, <xref target=" | |||
target="I-D.ietf-isis-segment-routing-extensions"/>, <xref | RFC8666" format="default"/>, and <xref target="RFC8667" format="default"/>). The | |||
target="I-D.ietf-ospf-segment-routing-extensions"/> and <xref | se TLVs | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>). These TLVs | represent the SR information associated with the IGP node, link, and | |||
represent the SR information associated with the IGP node, link and | ||||
prefix. The IGP instances originating these TLVs are assumed to support | prefix. The IGP instances originating these TLVs are assumed to support | |||
all the required security and authentication mechanisms (as described in | all the required security and authentication mechanisms (as described in | |||
<xref target="I-D.ietf-isis-segment-routing-extensions"/>, <xref | <xref target="RFC8665" format="default"/>, <xref target="RFC8666" format=" | |||
target="I-D.ietf-ospf-segment-routing-extensions"/> and <xref | default"/>, and <xref target="RFC8667" format="default"/>) in order to | |||
target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"/>) in order to | ||||
prevent any security issue when propagating the TLVs into BGP-LS.</t> | prevent any security issue when propagating the TLVs into BGP-LS.</t> | |||
<t>BGP-LS SR extensions enable traffic engineering use-cases within the | <t>BGP-LS SR extensions enable traffic engineering use cases within the | |||
Segment Routing domain. SR operates within a trusted domain <xref | SR domain. SR operates within a trusted domain <xref target="RFC8402" form | |||
target="RFC8402"/> and its security considerations also apply to BGP-LS | at="default"/>, and its security considerations also apply to BGP-LS | |||
sessions when carrying SR information. The SR traffic engineering | sessions when carrying SR information. The SR traffic engineering | |||
policies using the SIDs advertised via BGP-LS are expected to be used | policies using the SIDs advertised via BGP-LS are expected to be used | |||
entirely within this trusted SR domain (e.g. between multiple AS/domains | entirely within this trusted SR domain (e.g., between multiple ASes/domain s | |||
within a single provider network). Therefore, precaution is necessary to | within a single provider network). Therefore, precaution is necessary to | |||
ensure that the link-state information (including SR information) | ensure that the link-state information (including SR information) | |||
advertised via BGP-LS sessions is limited to consumers in a secure | advertised via BGP-LS sessions is limited to consumers in a secure | |||
manner within this trusted SR domain. BGP peering sessions for | manner within this trusted SR domain. BGP peering sessions for | |||
address-families other than Link-State may be setup to routers outside | address families other than link state may be set up to routers outside | |||
the SR domain. The isolation of BGP-LS peering sessions is recommended | the SR domain. The isolation of BGP-LS peering sessions is recommended | |||
to ensure that BGP-LS topology information (including the newly added SR | to ensure that BGP-LS topology information (including the newly added SR | |||
information) is not advertised to an external BGP peering session | information) is not advertised to an external BGP peering session | |||
outside the SR domain.</t> | outside the SR domain.</t> | |||
</section> | </section> | |||
<section anchor="Contributors" title="Contributors"> | ||||
<t>The following people have substantially contributed to the editing of | ||||
this document:<figure> | ||||
<artwork><![CDATA[Peter Psenak | ||||
Cisco Systems | ||||
Email: ppsenak@cisco.com]]></artwork> | ||||
</figure><figure> | ||||
<artwork><![CDATA[Les Ginsberg | ||||
Cisco Systems | ||||
Email: ginsberg@cisco.com]]></artwork> | ||||
</figure><figure> | ||||
<artwork><![CDATA[Acee Lindem | ||||
Cisco Systems | ||||
Email: acee@cisco.com]]></artwork> | ||||
</figure><figure> | ||||
<artwork><![CDATA[Saikat Ray | ||||
Individual | ||||
Email: raysaikat@gmail.com]]></artwork> | ||||
</figure><figure> | ||||
<artwork><![CDATA[Jeff Tantsura | ||||
Apstra Inc. | ||||
Email: jefftant.ietf@gmail.com]]></artwork> | ||||
</figure></t> | ||||
</section> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | ||||
<t>The authors would like to thank Jeffrey Haas, Aijun Wang, Robert | ||||
Raszuk and Susan Hares for their review of this document and their | ||||
comments. The authors would also like to thank Alvaro Retana for his | ||||
extensive review and comments which helped correct issues and improve | ||||
the document.</t> | ||||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.211 | ||||
9.xml"?> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.817 | <displayreference target="I-D.ietf-isis-sr-yang" to="ISIS-SR-YANG"/> | |||
4.xml"?> | <displayreference target="I-D.ietf-ospf-sr-yang" to="OSPF-SR-YANG"/> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.420 | <references> | |||
2.xml"?> | <name>References</name> | |||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.4202.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7752.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7794.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7684.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
nce.RFC.5120.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ||||
nce.RFC.5308.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.5340.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8362.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8402.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8571.xml"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.775 | <!-- [I-D.ietf-isis-segment-routing-extensions] Published as RFC 8667 --> | |||
2.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.8667.xml"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.779 | <!-- [I-D.ietf-ospf-segment-routing-extensions] Published as RFC 8665 --> | |||
4.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.8665.xml"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.768 | <!-- [I-D.ietf-ospf-ospfv3-segment-routing-extensions] Published as RFC 8666 --> | |||
4.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.8666.xml"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.534 | <!-- [I-D.ietf-isis-l2bundles] Published as RFC 8668 --> | |||
0.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.8668.xml"/> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.836 | <!-- [I-D.ietf-lsr-ospf-prefix-originator] IESG state I-D Exists; companion docu | |||
2.xml"?> | ment RFC 9084 --> | |||
<reference anchor='RFC9084' target='https://www.rfc-editor.org/info/rfc9084'> | ||||
<front> | ||||
<title>OSPF Prefix Originator Extensions</title> | ||||
<author initials='A' surname='Wang' fullname='Aijun Wang'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='A' surname='Lindem' fullname='Acee Lindem'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='J' surname='Dong' fullname='Jie Dong'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='P' surname='Psenak' fullname='Peter Psenak'> | ||||
<organization /> | ||||
</author> | ||||
<author initials='K' surname='Talaulikar' fullname='Ketan Talaulikar' role="edit | ||||
or"> | ||||
<organization /> | ||||
</author> | ||||
<date month='August' year='2021' /> | ||||
</front> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.840 | <seriesInfo name="RFC" value="9084"/> | |||
2.xml"?> | <seriesInfo name="DOI" value="10.17487/RFC9084"/> | |||
</reference> | ||||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.857 | </references> | |||
1.xml"?> | <references> | |||
<name>Informative References</name> | ||||
<?rfc include="reference.I-D.ietf-isis-segment-routing-extensions.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer ence.RFC.5706.xml"/> | |||
<?rfc include="reference.I-D.ietf-ospf-segment-routing-extensions.xml"?> | <!-- [I-D.ietf-spring-segment-routing-ldp-interop] Published as RFC 8661 | |||
--> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8661.xml"/> | ||||
<?rfc include="reference.I-D.ietf-ospf-ospfv3-segment-routing-extensions.x | <!-- [I-D.ietf-isis-sr-yang] IESG state I-D Exists--> | |||
ml"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
.ietf-isis-sr-yang-10.xml"/> | ||||
<?rfc include="reference.I-D.ietf-isis-l2bundles.xml"?> | <!-- [I-D.ietf-ospf-sr-yang] IESG state I-D Exists --> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | ||||
.ietf-ospf-sr-yang.xml"/> | ||||
<?rfc include="reference.I-D.ietf-lsr-ospf-prefix-originator.xml"?> | <!-- formerly draft-ietf-spring-sr-yang-30; now RFC 9020 --> | |||
<xi:include | ||||
href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9020.xml"/> | ||||
</references> | ||||
</references> | </references> | |||
<references title="Informative References"> | <section anchor="Acknowledgements" numbered="false" toc="default"> | |||
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.570 | <name>Acknowledgements</name> | |||
6.xml"?> | <t>The authors would like to thank <contact fullname="Jeffrey | |||
Haas"/>, <contact fullname="Aijun Wang"/>, <contact | ||||
fullname="Robert Raszuk"/>, and <contact fullname="Susan Hares"/> | ||||
for their review of this document and their comments. The | ||||
authors would also like to thank Alvaro Retana for his extensive | ||||
review and comments, which helped correct issues and improve the | ||||
document.</t> | ||||
</section> | ||||
<?rfc include="reference.I-D.ietf-spring-segment-routing-ldp-interop.xml" | <section anchor="Contributors" numbered="false" toc="default"> | |||
?> | <name>Contributors</name> | |||
<t>The following people have substantially contributed to the editing of | ||||
this document:</t> | ||||
<?rfc include="reference.I-D.ietf-spring-sr-yang.xml"?> | <contact fullname="Peter Psenak"> | |||
<organization>Cisco Systems</organization> | ||||
<address> | ||||
<?rfc include="reference.I-D.ietf-isis-sr-yang.xml"?> | <email> ppsenak@cisco.com</email> | |||
</address> | ||||
</contact> | ||||
<contact fullname="Les Ginsberg"> | ||||
<organization>Cisco Systems</organization> | ||||
<address> | ||||
<email> ginsberg@cisco.com</email> | ||||
</address> | ||||
</contact> | ||||
<contact fullname="Acee Lindem"> | ||||
<organization>Cisco Systems</organization> | ||||
<address> | ||||
<email>acee@cisco.com</email> | ||||
</address> | ||||
</contact> | ||||
<contact fullname="Saikat Ray"> | ||||
<organization>Individual</organization> | ||||
<address> | ||||
<email>raysaikat@gmail.com</email> | ||||
</address> | ||||
</contact> | ||||
<contact fullname="Jeff Tantsura"> | ||||
<organization>Apstra Inc.</organization> | ||||
<address> | ||||
<email>jefftant.ietf@gmail.com</email> | ||||
</address> | ||||
</contact> | ||||
</section> | ||||
<?rfc include="reference.I-D.ietf-ospf-sr-yang.xml"?> | ||||
</references> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 265 change blocks. | ||||
1258 lines changed or deleted | 1436 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |