<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" number="9085"
     docName="draft-ietf-idr-bgp-ls-segment-routing-ext-18" ipr="trust200902"
     consensus="true" obsoletes="" updates="" submissionType="IETF" xml:lang="en"
     tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true"
     version="3"> 
  <front>


    <title abbrev="BGP-LS Extensions for Segment Routing">Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing</title>
    <seriesInfo name="RFC" value="9085"/>
    <author fullname="Stefano Previdi" initials="S." surname="Previdi">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Rome</city>
          <country>Italy</country>
        </postal>
        <email>stefano@previdi.net</email>
      </address>
    </author>
    <author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Talaulikar">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>ketant@cisco.com</email>
      </address>
    </author>
    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <city>Brussels</city>
          <country>Belgium</country>
        </postal>
        <email>cfilsfil@cisco.com</email>
      </address>
    </author>
    <author fullname="Hannes Gredler" initials="H." surname="Gredler">
      <organization>RtBrick Inc.</organization>
      <address>
        <postal/>
        <email>hannes@rtbrick.com</email>
      </address>
    </author>
    <author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei Building, No. 156 Beiqing Rd.</street>
          <city>Beijing</city>
          <code>100095</code>
          <country>China</country>
        </postal>
        <email>mach.chen@huawei.com</email>
      </address>
    </author>
    <date month="August" year="2021"/>
    <area>Routing</area>
    <workgroup>Inter-Domain Routing</workgroup>
    <keyword>BGP-LS</keyword>
    <keyword>Segment Routing</keyword>
    <keyword>SID</keyword>
    <keyword>MPLS</keyword>
    <keyword>Label advertisement</keyword>
    <keyword>IS-IS</keyword>
    <keyword>OSPF</keyword>
    <keyword>OSPFv3</keyword>
    <abstract>
      <t>Segment Routing (SR) allows for a flexible definition of end-to-end
      paths by encoding paths as sequences of topological subpaths, called
      "segments". These segments are advertised by routing protocols, e.g., by
      the link-state routing protocols (IS-IS, OSPFv2, and OSPFv3) within IGP
      topologies.</t>

      <t>This document defines extensions to the Border Gateway Protocol - Link State (BGP-LS) address family
      in order to carry SR information via BGP.</t>
    </abstract>
  
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>Segment Routing (SR) allows for a flexible definition of end-to-end
      paths by combining subpaths called "segments". A segment can represent
      any instruction: topological or service based. A segment can have a
      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
      subpaths, called "IGP segments". These segments are advertised by the
      link-state routing protocols (IS-IS, OSPFv2, and OSPFv3).</t>

      <t><xref target="RFC8402" format="default"/> defines the link-state IGP segments --
      prefix, node, anycast, and adjacency segments. Prefix segments, by
      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
      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
      cases, is a one-hop path. Node and anycast segments are variations of
      the prefix segment with their specific characteristics.</t>

      <t>When SR is enabled in an IGP domain, segments are
      advertised in the form of Segment Identifiers (SIDs). The IGP link-state
      routing protocols have been extended to advertise SIDs and other
      SR-related information. IGP extensions are described for: <xref target="RFC8667" format="default">IS-IS</xref>, <xref target="RFC8665" format="default">OSPFv2</xref>, and
      <xref target="RFC8666" format="default">OSPFv3</xref>.
      Using these extensions, SR can be enabled within an IGP
      domain.</t>

      <t>SR allows advertisement of single or multi-hop
      paths. The flooding scope for the IGP extensions for SR is
      IGP area-wide. Consequently, the contents of a Link-State Database
      (LSDB) or a Traffic Engineering Database (TED) has the scope of an IGP
      area; therefore, by using the IGP alone, it is not enough to construct
      segments across multiple IGP area or Autonomous
      System (AS) boundaries.</t>

      <t>In order to address the need for applications that require
      topological visibility across IGP areas, or even across ASes, 
      the BGP-LS address family / subaddress family have been
      defined to allow BGP to carry link-state information.
      The BGP Network
      Layer Reachability Information (NLRI) encoding format for BGP-LS and a
      new BGP Path Attribute called the "BGP-LS Attribute" are defined in <xref target="RFC7752" format="default"/>. The identifying key of each link-state object,
      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>
      <figure anchor="MECHANISM-CONSUMER-PRODUCER">
        <name>Link-State Information Collection</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
                        +------------+
                        |  Consumer  |
                        +------------+
                              ^
                              |
                              v
                    +-------------------+
                    |    BGP Speaker    |         +-----------+
                    | (Route Reflector) |         | Consumer  |
                    +-------------------+         +-----------+
                          ^   ^   ^                       ^
                          |   |   |                       |
          +---------------+   |   +-------------------+   |
          |                   |                       |   |
          v                   v                       v   v
    +-----------+       +-----------+             +-----------+
    |    BGP    |       |    BGP    |             |    BGP    |
    |  Speaker  |       |  Speaker  |    . . .    |  Speaker  |
    +-----------+       +-----------+             +-----------+
          ^                   ^                         ^
          |                   |                         |
         IGP                 IGP                       IGP
        ]]></artwork>
      </figure>
      <t><xref target="MECHANISM-CONSUMER-PRODUCER" format="default"/> denotes a typical
      deployment scenario. In each IGP area, one or more nodes are configured
      with BGP-LS. These BGP speakers form an Internal BGP (IBGP) mesh by connecting to one
      or more route reflectors. This way, all BGP speakers (specifically the
      route reflectors) obtain link-state information from all IGP areas (and
      from other ASes from External BGP (EBGP) peers). An external component connects to the
      route reflector to obtain this information (perhaps moderated by a
      policy regarding what information is or isn't advertised to the external
      component) as described in <xref target="RFC7752" format="default"/>.</t>

      <t>This document describes extensions to BGP-LS to advertise the SR
      information. An external component (e.g., a controller) can collect SR
      information from across an SR domain (as described in <xref target="RFC8402" format="default"/>) and construct the end-to-end path (with its
      associated SIDs) that needs to be applied to an incoming packet to
      achieve the desired end-to-end forwarding. SR operates within a trusted
      domain consisting of a single AS or multiple ASes managed by the same
      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 described in BCP 14
      <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when,
      they appear in all capitals, as shown here.</t>
    </section>
 </section>

    <section 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
      and sub-TLVs for advertising SR information within the BGP-LS Attribute.
      Sections  <xref target="ISISTLV" format="counter"/> and <xref target="OSPFTLV" format="counter"/> list the
      equivalent TLVs and sub-TLVs in the IS-IS, OSPFv2, and OSPFv3 protocols.</t>

      <t><xref target="RFC7752" format="default">BGP-LS</xref> defines the BGP-LS NLRI that can
      be a Node NLRI, a Link NLRI, or a Prefix NLRI, and it defines the TLVs that map link-state
      information to BGP-LS NLRI within the BGP-LS Attribute. This document
      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
      NLRIs.</t>
      <section anchor="NODE" numbered="true" toc="default">
        <name>Node Attribute TLVs</name>
        <t>The following Node Attribute TLVs are defined:</t>
        <table anchor="node-attribute_tlv" align="center">
          <name>Node 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">1161</td>
              <td align="left">SID/Label</td>
              <td align="right">
                <xref target="SIDLABELTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1034</td>
              <td align="left">SR Capabilities</td>
              <td align="right">
                <xref target="SRCAPTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1035</td>
              <td align="left">SR Algorithm</td>
              <td align="right">
                <xref target="SRALGOTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1036</td>
              <td align="left">SR Local Block</td>
              <td align="right">
                <xref target="SRLB" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1037</td>
              <td align="left">SRMS Preference</td>
              <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
        with the Node NLRI that describes the IGP node that is originating the
        corresponding IGP TLV/sub-TLV described below.</t>
        <section anchor="SIDLABELTLV" numbered="true" toc="default">
          <name>SID/Label TLV</name>
          <t>The SID/Label TLV is used as a sub-TLV by the SR Capabilities
          (<xref target="SRCAPTLV" format="default"/>) and Segment Routing Local Block (SRLB)
          (<xref target="SRLB" format="default"/>) TLVs. This information is derived from the
          protocol-specific advertisements. </t>
          <ul spacing="normal">
            <li>IS-IS, as defined by the SID/Label Sub-TLV in
              <xref target="RFC8667" section="2.3" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SID/Label Sub-TLV in <xref target="RFC8665" section="2.1" sectionFormat="of"/>
              and <xref target="RFC8666" section="3.1" sectionFormat="of"/>.</li>
          </ul>
          <t>The TLV has the following format: </t>
          <figure anchor="SIDLTLVFIG">
            <name>SID/Label 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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      SID/Label (variable)                    //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl newline="false">
 
            <dt>Type:</dt><dd> 1161</dd>
            <dt>Length:</dt><dd> Variable. Either 3 or 4 octets depending on whether the value
              is encoded as a label or as an index/SID.</dd>
       
            <dt>SID/Label:</dt><dd> If the length is set to 3, then the 20 rightmost bits
              represent a label (the total TLV size is 7), and the 4 leftmost
              bits are set to 0. If the length is set to 4, then the value
              represents a 32-bit SID (the total TLV size is 8).</dd>
          </dl>
        </section>
        <section anchor="SRCAPTLV" numbered="true" toc="default">
          <name>SR Capabilities TLV</name>
          <t>The SR Capabilities TLV is used in order to advertise the node's
          SR capabilities including its Segment Routing Global Base (SRGB)
          range(s). In the case of IS-IS, the capabilities also include the
          IPv4 and IPv6 support for the SR-MPLS forwarding plane. This
          information is derived from the protocol-specific advertisements.
          </t>
          <ul spacing="normal">
            <li>IS-IS, as defined by the SR-Capabilities Sub-TLV in <xref target="RFC8667" section="3.1" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in
          <xref target="RFC8665" section="3.2" sectionFormat="of"/>. OSPFv3
              leverages the same TLV as defined for OSPFv2.</li>
          </ul>
          <t>The SR Capabilities TLV has the following format: </t>
          <figure anchor="SRCAPTLVFIG">
            <name>SR Capabilities 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               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Flags    |   Reserved    | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Range Size 1                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SID/Label Sub-TLV 1                           //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Range Size N                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SID/Label Sub-TLV N                           //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
	  
          <t>Where:</t>

	  <dl spacing="normal">
            
            <dt>Type:</dt> <dd>1034</dd>
           
            <dt>Length:</dt><dd>Variable. The minimum length is 12 octets.</dd>
            
            <dt>Flags:</dt><dd> 1 octet of flags as defined in
          <xref
            target="RFC8667" section="3.1"
            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>
         
            <dt>Reserved:</dt><dd> 1 octet that <bcp14>MUST</bcp14> be set to 0 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="SIDLABELTLV" format="default"/>) used as a sub-TLV, which encodes the
                  first label in the range. Since the SID/Label TLV is used to
                  indicate the first label of the SRGB range, only label
                encoding is valid under the SR Capabilities TLV.</dd>

	      </dl>
	      </dd>
	  </dl>
	     	  
	 
        </section>
	
        <section anchor="SRALGOTLV" numbered="true" toc="default">
          <name>SR-Algorithm TLV</name>
          <t>The SR-Algorithm TLV is used in order to advertise the SR algorithms
          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 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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Algorithm 1  |  Algorithm... |  Algorithm N  |                
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
          </figure>
          <t>Where:</t>
          <dl newline="false" spacing="normal">
       
            <dt>Type:</dt><dd> 1035</dd>
            
            <dt>Length:</dt><dd> Variable. The minimum length is 1 octet and the maximum can be
              256.</dd>
       
            <dt>Algorithm:</dt><dd> One or more fields of 1 octet each that identifies the
              algorithm.</dd>
          </dl>
	  
        </section>
        <section anchor="SRLB" numbered="true" toc="default">
          <name>SR Local Block TLV</name>
          <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
          (IS-IS, OSPF) for Adjacency SIDs and may also be allocated by
          components other than IGP protocols. As an example, an application
          or a controller may instruct a node to allocate a specific local
          SID. Therefore, in order for such applications or controllers to
          know the range of local SIDs available, the node is required to
          advertise its SRLB.</t>
          <t>This information is derived from the protocol-specific
          advertisements. </t>
          <ul spacing="normal">
            <li>IS-IS, as defined by the SRLB Sub-TLV in
              <xref target="RFC8667" section="3.3" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SR Local Block TLV in
               <xref target="RFC8665" section="3.3" sectionFormat="of"/>. OSPFv3
              leverages the same TLV as defined for OSPFv2.</li>
          </ul>
          <t>The SRLB TLV has the following format: </t>
          <figure anchor="SRLBTLVFIG">
            <name>SRLB 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          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Flags    |   Reserved    | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Sub-Range Size 1                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SID/Label Sub-TLV 1                           //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Sub-Range Size N                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                SID/Label Sub-TLV N                           //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
	  
	  
          <dl newline="false" spacing="normal">
            
            <dt>Type:</dt><dd> 1036</dd>
         
            <dt>Length:</dt><dd> Variable. The minimum length is 12 octets.</dd>
           
            <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
              OSPFv3 and <bcp14>MUST</bcp14> be set to 0 and ignored on receipt.</dd>
      
            <dt>Reserved:</dt><dd> 1 octet that <bcp14>MUST</bcp14> be set to 0 and ignored on
            receipt.</dd>
	    
	  
           
              <dt>One or more entries corresponding to a sub-range(s), each of
              which have the following format:</dt>
	      <dd>
		
		<t><br/></t>
	      <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="SIDLABELTLV" format="default"/>) used as a sub-TLV, which encodes the
                  first label in the sub-range. Since the SID/Label TLV is
                  used to indicate the first label of the SRLB sub-range, only
                  label encoding is valid under the SR Local Block TLV.</dd>
		</dl>
	      </dd>
	    </dl>
              
      
        </section>
        <section anchor="SRMSPREF" numbered="true" toc="default">
          <name>SRMS Preference TLV</name>
          <t>The Segment Routing Mapping Server (SRMS) Preference TLV is used
          in order to associate a preference with SRMS advertisements from a
          particular source. <xref target="RFC8661" format="default"/> specifies the
          SRMS functionality along with the SRMS preference of the node
          advertising the SRMS Prefix-to-SID mapping ranges.</t>
          <t>This information is derived from the protocol-specific
          advertisements. </t>
          <ul spacing="normal">
            <li>IS-IS, as defined by the SRMS Preference Sub-TLV in
              <xref target="RFC8667" section="3.4" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in
               <xref target="RFC8665" section="3.4" sectionFormat="of"/>. OSPFv3
              leverages the same TLV as defined for OSPFv2.</li>
          </ul>
          <t>The SRMS Preference TLV has the following format: </t>
          <figure anchor="SRMSTLVFIG">
            <name>SRMS Preference 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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference    |
