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

<!-- [rfced] SG did initial conversion to v3
completed steps 1-13 on this page: 
https://www.rfc-editor.org/staff/wiki/doku.php?id=v3_pre-edit

did NOT review references. 
-->

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" number="0000"
     docName="draft-ietf-idr-bgp-ls-segment-routing-ext-16" ipr="trust200902"
     consensus="true" obsoletes="" updates="" submissionType="IETF" xml:lang="en"
     tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true"
     version="3"> 
  <!-- xml2rfc v2v3 conversion 2.46.0 -->
  <front>
    <title abbrev="BGP LS extensions for Segment Routing">BGP Link-State
    extensions for Segment Routing</title>
    <seriesInfo name="RFC" value="0000"/>
    <author fullname="Stefano Previdi" initials="S." surname="Previdi">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street/>
          <city>Rome</city>
          <code/>
          <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>
          <street/>
          <city/>
          <code/>
          <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>
          <street/>
          <city>Brussels</city>
          <code/>
          <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>
          <street/>
          <city/>
          <region/>
          <code/>
          <country/>
       </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="June" year="2020"/>
    <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 sub-paths, 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 BGP Link-state address-family
      in order to carry segment routing information via BGP.</t>
    </abstract>
    <note>
      <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>
    </note>
  </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 sub-paths 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
      sub-paths, 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 Segment Routing 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="I-D.ietf-isis-segment-routing-extensions" format="default">IS-IS</xref>, <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default">OSPFv2</xref> and
      <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default">OSPFv3</xref>.
      Using these extensions, Segment Routing can be enabled within an IGP
      domain.</t>
      <t>Segment Routing (SR) allows advertisement of single or multi-hop
      paths. The flooding scope for the IGP extensions for Segment routing 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 and therefore, by using the IGP alone it is not enough to construct
      segments across multiple IGP Area or AS boundaries.</t>
      <t>In order to address the need for applications that require
      topological visibility across IGP areas, or even across Autonomous
      Systems (AS), the BGP-LS address-family/sub-address-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 info 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 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 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 need 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 or multiple ASes managed by the same
      administrative entity e.g. within a single provider network.</t>
    </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.
      <xref target="ISISTLV" format="default"/> and <xref target="OSPFTLV" format="default"/> lists the
      equivalent TLVs and sub-TLVs in 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. <xref target="RFC7752" format="default">BGP-LS</xref> 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 Attributes 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="center">Type</th>
              <th align="left">Description</th>
              <th align="right">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 describing 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="I-D.ietf-isis-segment-routing-extensions" section="2.3" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SID/Label sub-TLV in <xref target="I-D.ietf-ospf-segment-routing-extensions" section="2.1" sectionFormat="of"/>
              and section 3.1 of <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>.</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 depending whether the value
              is encoded as a label or as an index/SID.</dd>
       
            <dt>SID/Label:</dt><dd> If 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 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="I-D.ietf-isis-segment-routing-extensions" section="3.1" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in
          <xref target="I-D.ietf-ospf-segment-routing-extensions" 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>
	  
	  <!--could not figure out nested list-->
	  
          <t>Where:</t>

	  <dl spacing="normal">
            
            <dt>Type:</dt> <dd>1034</dd>
           
            <dt>Length:</dt><dd>Variable. Minimum length is 12.</dd>
            
            <dt>Flags:</dt><dd> 1 octet of flags as defined in
          <xref
            target="I-D.ietf-isis-segment-routing-extensions" 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 octet with a non-zero value
                indicating the number of labels in the range.</dd>

		<!--[rfced] may be missing colon-->
		
 
                <dt>SID/Label TLV</dt><dd> (as defined in <xref target="SIDLABELTLV" format="default"/>) used as 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="I-D.ietf-isis-segment-routing-extensions" section="3.2" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in
              <xref target="I-D.ietf-ospf-segment-routing-extensions" 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. Minimum length is 1 and maximum can be
              256.</dd>
       
            <dt>Algorithm:</dt><dd> One or more fields of 1 octet each identifying the
              algorithm.</dd>
          </dl>
	  
        </section>
        <section anchor="SRLB" numbered="true" toc="default">
          <name>SR Local Block TLV</name>
          <t>The SR Local Block (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, it is required that the node
          advertises its SRLB.</t>
          <t>This information is derived from the protocol specific
          advertisements. </t>
          <ul spacing="normal">
            <li>IS-IS, as defined by the SR Local Block sub-TLV in
              <xref target="I-D.ietf-isis-segment-routing-extensions" section="3.3" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SR Local Block TLV in
               <xref target="I-D.ietf-ospf-segment-routing-extensions" 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. Minimum length is 12.</dd>
           
            <dt>Flags:</dt><dd> 1 octet of flags. The flags are as defined in section
             <xref target="I-D.ietf-isis-segment-routing-extensions" 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 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 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="I-D.ietf-spring-segment-routing-ldp-interop" format="default"/> specifies the
          SRMS functionality along with 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 section
              <xref target="I-D.ietf-isis-segment-routing-extensions" section="3.4" sectionFormat="of"/>.</li>
            <li>OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in
               <xref target="I-D.ietf-ospf-segment-routing-extensions" 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.</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 are defined:</t>
        <table anchor="link-attribute_tlv" align="center">
          <name>Link Attribute TLVs</name>
          <thead>
            <tr>
              <th align="center">Type</th>
              <th align="left">Description</th>
              <th align="right">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 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 describing 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
          Adj-SID sub-TLV of IS-IS (section 2.2.1 of <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>), OSPFv2
          (section 6.1 of <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>) and OSPFv3
          (section 7.1 of <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>).</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 depending on Label or Index
              encoding of the SID</dd>
      
            
              <dt>Flags.</dt><dd><t> 1 octet value which should be set as: </t>
              <ul spacing="normal">
                <li>IS-IS Adj-SID flags are defined in <xref target="I-D.ietf-isis-segment-routing-extensions" section="2.2.1" sectionFormat="of"/>.</li>
                <li>OSPFv2 Adj-SID flags are defined in <xref target="I-D.ietf-ospf-segment-routing-extensions" section="6.1" sectionFormat="of"/>.</li>
                <li>OSPFv3 Adj-SID flags are defined in <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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 section 3.4 of <xref target="RFC8402" format="default"/>.</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 section 2.2.1
                  of <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>.</dd>
                <dt>OSPFv2:</dt><dd> Label or index value as defined in section 6.1 of
                  <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>.</dd>
                <dt>OSPFv3:</dt><dd> Label or index value as defined in section 7.1 of
                  <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>.</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 pseudo-node (or the equivalent OSPF Designated and Backup
          Designated Routers). The LAN Adjacency Segment 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 LAN-Adj-SID sub-TLV of
          IS-IS (section 2.2.2 of <xref
          target="I-D.ietf-isis-segment-routing-extensions"
          format="default"/>) and LAN Adj-SID sub-TLV of OSPFv2
          (section 6.2 of <xref
          target="I-D.ietf-ospf-segment-routing-extensions"
          format="default"/>) and OSPFv3 (section 7.2 of <xref
          target="I-D.ietf-ospf-ospfv3-segment-routing-extensions"
          format="default"/>).</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 depending on
              Label or Index encoding of the SID. For OSPF it would be 11 or
              12 depending on Label or Index encoding of the SID.</dd>
	  
         

	
	      
              <dt>Flags.</dt><dd><t> 1 octet value which should be set as: </t>
	  
              <ul spacing="normal">
                <li>IS-IS LAN Adj-SID flags are defined in
                  <xref target="I-D.ietf-isis-segment-routing-extensions" section="2.2.2" sectionFormat="of"/>.</li>
                <li>OSPFv2 LAN Adj-SID flags are defined in
                  <xref target="I-D.ietf-ospf-segment-routing-extensions" section="6.2" sectionFormat="of"/>.</li>
                <li>OSPFv3 LAN Adj-SID flags are defined in
                  <xref target="I-D.ietf-ospf-segment-routing-extensions" 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 section 3.4 of <xref target="RFC8402" format="default"/>.</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 
                  of <xref target="I-D.ietf-isis-segment-routing-extensions" section="2.2.2" sectionFormat="of"/>.</dd>
                <dt>OSPFv2:</dt><dd> Label or index value as defined in 
                  <xref target="I-D.ietf-ospf-segment-routing-extensions" section="6.2" sectionFormat="of"/>.</dd>
                <dt>OSPFv3:</dt><dd> Label or index value as defined in 
                  <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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 Attribute TLV</name>
          <t>The L2 Bundle Member Attribute 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 Attribute TLV is associated with the Link
          NLRI. The TLV <bcp14>MAY</bcp14> include sub-TLVs which 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
          Attribute 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 (section 2 of <xref target="I-D.ietf-isis-l2bundles" format="default"/>).
          The equivalent functionality has not been specified as yet for
          OSPF.</t>
          <t>The L2 Bundle Member Attribute 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 octets 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 Attribute 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 also used as sub-TLVs of L2 Bundle Member Attribute 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 packet 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 bandwidth utilization</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-ID</td>
              <td align="left">
                <xref target="SOURCEIDTLV" format="default"/></td>
            </tr>
          </tbody>
        </table>
        <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
        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 Prefix-SID
          sub-TLV of IS-IS (section 2.1 of <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>) and the Prefix
          SID sub-TLV of OSPFv2 (section 5 of <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>) and OSPFv3
          (section 6 of <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>).</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 depending on Label or Index encoding
            of the SID</dd>
	
           
     
            <dt>Flags:</dt><dd> 1 octet value which should be set as: </dd>
	  </dl>
              <ul spacing="normal">
                <li>IS-IS Prefix SID flags are defined in section 2.1.1 of
                  <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>.</li>
                <li>OSPFv2 Prefix SID flags are defined in section 5 of <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>.</li>
                <li>OSPFv3 Prefix SID flags are defined in section 6 of <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>.</li>
              </ul>
            
        <dl>
            <dt>Algorithm:</dt><dd> 1 octet value identify the algorithm. The
              semantics of algorithm are described in section 3.1.1 of <xref target="RFC8402" format="default"/>.</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 section 2.1 of
                  <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>.</dd>
                <dt>OSPFv2:</dt><dd> Label or index value as defined in section 5 of
                  <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>.</dd>
                <dt>OSPFv3:</dt><dd> Label or index value as defined in section 6 of
                <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>.</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 section 2.1
          of <xref target="RFC7684" format="default"/>, for OSPFv3 in section A.4.1.1 of <xref target="RFC5340" format="default"/> and for IS-IS in section 2.1 of <xref target="RFC7794" format="default"/>.</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 section 2.1 of <xref target="RFC7794" format="default"/></li>
                <li>OSPFv2 flags correspond to the Flags field of the
                OSPFv2 Extended Prefix TLV defined in section 2.1 of
                <xref target="RFC7684" format="default"/></li>
                <li>OSPFv3 flags map to the Prefix Options field defined in
                  section A.4.1.1 of <xref target="RFC5340" format="default"/> and extended in
                  section 3.1 of <xref target="RFC8362" format="default"/></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 (Source Router-ID) TLV</name>
          <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" format="default"/>. 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" format="default"/>.</t>
          <t>The Source Router-ID TLV has the following format: </t>
          <figure anchor="SRCRIDTLVFIG">
            <name>Source 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 or 16 octet Router-ID                    //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>Where:</t>
          <dl>
            
            <dt>Type:</dt><dd> 1171</dd>
     
            <dt>Length:</dt><dd> Variable. 4 or 16 in case of IS-IS and 4 in case of
              OSPF.</dd>
     
            <dt>Router-ID:</dt><dd> the IPv4 or IPv6 Router-ID in case of IS-IS and
              the OSPF Router-ID in the case of OSPF.</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 Segment Routing Mapping Server
          (SRMS) functionality <xref target="I-D.ietf-spring-segment-routing-ldp-interop" format="default"/>, as defined
          in the respective underlying IGP SR extensions <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/> (section 4),
          <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>
          (section 5) and <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/> (section 2.4).
          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 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 depending on Label or Index
              encoding of the SID</dd>
    
              <dt>Flags:</dt><dd> 1 octet value which should be set as: </dd>
	  </dl>
	      
              <ul spacing="normal">
                <li>IS-IS SID/Label Binding TLV flags are defined in section
                  2.4.1 of <xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>.</li>
                <li>OSPFv2 OSPF Extended Prefix Range TLV flags are defined
                  in section 4 of <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/>.</li>
                <li>OSPFv3 Extended Prefix Range TLV flags are defined in
                  section 5 of <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" format="default"/>.</li>
              </ul>
	      
            <dl>
            <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>TEST A:</t>
          <t>The prefix-to-SID mappings are advertised using sub-TLVs as
          below:</t>

<dl newline="true" spacing="compact">          
  <dt>IS-IS:</dt>
  <dd>
    <t>SID/Label Range TLV</t>
    <ul empty="true">
      <li>Prefix-SID sub-TLV</li>
    </ul>
  </dd>

  <dt>OSPFv2/OSPFv3:</dt>
  <dd>
    <t>
    OSPFv2/OSPFv3 Extended Prefix Range TLV
    </t>
    <ul empty="true">
      <li>Prefix SID sub-TLV</li>
    </ul>
  </dd>
  
  <dt>BGP-LS:</dt>
  <dd>
    <t>
      Range TLV
    </t>
    <ul empty="true">
      <li>Prefix-SID TLV (used as a sub-TLV in this context)</li>
    </ul>
  </dd>

</dl>

<t>TEST B:</t>
          <t>The prefix-to-SID mappings are advertised using sub-TLVs as
          below:</t>

<dl newline="true" spacing="compact">          
  <dt>IS-IS:</dt>
  <dd>
    <t>SID/Label Range TLV</t>
    <ul empty="true">
      <li>Prefix-SID sub-TLV</li>
    </ul>
  </dd>

  <dt>OSPFv2/OSPFv3:</dt>
  <dd>
    <t>
    OSPFv2/OSPFv3 Extended Prefix Range TLV
    </t>
    <ul empty="true">
      <li>Prefix SID sub-TLV</li>
    </ul>
  </dd>
  
  <dt>BGP-LS:</dt>
  <dd>
    <t>
      Range TLV
    </t>
    <ul empty="true">
      <li>Prefix-SID TLV (used as a sub-TLV in this context)</li>
    </ul>
  </dd>

</dl>

<t>TEST C:</t>
          <t>The prefix-to-SID mappings are advertised using sub-TLVs as
          below:</t>

<dl newline="true">          
  <dt>IS-IS:</dt>
  <dd>
    <t>SID/Label Range TLV</t>
    <ul empty="true" spacing="compact">
      <li>Prefix-SID sub-TLV</li>
    </ul>
  </dd>

  <dt>OSPFv2/OSPFv3:</dt>
  <dd>
    <t>
    OSPFv2/OSPFv3 Extended Prefix Range TLV
    </t>
    <ul empty="true" spacing="compact">
      <li>Prefix SID sub-TLV</li>
    </ul>
  </dd>
  
  <dt>BGP-LS:</dt>
  <dd>
    <t>
      Range TLV
    </t>
    <ul empty="true" spacing="compact">
      <li>Prefix-SID TLV (used as a sub-TLV in this context)</li>
    </ul>
  </dd>
</dl>

<t>TEST D:</t>

<t>The prefix-to-SID mappings are advertised using sub-TLVs as below:
</t>

<artwork>
   IS-IS:
       SID/Label Range TLV
           Prefix-SID sub-TLV

   OSPFv2/OSPFv3:
       OSPFv2/OSPFv3 Extended Prefix Range TLV
           Prefix SID sub-TLV

   BGP-LS:
       Range TLV
           Prefix-SID TLV (used as a sub-TLV in this context)
</artwork>

<t>TEST E:</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 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 illustrate the IS-IS Segment Routing Extensions TLVs
        and sub-TLVs mapped to the ones defined in this document.</t>
        <t>The following table, illustrates for each BGP-LS TLV, 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="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Range</td>
              <td align="left">SID/Label Binding TLV (149)</td>
              <td align="left">
                <xref target="I-D.ietf-isis-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Prefix Attribute Flags</td>
              <td align="left">Prefix Attributes Flags sub-TLV (4)</td>
              <td align="left">
                <xref target="RFC7794" format="default"/></td>
            </tr>
            <tr>
              <td align="left">Source Router-ID</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="I-D.ietf-isis-l2bundles" 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 illustrate the OSPFv2 and OSPFv3 Segment Routing
        Extensions TLVs and sub-TLVs mapped to the ones defined in this
        document.</t>
        <t>The following table, illustrates for each BGP-LS TLV, 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="I-D.ietf-ospf-segment-routing-extensions" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SR Algorithm</td>
              <td align="left">SR-Algorithm TLV (8)</td>
              <td align="left">
                <xref target="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SRMS Preference</td>
              <td align="left">SRMS Preference TLV (15)</td>
              <td align="left">
                <xref target="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" 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-ID</td>
              <td align="left">Prefix Source Router-ID sub-TLV (TBD)</td>
              <td align="left">
                <xref target="I-D.ietf-lsr-ospf-prefix-originator" 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="I-D.ietf-ospf-segment-routing-extensions" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SR Algorithm</td>
              <td align="left">SR-Algorithm TLV (8)</td>
              <td align="left">
                <xref target="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-segment-routing-extensions" format="default"/></td>
            </tr>
            <tr>
              <td align="left">SRMS Preference</td>
              <td align="left">SRMS Preference TLV (15)</td>
              <td align="left">
                <xref target="I-D.ietf-ospf-segment-routing-extensions" 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="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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 Router-ID</td>
              <td align="left">Prefix Source Router-ID sub-TLV (TBD)</td>
              <td align="left">
                <xref target="I-D.ietf-lsr-ospf-prefix-originator" format="default"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>Early allocation of codepoints has been done by IANA for this
      document from the registry "BGP-LS Node Descriptor, Link Descriptor,
      Prefix Descriptor, and Attribute TLVs" under the "BGP-LS Parameters"
      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 Table of TLV/Sub-TLV Codepoints</name>
          <thead>
            <tr>
              <th align="center">TLV Code Point</th>
              <th align="left">Description</th>
              <th align="right">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-ID</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>
          </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 Section 1 and 2 of <xref target="RFC7752" format="default"/>).
      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 only that specific 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 a
      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="I-D.ietf-spring-sr-yang" 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 (<xref target="I-D.ietf-isis-segment-routing-extensions" format="default"/>, <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/> and <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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="I-D.ietf-isis-segment-routing-extensions" format="default"/>, <xref target="I-D.ietf-ospf-segment-routing-extensions" format="default"/> and <xref target="I-D.ietf-ospf-ospfv3-segment-routing-extensions" 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
      Segment Routing 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 AS/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 setup 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>
    <section anchor="Contributors" numbered="true" 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>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>
	  
    <section anchor="Acknowledgements" numbered="true" 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 Alvaro Retana for his extensive
      review and comments which helped correct issues and improve the
      document.</t>
    </section>
  </middle>
  <back>
    <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.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"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-isis-segment-routing-extensions-25.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-ospf-segment-routing-extensions-27.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-ospf-ospfv3-segment-routing-extensions-23.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-isis-l2bundles-07.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lsr-ospf-prefix-originator-05.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5706.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-spring-segment-routing-ldp-interop-15.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-spring-sr-yang-15.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-isis-sr-yang-07.xml"/>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-ospf-sr-yang-11.xml"/>
      </references>
    </references>
  </back>
</rfc>
