<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xf-pce-cats-service-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="PCEP Extensions for CATS Service ">PCEP Extensions for Computing-Aware Traffic Steering (CATS) Service</title>
    <seriesInfo name="Internet-Draft" value="draft-xf-pce-cats-service-00"/>
    <author initials="Q." surname="Xiong" fullname="Quan Xiong">
      <organization>ZTE Corporation</organization>
      <address>
        <email>xiong.quan@zte.com.cn</email>
      </address>
    </author>
    <author initials="H." surname="Fu" fullname="Huakai Fu">
      <organization>ZTE Corporation</organization>
      <address>
        <email>fu.huakai@zte.com.cn</email>
      </address>
    </author>
    <date year="2025" month="December" day="04"/>
    <workgroup>pce</workgroup>
    <abstract>
      <?line 38?>

<t>The CATS (Computing-Aware Traffic Steering) can steer traffic between clients of a service and sites
offering the service. The C-PS may be deployed as a PCE and the ingress CATS-Router could be viewed as a PCC. 
This document proposes the PCEP extensions for selecting and distributing the paths for CATS services.</t>
    </abstract>
  </front>
  <middle>
    <?line 44?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC5440"/> describes the Path Computation Element Protocol (PCEP) which is used between a Path Computation Element (PCE) 
and a Path Computation Client (PCC) (or other PCE) to enable computation of Multi-protocol Label Switching (MPLS) for 
Traffic Engineering Label Switched Path (TE LSP).  PCEP Extensions for the Stateful PCE Model <xref target="RFC8231"/> describes a set 
of extensions to PCEP to enable active control of MPLS-TE and Generalized MPLS (GMPLS) tunnels.</t>
      <t>The CATS (Computing-Aware Traffic Steering) as per <xref target="I-D.ietf-cats-framework"/> can steer traffic between clients of a 
service and sites offering the service. The CATS service may be steered from an Ingress CATS-Router to an Egress CATS-Router
while using an anycast IP address as the Computing-aware Service ID (CS-ID) associated with a service. And the CATS Service
Contact Instance ID (CSCI-ID) is representing a specific service contact instance which serves the service request.
The C-PS may be deployed as a PCE and the ingress CATS-Router could be viewed as a PCC. This document proposes the PCEP
extensions for selecting and distributing the paths for CATS services.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions Used in This Document</name>
      <section anchor="abbreviations">
        <name>Abbreviations</name>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <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 anchor="cats-sr-policy">
      <name>C-PS as a PCE for CATS Service</name>
      <t>As per <xref target="I-D.ietf-cats-framework"/>, a standalone C-PS can be a functional component of a centralized controller or PCE.
And C-PS will collect the metric information from C-SMA and C-NMA and also determine the best paths 
to forward traffic. The metric information from C-NMA may include the topology information.
The C-PS may compute the path associated with the computing metric information.</t>
      <t>The Figure 1 shows an example of C-PS which is deployed as a PCE to select the best path for CATS service. 
The compute information (e.g anycast IP addresses) will be distributed from the Service Sites to the C-PS through
BGP extensions. The PCE may select the egress router based on this information and compute the best path from ingress 
router to the egress node. For example, the path is selected from CATS-Forwarder 1 as ingress node to CATS-Forwarder 2 
as egress node for the CATS service refereed as CS-ID 1 which is also allocated by PCE. Two service sites with service
contact instances represented with CSCI-ID 1 and CSCI-ID 2 are connected to the CATS-Forwarder 2 from the output 
interfaces.</t>
      <artwork><![CDATA[
                             +------+
                     :<------| C-PS |
                     :       | (PCE)|<------+             Service Site 1                   
                     :       +------+       |               +---------+     
                     :          ^           |           +---|CS-ID 1  |     
                     :          |           |           |   |CSCI-ID 1|     
                     :          |  +----------------+   |   +---------+     
                     :          |  |    C-SMA       |---| Service Site 2    
                     :          |  +----------------+   |   +---------+     
                     :          |  |CATS-Forwarder 2|   +---|CS-ID 1  |     
                     :          |  +----------------+       |CSCI-ID 2|     
          +--------+ :          |            |              +---------+     
          | Client | :  Network |  +----------------------+                 
          +--------+ :  metrics |  | +-------+            |     
               |     :          +----| C-NMA |            |     
               |     :             | +-------+            |     
          +----------------+       |    |                 |     
          |CATS-Forwarder 1|<-----------+                 |     
          |(PCC)           |-------|                      |         
          +----------------+       |       Underlay       |         
                                   |     Infrastructure   |   
                                   |                      |    
                                   +----------------------+    

                Figure 1: Example of PCE to Select Service Path for CATS

]]></artwork>
    </section>
    <section anchor="pcep-extensions">
      <name>PCEP Extensions</name>
      <section anchor="lsp-object">
        <name>LSP Object</name>
        <t>The LSP Object is defined in Section 7.3 of <xref target="RFC8231"/>.  This document
   defines a new flag (C-flag) to present the CATS service path for the
   LSP-EXTENDED-FLAG TLV carried in LSP Object as defined in <xref target="RFC9357"/>.</t>
        <t>C (Request for CATS Service Path) : If the bit is set to 1, it
   indicates that the PCC requests PCE to compute the CATS service
   path.  A PCE would also set this bit to 1 to indicate that the
   CATS service path is included by PCE and encoded in the PCRep, PCUpd
   or PCInitiate message.</t>
        <section anchor="cs-id-tlv">
          <name>CS-ID TLV</name>
          <t>The CS-ID TLV is an optional TLV for use in the LSP Object for the allocation