+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
	  
          <t>Where:</t>
	  
          <dl newline="false" spacing="normal">
       
            <dt>Type:</dt><dd> 1037</dd>
            
            <dt>Length:</dt><dd> 1 octet</dd>
            
            <dt>Preference:</dt><dd> 1 octet carrying an unsigned 8-bit SRMS
              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
        with the Link NLRI that describes the link of the IGP node that is
        originating the corresponding IGP TLV/sub-TLV described below.</t>
        <section anchor="ADJSIDTLV" numbered="true" toc="default">
          <name>Adjacency SID TLV</name>
          <t>The Adjacency SID TLV is used in order to advertise information
          related to an Adjacency SID. This information is derived from
          the Adj-SID Sub-TLV of IS-IS (<xref target="RFC8667" section="2.2.1" sectionFormat="of"/>), OSPFv2
          (<xref target="RFC8665" section="6.1" sectionFormat="of"/>), and OSPFv3
          (<xref target="RFC8666" section="7.1" sectionFormat="of"/>).</t>
          <t>The Adjacency SID TLV has the following format: </t>
          <figure anchor="ADJSIDTLVFIG">
            <name>Adjacency SID 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           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags         |     Weight    |             Reserved          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   SID/Label/Index (variable)                 //
+---------------------------------------------------------------+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl newline="false" spacing="normal">
            
            <dt>Type:</dt><dd>1099</dd>
           
            <dt>Length:</dt><dd> Variable. Either 7 or 8 octets depending on the label or index
              encoding of the SID.</dd>
      
            
              <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t>
              <ul spacing="normal">
                <li>IS-IS Adj-SID flags as defined in <xref target="RFC8667" section="2.2.1" sectionFormat="of"/>.</li>
                <li>OSPFv2 Adj-SID flags as defined in <xref target="RFC8665" section="6.1" sectionFormat="of"/>.</li>
                <li>OSPFv3 Adj-SID flags as defined in <xref target="RFC8666" section="7.1" sectionFormat="of"/>.</li>
              </ul>
	    </dd>
          
	    
         
            <dt>Weight:</dt><dd> 1 octet carrying the weight used for load-balancing
              purposes. The use of weight is described in <xref target="RFC8402" section="3.4" sectionFormat="of"/>.</dd>
         
            <dt>Reserved:</dt><dd> 2 octets that <bcp14>MUST</bcp14> be set to 0 and ignored on
              receipt.</dd>
           
            
              <dt>SID/Index/Label: </dt>
	      
	      <dd><t><br/></t>
              <dl spacing="normal">
                <dt>IS-IS:</dt><dd> Label or index value as defined in
                 <xref target="RFC8667" section="2.2.1" sectionFormat="of"/>.</dd>
                <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
          this TLV are interpreted according to the respective underlying
          IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link
          NLRI is used to determine the underlying protocol specification for
          parsing these fields.</t>
        </section>
        <section anchor="LANADJSIDTLV" numbered="true" toc="default">
          <name>LAN Adjacency SID TLV</name>

          <t>For a LAN, normally a node only announces its adjacency to the
          IS-IS pseudonode (or the equivalent OSPF Designated and Backup
          Designated Routers). The LAN Adjacency SID TLV allows a node to
          announce adjacencies to all other nodes attached to the LAN in a
          single instance of the BGP-LS Link NLRI. Without this TLV, the
          corresponding BGP-LS Link NLRI would need to be originated for each
          additional adjacency in order to advertise the SR TLVs for these
          neighbor adjacencies.</t>

          <t>This information is derived from the LAN-Adj-SID Sub-TLV of
          IS-IS (<xref target="RFC8667" sectionFormat="of" section="2.2.2"/>), the LAN Adj-SID Sub-TLV of OSPFv2
          (<xref target="RFC8665" sectionFormat="of" section="6.2"/>), and the LAN Adj-SID Sub-TLV of OSPFv3 (<xref
          target="RFC8666" sectionFormat="of" section="7.2"/>).</t>
          <t>The LAN Adjacency SID TLV has the following format: </t>
          <figure anchor="LADJSIDTLVFIG">
            <name>LAN Adjacency SID 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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Flags     |     Weight    |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             OSPF Neighbor ID / IS-IS System ID                |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    SID/Label/Index (variable)                //
