<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-idr-sr-policy-path-segment-15"
     ipr="trust200902" xmlns:xi="http://www.w3.org/2001/XInclude">
  <front>
    <title abbrev="Path ID and Bi-directional Path in BGP">SR Policy
    Extensions for Path Segment and Bidirectional Path</title>

    <author fullname="Cheng Li" initials="C." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>c.l@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>lizhenbin@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Yuanyang Yin" initials="Y." surname="Yin">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street/>

          <city>Guangzhou</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>yinyuany@chinatelecom.cn</email>

        <uri/>
      </address>
    </author>

    <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>chengweiqiang@chinamobile.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Ketan Talaulikar" initials="K." surname=" Talaulikar">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>ketant.ietf@gmail.com</email>

        <uri/>
      </address>
    </author>

    <date year="2026"/>

    <area>Routing Area</area>

    <workgroup>Interdomain Routing Working Group</workgroup>

    <abstract>
      <t>BGP SR Policy address-family is used for signaling of individual
  candidate paths of a Segment Routing Policy. This document specifies
  extensions for the signaling of a Path Segment Identifier associated
  with the Segment List(s) of a candidate path. It also specifies
  extensions for the signaling of the Segment List(s) in the reverse
  direction when Bidirectional SR Policies are used. </t>
    </abstract>

  </front>

  <middle>
    <section title="Introduction">
   <t>Segment Routing (SR) <xref target="RFC8402"/> is a source routing paradigm that
   explicitly indicates the forwarding path for packets at the ingress
   node.  The ingress node steers packets into a specific path according
   to the SR Policy as defined in <xref target="RFC9256"/>. BGP SR Policy SAFI <xref target="RFC9830"/>
   is used for the signaling of SR Policy candidate paths to headend nodes.</t>

   <t>In many use cases such as performance measurement, the path to which
   the packets belong is required to be identified.  In some scenarios,
   (e.g., Mobile backhaul transport networks), there are Requirements to
   support bidirectional path.  This document defines the extensions to
   BGP SR Policy address-family <xref target="RFC9830"/> to signal Path Segment for
   individual Segment List and the Reverse Segment List to support 
   instantiation of bidirectional SR Policies.</t>

   <t>The Path Segment can be a Path Segment in SR-MPLS <xref target="RFC9545"/>
   or SRv6 <xref target="I-D.ietf-spring-srv6-path-segment"/>.</t>


    </section>

    <section title="Terminology">
      <t>This document makes use of the terms defined in <xref target="RFC8402"/>, <xref target="RFC9256"/>, <xref target="RFC9545"/>, and <xref target="RFC9830"/>.  Some of terms are listed below for reference.</t>

      <t><list style="symbols">
          <t>SR: Segment Routing.</t>

          <t>SR-MPLS: Segment Routing over MPLS data plane.</t>

          <t>SRv6: Segment Routing over IPv6 data plane.</t>

          <t>PSID: Path Segment Identifier.</t>

          <t>SRPM: SR Policy Module.</t>
        </list></t>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in BCP
        14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>
    </section>

    <section title="Overview">
      <t>As defined in <xref target="RFC9830"/>, the SR Policy Candidate Path encoding
   structure is as follows:</t>

      <t><figure>
      <name>SR Policy Candidate Path encoding structure</name>
          <artwork align="left"><![CDATA[
   SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
   Attributes:
      Tunnel Encaps Attribute (23)
         Tunnel Type: SR Policy
             Binding SID
             Preference
             Priority
             Policy Name
             Explicit NULL Label Policy (ENLP)
             Segment List
                 Weight
                 Segment
                 Segment
                 ...
             ...
]]></artwork>
        </figure></t>

      <t>As defined in <xref target="RFC9256"/>, a candidate path includes multiple segment list
   specified by SID list. A Path Segment <xref target="RFC9545"/> <xref target="I-D.ietf-spring-srv6-path-segment"/> can be used for identifying
   a segment list, candidate path, or SR Policy (depending on its context) 
   at the endpoint (i.e., tail-end) of a SR Policy.</t>

   <t>A Segment List Sub-TLV that contains a set of segment Sub-TLVs and 
   other Sub-TLVs as shown in <xref target="SR Policy encoding structure with Path Segment Sub-TLVs"/>. This document defines a new Path Segment Sub-TLV within Segment List Sub-TLV as described in section
   3.1.  </t>

   <t>The new SR Policy encoding structure with Path Segment Sub-TLV is expressed as below:</t>

      <t><figure anchor="SR Policy encoding structure with Path Segment Sub-TLVs">
      <name>SR Policy encoding structure with Path Segment Sub-TLVs</name>
          <artwork align="left"><![CDATA[
   SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
   Attributes:
      Tunnel Encaps Attribute (23)
         Tunnel Type: SR Policy
             Binding SID
             Preference
             Priority
             Policy Name
             Explicit NULL Label Policy (ENLP)
             Segment List
                 Weight
                 Path Segment
                 Segment
                 Segment
                 ...
             Segment List
                 Weight
                 Path Segment
                 Segment
                 Segment
                 ...
             ...

]]></artwork>
        </figure></t>

      <t>In some scenariose, for example, mobile backhaul transport network,
      there are requirements to support bidirectional path. In SR, a
      bidirectional path can be represented as a binding of two unidirectional
      SR paths. 
      This document also defines a Reverse Segment List Sub-TLV to
      describe the reverse path. 
      <strong> When a SR policy includes a bidirectional path, both the forward and reverse segment lists MUST be encoded in the BGP UPDATE message as adjacent Sub-TLVs under the Tunnel Encapsulation attribute. </strong>
      An SR policy carrying SR bidirectional path
      information is expressed as below:</t>

      <t><figure>
      <name>SR Policy carrying SR bidirectional path information</name>
          <artwork align="left"><![CDATA[
    SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
        Attributes: Tunnel Encaps Attribute (23)
        Tunnel Type: SR Policy
            Binding SID
            Preference
            Priority
            Policy Name
            Explicit NULL Label Policy (ENLP)
            Segment List 
                Weight
                Path Segment
                Segment
                Segment
                ...
            Reverse Segment List
                Path Segment
                Segment
                Segment
                ...
]]></artwork>
        </figure></t>

      
    </section>

    <section title="BGP Extensions">
      
    <section title="SR Path Segment Sub-TLV">
        <t>An SR Path Segment Sub-TLV is included in the segment list Sub-TLV
        to identify an SID list. It has the following format:</t>

        <t><figure>
        <name>Path Segment Sub-TLV</name>
            <artwork align="center"><![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     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                     Path Segment ID (Variable)                |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //     SRv6 Endpoint Behavior and SID Structure (optional)     //
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>Where:</t>

        <t><list style="symbols">
            <t>Type (TBA1): SR Path Segment Sub-TLV (to be assigned by
            IANA).</t>

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

            <t>Flags: 8 bits of flags. Following flags are defined:</t>
          </list><figure>
            <artwork align="left"><![CDATA[  0  1  2  3  4  5  6  7
 +--+--+--+--+--+--+--+--+
 |    Reserved     |B |L |
 +--+--+--+--+--+--+--+--+
]]></artwork>
          </figure></t>

        <t><list style="symbols">
            <t><list style="symbols">
                <t>L-Flag: Local flag. Set when the Path Segment has local
                significance on an SR node.</t>

                <t>B-Flag: This flag, when set, indicates the presence of the
                SRv6 Endpoint Behavior and SID Structure encoding specified in
                Section 2.4.4.2.4. of <xref
                target="RFC9830"/>. It MUST be ignored
                when the value of length field is smaller than 18.</t>

                <t>The rest bits of Flag are reserved and MUST be set to 0 on
                transmission and MUST be ignored on receipt.</t>
              </list></t>
          </list><list style="symbols">
            <t>Path Segment ID: if the length is 2, then no Path Segment ID is
            present. If the length is 6 then the Path Segment ID is encoded in
            4 octets <xref target="RFC9545"/> using the format below. TC, S,
            TTL (Total of 12 bits) are RESERVED and SHOULD be set to zero and
            MUST be ignored.</t>
          </list></t>

        <t/>

        <t><figure>
        <name>SR-MPLS Path Segment Sub-TLV</name>
            <artwork align="center"><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Path Segment Label            | TC  |S|       TTL     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure></t>

        <t>If the length is 18 then the Path Segment ID contains a 16-octet
        SRv6 Path Segment ID <xref
        target="I-D.ietf-spring-srv6-path-segment"/>.</t>

        <t>If the length is larger than 18 and B-flag is set, then SRv6
        Endpoint Behavior and SID Structure TLVs is included as per Section
        2.4.4.2.4. of <xref target="RFC9830"/>.</t>

        <t>The Path Segment is used to identified an SR path, and it can be used
      in OAM or IOAM use cases. When all the SID Lists within a candidate path
      share the same Path Segment ID, the Path Segment can be used to collect
      the aggregated information of the candidate path. Multiple Path Segment
      MAY be included in a Segment List for different use cases. In SR-MPLS,
      one, or some or all of them MAY be inserted into the SID List as the
      requirement of the use case. However, in SRv6, only one Path Segment ID
      can be encoded in a SRH. Therefore, an implementation MUST decide how to
      choose a Path Segment ID from the multiple Path Segment IDs. In order to
      simplify the implementation, this document suggests to encode only one
      Path Segment Sub-TLV for a segment list, while the rest Path Segment
      SHOULD be ignored.</t>
      </section>
    

      <section title="Reverse Segment List Sub-TLV">
        <t>A Reverse Segment List Sub-TLV is defined to specify an SR
        reverse path associated with the path specified by the Segment List,
        and it has the following format:</t>

        <t><figure>
        <name>SR Reverse Segment List Sub-TLV</name>
            <artwork align="center"><![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            |   RESERVED    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        Sub-TLVs (Variable)                    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>where:</t>

        <t>Type (TBA2): Reverse Segment List Sub-TLV (to be assigned by
        IANA).</t>

        <t>Length: the total length of the Sub-TLVs encoded within the Reverse
        Path Segment List Sub-TLV not including the Type and Length
        fields.</t>

        <t>RESERVED: 1 octet of reserved bits. SHOULD be unset on transmission
        and MUST be ignored on receipt.</t>

        <t>Sub-TLVs, reuse the Sub-TLVs in Segment List defined in <xref
        target="RFC9830"/> and <xref
        target="RFC9831"/>. <list style="symbols">
            <t>One or more mandatory SR Path Segment Sub-TLVs that contains
            the Path Segments of the reverse SR path.</t>

            <t>One or more Segment Sub-TLVs to specify the reverse SR
            path.</t>
          </list></t>

        <t>The Segment sub-TLVs in the Reverse Segment List sub-TLV
        provides the information of the reverse SR path. This Reverse Segment list can be used for directing egress BFD peer to use specific
        path for the reverse direction of the BFD session <xref
        target="RFC9612"/> or other applications.</t>

        <t>A Reverse Segment List TLV MUST immediately follow its corresponding
  Segment List TLV in the attribute as this forms the one-to-one 
  correlation of the forward and reverse segment lists. A Reverse 
  Segment List TLV not encoded in the attribute in this manner MUST be
  considered as malformed. However, a Segment List TLV that is not 
  immediately followed by a Reverse Segment List TLV simply indicates 
  that the forward segment list does not have its corresponding reverse 
  segment list and this condition MUST NOT be considered as an error. </t>
      </section>
    </section>

    <section title="Operations">
      <t>This document defines new Sub-TLVs under the extensions for SR policy
      defined in <xref target="RFC9830"/>, therefore, the
      description of operations defined in <xref
      target="RFC9830"/>, can apply to this document
      directly, including advertisement of SR policies and reception of SR
      policy NLRI.</t>

      <t/>

      <t>Typically but not limit to, the unidirectional or bidirectional SR
      policies carrying path identification infomation are configured by a
      controller.</t>

      <t>After configuration, the unidirectional or bidirectional SR policies
      carrying path identification infomation will be advertised by BGP update
      messages. The operation of advertising this SR policy is the same as
      defined in <xref target="RFC9830"/>, as well as the
      reception.</t>

      <t>The consumer of the unidirectional or bidirectional SR policies is
      not the BGP process, it can be any applications, such as performance
      measurement <xref target="I-D.ietf-spring-stamp-srpm-srv6"/>. The operation
      of sending information to consumers is out of scope of this
      document.</t>

      <t/>
    </section>

    <section title="Error Handling and Fault Management">
      <t> This document extends the error handling defined in <xref target="RFC9830"/> for the
   new TLVs and sub-TLVs introduced herein. In the event of any of the
   TLVs and sub-TLVs introduced in this document being found to be
   malformed, the "Treat-as-withdraw" error handling <xref target="RFC7606"/> MUST be
   performed.</t>
      
      <t>
  The following conditions MUST be considered as making an UPDATE message malformed:
  <ul>
    <li>
      <strong>Path Segment Sub-TLV:</strong> The length of the sub-TLV is not 2/6/18/larger than 18 octets, or the value fields are outside their defined ranges.
    </li>
    <li>
      <strong>Reverse Segment List Sub-TLV:</strong> A Reverse Segment List Sub-TLV is present in the Tunnel Encapsulation Attribute but does not immediately follow a Segment List Sub-TLV.
    </li>
  </ul>
</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines new Sub-TLVs in following registries:</t>

      <t/>

      <section title="Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs">
        <t/>

        <t> <strong> This document defines a new Sub-TLV in the registry "SR Policy Segment List Sub-TLVs" <xref target="RFC9830"/> to be assigned by IANA:  </strong> </t>

        <t><figure>
            <artwork><![CDATA[     Codepoint   Description                           Reference
     -------------------------------------------------------------
     TBA(17)     Path Segment Sub-TLV                  This document

]]></artwork>
          </figure></t>
        
        <t><strong> This document also defines a new Sub-TLV in the registry "BGP Tunnel Encapsulation Attribute sub-TLVs" <xref target="RFC9830"/> to be assigned by IANA:  </strong> </t>

        <t><figure>
            <artwork><![CDATA[     Codepoint   Description                           Reference
     -------------------------------------------------------------
     TBA2     Reverse Segment List Sub-TLV          This document

]]></artwork>
          </figure></t>

      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
<t>The security considerations of RFC 9830 apply to this document.</t>
<t>Additionally, specific to the Path Segment ID and Reverse Path Segment, the Path Segment information is critical to the path, and an incorrect Path Segment ID may cause unexpected forwarding actions and results. Implementations must ensure the correctness of the Path Segment ID value, especially in SR-MPLS networks. Furthermore, the distribution of Path Segment information from a controller to an ingress router must be protected. The security considerations outlined in the Path Segment related documents, such as "draft-ietf-spring-srv6-path-segment" and "RFC 9545", apply to this distribution procedure.</t>

    </section>

    <section title="Contributors">
      <t><figure>
          <artwork><![CDATA[

   Guanming Zeng
   Huawei Technologies
   Huawei Campus, No. 156 Beiqing Rd.
   Beijing  100095
   China

   Email: zengguanming@huawei.com

   Mach(Guoyi) Chen
   Huawei Technologies
   Huawei Campus, No. 156 Beiqing Rd.
   Beijing  100095
   China

   Email: Mach.chen@huawei.com


   Jie Dong
   Huawei Technologies
   Huawei Campus, No. 156 Beiqing Rd.
   Beijing  100095
   China

   Email: jie.dong@huawei.com


   James N Guichard
   Futurewei Technologies
   2330 Central Express Way
   Santa Clara
   USA

   Email: james.n.guichard@futurewei.com

   Huanan Chen
   China Telecom
   109 West Zhongshan Ave
   Guangzhou
   China

   Email: chenhuan6@chinatelecom.cn

]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Many thanks to Shraddha Hedge, Susan Hares for their detailed reviews
      and comments.</t>

      <t/>
    </section>
  </middle>


   <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.8174"?>

      <?rfc include="reference.RFC.7606"?>

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

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

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

      <?rfc include='reference.I-D.ietf-spring-srv6-path-segment'?>

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

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

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

      <?rfc include='reference.RFC.4271'?>
    </references> 

     <references title="Informative References">
      <?rfc include='reference.I-D.ietf-spring-stamp-srpm-srv6'?>

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

    </references>
  </back>


    <!-- <back>
  <references title="Normative References">

    <reference anchor="RFC2119" target="https://doi.org/10.17487/RFC2119">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC4271" target="https://doi.org/10.17487/RFC2119">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC8174" target="https://doi.org/10.17487/RFC8174">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC7606" target="https://doi.org/10.17487/RFC7606">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC9830"
               target="https://datatracker.ietf.org/doc/rfc9830/">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC9256" target="https://doi.org/10.17487/RFC9256">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>


    <reference anchor="RFC9545" target="https://doi.org/10.17487/RFC9545">
  <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="I-D.ietf-spring-srv6-path-segment" target="https://doi.org/10.17487/RFC9544">
  <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>


    <reference anchor="RFC9012" target="https://doi.org/10.17487/RFC9012">
  <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC8402" target="https://doi.org/10.17487/RFC8402">
  <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

<reference anchor="RFC9831" target="https://www.rfc-editor.org/info/rfc9831">
<front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

  </references>

  <references title="Informative References">

<reference anchor="I-D.ietf-spring-stamp-srpm-srv6" target="https://datatracker.ietf.org/doc/html/draft-ietf-spring-stamp-srpm-srv6-00">
    <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

    <reference anchor="RFC9612" target="https://doi.org/10.17487/RFC9612">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner">
          <organization>Harvard University</organization>
        </author>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>

  </references>
</back> -->

</rfc>
