<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-li-ldr-bgp-request-cp-sr-te-policy-07"
     ipr="trust200902">
  <front>
    <title abbrev="BGP Trigger SR TE Policies">BGP Request for 
    Candidate Paths of SR TE Policies</title>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>156 Beiqing Road</street>
          <city>Beijing, 100095</city>
          <country>P.R. China</country>
        </postal>
        <email>lizhenbin@huawei.com</email>
      </address>
    </author>

    <author fullname="Qiangzhou Gao" initials="Q." surname="Gao">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>156 Beiqing Road</street>
          <city>Beijing, 100095</city>
          <country>P.R. China</country>
        </postal>
        <email>gaoqiangzhou@huawei.com</email>
      </address>
    </author>

    <author initials="H" surname="Chen" fullname="Huaimo Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street></street>
          <city>Boston, MA</city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>hchen.ietf@gmail.com</email>
      </address>
    </author>

   <author initials="Y" fullname="Yanhe Fan" 
            surname="Fan">
      <organization>Casa Systems</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>yfan@casa-systems.com</email>
      </address>
    </author>

   <author initials="X" fullname="Xufeng Liu" 
            surname="Liu">
      <organization>Volta Networks</organization>
      <address>
        <postal>
          <street> </street>
          <city>McLean</city>
          <region>VA</region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

   <author initials="L" fullname="Lei Liu" 
            surname="Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>liulei.kddi@gmail.com</email>
      </address>
    </author>

    <date year="2024"/>

    <!---->

    <abstract>
      <t>An SR Policy is a set of candidate paths. The headend of an SR Policy
      may learn multiple candidate paths for an SR Policy via a number of
      different mechanisms, e.g., CLI, NetConf, PCEP, or BGP. 
      This document defines
      extensions to BGP for the headend to request BGP speaker (controller) 
      for advertising the candidate paths. </t> 
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>An SR Policy defined in <xref
      target="I-D.ietf-spring-segment-routing-policy"/> is a set of candidate
      paths. The headend of an SR Policy may be informed by various means
      including: Configuration, PCEP <xref target="RFC8281"/> or BGP <xref
      target="I-D.ietf-idr-segment-routing-te-policy"/>. All these mechanisms
      are Controller initiated, but in some situations the headend may want to
      pull a set of candidate paths from Controller rather than receive
      all information passively. Actually PCEP can use request and reply
      messages defined in <xref target="RFC5440"/> to match this requirement,
      but the mechanism is not clear when controller advertises candidate paths
      via BGP.</t>

      <t>This document defines a way to request controller (BGP
      speaker) to advertise candidate paths via BGP update messages.
      This makes BGP have the mechanism with request and reply similar to
      PCEP.</t>
    </section>

    <section title="Terminology">
      <t>RP: Request Parameters</t>

      <t>LSPA: LSP Attributes</t>

      <t>SVEC: Synchronization VECtor</t>

      <t>IRO: Include Route Object</t>

      <t>ERO: Explicit Route Object</t>

      <t>MSD: Base MPLS Imposition Maximum SID Depth, as defined in
      [RFC8491]</t>

      <t>NAI: Node or Adjacency Identifier</t>

      <t>PCC: Path Computation Client</t>

      <t>PCE: Path Computation Element</t>

      <t>PCEP: Path Computation Element Communication Protocol</t>

      <t>SID: Segment Identifier</t>

      <t>SR: Segment Routing</t>

      <t>SR-TE: Segment Routing Traffic Engineering</t>
    </section>

    <section title="Overview of BGP Request for SR-TE Paths">
      <t><xref target="I-D.ietf-idr-segment-routing-te-policy"/> defines the 
      extensions to BGP for a headend to receive candidate paths in a BGP
      UPDATE message from a controller (BGP speaker). In some
      situations a headend just wants to get these candidate paths when some special
      event occurs (for example, when it receives a customer route (VPN route) 
      with a special color or special BGP attribute).
      This document defines the mechanism in which 
      the headend requests the controller to advertise the expected SR policy 
      with the candidate paths when this special situation occurs.</t>

      <t>At first, the headend decides to get a new candidate path from the controller
      based on some trigger event. This trigger mechanism is out of scope of
      this document.</t>

      <t>Then, the headend creates a new BGP request UPDATE message (defined below
      in this document) and sends it to the controller. 
      The message contains the constraints/attributes of SR-TE paths such as affinity, 
      metric, SRLG, and so on. 
      This special request UPDATE message is called request message 
      or request for short.
      It SHOULD NOT be used for BGP best path selection.</t>

      <t>After receiving the request message, the controller will calculate 
      one or a set of paths (i.e., segment lists) according to the request
      from the headend and advertise the SR Policy with the paths computed
      to the headend using <xref target="I-D.ietf-idr-segment-routing-te-policy"/>. 
      How to calculate the paths is out of scope of this document.</t>
    </section>

    <section anchor="request-msg" title="BGP Request UPDATE Message">
      <t>A BGP request UPDATE message is based on the update message defined in
         <xref target="I-D.ietf-idr-segment-routing-te-policy"/>
         with some extensions described below.</t>

      <section title="Extention of SR Policy NLRI">
        <t>The SR Policy NLRI defined in 
          <xref target="I-D.ietf-idr-segment-routing-te-policy"/> has the following format:</t>

        <t><figure>
            <artwork><![CDATA[ +------------------+
 |   NLRI Length    | 1 octet
 +------------------+
 |  Distinguisher   | 4 octets
 +------------------+
 |   Policy Color   | 4 octets
 +------------------+
 |    Endpoint      | 4 or 16 octets
 +------------------+]]></artwork>
          </figure></t>

        <t>where:</t>

        <t><list style="symbols">
            <t>NLRI Length: 1 octet of length expressed in bits as defined in
            <xref target="RFC4760"/>.</t>

            <t>Distinguisher: 4-octet value uniquely identifying the policy in
            the context of &lt;color, endpoint&gt; tuple. The distinguisher
            has no semantic value and is solely used by the SR Policy
            originator to make unique (from an NLRI perspective) multiple
            occurrences of the same SR Policy.</t>

            <t>Policy Color: 4-octet value identifying (with the endpoint) the
            policy. The color is used to match the color of the destination
            prefixes to steer traffic into the SR Policy <xref
            target="I-D.ietf-spring-segment-routing-policy"/></t>

            <t>Endpoint: identifies the endpoint of a policy. The Endpoint may
            represent a single node or a set of nodes (e.g., an anycast
            address). The Endpoint is an IPv4 (4-octet) address or an IPv6
            (16-octet) address according to the AFI of the NLRI.</t>

          </list>NLRI Length, Policy Color, Endpoint field remains unchanged,
        while the Distinguisher field will be set to FF:FF:FF:FF to indicate 
        that the UPDATE message with this NLRI is a request message 
        to the controller.</t>
      </section>


      <section title="New SR Policy Sub-TLVs">
        <t>The content of the SR Policy is encoded in the Tunnel Encapsulation
        Attribute TLV of type 23 defined in <xref target="I-D.ietf-idr-tunnel-encaps"/>
        containing a new Tunnel Type TLV of type 15.
        The SR Policy Encoding structure is as follows:</t>

        <t><figure>
            <artwork><![CDATA[SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
Attributes:
   Tunnel Encaps Attribute (23) 
      Tunnel Type (15): SR Policy
        <Sub-TLVs>]]></artwork>
          </figure></t>

        <t>Preference, Binding SID, Priority, Policy Name, ENLP, Segment
        List, Weight and Segment Sub-TLVs are all defined in <xref
        target="I-D.ietf-idr-segment-routing-te-policy"/> for a SR Policy
        to be advertised to a headend.</t>

        <t>Additional 6 new Sub-TLVs are defined below
        for the request mechanism. 
        They are SR Path Attributes, Synchronization, Metric, Include Route,
        Load Balance, and Request Parameters Sub-TLVs.</t>


        <section title="SR Path Attributes Sub-TLV">
          <t>A SR Path Attributes Sub-TLV contains the attributes of 
             the SR paths requested, which are similar to 
             an LSP Attributes Object defined in <xref target="RFC5440"/> 
             and <xref target="RFC3209"/>. </t>

          <t>It is optional and specifies various
          attributes or constraints of the paths requested. Its format is shown below.</t>

          <t><figure>
              <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Type     |    Length     |     Flags     |   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Exclude-any                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Include-any                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Include-all                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                        Optional sub-TLVs                      ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>where:</t>

          <t><list style="symbols">
              <t>Type: TBD1</t>

              <t>Length: specifies the length of the value field not including
              Type and Length fields.</t>

              <t>Flags (8 bits): No flag is currently defined. 
                 Undefined flags MUST be set to zero on transmission 
                 and be ignored on receipt. </t>
              <t>Reserved (8 bits): This field MUST be set to zero on transmission 
                and be ignored on receipt.</t>
              <t>Exclude-any: A 32-bit vector representing a set of attribute filters 
                 associated with a path any of which renders a link unacceptable.</t>
              <t>Include-any: A 32-bit vector representing a set of attribute filters 
                 associated with a path any of which renders a link acceptable 
                (with respect to this test).  A null set (all bits set to zero) 
                automatically passes.</t>
              <t>Include-all: A 32-bit vector representing a set of attribute filters 
                 associated with a path all of which must be present for a link to be 
                 acceptable (with respect to this test).  
                 A null set (all bits set to zero) automatically passes.</t>

              <t>Optional sub-TLVs: No optional sub-TLV is currently defined.</t>
            </list></t>
        </section>

        <section title="Synchronization Sub-TLV ">
          <t>A Synchronization Sub-TLV allows a headend to request 
             the synchronization of a set of M dependent or independent 
             SR path requests. 
             This TLV is similar to the SVEC Object defined in <xref target="RFC5440"/>.
             It is optional and has the following format.</t>

          <t><figure>
              <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Length    |        Flags            |S|N|L|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Request-ID No1                        |