+---------------------------------------------------------------+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl newline="false" spacing="normal">
        
            <dt>Type:</dt> <dd>1100</dd>
    
            <dt>Length:</dt><dd> Variable. For IS-IS, it would be 13 or 14 octets depending on
              the label or index encoding of the SID. For OSPF, it would be 11 or
              12 octets depending on the label or index encoding of the SID.</dd>
	  
              <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t>
	  
              <ul spacing="normal">
                <li>IS-IS LAN Adj-SID flags as defined in
                  <xref target="RFC8667" section="2.2.2" sectionFormat="of"/>.</li>
                <li>OSPFv2 LAN Adj-SID flags as defined in
                  <xref target="RFC8665" section="6.2" sectionFormat="of"/>.</li>

                <li>OSPFv3 LAN Adj-SID flags as defined in
                  <xref target="RFC8666" section="7.2" sectionFormat="of"/>.</li>
              </ul>
            </dd>
            
            <dt>Weight:</dt><dd> 1 octet carrying the weight used for load-balancing
              purposes. The use of weight is described in <xref target="RFC8402" section="3.4" sectionFormat="of"/>.</dd>
       
            <dt>Reserved:</dt><dd> 2 octets that <bcp14>MUST</bcp14> be set to 0 and ignored on
              receipt.</dd>
        
            <dt>Neighbor ID:</dt><dd> 6 octets for IS-IS for the System ID, and 4
              octets for OSPF for the OSPF Router-ID of the neighbor.</dd>
            
            
              <dt>SID/Index/Label: </dt>
	      
	      <dd><t><br/></t>
              <dl spacing="normal">
                <dt>IS-IS:</dt><dd> Label or index value as defined in 
                  <xref target="RFC8667" section="2.2.2" sectionFormat="of"/>.</dd>
                <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
          fields of this TLV are interpreted according to the respective
          underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the
          BGP-LS Link NLRI is used to determine the underlying protocol
          specification for parsing these fields.</t>
        </section>
        <section anchor="L2BUNDLETLV" numbered="true" toc="default">
          <name>L2 Bundle Member Attributes TLV</name>
          <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
          is described by the Link NLRI defined in <xref target="RFC7752" format="default"/>,
          and the L2 Bundle Member Attributes TLV is associated with the Link
          NLRI. The TLV <bcp14>MAY</bcp14> include sub-TLVs that describe attributes
          associated with the bundle member. The identified bundle member
          represents a unidirectional path from the originating router to the
          neighbor specified in the parent L3 link. Multiple L2 Bundle Member
          Attributes TLVs <bcp14>MAY</bcp14> be associated with a Link NLRI.</t>

          <t>This information is derived from L2 Bundle Member Attributes TLV
          of IS-IS (<xref target="RFC8668" section="2" sectionFormat="of"/>).
          The equivalent functionality has not been specified as yet for
          OSPF.</t>
          <t>The L2 Bundle Member Attributes TLV has the following format:
          </t>
          <figure anchor="L2BTLVFIG">
            <name>L2 Bundle Member Attributes 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               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     L2 Bundle Member Descriptor               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Link Attribute Sub-TLVs(variable)          //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl newline="false" spacing="normal">
         
            <dt>Type:</dt><dd> 1172</dd>
           
            <dt>Length:</dt><dd> Variable.</dd>

            <dt>L2 Bundle Member Descriptor:</dt><dd> 4-octet field that carries 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
          below.</t>
          <table anchor="l2subtlvs" align="center">

            <name>BGP-LS Attribute TLVs are also used as sub-TLVs of the L2 Bundle Member Attributes TLV</name>
            <thead>
              <tr>
                <th align="center">TLV Code Point</th>
                <th align="left">Description</th>
                <th align="left">Reference Document</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">1088</td>
                <td align="left">Administrative group (color)</td>
                <td align="left">
                  <xref target="RFC7752" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1089</td>
                <td align="left">Maximum link bandwidth</td>
                <td align="left">
                  <xref target="RFC7752" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1090</td>
                <td align="left">Max. reservable link bandwidth</td>
                <td align="left">
                  <xref target="RFC7752" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1091</td>
                <td align="left">Unreserved bandwidth</td>
                <td align="left">
                  <xref target="RFC7752" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1092</td>
                <td align="left">TE default metric</td>
                <td align="left">
                  <xref target="RFC7752" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1093</td>
                <td align="left">Link protection type</td>
                <td align="left">
                  <xref target="RFC7752" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1099</td>
                <td align="left">Adjacency Segment Identifier (Adj-SID) TLV</td>
                <td align="left">
                  <xref target="ADJSIDTLV" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1100</td>
                <td align="left">LAN Adjacency Segment Identifier (Adj-SID) TLV</td>
                <td align="left">
                  <xref target="LANADJSIDTLV" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1114</td>
                <td align="left">Unidirectional link delay</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1115</td>
                <td align="left">Min/Max Unidirectional link delay</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1116</td>
                <td align="left">Unidirectional Delay Variation</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1117</td>
                <td align="left">Unidirectional Link Loss</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1118</td>
                <td align="left">Unidirectional residual bandwidth</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1119</td>
                <td align="left">Unidirectional available bandwidth</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
              <tr>
                <td align="center">1120</td>
                <td align="left">Unidirectional Utilized Bandwidth</td>
                <td align="left">
                  <xref target="RFC8571" format="default"/></td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="PREFIX" numbered="true" toc="default">
        <name>Prefix Attribute TLVs</name>
        <t>The following Prefix Attribute TLVs are defined:</t>
	
        <table anchor="prefix-attribute_tlv" align="center">
          <name>Prefix Attribute TLVs</name>
          <thead>
            <tr>
              <th align="center">Type</th>
              <th align="left">Description</th>
              <th align="left">Section</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1158</td>
              <td align="left">Prefix-SID</td>
              <td align="left">
                <xref target="PREFIXSIDTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1159</td>
              <td align="left">Range</td>
              <td align="left">
                <xref target="RANGETLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1170</td>
              <td align="left">Prefix Attribute Flags</td>
              <td align="left">
                <xref target="PREFIXATTRFLAGTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1171</td>
              <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
        with the Prefix NLRI that describes the prefix of the IGP node that is
        originating the corresponding IGP TLV/sub-TLV described below.</t>
        <section anchor="PREFIXSIDTLV" numbered="true" toc="default">
          <name>Prefix-SID TLV</name>
          <t>The Prefix-SID TLV is used in order to advertise information
          related to a Prefix-SID. This information is derived from the Prefix-SID
          Sub-TLV of IS-IS (<xref target="RFC8667" section="2.1" sectionFormat="of"/>), the Prefix-SID
          Sub-TLV of OSPFv2 (<xref target="RFC8665" section="5" sectionFormat="of"/>), and the Prefix-SID
          Sub-TLV of OSPFv3
          (<xref target="RFC8666" section="6" sectionFormat="of"/>).</t>
          <t>The Prefix-SID TLV has the following format: </t>
          <figure anchor="PFXSIDTLVFIG">
            <name>Prefix-SID 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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Flags     |   Algorithm   |           Reserved            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       SID/Index/Label (variable)             //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
	  
          <dl>
            
            <dt>Type:</dt><dd> 1158</dd>
            
            <dt>Length:</dt><dd> Variable. 7 or 8 octets depending on the label or index encoding
            of the SID.</dd>
	
           
     
            <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t>
	    
	  
              <ul spacing="normal">
                <li>IS-IS Prefix-SID flags as defined in
                  <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>
            
        
            <dt>Algorithm:</dt><dd> 1-octet value identifies the algorithm. The
              semantics of the algorithm are described in <xref target="RFC8402" section="3.1.1" sectionFormat="of"/>.</dd>
        
            <dt>Reserved:</dt><dd> 2 octets that <bcp14>MUST</bcp14> be set to 0 and ignored on
              receipt.</dd>
      
            
              <dt>SID/Index/Label:</dt>
	     <dd><t><br/></t>
              <dl spacing="normal">
		
                <dt>IS-IS:</dt><dd> Label or index value as defined in
                  <xref target="RFC8667" section="2.1" sectionFormat="of"/>.</dd>
                <dt>OSPFv2:</dt><dd> Label or index value as defined in 
                  <xref target="RFC8665" section="5" sectionFormat="of"/>.</dd>
                <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
          this TLV are interpreted according to the respective underlying
          IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS
          Prefix NLRI is used to determine the underlying protocol
          specification for parsing these fields.</t>
        </section>

        <section anchor="PREFIXATTRFLAGTLV" numbered="true" toc="default">
          <name>Prefix Attribute Flags TLV</name>

          <t>The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute
          flags information. These flags are defined for OSPFv2 in 
           <xref target="RFC7684" section="2.1" sectionFormat="of"/>, OSPFv3 in <xref target="RFC5340" section="A.4.1.1" sectionFormat="of"/>, and IS-IS in <xref target="RFC7794" section="2.1" sectionFormat="of"/>.</t>

          <t>The Prefix Attribute Flags TLV has the following format: </t>
          <figure anchor="PFXATRTLVFIG">
            <name>Prefix Attribute Flags 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             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Flags (variable)                      //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl>
     
            <dt>Type:</dt><dd> 1170</dd>
       
            <dt>Length:</dt><dd> Variable.</dd>
  
            
              <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
              below:</t>
	  
    
              <ul spacing="normal">
                <li>IS-IS flags correspond to the IPv4/IPv6 Extended
                Reachability Attribute Flags defined in <xref target="RFC7794" section="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="RFC5308" format="default"/> and 237
                <xref target="RFC5120" format="default"/>.
		</li>

		  <li>OSPFv2 flags correspond to the Flags field of the
                OSPFv2 Extended Prefix TLV defined in
                <xref target="RFC7684" section="2.1" sectionFormat="of"/>.</li>
                <li>OSPFv3 flags map to the Prefix Options field defined in
                 <xref target="RFC5340" section="A.4.1.1" sectionFormat="of"/> and 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
          respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The
          Protocol-ID of the BGP-LS Prefix NLRI is used to determine the
          underlying protocol specification for parsing this field.</t>
        </section>

        <section anchor="SOURCEIDTLV" numbered="true" toc="default">
	  
          <name>Source Router Identifier TLV</name>
          <t>The Source Router Identifier TLV contains the IPv4 or IPv6 Router Identifier 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
         <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Type               |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   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 prefix, 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>
		   </figure>
 
          <t>Where:</t>
		   <dl>
              <dt>Type:</dt><dd>1174</dd>

              <dt>Length:</dt><dd>4 octets</dd>

              <dt>OSPF Router-ID:</dt><dd>the OSPF Router-ID of the node originating
              the prefix.</dd>
            </dl>
        </section>

		
        <section anchor="RANGETLV" numbered="true" toc="default">
          <name>Range TLV</name>
          <t>The Range TLV is used in order to advertise a range of
          prefix-to-SID mappings as part of the
          SRMS functionality <xref target="RFC8661" format="default"/>, as defined
          in the respective underlying IGP SR extensions: <xref target="RFC8665" section="4" sectionFormat="of"/>,
          <xref target="RFC8666" section="5" sectionFormat="of"/>,
           and <xref target="RFC8667" section="2.4" sectionFormat="of"/>.
          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
          Extended Prefix Range TLV in the case of OSPFv2/OSPFv3.</t>

          <t>A Prefix NLRI, that has been advertised with a Range TLV, is
          considered a normal routing prefix (i.e., prefix reachability) only
          when there is also an IGP metric TLV (TLV 1095) associated it.
          Otherwise, it is considered only as the first prefix in the range
          for prefix-to-SID mapping advertisement.</t>
          <t>The format of the Range TLV is as follows:</t>
          <figure anchor="RANGETLVFIG">
            <name>Range 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            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Flags     | Reserved      |             Range Size        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           sub-TLVs                           //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl>
            <dt>Type:</dt><dd> 1159</dd>
            <dt>Length:</dt><dd> Variable. 11 or 12 octets depending on the label or index
              encoding of the SID.</dd>
    
              <dt>Flags:</dt><dd><t> 1-octet value that should be set as: </t>
	
	      
              <ul spacing="normal">
                <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"/>.</li>
                <li>OSPFv3 Extended Prefix Range TLV flags as defined in
                   <xref target="RFC8666" section="5" sectionFormat="of"/>.</li>
              </ul>
	  </dd>
	      
           
            <dt>Reserved:</dt><dd> 1 octet that <bcp14>MUST</bcp14> be set to 0 and ignored on
              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
          respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The
          Protocol-ID of the BGP-LS Prefix NLRI is used to determine the
          underlying protocol specification for parsing this field.</t>
	  
          <t>The prefix-to-SID mappings are advertised using sub-TLVs as
          below:</t>

