<?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" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY RFC7950 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7950.xml">
<!ENTITY RFC7149 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7149.xml">
<!ENTITY RFC7426 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7426.xml">
<!ENTITY RFC8299 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8299.xml">
<!ENTITY RFC8309 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8309.xml">
<!ENTITY RFC8340 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8340.xml">
<!ENTITY RFC8453 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8453.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8345 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8345.xml">
]>
<?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. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?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="4"?>
<!-- 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-he-rtgwg-wan-fcn-00" ipr="trust200902">
  <front>
    <title>Fast Congestion Notification (FCN) in Wide Area Network (WAN)
    Interconnecting RoCEv2 Networks</title>

    <author fullname="Xiaoming He" initials="X." surname="He">
      <organization>China Telecom</organization>

      <address>
        <email>hexm4@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Ke Ruan" initials="K." surname="Ruan">
      <organization>China Telecom</organization>

      <address>
        <email>ruanke@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Xiao Min" initials="X." surname="Min">
      <organization>ZTE Corp.</organization>

      <address>
        <email>xiao.min2@zte.com.cn</email>
      </address>
    </author>

    <author fullname="Lijie Deng" initials="L." surname="Deng">
      <organization>China Telecom</organization>

      <address>
        <email>denglj4@chinatelecom.cn</email>
      </address>
    </author>

    <date year="2026"/>

    <area>RTGWG</area>

    <workgroup>RTGWG Working Group</workgroup>

    <keyword>Fast Congestion Notification in WAN</keyword>

    <abstract>
      <t>Wide Area Network (WAN), when interconnecting RoCEv2 networks, needs to meet the performance requirements of "high throughput, low latency, and
      minimal packet loss". This document describes a solution to Fast
      Congestion Notification (FCN) in WAN interconnecting RoCEv2 networks,
      especially applicable to tunnel encapsulation.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="Introduction" title="Introduction">
      <t>Remote Direct Memory Access (RDMA) is a method of accessing memory on
      a remote system without interrupting the processing of the Central
      Processing Unit (CPU) on that system. RDMA enables lower latency and
      higher throughput on the network and lower CPU utilization for the
      servers and storage systems. Currently, RoCEv2 (RDMA over Converged
      Ethernet Version 2)[IBTA-Spec] is widely deployed in lossless networks
      in intelligent computing centers, providing packet loss free data
      transmission services for high-performance computing (HPC) and AI model
      training and inference scenarios.</t>

      <t>With the rapid growth in demand for computing and storage resources
      in AI big models and distributed storage, intelligent computing centers
      are interconnected through wide area networks (WANs) to provide
      multi-DCs collaboration to compensate for the limitations of
      insufficient computing and storage resources in a single DC, and improve
      resource utilization. The interconnection of artificial intelligence
      Data Centers (AIDCs) through WANs are becoming a new network structure
      gradually accepted by the industry, providing wide area lossless
      transmission for emerging application scenarios.</t>

      <t>WAN, when interconnecting RoCEv2 networks, is required to meet the
      performance of "high throughput, low latency, and near-zero packet
      loss", [I-D.ietf-rtgwg-net-notif-ps] describes the existing problems and
      the need of fast network notification solutions. The RoCEv2 networks
      often implement a proactive congestion control mechanism based on
      Explicit Congestion Notification (ECN) [RFC3168]. The ECN-marked packets
      are routed to the destination (receiver). Then the receiver alerts the
      source (sender) by sending Congestion Notification Packets (CNP). After
      receiving the CNP, the sender slows down the sending rate immediately to
      mitigate congestion. This mechanism introduces Round- Trip-Time (RTT)
      delay and can be slow for the sender to take action.
      [I-D.xiao-rtgwg-rocev2-fast-cnp] defines a RoCEv2 Fast Congestion
      Notification Packet (Fast CNP), which can be sent by a congested network
      node to the traffic sender directly.
      [I-D.xiao-rtgwg-proxy-congestion-notification] introduce a proxy network
      node between the congested node and the traffic sender, in which the
      congested node sends the congestion notification to the proxy node, and
      then the proxy node translates the received congestion notification and
      resends the translated congestion notification to the traffic
      sender.</t>

      <t>This document describes a solution to Fast Congestion Notification
      (FCN) in WAN interconnecting RoCEv2 networks, especially applicable to
      tunnel encapsulation.</t>
    </section>

    <section title="Conventions">
      <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 title="Terminology">
        <t>Abbreviations used in this document:</t>

        <t>AI: Artificial Intelligence</t>

        <t>AIDC: Artificial Intelligence Data Center</t>

        <t>CNP: Congestion Notification Packet</t>

        <t>DC: Data Center</t>

        <t>ECN: Explicit Congestion Notification</t>

        <t>FCN: Fast Congestion Notification</t>

        <t>P: Provider</t>

        <t>PE: Provider Edge</t>

        <t>QP: Queue Pair</t>

        <t>RDMA: Remote Direct Memory Access</t>

        <t>RoCEv2: RDMA over Converged Ethernet version 2</t>

        <t>SR-MPLS: Segment Routing over Multiprotocol Label Switching</t>

        <t>SRH: Segment Routing Header</t>

        <t>SRv6: Segment Routing over IPv6</t>

        <t>VXLAN: Virtual Extensible Local Area Network</t>

        <t>WAN: Wide Area Network</t>
      </section>
    </section>

    <section title="RoCEv2 Data Packet and CNP formats">
      <t>RoCEv2 packets use a well-known UDP Destination Port number 4791 that
      unambiguously distinguishes them in a stateless manner. RoCEv2 data
      packet format is shown in Figure 1.<figure
          title="RoCEv2 Data Packet Format">
          <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                        Ethernet Header                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                          IPv6 Header                          ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                           UDP Header                          ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~            InfiniBand Base Transport Header (12 Bytes)        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                            Payload                            ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Invariant CRC                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              FCS                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                                                                                                                                                                                                                
          ]]></artwork>
        </figure></t>

      <t>Within the InfiniBand Base Transport Header, there is a 24-bit field
      called Destination Queue Pair (Destination QP), indicating the Work
      Queue Pair Number at the destination. The QP consists of a Send Work
      Queue and a Receive Work Queue. Send and receive queues are always
      created as a pair when the connection is estabilished and remain that
      way throughout their lifetime. A Queue Pair is identified by its Queue
      Pair Number.</t>

      <t>The Source QP indicating the Work Queue Pair at the source is not
      contained in the InfiniBand Base Transport Header. It is because both
      the sender and the receiver know the binding relationship between the
      Source QP and the Destination QP.</t>

      <t>RoCEv2 Congestion Notification Packet (CNP) format is shown in Figure
      2. <figure title="RoCEv2 Congestion Notification Packet Format">
          <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                        Ethernet Header                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                          IPv4/6 Header                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                           UDP Header                          ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~      InfiniBand Base Transport Header (12 bytes)              ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                    Reserved (16 bytes)                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Invariant CRC                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              FCS                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]></artwork>
        </figure></t>

      <t>The RoCEv2 CNP is generated by the receiver after receiving RoCEv2
      data packet with ECN bits set. The Destination QP of the RoCEv2 CNP is
      set to the Work Queue Pair Number at the sender, corresponding to the
      Source QP of the sender.</t>

      <t>After the sender receives the RoCEv2 CNP, the sender would reduce the
      transmission rate at which it sends the RoCEv2 data packets to the
      receiver. The congestion control algorithm used by the sender is outside
      the scope of this document.</t>
    </section>

    <section title="FCN in WANs">
      <t>Typically, two AIDCs based on RoCEv2 network are interconnected through a
      WAN, where the DC gateway in each AIDC is directly connected to the
      respective PE in the WAN. VPN tunnels (e.g., SR-MPLS, SRv6, VXLAN) are
      established between the ingress PE and egress PE to carry massive RoCEv2
      traffic between DCs, as shown in Figure 3.<figure
          title="AIDCs Interconnected Through WANs">
          <artwork><![CDATA[                                                                                                                                                                                                                                                                                                                                            
             +------------------------------------------+              
             |       |     FCN       |                  |              
             |       |<--------------|                  |                     
 +--------+  |   +-------+     +-------+     +-------+  |   +--------+ 
 |DC1     |==|==>|  PE1  |====>|P1...Pn|====>|  PE2  |==|==>|DC2     | 
 |Gateway |  |   |       |     |       |     |       |  |   |Gateway | 
 +----^---+  |   +-------+     +-------+     +-------+  |   +--------+ 
      |      |      |            WAN                    |       |      
      |      +------|-----------------------------------+       |      
 +----------+       |                                     +-----v----+ 
 |  AIDC 1  |       |                                     |  AIDC 2  | 
 |          |       | CNP                                 |          | 
 +----^-----+       |                                     +----------+ 
      |             |                                           |      
 +--------+         v                                       +---v----+ 
 | Sender |------------                                     |Receiver| 
 +--------+                                                 +--------+                                                                                                                                                                                                                                                                                                                                                                                                                                                            
          ]]></artwork>
        </figure></t>

      <t>Fast Congestion Notification (FCN) is generated by a congested node
      in WAN, but not generated by the receiver. When a network node in WAN
      encounters network congestion, it's difficult for the congested node to
      send a congestion notification message to the sender directly, because
      there exist different routing domains between WAN and AIDC. Instead, the
      congested node sends congestion notification packets (CNPs) to the
      ingress PE firstly. The ingress PE translates the received CNPs to a
      standard format known by the sender and then resends the translated
      congestion notification message to the sender.</t>

      <section title="Technical requirements for WAN">
            <t>During the process of establishing a session connection between the sender and the receiver, 
            Ingress PE needs to learn and maintain the connection relationship between the source IP address and destination IP address pair and the Work
      Queue Pair, including source QP and destination QP.</t>

        <t>Assuming that the sender supports congestion management, and it
        sends all RoCEv2 packets with the ECN field in the IP header set to
        "01" or "10".</t>

        <t>When the ingress PE receives RoCEv2 packets originated by the sender from the AIDC, the
        technical requirements for the ingress PE are as follows. <list
            style="symbols">          
            <t>Ingress PE is REQUIRED to parse RoCEv2 packet header, including the
            InfiniBand Base Transport Header. It then extracts the source IP
            address, the destination IP address and the Destination QP
            from RoCEv2 packet header to obtain the packt flow information, and
            randomly assign a locally unique Flow Label value to this RoCEv2
            packet flow. At the same time, it is REQUIRED to dynamically
            maintain the mapping table between the RoCEv2 packet flow and
            corresponding flow label: {source IP address, destination IP
            address, source QP, destination QP; Flow Label}. Also, it should maintain a
            timeout timer to monitor when the flow terminates. If the timer
            has timed out and any RoCEv2 packet from this flow has not been
            received, clear this flow mapping table and release the
            corresponding memory space.</t>

            <t>Ingress PE is REQUIRED to encapsulate the RoCEv2 packet with an outer
            IPv6 header, with the source address being the IP address of the
            ingress PE and the destination address determined by the tunnel
            encapsulation method. For instance, if it is the VXLAN tunnel, the
            destination address is the IP address of the egress PE; if it is
            the SRv6 tunnel, the destination address is the first SID of SRH.
            At the same time, the assigned flow label value MUST be populated
            into the Flow Label field of the outer IPv6 header, while the flow
            label value in the original RoCEv2 packet header (if there is an
            IPv6 packet header) remains unchanged. In addition, the ECN field
            within the out IPv6 header MUST be set to the same value as the
            ECN field within the IP header of the original RoCEv2 packet. It
            then send RoCEv2 packets with the tunnel encapsulation through WAN.</t>
          </list></t>

        <t>When a network node in WAN (execpt the ingress PE) encounters
        congestion, the technical requirements for the congested node are as
        follows. <list style="symbols">
            <t>The congested node determines whether the sender supports
            congestion management, based on the ECN field of the outer IPv6
            header. If congestion management is supported, then it is REQUIRED
            to extract the Flow Label field of the outer IPv6 header of the
            encapsulated RoCEv2 packet causing congestion, and generate a Fast
            Congestion Notification Packet (Fast CNP), with the source address
            being the IP address of the congested node and the destination
            address being the IP address of the ingress PE (i.e., the source
            address of the encapsulated packet). Then it sends this Fast CNP
            to the ingress PE. Generally, the frequency of sending Fast CNP
            depends on the degree of congestion, and the more severe the
            congestion, the more frequently Fast CNP is sent. How often Fast
            CNP is sent is outside the scope of this document.</t>

            <t>The above Fast CNP MUST carry the flow label information of the
            RoCEv2 flow that caused congestion, as well as the optional
            congestion level. The Fast CNP format is defined in Section 4.2.</t>

            <t>If the ingress PE encounters congestion, It directly sends a
            standard CNP to the sender.</t>
          </list></t>

        <t>When the ingress PE receives a Fast CNP, the technical requirements
        for the ingress PE are as follows. <list style="symbols">
            <t>Ingress PE is REQUIRED to extract the Flow Label as well as the
            optional congestion level information from the Fast CNP. Based
            on the dynamically maintained mapping table between the RoCEv2
            packet flow and corresponding flow label, obtain the corresponding RoCEv2 packet flow information and regenerate the standard
            CNP for the RoCEv2 network. The source address of the CNP packet
            is the IP address of the ingress PE, and the destination address
            is the source IP address of the original RoCEv2 packet, inferred
            from the correlation between the flow label and the source IP
            address in the mapping table. At the same time, the source QP
            in the mapping table is populated into the destination QP
            field of the InfiniBand Base Transport Header in the standard
            CNP. The ingress PE then resends the standard CNP to the traffic sender.</t>
          </list></t>

        <t>On receiving the standard CNP, the
        sender can determine the source QP of the RoCEv2 flow causing
        congestion, based on the destination QP (i.e., the source QP of the sender)
            field of the InfiniBand Base Transport Header in the standard
            CNP, and then implement congestion control, slowing
        down the packet injection for the source QP of the RoCEv2 flow causing
        congestion.</t>
      </section>

      <section title="Fast CNP Format">
        <t>The congestion notification message sent from the congested node to
        the ingress PE is a UDP message formatted in Figure 4. <figure
            title="Fast CNP Format">
            <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        UDP Source Port        |  UDP Destination Port = TBD1  |
   +-------------------------------+-------------------------------+
   |           UDP Length          |          UDP Checksum         |
   +-------------------------------+-------------------------------+
   |         Flow Label (20 bit)           |  CL  |     Rvd        |
   +---------------------------------------------------------------+
        ]]></artwork>
          </figure></t>

        <t>The UDP header as specified in [RFC768] includes the UDP source
        port, UDP destination port, UDP length, and UDP checksum. A well-known
        UDP destination port (TBD1) needs to be allocated for this Fast CNP.
        UDP Length is the length in octets of this datagram including UDP
        header and the data. The data field is 4 bytes, containing 20-bit Flow
        Label, 3-bit CL (Congestion Level) and 9-bit Rvd (Reserved) field.
        Thus UDP Length of this Fast CNP is 12.</t>

        <t>The 20-bit Flow Label field indicates the RoCEv2 packet flow
        causing congestion. The flow label value within the outer IPv6 header
        of the encapsulated RoCEv2 packet causing congestion is populated into
        this 20-bit Flow Label field. Optionally, this flow label value is
        also copied into Flow Label field of IPv6 header in this Fast CNP.</t>

        <t>The 3-bit Congestion Level field indicates the congestion level.
        Value 1 represents the lowest congestion level and value 7 represents
        the highest congestion level. This is an optional field, when not
        used, it can be set to value 0.</t>

        <t>The 9-bit Reserved field is for future use. It MUST be set to "0"
        on transmission and and ignored on receipt.</t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests a well-known UDP port number TBD1 from the
      System Ports range of the "Service Name and Transport Protocol Port
      Number" registry [RFC6335] is requested to be assigned to the Fast
      Congestion Notification. Specifically, IANA is requested to assign a UDP
      port as shown below for which the Assignee and Contact is the IESG and
      the IETF Chair, respectively.</t>

      <t><artwork><![CDATA[
   +==============+========+===========+===============+===============+
   | Service Name | Port   | Transport | Description   | Reference     |
   |              | Number | Protocol  |               |               |
   +==============+========+===========+===============+===============+
   |    Fast      |        |           |   Receiver    |               |
   | Congestion   | TBD1   |   UDP     |   Port for    | This document |
   | Notification |        |           |   Fast CNP    |               |
   +--------------+--------+-----------+---------------+---------------+]]></artwork></t>

    </section>

    <section anchor="scecurity" title="Security Considerations">
      <t>The Fast CNP MUST be applied in a specific controlled domain. A
      limited administrative domain provides the network administrator with
      the means to select, monitor, and control the access to the network,
      making it a trusted domain.</t>

      <t>To avoid potential Denial-of-Service (DoS) attacks, it is RECOMMENDED
      that implementations apply rate-limiting policies when generating Fast
      CNPs.</t>

      <t>A deployment MUST support the configuration option to enable or
      disable the Fast CNP feature defined in this document. By default, the
      Fast CNP feature MUST be disabled.</t>

    </section>
  </middle>

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

      <?rfc include="reference.RFC.8126.xml"?>

      <?rfc include="reference.RFC.8174.xml"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.3168.xml"?>

      <?rfc include="reference.I-D.ietf-rtgwg-net-notif-ps.xml"?>

      <?rfc include="reference.I-D.xiao-rtgwg-rocev2-fast-cnp.xml"?>

      <?rfc include="reference.I-D.xiao-rtgwg-proxy-congestion-notification.xml"?>

      <reference anchor="IBTA-Spec"
                 target="https://www.infinibandta.org/ibta-specification/">
        <front>
          <title>InfiniBand Architecture Specification Volume 1, Release
          1.4</title>

          <author>
            <organization>InfiniBand Trade Association</organization>
          </author>

          <date year="2020"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>