of CATS service identification. The format is as shown below.</t>
          <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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                           CS-ID                               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                           sub-TLVs                            ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     Figure 2: CS-ID TLV 
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>Type: TBD.</t>
            </li>
            <li>
              <t>Length: variable.</t>
            </li>
            <li>
              <t>CS-ID: indicates the identifier associated with the CATS service. 
It is 4 octets which carry a 32-bit unsigned non-zero number in IPv4 
    networks and 16 octets which carry a 128-bit unsigned non-zero number
    in IPv6 networks.</t>
            </li>
          </ul>
        </section>
        <section anchor="csci-id-sub-tlv">
          <name>CSCI-ID Sub-TLV</name>
          <t>The format of CSCI-ID Sub-TLV is shown in Figure 3 as follows:</t>
          <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    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                           CSCI-ID                             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 3: CSCI-ID Sub-TLV 
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>Type: TBD.</t>
            </li>
            <li>
              <t>Length: variable.</t>
            </li>
            <li>
              <t>Flags: 1 octet of flags.  None are defined at this stage.  Flags
SHOULD be set to zero on transmission and MUST be ignored on
receipt.</t>
            </li>
            <li>
              <t>RESERVED: 1 octet of reserved bits.  SHOULD be set to zero on
transmission and MUST be ignored on receipt.</t>
            </li>
            <li>
              <t>CSCI-ID: indicates the identifier for a specific service contact instance.