<dl newline="true">
<dt>IS-IS:</dt>
<dd>
  <dl newline="true" spacing="compact">
     <dt>SID/Label Range TLV</dt>
     <dd>Prefix-SID Sub-TLV</dd>
  </dl>
</dd>

<dt>OSPFv2/OSPFv3:</dt>
<dd>
  <dl newline="true" spacing="compact">
     <dt>
        OSPFv2/OSPFv3 Extended Prefix Range TLV
     </dt>
     <dd>
        Prefix-SID Sub-TLV
     </dd>
  </dl>
</dd>

<dt>BGP-LS:</dt>
<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
          TLV (used as a sub-TLV in this context) is encoded as described in
          <xref target="PREFIXSIDTLV" format="default"/>.</t>
        </section>
      </section>
      <section anchor="ISISTLV" numbered="true" toc="default">
        <name>Equivalent IS-IS Segment Routing TLVs/Sub-TLVs</name>
        <t>This section illustrates the IS-IS Segment Routing Extensions TLVs
        and sub-TLVs mapped to the ones defined in this document.</t>
	
        <t>For each BGP-LS TLV, the following table illustrates its
        equivalence in IS-IS.</t>


        <table anchor="ISISTLVTAB" align="center">
          <name>IS-IS Segment Routing Extensions TLVs/Sub-TLVs</name>
          <thead>
            <tr>
              <th align="left">Description</th>
              <th align="left">IS-IS TLV/sub-TLV</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SR Capabilities</td>
              <td align="left">SR-Capabilities Sub-TLV (2)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SR Algorithm</td>
              <td align="left">SR-Algorithm Sub-TLV (19)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SR Local Block</td>
              <td align="left">SR Local Block Sub-TLV (22)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SRMS Preference</td>
              <td align="left">SRMS Preference Sub-TLV (19)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Adjacency SID</td>
              <td align="left">Adj-SID Sub-TLV (31)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">LAN Adjacency SID</td>
              <td align="left">LAN-Adj-SID Sub-TLV (32)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Prefix-SID</td>
              <td align="left">Prefix-SID Sub-TLV (3)</td>
              <td align="left">
                <xref target="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Range</td>
              <td align="left">SID/Label Binding TLV (149)</td>
              <td align="left">
                <xref target="RFC8667" 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="RFC8667" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Prefix Attribute Flags</td>
              <td align="left">Prefix Attribute Flags Sub-TLV (4)</td>
              <td align="left">
                <xref target="RFC7794" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Source Router Identifier</td>
              <td align="left">IPv4/IPv6 Source Router ID Sub-TLV (11/12)</td>
              <td align="left">
                <xref target="RFC7794" format="default"/></td>
            </tr>
            <tr>
              <td align="left">L2 Bundle Member Attributes</td>
              <td align="left">L2 Bundle Member Attributes TLV (25)</td>
              <td align="left">
                <xref target="RFC8668" format="default"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="OSPFTLV" numbered="true" toc="default">
        <name>Equivalent OSPFv2/OSPFv3 Segment Routing TLVs/Sub-TLVs</name>
        <t>This section illustrates the OSPFv2 and OSPFv3 Segment Routing
        Extensions TLVs and sub-TLVs mapped to the ones defined in this
        document.</t>

        <t>For each BGP-LS TLV, the following tables illustrate its
        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>
	
        <table anchor="OSPFV3TVLTAB" align="center">
          <name>OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs</name>
          <thead>
            <tr>
              <th align="left">Description</th>
              <th align="left">OSPFv3 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 (5)</td>
              <td align="left">
                <xref target="RFC8666" format="default"/></td>
            </tr>
            <tr>
              <td align="left">LAN Adjacency SID</td>
              <td align="left">LAN Adj-SID Sub-TLV (6)</td>
              <td align="left">
                <xref target="RFC8666" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Prefix-SID</td>
              <td align="left">Prefix-SID Sub-TLV (4)</td>
              <td align="left">
                <xref target="RFC8666" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Range</td>
              <td align="left">OSPFv3 Extended Prefix Range TLV (9)</td>
              <td align="left">
                <xref target="RFC8666" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SID/Label</td>
              <td align="left">SID/Label Sub-TLV (7)</td>
              <td align="left">
                <xref target="RFC8666" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Prefix Attribute Flags</td>
              <td align="left">Prefix Option Fields of Prefix TLV types 3,5,6</td>
              <td align="left">
                <xref target="RFC8362" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Source OSPF Router Identifier</td>
              <td align="left">Prefix Source Router Address Sub-TLV (28)</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 (27)</td>
              <td align="left">
                <xref target="RFC9084" format="default"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>IANA has registered the following code points in the "BGP-LS Node
      Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs"
      registry under the "Border Gateway Protocol - Link State (BGP-LS) 
 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
      should be left empty.</t>
      <section anchor="TLVSUMMARY" numbered="true" toc="default">
        <name>TLV/Sub-TLV Code Points Summary</name>
        <t>This section contains the global table of all TLVs/sub-TLVs defined
        in this document.</t>
        <table anchor="BGPLSCODEPOINTS" align="center">
          <name>Summary of TLV/Sub-TLV Code Points</name>
          <thead>
            <tr>
              <th align="center">TLV Code Point</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1034</td>
              <td align="left">SR Capabilities</td>
              <td align="right">
                <xref target="SRCAPTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1035</td>
              <td align="left">SR Algorithm</td>
              <td align="right">
                <xref target="SRALGOTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1036</td>
              <td align="left">SR Local Block</td>
              <td align="right">
                <xref target="SRLB" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1037</td>
              <td align="left">SRMS Preference</td>
              <td align="right">
                <xref target="SRMSPREF" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1099</td>
              <td align="left">Adjacency SID</td>
              <td align="right">
                <xref target="ADJSIDTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1100</td>
              <td align="left">LAN Adjacency SID</td>
              <td align="right">
                <xref target="LANADJSIDTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1158</td>
              <td align="left">Prefix-SID</td>
              <td align="right">
                <xref target="PREFIXSIDTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1159</td>
              <td align="left">Range</td>
              <td align="right">
                <xref target="RANGETLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1161</td>
              <td align="left">SID/Label</td>
              <td align="right">
                <xref target="SIDLABELTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1170</td>
              <td align="left">Prefix Attribute Flags</td>
              <td align="right">
                <xref target="PREFIXATTRFLAGTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1171</td>
              <td align="left">Source Router Identifier</td>
              <td align="right">
                <xref target="SOURCEIDTLV" format="default"/></td>
            </tr>
            <tr>
              <td align="center">1172</td>
              <td align="left">L2 Bundle Member Attributes</td>
              <td align="right">
                <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 anchor="Manageability" numbered="true" toc="default">
      <name>Manageability Considerations</name>
      <t>This section is structured as recommended in <xref target="RFC5706" format="default"/>.</t>
      <t>The new protocol extensions introduced in this document augment the
      existing IGP topology information that is distributed via <xref target="RFC7752" format="default"/>. Procedures and protocol extensions defined in this
      document do not affect the BGP protocol operations and management other
      than as discussed in the Manageability Considerations section of <xref target="RFC7752" format="default"/>. Specifically, the malformed attribute tests for
      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
      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
      information (e.g., an application or a controller) and not the BGP
      protocol.</t>

      
      
      <t>A consumer of the BGP-LS information retrieves this information over
      a BGP-LS session (refer to Sections <xref target="RFC7752" section="1" sectionFormat="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
      dictated by the nature of its application usage and hence is beyond the
      scope of this document.</t>

      <t>This document only introduces new Attribute TLVs, and any syntactic
      error in them would result in the BGP-LS Attribute being
      discarded with an error log.      
      The SR information introduced in BGP-LS by
      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.
      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
      from the underlying IGP-based distributed best-path computation. Errors
      in the encoding or decoding of the SR information may result in the
      unavailability of such information to the SR PCE or incorrect
      information being made available to it. This may result in the SR PCE
      not being able to perform the desired SR-based optimization
      functionality or to perform it in an unexpected or inconsistent manner.
      The handling of such errors by applications like SR PCE may be
      implementation specific and out of scope of this document.</t>
      <t>The extensions, specified in this document, do not introduce any new
      configuration or monitoring aspects in BGP or BGP-LS other than as
      discussed in <xref target="RFC7752" format="default"/>. The manageability aspects of the
      underlying SR features are covered by <xref target="RFC9020" format="default"/>, <xref target="I-D.ietf-isis-sr-yang" format="default"/>, and <xref target="I-D.ietf-ospf-sr-yang" format="default"/>.</t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The new protocol extensions introduced in this document augment the
      existing IGP topology information that is distributed via <xref target="RFC7752" format="default"/>. The advertisement of the SR link attribute
      information defined in this document presents similar risk as associated
      with the existing set of link attribute information as described in
      <xref target="RFC7752" format="default"/>. The Security Considerations section of <xref target="RFC7752" format="default"/> also applies to these extensions. The procedures and
      new TLVs defined in this document, by themselves, do not affect the
      BGP-LS security model discussed in <xref target="RFC7752" format="default"/>.</t>

      <t>The TLVs introduced in this document are used to propagate IGP-defined
      information (see <xref target="RFC8665" format="default"/>, <xref target="RFC8666" format="default"/>, and <xref target="RFC8667" format="default"/>). These TLVs
      represent the SR information associated with the IGP node, link, and
      prefix. The IGP instances originating these TLVs are assumed to support
      all the required security and authentication mechanisms (as described in
      <xref target="RFC8665" format="default"/>, <xref target="RFC8666" format="default"/>, and <xref target="RFC8667" format="default"/>) in order to
      prevent any security issue when propagating the TLVs into BGP-LS.</t>

      <t>BGP-LS SR extensions enable traffic engineering use cases within the
      SR domain. SR operates within a trusted domain <xref target="RFC8402" format="default"/>, and its security considerations also apply to BGP-LS
      sessions when carrying SR information. The SR traffic engineering
      policies using the SIDs advertised via BGP-LS are expected to be used
      entirely within this trusted SR domain (e.g., between multiple ASes/domains
      within a single provider network). Therefore, precaution is necessary to
      ensure that the link-state information (including SR information)
      advertised via BGP-LS sessions is limited to consumers in a secure
      manner within this trusted SR domain. BGP peering sessions for
      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
      to ensure that BGP-LS topology information (including the newly added SR
      information) is not advertised to an external BGP peering session
      outside the SR domain.</t>
    </section>

  </middle>
  <back>

<displayreference target="I-D.ietf-isis-sr-yang" to="ISIS-SR-YANG"/>
<displayreference target="I-D.ietf-ospf-sr-yang" to="OSPF-SR-YANG"/>

    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4202.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7752.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7794.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7684.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5120.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5308.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5340.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8362.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8571.xml"/>

<!-- [I-D.ietf-isis-segment-routing-extensions] Published as RFC 8667 --> 
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8667.xml"/>

<!-- [I-D.ietf-ospf-segment-routing-extensions] Published as RFC 8665 --> 
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8665.xml"/>

<!-- [I-D.ietf-ospf-ospfv3-segment-routing-extensions] Published as RFC 8666 --> 
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8666.xml"/>

<!-- [I-D.ietf-isis-l2bundles] Published as RFC 8668 --> 
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8668.xml"/>

<!-- [I-D.ietf-lsr-ospf-prefix-originator] IESG state I-D Exists; companion document 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="editor">
    <organization />
</author>
<date month='August' year='2021' />
</front>

<seriesInfo name="RFC" value="9084"/>
<seriesInfo name="DOI" value="10.17487/RFC9084"/>
</reference>


      </references>
      <references>
        <name>Informative References</name>

        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5706.xml"/>

        <!-- [I-D.ietf-spring-segment-routing-ldp-interop] Published as RFC 8661 --> 
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8661.xml"/>

        <!-- [I-D.ietf-isis-sr-yang] IESG state I-D Exists--> 
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-isis-sr-yang-10.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"/>

<!-- 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>

 <section anchor="Acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <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 <contact fullname="Alvaro Retana"/> for his extensive
      review and comments, which helped correct issues and improve the
      document.</t>
    </section>

    <section anchor="Contributors" numbered="false" toc="default">
      <name>Contributors</name>
      <t>The following people have substantially contributed to the editing of
      this document:</t>
      
      <contact fullname="Peter Psenak"> 
	<organization>Cisco Systems</organization>
	<address>
	  
	  <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>
	  
  </back>


</rfc>