:                                                               :
|                         Request-ID NoM                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>where:</t>

          <t><list style="symbols">
              <t>Type: TBD2</t>

              <t>Length: specifies the length of the value field 
                 not including Type and Length fields.</t>

              <t>Flags (16 bits): Defines the potential dependency among a
              set of SR paths (i.e., segment lists). 
              Three flags are defined as follows:

                <list style="symbols">
                  <t>L (Link diverse) bit: when set, it indicates that the
                  computed SR paths (i.e., segment lists) MUST NOT
                  have any link in common.</t>

                  <t>N (Node diverse) bit: when set, it indicates that the
                  computed SR paths (i.e., segment lists) MUST NOT
                  have any node in common.</t>

                  <t>S (SRLG diverse) bit: when set, it indicates that the
                  computed SR paths (i.e., segment lists) MUST NOT
                  share any SRLG (Shared Risk Link Group).</t>
                </list></t> 

               <t>Request-ID No1, ..., NoM: each of which uniquely 
                  identifies one of M SR path requests.</t>
            </list> </t>

          <t>In case of M synchronized independent
             path requests, the bits L, N, and S are set to zero.</t>

          <t>Unassigned flags MUST be set to zero on transmission and MUST be
             ignored on receipt.</t>
        </section>

        <section anchor="fewqe" title="Metric Sub-TLV ">
          <t>A Metric Sub-TLV carries the same content as a Metric Object
          defined in <xref target="RFC5440"/> and <xref
          target="I-D.ietf-pce-segment-routing"/>. It has
          following format:</t>

          <t><figure>
              <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Type     |     Length    |    Flags  |C|B|       T       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Metric-Value (4 octets)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t><list style="symbols">
              <t>Type: TBD3.</t>

              <t>Length: specifies the length of the value field not including
                 Type and Length fields.</t>

              <t>Flags (8 bits): Two flags are currently defined: <list
                  style="symbols">
                  <t>B (Bound - 1 bit): When set, the
                  metric-value indicates a bound (a maximum) for the path
                  metric that must not be exceeded for the headend to consider
                  the computed path as acceptable. The path metric must be
                  less than or equal to the value specified in the
                  metric-value field. When the B flag is cleared, the
                  metric-value field is not used to reflect a bound
                  constraint.</t>

                  <t>C (Computed Metric - 1 bit): When set,
                  it indicates that the controller MUST provide the
                  computed path metric value (should a path satisfying the
                  constraints be found) in the advertisement message for the
                  corresponding metric.</t>

                  <t>Unassigned flags MUST be set to zero on transmission and
                  MUST be ignored on receipt.</t>
                </list></t>

              <t>T (Type - 8 bits): Specifies the metric type. 
                 Four metric types are currently defined:
                 <list style="symbols">

                  <t>T=1: IGP metric</t>

                  <t>T=2: TE metric</t>

                  <t>T=3: Hop Counts</t>

                  <t>T=11: Maximum SID Depth of the requested path</t>
                </list></t>

              <t>Metric-Value (32 bits): It is a metric value encoded in 32 bits
              IEEE floating point format (see [IEEE.754.1985]).</t>
            </list></t>
        </section>

        <section anchor="fewq44" title="Include Route Sub-TLV ">
          <t>The Include Route Sub-TLV is optional and can be used to
          specify that the computed candidate path MUST traverse a set of
          specified network elements. The Include Route Sub-TLV carries the
          same content as IRO Object defined in<xref target="RFC5440"/>, <xref
          target="RFC3209"/> and SR-ERO defined in <xref
          target="I-D.ietf-pce-segment-routing"/></t>

          <t>The Include Route Sub-TLV has following format:</t>

          <t><figure>
              <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Type     |    Length     |   NT  |        Flags  |F|S|C|M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                          SID (optional)                       ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                   NAI (variable, optional)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>Where:</t>

          <t><list style="symbols">
              <t>Type: TBD4.</t>

              <t>Length: It specifies the length of the value field not including
              Type and Length fields.</t>

              <t>NAI Type (NT): It indicates the type and format of the NAI
              contained, if any is present.
              If the F bit is set to zero, then the NT field has no meaning 
              and MUST be ignored by the receiver.  
              This document describes the following NT values: <list
                  style="symbols">
                  <t>NT=0: The NAI is absent.</t>

                  <t>NT=1: The NAI is an IPv4 node ID.</t>

                  <t>NT=2: The NAI is an IPv6 node ID.</t>

                  <t>NT=3: The NAI is an IPv4 adjacency.</t>

                  <t>NT=4: The NAI is an IPv6 adjacency with global IPv6
                  addresses.</t>

                  <t>NT=5: The NAI is an unnumbered adjacency with IPv4 node
                  IDs.</t>

                  <t>NT=6: The NAI is an IPv6 adjacency with link-local IPv6
                  addresses.</t>
                </list></t>

              <t>SID and NAI are the same as SR-ERO defined in <xref
              target="I-D.ietf-pce-segment-routing"/></t>
            </list></t>
        </section>

        <section title="Load Balance Sub-TLV ">
          <t>A Load Balance Sub-TLV specifies how many SR paths 
           (i.e., segment lists) should
           be computed for a path request. It has following format:</t>

          <t><figure>
              <artwork><![CDATA[0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Length    |     Flag      |   Max-Slist   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                       Optional sub-TLVs                       ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>Where:</t>

          <t><list style="symbols">
              <t>Type: TBD5.</t>

              <t>Length: It specifies the length of the value field not including
              Type and Length fields.</t>

              <t>Flags (8 bits): No flag is currently defined. The Flags field
              MUST be set to zero on transmission and MUST be ignored on
              receipt.</t>

              <t>Max-Slist (8 bits): It indicates the maximum number of 
              SR paths (i.e., segment lists) to be computed for the request.
              The load is distributed among these SR paths.</t>

              <t>Optional sub-TLVs: No Optional sub-TLV is currently defined.</t> 
<!-- 
             <t>If bandwidth can
              be reserved for a SR-Policy candidate path or different
              load-balancing principle among segment lists for diferent
              weight, additional sub-TLVs can be defined.</t>
-->
            </list></t>
        </section>
        <section title="Request Parameter Sub-TLV">
          <t>A Request Parameter (RP) Sub-TLV specifies the request identifier 
             and other parameters for a path request. It has the format below.
          </t>
          <t><figure>
              <artwork><![CDATA[0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Length    |     Flags               |O|B|R|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Request-ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                       Optional sub-TLVs                       ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
            </figure></t>

          <t>Where:</t>
          <t><list style="symbols">
              <t>Type: TBD6.</t>

              <t>Length: It specifies the length of the value field not including
              Type and Length fields.</t>

              <t>Flags (16 bits): Three flag bits are currently defined 
                 as follows: 
                 <list style="symbols">
                   <t>R (Reoptimization - 1 bit): when set, 
                        it indicates that the SR path request message is 
                        for the reoptimization of an existing SR path, 
                        which is represented by a segment list Sub-TLV in 
                        the message.</t>
                   <t>B (Bi-directional - 1 bit): when set, 
                        it indicates that the SR path request relates to
                        bi-directional paths that has the same traffic 
                        engineering requirements including fate sharing, 
                        TE links, and other requirements (such as latency and 
                        jitter) in each direction.</t>
                   <t>O (strict/loose - 1 bit): when set, 
                        it indicates that a loose path is acceptable.  
                        Otherwise (i.e., when cleared), it indicates that 
                        a path exclusively made of strict hops is required.
                   </t>
                 </list>
              </t>
            </list> </t>

        </section>
      </section>
    </section>

    <section title="IANA">
      <t>Under Existing Registry Name: 
      "BGP Tunnel Encapsulation Attribute Sub-TLVs", 
      IANA is requested to assign new Sub-TLV values for 
      SR Path Request as follows: </t>

      <t><figure>
          <artwork><![CDATA[+------------+-----------------------------+-------------------+
| Type Value |       Sub-TLV Name          |    Reference      |
+------------+-----------------------------+-------------------+
|   TBD1     | SR Path Attributes Sub-TLV  |   This document   |
+------------+-----------------------------+-------------------+
|   TBD2     | Synchronization Sub-TLV     |   This document   |
+------------+-----------------------------+-------------------+
|   TBD3     | Metric Sub-TLV              |   This document   |                         
+------------+-----------------------------+-------------------+
|   TBD4     | Include Route Sub-TLV       |   This document   |                         
+------------+-----------------------------+-------------------+
|   TBD5     | Load Balance Sub-TLV        |   This document   |                         
+------------+-----------------------------+-------------------+
|   TBD6     | Request Parameters Sub-TLV  |   This document   |                         
+------------+-----------------------------+-------------------+]]></artwork>
        </figure></t>
    </section>

    <section anchor="Contributors" title="Contributors">
      <t>TBD</t>
    </section>

    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>TBD</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.I-D.ietf-idr-segment-routing-te-policy'?>

      <?rfc include='reference.I-D.ietf-spring-segment-routing-policy'?>
      <?rfc include='reference.RFC.2119'?>
      <?rfc include='reference.RFC.5440'?>
      <?rfc include='reference.RFC.8281'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-idr-tunnel-encaps'?>

      <?rfc include='reference.RFC.3209'?>

      <?rfc include='reference.I-D.ietf-pce-segment-routing'?>

      <?rfc include='reference.RFC.4090'?>
      <?rfc include='reference.RFC.4760'?>
      <?rfc include='reference.RFC.5420'?>
    </references>
  </back>
</rfc>