It is 4 octets which carry a 32-bit unsigned non-zero number in IPv4 networks and
    16 octets which carry a 128-bit unsigned non-zero number in IPv6 networks.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="ero-object">
        <name>ERO Object</name>
        <t>The ERO (Explicit Route Object) specified in <xref target="RFC3209"/> and <xref target="RFC5440"/> can be used to carry a set of computed paths.
   The SR-TE and SRv6-TE paths can be specified by means of SR-ERO subobject as per <xref target="RFC8664"/> and  SRv6-ERO subobject 
   as per <xref target="RFC9603"/>. This document defines a new flag (C-flag) to present the CATS service path for the PCC to identify 
   the egress router associated with the service instances.</t>
        <t>C (Indicate the egress router for CATS service) : If the bit is set to 1, it
   indicates that this node is the egress router associated with the service instances.<br/>
   For example, in SR networks, it indicates the service SID for the egress router in CATS
   when the C is set to 1 which is carried in SR-ERO subobject.</t>
      </section>
    </section>
    <section anchor="operations">
      <name>Operations</name>
      <t>To be discussed in future versions of this document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>To be discussed in future versions of this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC9256">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
        <reference anchor="RFC9830">
          <front>
            <title>Advertising Segment Routing Policies in BGP</title>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <author fullname="D. Jain" initials="D." surname="Jain"/>
            <date month="September" year="2025"/>
            <abstract>
              <t>A Segment Routing (SR) Policy is an ordered list of segments (also referred to as "instructions") that define a source-routed policy. An SR Policy consists of one or more Candidate Paths (CPs), each comprising one or more segment lists. A headend can be provisioned with these CPs using various mechanisms such as Command-Line Interface (CLI), Network Configuration Protocol (NETCONF), Path Computation Element Communication Protocol (PCEP), or BGP.</t>
              <t>This document specifies how BGP can be used to distribute SR Policy CPs. It introduces a BGP SAFI for advertising a CP of an SR Policy and defines sub-TLVs for the Tunnel Encapsulation Attribute to signal information related to these CPs.</t>
              <t>Furthermore, this document updates RFC 9012 by extending the Color Extended Community to support additional steering modes over SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9830"/>
          <seriesInfo name="DOI" value="10.17487/RFC9830"/>
        </reference>
        <reference anchor="RFC5440">
          <front>
            <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
            <author fullname="JP. Vasseur" initials="JP." role="editor" surname="Vasseur"/>
            <author fullname="JL. Le Roux" initials="JL." role="editor" surname="Le Roux"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5440"/>
          <seriesInfo name="DOI" value="10.17487/RFC5440"/>
        </reference>
        <reference anchor="RFC8231">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE</title>
            <author fullname="E. Crabbe" initials="E." surname="Crabbe"/>
            <author fullname="I. Minei" initials="I." surname="Minei"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>The Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.</t>
              <t>Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions. This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8231"/>
          <seriesInfo name="DOI" value="10.17487/RFC8231"/>
        </reference>
        <reference anchor="RFC9357">
          <front>
            <title>Label Switched Path (LSP) Object Flag Extension for Stateful PCE</title>
            <author fullname="Q. Xiong" initials="Q." surname="Xiong"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>RFC 8231 describes a set of extensions to the Path Computation Element Communication Protocol (PCEP) to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP. One of the extensions is the LSP object, which includes a Flag field with a length of 12 bits. However, all bits of the Flag field have already been assigned.</t>
              <t>This document defines a new LSP-EXTENDED-FLAG TLV for the LSP object for an extended Flag field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9357"/>
          <seriesInfo name="DOI" value="10.17487/RFC9357"/>
        </reference>
        <reference anchor="RFC3209">
          <front>
            <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
            <author fullname="D. Awduche" initials="D." surname="Awduche"/>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <author fullname="D. Gan" initials="D." surname="Gan"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <date month="December" year="2001"/>
            <abstract>
              <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3209"/>
          <seriesInfo name="DOI" value="10.17487/RFC3209"/>
        </reference>
        <reference anchor="RFC8664">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing</title>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="J. Hardwick" initials="J." surname="Hardwick"/>
            <date month="December" year="2019"/>
            <abstract>
              <t>Segment Routing (SR) enables any head-end node to select any path without relying on a hop-by-hop signaling technique (e.g., LDP or RSVP-TE). It depends only on "segments" that are advertised by link-state Interior Gateway Protocols (IGPs). An SR path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), an explicit configuration, or a Path Computation Element (PCE). This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) that allow a stateful PCE to compute and initiate Traffic-Engineering (TE) paths, as well as a Path Computation Client (PCC) to request a path subject to certain constraints and optimization criteria in SR networks.</t>
              <t>This document updates RFC 8408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8664"/>
          <seriesInfo name="DOI" value="10.17487/RFC8664"/>
        </reference>
        <reference anchor="RFC9603">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions for IPv6 Segment Routing</title>
            <author fullname="C. Li" initials="C." role="editor" surname="Li"/>
            <author fullname="P. Kaladharan" initials="P." surname="Kaladharan"/>
            <author fullname="S. Sivabalan" initials="S." surname="Sivabalan"/>
            <author fullname="M. Koldychev" initials="M." surname="Koldychev"/>
            <author fullname="Y. Zhu" initials="Y." surname="Zhu"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>Segment Routing (SR) can be used to steer packets through a network using the IPv6 or MPLS data plane, employing the source routing paradigm.</t>
              <t>An SR Path can be derived from a variety of mechanisms, including an IGP Shortest Path Tree (SPT), explicit configuration, or a Path Computation Element (PCE).</t>
              <t>Since SR can be applied to both MPLS and IPv6 data planes, a PCE should be able to compute an SR Path for both MPLS and IPv6 data planes. The Path Computation Element Communication Protocol (PCEP) extension and mechanisms to support SR-MPLS have been defined. This document outlines the necessary extensions to support SR for the IPv6 data plane within PCEP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9603"/>
          <seriesInfo name="DOI" value="10.17487/RFC9603"/>
        </reference>
        <reference anchor="I-D.ietf-cats-framework">
          <front>
            <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Zongpeng Du" initials="Z." surname="Du">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="John Drake" initials="J." surname="Drake">
              <organization>Independent</organization>
            </author>
            <date day="20" month="November" year="2025"/>
            <abstract>
              <t>   This document describes a framework for Computing-Aware Traffic
   Steering (CATS).  Specifically, the document identifies a set of CATS
   functional components, describes their interactions, and provides
   illustrative workflows of the control and data planes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cats-framework-19"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
    </references>
    <?line 223?>



  </back>
  <!-- ##markdown-source:
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
+Q/bg+fYJiUAAA==

-->

</rfc>
