<?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.8 (Ruby 3.0.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lou-rtgwg-sinc-02" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="SINC">Signaling In-Network Computing operations (SINC)</title>
    <seriesInfo name="Internet-Draft" value="draft-lou-rtgwg-sinc-02"/>
    <author initials="D." surname="Lou" fullname="Zhe Lou">
      <organization abbrev="Huawei">Huawei Technologies</organization>
      <address>
        <postal>
          <street>Riesstrasse 25</street>
          <city>Munich</city>
          <code>80992</code>
          <country>Germany</country>
        </postal>
        <email>zhe.lou@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Iannone" fullname="Luigi Iannone">
      <organization abbrev="Huawei">Huawei Technologies France S.A.S.U.</organization>
      <address>
        <postal>
          <street>18, Quai du Point du Jour</street>
          <city>Boulogne-Billancourt</city>
          <code>92100</code>
          <country>France</country>
        </postal>
        <email>luigi.iannone@huawei.com</email>
      </address>
    </author>
    <author initials="Y." surname="Li" fullname="Yizhou Li">
      <organization abbrev="Huawei">Huawei Technologies</organization>
      <address>
        <postal>
          <city>Nanjing</city>
          <country>China</country>
        </postal>
        <email>liyizhou@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Zhang" fullname="Cuimin Zhang">
      <organization abbrev="Huawei">Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei base in Bantian, Longgang District</street>
          <city>Shenzhen</city>
          <country>China</country>
        </postal>
        <email>zhangcuimin@huawei.com</email>
      </address>
    </author>
    <author initials="K." surname="Yao" fullname="Kehan Yao">
      <organization abbrev="China Mobile">China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>yaokehan@chinamobile.com</email>
      </address>
    </author>
    <date/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 188?>

<t>This memo introduces "Signaling In-Network Computing operations" (SINC), a mechanism to enable signaling in-network computing operations on data packets in specific scenarios like NetReduce, NetDistributedLock, NetSequencer, etc. In particular, this solution allows to flexibly communicate computational parameters, to be used in conjunction with the payload, to in-network SINC-enabled devices in order to perform computing operations.</t>
    </abstract>
  </front>
  <middle>
    <?line 192?>

<section anchor="SEC_intro">
      <name>Introduction</name>
      <t>According to the original design, the Internet performs just "store and forward" of packets, and leaves more complex operations at the end-points. However, new emerging applications could benefit from in-network computing to improve the overall system efficiency (<xref target="GOBATTO"/>, <xref target="ZENG"/>). It is different from what the IETF Computing-Aware Traffic Steering (CATS) working group is chartered for service instance selection based on network and compute metrics between clients of a service and sites offering the service. The in-network computing is more about "light" data calculation/operation performed in the network to reduce the computation work load for the end hosts.</t>
      <t>The formation of the COmputing In-Network (COIN) Research Group <xref target="COIN"/>, in the IRTF, encourages people to explore this emerging technology and its impact on the Internet architecture. The "Use Cases for In-Network Computing" document <xref target="I-D.irtf-coinrg-use-cases"/> introduces some use cases to demonstrate how real applications can benefit from COIN and show essential requirements demanded by COIN applications.</t>
      <t>Recent research has shown that network devices undertaking some computing tasks can greatly improve the network and application performance in some scenarios, like for instance aggregating path-computing <xref target="NetReduce"/>, key-value(K-V) cache <xref target="NetLock"/>, and strong consistency <xref target="GTM"/>. Their implementations mainly rely on programmable network devices, by using P4 <xref target="P4"/> or other languages. In the context of such heterogeneity of scenarios, it is desirable to have a generic and flexible framework, able to explicitly signaling the computing operation to be performed by network devices, which should be applicable to many use cases, enabling easier deployment.</t>
      <t>This document specifies such a Signaling In-Network Computing (SINC) framework for, as the name states, in-network computing operation. The computing functions are hosted on network devices, which, in this memo, are generally named as SINC switches/routers.</t>
    </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"/> and <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="SEC_usecases">
      <name>SINC Relevant Use Cases</name>
      <t>Hereafter a few relevant use cases are described, namely NetReduce, NetDistributedLock, and NetSequencer, in order to help understanding the requirements for a framework. Such a framework, should be generic enough to accommodate a large variety of use cases, besides the ones described in this document.</t>
      <section anchor="netreduce">
        <name>NetReduce</name>
        <t>Over the last decade, the rapid development of Deep Neural Networks (DNN) has greatly improved the performance of many applications like computer vision and natural language processing. However, DNN training is a computation intensive and time consuming task, which has been increasing exponentially in the past 10 years. Scale-up techniques concentrating on the computing capability of a single device cannot meet the expectation. Distributed DNN training approaches with synchronous data parallelism like Parameter Server <xref target="PARAHUB"/> and All-Reduce <xref target="MGWFBP"/> are commonly employed in practice, which on the other hand, become increasingly a network-bound workload since communication becomes a bottleneck at scale.</t>
        <t>Comparing to host-oriented solutions, in-network aggregation approaches like SwitchML <xref target="SwitchML"/>, SHArP <xref target="SHArP"/>, and NetReduce <xref target="NetReduce"/> can  potentially reduce to nearly half the bandwidth needed for data aggregation, by offloading gradients aggregation from the host to network switches. However, they are limited to one single specific operation, namely  aggregation.</t>
        <t>SwitchML is designed to implement in-network workers performing data aggregation relying on Remote Direct Memory Access (RDMA) <xref target="ROCEv2"/> and the application layer logic. In principle this allows to repurpose relatively easily the system at the cost of deploying new workers since there is no in-network operation signaling.</t>
        <t>NetReduce <xref target="NetReduce"/> does tackle the same problem like SwitchML, including the use of RDMA, but introduces an In-Network Aggregation (INA) header, allowing easy identification of data fragments. Yet, the only possible operation remains the aggregation, there is no mechanism to signal a different operation.</t>
        <t>SHArP <xref target="SHArP"/>, uses as well RDMA and introduces as well a custom header to simplify in-network handling of the packets. Similarly to NetReduce, SHArP remains a solution targeting only the aggregation function, relying on a rigid tree topology and proposing a header that allows only aggregation function and no other operation, hence, like NetReduce, hard to be converted for other purposes.</t>
      </section>
      <section anchor="netdistributedlock">
        <name>NetDistributedLock</name>
        <t>In the majority of distributed system, the lock primitive is a widely used concurrency control mechanism. For large distributed systems, there is usually a dedicated lock manager that nodes contact to gain read and/or write permissions of a resource. The lock manager is often abstracted as Compare And Swap (CAS) or Fetch Add (FA) operations.</t>
        <t>The lock manager is typically running on a server, causing a limitation on the performance by the speed of disk I/O transaction. When the load increases, for instance in the case of database transactions processed on a single node, the lock manager becomes a major performance bottleneck, consuming nearly 75% of transaction time <xref target="OLTP"/>. The multi-node distributed lock processing superimposes the communication latency between nodes, which makes the performance even worse. Therefore offloading the lock manager function from the server to the network switch might be a better choice, since the switch is capable of managing lock function efficiently. Meanwhile it liberate the server for other computation tasks.</t>
        <t>The test results in NetLock <xref target="NetLock"/> show that the lock manager running on a switch is able to answer 100 million requests per second, nearly 10 times more than what a lock server can do.</t>
      </section>
      <section anchor="netsequencer">
        <name>NetSequencer</name>
        <t>Transaction managers are centralized solutions to guarantee consistency for distributed transactions, such as GTM in Postgre-XL (<xref target="GTM"/>, <xref target="CALVIN"/>). However, as a centralized module, transaction managers have become a bottleneck in large scale high-performance distributed systems. The work by Kalia et al. <xref target="HPRDMA"/> introduces a server based networked sequencer, which is a kind of task manager assigning monotonically increasing sequence number for transactions. In <xref target="HPRDMA"/>, the authors shows that the maximum throughput is 122 Million requests per second (Mrps), at the cost of an increased average latency. 
This bounded throughput will impact the scalability of distributed systems. The authors also test the bottleneck for varies optimization methods, including CPU, DMA bandwidth and PCIe RTT, which is introduced by the CPU centric architecture.</t>
        <t>For a programmable switch, a sequencer is a rather simple operation, while the pipeline architecture can avoid bottlenecks. It is worth implementing a switch-based sequencer, which sets the performance goal as hundreds of Mrps and latency in the order of microseconds.</t>
      </section>
    </section>
    <section anchor="SEC_inet-op">
      <name>In-Network Generic Operations</name>
      <t>The COIN use case draft <xref target="I-D.irtf-coinrg-use-cases"/> illustrates some general requirements for scenarios where the aforementioned use cases belong to. One of the requirements is that any in-network computing system must provide means to specify the constraints for placing execution logic in certain logical execution points (and their associated physical locations). In case of NetReduce, NetDistributedLock, and NetSequencer, data aggregation, lock management and sequence number generation functions can be offloaded onto the in-network device. 
It can be observed that those functions are based on "simple" and "generic" operators, as shown in <xref target="Table_usecases"/>. Programmable switches are capable of performing basic operations by executing one or more operators, without impacting the forwarding performance (<xref target="NetChain"/>, <xref target="ERIS"/>).</t>
      <table anchor="Table_usecases">
        <name>Example of in-network operations.</name>
        <thead>
          <tr>
            <th align="left">Use Case</th>
            <th align="left">Operation</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">NetReduce</td>
            <td align="left">Sum value (SUM)</td>
            <td align="left">The in-network device sums the data together and outputs the resulting value.</td>
          </tr>
          <tr>
            <td align="left">NetLock</td>
            <td align="left">Compare And Swap or Fetch-and-Add (CAS or FA)</td>
            <td align="left">By comparing the request with the status of its own lock, the in-network device sends out whether the host has the acquired the lock. Through the CAS and FA, host can implement shared and exclusive locks.</td>
          </tr>
          <tr>
            <td align="left">NetSequencer</td>
            <td align="left">Fetch-and-Add (FA)</td>
            <td align="left">The in-network device provides a monotonically increasing counter number for the host.</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="SEC_overview">
      <name>SINC Framework Overview</name>
      <t>This section describes the various elements of the SINC framework and explains how they work together.</t>
      <t>The SINC protocol and extensions are designed for deployment in limited domains, such as a data center network, rather than deployment across the open Internet. The requirements and semantics are specifically limited, as defined in the previous sections.</t>
      <t><xref target="Fig_SINCArch"/> shows the overall SINC framework, consisting of Hosts, the SINC Ingress Proxy, SINC switch/router (SW/R), the SINC Egress Proxy and normal switches/routers(if any).</t>
      <figure anchor="Fig_SINCArch">
        <name>General SINC deployment.</name>
        <artwork><![CDATA[
 +---------+                                             +---------+
 | Host A  |                                             | Host B  |
 +---------+                                             +---------+
      |                                                       |
      |                                                       |
 +------------+   +------+   +-----------+   +------+   +-----------+
 |SINC Ingress|   |      |   |           |   |      |   |SINC Egress|
 |Proxy       |-->| SW/R |-->| SINC SW/R |-->| SW/R |-->|Proxy      |
 +------------+   +----- +   +-----------+   +------+   +-----------+        
                                
]]></artwork>
      </figure>
      <t>In the SINC domain, a host MUST be SINC-aware. It defines the data operation to be executed. However, it does not need to be aware of where the operation will be executed and how the traffic will be steered in the network.
The host sends out packets with a SINC header containing the definition and parameters of data operations. The SINC header could be placed directly after the transport layer, before the computing data as part of the payload. However, the SINC header can also potentially be positioned at layer 4, layer 3, or even layer 2, depending on the network context of the applications and the deployment consideration. This will be discussed in further details in <xref target="I-D.zhou-rtgwg-sinc-deployment-considerations"/>.</t>
      <t>The SINC proxies are responsible for encapsulating/decapsulating packets in order to steer them through the right network path and nodes. The SINC proxies may or may not be collocated with hosts.</t>
      <t>The SINC Ingress Proxy encapsulates and forwards packets containing a SINC header, to the right node(s) with SINC operation capabilities. Such an operation may involve the use of protocols like Service Function Chaining (SFC <xref target="RFC7665"/>), LISP <xref target="RFC9300"/>, Geneve <xref target="RFC8926"/>, or even MPLS <xref target="RFC3031"/>. Based on the definition of the required data processing and the network capabilities, the SINC ingress proxy can determine whether the data processing defined in the SINC header could be executed in a single node or in multiple nodes. The SINC Egress Proxy is responsible for decapsulating packets before forwarding them to the destination host.</t>
      <t>The SINC switch/router is the node equipped with in-network computing capabilities. It MUST look for the SINC header and perform the required operations if any. It could be done from the encapsulation protocols that contain a field of "next protocols". Otherwise, the SINC switch/router should be able to perform a deep packet inspection to identify the location of the SINC header. The detection of the location of the SINC header will be further depicted in <xref target="I-D.zhou-rtgwg-sinc-deployment-considerations"/>. Upon receiving a SINC packet, the SINC switch/router data-plane processes the SINC header, executes required operations, updates the payload with results (if necessary) and forwards the packet to the destination.</t>
      <t>The SINC workflow is as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>Host A transmits a packet with the SINC header and data to the SINC Ingress proxy.</t>
        </li>
        <li>
          <t>The SINC Ingress proxy encapsulates and forwards the original packet to a SINC switch/router(s).</t>
        </li>
        <li>
          <t>The SINC switches/routers verifies the source, checks the integrity of the data and performs the required data processing defined in the SINC header. When the computing is done, if necessary, the payload is updated with the result and then forwarded to the SINC Egress proxy.</t>
        </li>
        <li>
          <t>When the packet reaches the SINC Egress Proxy, the encapsulation will be removed and the inner packet will be forwarded to the final destination (Host B).</t>
        </li>
      </ol>
    </section>
    <section anchor="SEC_dataop">
      <name>Data Operation Mode</name>
      <t>According to the SINC scenarios, the SINC processing can be divided into two modes: individual computing mode and batch computing mode.</t>
      <t>Individual operations include all operations that can be performed on data coming from a single packet (e.g., Netlock). Conversely, batch operations include all operations that require to collect data from multiple packets (e.g., NetReduce data aggregation).</t>
      <section anchor="individual-computing-mode">
        <name>Individual Computing Mode</name>
        <t>The NetLock is a typical scenario involving individual operations, where the SINC switch/router acts as a lock server, generating a lock for a packet coming from one host.</t>
        <t>This kind of operation has some general aspects to be considered:</t>
        <ul spacing="normal">
          <li>
            <t>Initialization of the context on the computing device. The context is the information necessary to perform operations on the packets. For instance, the context for a lock operation includes selected keys, lock states (values) for granting locks.</t>
          </li>
          <li>
            <t>Error conditions. Operations may fail and, as a consequence, sometimes actions needs to be taken, e.g. sending a message to the source host. However, error handling is not necessarily handled by the SINC switch/router, which could simply roll back the operation and forward the packet unchanged to the destination host. The destination host will in this case perform the operation. If the operation fails again, the destination host will handle the error condition and may send a message back to the source host. In this way SINC switches/router operation remains relatively simple.</t>
          </li>
        </ul>
      </section>
      <section anchor="batch-computing-mode">
        <name>Batch Computing Mode</name>
        <t>The batch operations require to collect data from multiple sources before actually being able to perform the required operations. For instance, in the NetReduce scenario, the gradient aggregation requires packets carrying gradient arrays from each host to generate the desired result array.</t>
        <t>In this mode, the data operation is collective. The data coming from multiple sources may be aggregated in multiple aggregation nodes in a hierarchy. Hence a tree topology should be created from the control plane for each batch computing request, which will be dismissed once the batch computing is done. A message is required to signal the start and the end of the operation.</t>
        <t>Each aggregation node should collect all input before executing the calculation. If some packets do not arrive or arrive too late, the batch computing may fail. The time the packets are temporarily cached on the SINC switch/router should be carefully configured. On the one hand, it has to be sufficiently long so that there is enough time to receive all required packets. On the other hand, it has to be sufficiently short so that no retransmissions are triggered at the transport or application layers on the end hosts. Similarly to the error condition  for the individual operations, if the SINC switch/router does not receive all required packets in the configured time interval, it can simply forward the packets to the end host so that they deal with packet losses and retransmissions if necessary.</t>
      </section>
    </section>
    <section anchor="SEC_SINC-CH">
      <name>SINC Header</name>
      <t>The SINC header carries the data operation information and it has a fixed length of 16 octets, as shown in <xref target="Fig_nshContext"/>.</t>
      <figure anchor="Fig_nshContext">
        <name>SINC Header.</name>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved  |D|L|                    Group ID                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     No. of Data Sources       |    Data Source ID             |       
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           SeqNum                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Data Operation          |    Data Offset                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <ul spacing="normal">
        <li>
          <t>Reserved: Flags field reserved for future use. MUST be set to zero on transmission and MUST be ignored on reception.</t>
        </li>
        <li>
          <t>Done flag (D): Zero (0) indicates that the request operation is not yet performed. One (1) indicates the operation has been done. The source host MUST set this bit to 0. The in-network switch/router performing the operation MUST set this flag to 1 after the operation is executed.</t>
        </li>
        <li>
          <t>Loopback flag (L): Zero (0) indicates that the packet SHOULD be sent to the destination after the data operation. One (1) indicates that the packet SHOULD be sent back to the source node after the data operation.</t>
        </li>
        <li>
          <t>Group ID: The group ID identifies different groups. Each group is associated with one task.</t>
        </li>
        <li>
          <t>Number of Data Sources: Total number of data source nodes that are part of the group.</t>
        </li>
        <li>
          <t>Data Source ID: Unique identifier of the data source node of the packet.</t>
        </li>
        <li>
          <t>Sequence Number (SeqNum): The SeqNum is used to identify different requests within one group.</t>
        </li>
        <li>
          <t>Data Operation: The operation to be executed by the SINC switch/router.</t>
        </li>
        <li>
          <t>Data Offset: The in-packet offset from the SINC header to the data required by the operation. This field is useful in cases where the data is not right after the SINC header, the offset indicates directly where, in the packet, the data is located.</t>
        </li>
      </ul>
    </section>
    <section anchor="control-plane-considerations">
      <name>Control Plane Considerations</name>
      <t>The SINC control plane is responsible for the creation and configuration of the computing network topology with SINC capable network elements, as well as the monitoring and management of the system, to ensure the proper execution of the computing task. The SINC framework can work with either centralized (e.g. SDN like), distributed (by utilizing dynamic signaling protocols), or hybrid control planes. However, this document does not assume any specific control plane design.</t>
      <t>A computing network topology needs to be created in advance to support the required in network computing tasks. The topology could be as simple as a explicit path with SINC capable nodes for individual computing mode (e.g. NetLock and NetSequencer), as well as a tree topology supporting more complex batch computing mode (e.g. NetReduce). After the completion of the computing task, the control plane needs to delete the topology and release relevant resources accordingly. The following features are necessary in control plane for the topology creation/deletion in the SINC network:</t>
      <ul spacing="normal">
        <li>
          <t>Topology computation: When receiving the computing request from the Host, the SINC control plane needs to compute a set of feasible paths with SINC capable nodes to support individual or batch computations.</t>
        </li>
        <li>
          <t>Topology establishment: The topology has to be sent/configured/signaled to the network device, so SINC packets could pass through the right SINC capable nodes to perform the required data computing in the network. Once done, the control plane will signal the application to kick off the packet transmission.</t>
        </li>
        <li>
          <t>Topology deletion: Once the application finishes the action, it will inform the control plane to delete the topology and release the reserved resources for other applications and purposes.</t>
        </li>
      </ul>
      <t>SINC packets are supposed to pass SINC capable nodes without traffic and computing congestion, which demands sufficient resource reservation. There are multiple types of resources (e.g., computing resource, buffer resource, and bandwidth resource) in the network that should be reserved to ensure the smooth execution of the computing tasks.</t>
      <t>The performance monitoring (PM) is required to detect any potential issues during the data operation. It could be done actively or passively. By injecting OAM packets into the network to estimate the performance of the network, the active PM might affect the overall performance of the network. SINC does not introduces any constrains and pre-existing monitoring infrastructures can continue to be used.</t>
      <t>The service protection contains two parts: the computing service protection and network service protection.</t>
      <ul spacing="normal">
        <li>
          <t>The in-network computing service must be protected. If a SINC node of an in-network operation fails, the impact should be minimized by guaranteeing as much as possible that the packets are at least delivered to the end node, which will perform the requested operation (cf. <xref target="SEC_dataop"/>). The control plane will take care to recover the failure, possibly using a different SINC node and re-routing the traffic.
<!-- TD: Is this simplified paragraph OK? -->
          </t>
        </li>
        <li>
          <t>The network service must be able to deliver packet to the designated SINC nodes even in case of partial network failures (e.g. link failures). To this end existing protection and re-route solution may be applied.</t>
        </li>
      </ul>
      <t>From the above discussion about the control plane, the following basic requirements can be identified:</t>
      <ul spacing="normal">
        <li>
          <t>The ability to exchange computing requirements (e.g. computing tasks, performance, bandwidth, etc.) and execution status with the application (e.g., via a User Network Interface). SINC tasks should be carefully coordinated with (other) host tasks.</t>
        </li>
        <li>
          <t>The ability to gather the resources available on SINC-capable devices, which demands regular advertisement of node capabilities and link resources to other network nodes or to network controller(s).</t>
        </li>
        <li>
          <t>The ability to dynamically create, modify and delete computing network topologies based on application requests and according to defined constraints. It includes, but it is not limited to, topology creation/update, explicit path determination, link bandwidth reservation and node computing resource reservation. The created topology should be able to execute computing task requested by the application with no (ot low) impact on the packet transmission.</t>
        </li>
        <li>
          <t>The ability to monitor the performance of SINC nodes and link status to ensure that they meet the requirements.</t>
        </li>
        <li>
          <t>The ability to provide failover mechanism in order to handle errors and failures, and improves the resilience of the system. A fallback mechanism is required in case that in-network resources are not sufficient for processing SINC tasks, in which case, end host might provide some complementary computing capabilities.</t>
        </li>
      </ul>
    </section>
    <section anchor="SEC_sec">
      <name>Security Considerations</name>
      <t>In-network computing exposes computing data to network devices, which  inevitably raises security and privacy considerations. 
The security problems faced by in-network computing include, but are not limited to:</t>
      <ul spacing="normal">
        <li>
          <t>Trustworthiness of participating devices</t>
        </li>
        <li>
          <t>Data hijacking and tampering</t>
        </li>
        <li>
          <t>Private data exposure</t>
        </li>
      </ul>
      <t>This document assumes that the deployment is done in a trusted environment. For example, in a data center network or a private network.</t>
      <t>A detailed security analysis will be provided in future revisions of this memo.</t>
    </section>
    <section anchor="SEC_iana">
      <name>IANA Considerations</name>
      <t>This document makes no requests to IANA.</t>
    </section>
    <section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>This document received contribution from Yujing Zhou as well as valuable feedback from Dirk Trossen, which was of great help in improving the content. The authors would like to thank all of them.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="COIN" target="https://datatracker.ietf.org/rg/coinrg/about/">
          <front>
            <title>Computing in the Network, COIN, proposed IRTF group</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NetLock">
          <front>
            <title>Netlock:/ Fast, centralized lock management using programmable switches</title>
            <author initials="Y." surname="Z" fullname="Yu Z">
              <organization/>
            </author>
            <author initials="Z." surname="Y" fullname="Zhang Y">
              <organization/>
            </author>
            <author initials="B." surname="V" fullname="Braverman V">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="Proceedings of the Annual conference of the ACM Special Interest Group on Data Communication on the applications, technologies, architectures, and protocols for computer communication." value=""/>
        </reference>
        <reference anchor="GTM" target="https://www.postgres-xl.org/documentation/xc-overview-gtm.html">
          <front>
            <title>GTM and Global Transaction Management</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OPENAI" target="https://openai.com/blog/ai-and-compute/">
          <front>
            <title>OpenAI. AI and compute</title>
            <author>
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="PARAHUB">
          <front>
            <title>Parameter hub:/ a rack-scale parameter server for distributed deep neural network training</title>
            <author initials="L." surname="L" fullname="Luo L">
              <organization/>
            </author>
            <author initials="N." surname="J" fullname="Nelson J">
              <organization/>
            </author>
            <author initials="C." surname="L" fullname="Ceze L">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
          <seriesInfo name="Proceedings of the ACM Symposium on Cloud Computing." value=""/>
        </reference>
        <reference anchor="MGWFBP">
          <front>
            <title>MG-WFBP:/ Efficient data communication for distributed synchronous SGD algorithms</title>
            <author initials="S." surname="Shi" fullname="Shaohua Shi">
              <organization/>
            </author>
            <author initials="X." surname="Chu" fullname="Xiaowen Chu">
              <organization/>
            </author>
            <author initials="B." surname="Li" fullname="Bo Li">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
          <seriesInfo name="IEEE INFOCOM 2019-IEEE Conference on Computer Communications. IEEE" value=""/>
        </reference>
        <reference anchor="OLTP">
          <front>
            <title>Improving OLTP scalability using speculative lock inheritance</title>
            <author initials="J." surname="R" fullname="Johnson R">
              <organization/>
            </author>
            <author initials="P." surname="I" fullname="Pandis I">
              <organization/>
            </author>
            <author initials="A." surname="A" fullname="Ailamaki A">
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="Proceedings of the VLDB Endowment" value=""/>
        </reference>
        <reference anchor="HPRDMA" target="https://www.usenix.org/conference/atc16/technical-sessions/presentation/kalia">
          <front>
            <title>Design Guidelines for High Performance RDMA Systems</title>
            <author initials="A." surname="Kalia" fullname="Anuj Kalia">
              <organization/>
            </author>
            <author initials="M." surname="Kaminsky" fullname="Michael Kaminsky">
              <organization/>
            </author>
            <author initials="D. G." surname="Andersen" fullname="David G. Andersen">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
          <seriesInfo name="2016 USENIX Annual Technical Conference (USENIX ATC 16)" value=""/>
        </reference>
        <reference anchor="NetChain">
          <front>
            <title>NetChain:/ Scale-free sub-RTT coordination</title>
            <author initials="X." surname="Jin" fullname="Xin Jin">
              <organization/>
            </author>
            <author initials="X." surname="Li" fullname="Xiaozhou Li">
              <organization/>
            </author>
            <author initials="H." surname="Zhang" fullname="Haoyu Zhang">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="ERIS">
          <front>
            <title>Eris:/ Coordination-Free Consistent Transactions Using In-Network Concurrency Control</title>
            <author initials="J." surname="Li" fullname="Jialin Li">
              <organization/>
            </author>
            <author initials="E." surname="Michael" fullname="Ellis Michael">
              <organization/>
            </author>
            <author initials="D. R. K." surname="Ports" fullname="Dan R. K. Ports">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
          <seriesInfo name="SOSP '17:/ Proceedings of the 26th Symposium on Operating Systems Principles" value=""/>
        </reference>
        <reference anchor="ROCEv2" target="https://cw.infinibandta.org/document/dl/7781">
          <front>
            <title>InfiniBand Architecture Specification Release 1.2.1 Annex A17 RoCEv2</title>
            <author>
              <organization/>
            </author>
            <date year="2014" month="September"/>
          </front>
          <seriesInfo name="InfiniBand Trade Association" value=""/>
        </reference>
        <reference anchor="CALVIN">
          <front>
            <title>Calvin: fast distributed transactions for partitioned database systems</title>
            <author fullname="Alexander Thomson" initials="A." surname="Thomson">
              <organization>Yale University, New Haven, CT, USA</organization>
            </author>
            <author fullname="Thaddeus Diamond" initials="T." surname="Diamond">
              <organization>Yale University, New Haven, CT, USA</organization>
            </author>
            <author fullname="Shu-Chun Weng" initials="S." surname="Weng">
              <organization>Yale University, New Haven, CT, USA</organization>
            </author>
            <author fullname="Kun Ren" initials="K." surname="Ren">
              <organization>Yale University, New Haven, CT, USA</organization>
            </author>
            <author fullname="Philip Shao" initials="P." surname="Shao">
              <organization>Yale University, New Haven, CT, USA</organization>
            </author>
            <author fullname="Daniel J. Abadi" initials="D." surname="Abadi">
              <organization>Yale University, New Haven, CT, USA</organization>
            </author>
            <date month="May" year="2012"/>
          </front>
          <seriesInfo name="Proceedings of the 2012 ACM SIGMOD International Conference on Management of" value="Data"/>
          <seriesInfo name="DOI" value="10.1145/2213836.2213838"/>
          <refcontent>ACM</refcontent>
        </reference>
        <reference anchor="GOBATTO">
          <front>
            <title>Programmable Data Planes meets In-Network Computing: A Review of the State of the Art and Prospective Directions</title>
            <author fullname="Leonardo Reinehr Gobatto" initials="L." surname="Reinehr Gobatto">
              <organization/>
            </author>
            <author fullname="Pablo Rodrigues" initials="P." surname="Rodrigues">
              <organization/>
            </author>
            <author fullname="Mateus Saquetti Pereira de Carvalho Tirone" initials="M." surname="Tirone">
              <organization/>
            </author>
            <author fullname="Weverton Luis da Costa Cordeiro" initials="W." surname="Cordeiro">
              <organization/>
            </author>
            <author fullname="José Rodrigo Furlanetto Azambuja" initials="J." surname="Azambuja">
              <organization/>
            </author>
            <date month="August" year="2021"/>
          </front>
          <seriesInfo name="Journal of Integrated Circuits and Systems" value="vol. 16, no. 2, pp. 1-8"/>
          <seriesInfo name="DOI" value="10.29292/jics.v16i2.497"/>
          <refcontent>Journal of Integrated Circuits and Systems</refcontent>
        </reference>
        <reference anchor="ZENG">
          <front>
            <title>Guest Editorial: In-Network Computing: Emerging Trends for the Edge-Cloud Continuum</title>
            <author fullname="Deze Zeng" initials="D." surname="Zeng">
              <organization>School of Computer Science, China University of Geosciences,Wuhan,China</organization>
            </author>
            <author fullname="Nirwan Ansari" initials="N." surname="Ansari">
              <organization>New Jersey Institute of Technology (NJIT),USA</organization>
            </author>
            <author fullname="Marie-Jose Montpetit" initials="M." surname="Montpetit">
              <organization>Concordia University,Montreal,Canada</organization>
            </author>
            <author fullname="Eve M. Schooler" initials="E." surname="Schooler">
              <organization>Intel,USA</organization>
            </author>
            <author fullname="Daniele Tarchi" initials="D." surname="Tarchi">
              <organization>University of Bologna,Italy</organization>
            </author>
            <date month="September" year="2021"/>
          </front>
          <seriesInfo name="IEEE Network" value="vol. 35, no. 5, pp. 12-13"/>
          <seriesInfo name="DOI" value="10.1109/mnet.2021.9606835"/>
          <refcontent>Institute of Electrical and Electronics Engineers (IEEE)</refcontent>
        </reference>
        <reference anchor="P4">
          <front>
            <title>P4: programming protocol-independent packet processors</title>
            <author fullname="Pat Bosshart" initials="P." surname="Bosshart">
              <organization>Barefoot Networks, Palo Alto, CA, USA</organization>
            </author>
            <author fullname="Dan Daly" initials="D." surname="Daly">
              <organization>Intel, Ann Arbor, MI, USA</organization>
            </author>
            <author fullname="Glen Gibb" initials="G." surname="Gibb">
              <organization>Barefoot Networks, Palo Alto, CA, USA</organization>
            </author>
            <author fullname="Martin Izzard" initials="M." surname="Izzard">
              <organization>Barefoot Networks, Palo Alto, CA, USA</organization>
            </author>
            <author fullname="Nick McKeown" initials="N." surname="McKeown">
              <organization>Stanford University, Stanford, CA, USA</organization>
            </author>
            <author fullname="Jennifer Rexford" initials="J." surname="Rexford">
              <organization>Princeton University, Princeton, NJ, USA</organization>
            </author>
            <author fullname="Cole Schlesinger" initials="C." surname="Schlesinger">
              <organization>Princeton University, Princeton, NJ, USA</organization>
            </author>
            <author fullname="Dan Talayco" initials="D." surname="Talayco">
              <organization>Barefoot Networks, Palo Alto, CA, USA</organization>
            </author>
            <author fullname="Amin Vahdat" initials="A." surname="Vahdat">
              <organization>Google, Mountain View, CA, USA</organization>
            </author>
            <author fullname="George Varghese" initials="G." surname="Varghese">
              <organization>Microsoft Research, Mountain View, CA, USA</organization>
            </author>
            <author fullname="David Walker" initials="D." surname="Walker">
              <organization>Princeton University, Princeton, NJ, USA</organization>
            </author>
            <date month="July" year="2014"/>
          </front>
          <seriesInfo name="ACM SIGCOMM Computer Communication Review" value="vol. 44, no. 3, pp. 87-95"/>
          <seriesInfo name="DOI" value="10.1145/2656877.2656890"/>
          <refcontent>Association for Computing Machinery (ACM)</refcontent>
        </reference>
        <reference anchor="SHArP">
          <front>
            <title>Scalable Hierarchical Aggregation Protocol (SHArP): A Hardware Architecture for Efficient Data Reduction</title>
            <author fullname="Richard L. Graham" initials="R." surname="Graham">
              <organization/>
            </author>
            <author fullname="Vladimir Koushnir" initials="V." surname="Koushnir">
              <organization/>
            </author>
            <author fullname="Lion Levi" initials="L." surname="Levi">
              <organization/>
            </author>
            <author fullname="Alex Margolin" initials="A." surname="Margolin">
              <organization/>
            </author>
            <author fullname="Tamir Ronen" initials="T." surname="Ronen">
              <organization/>
            </author>
            <author fullname="Alexander Shpiner" initials="A." surname="Shpiner">
              <organization/>
            </author>
            <author fullname="Oded Wertheim" initials="O." surname="Wertheim">
              <organization/>
            </author>
            <author fullname="Eitan Zahavi" initials="E." surname="Zahavi">
              <organization/>
            </author>
            <author fullname="Devendar Bureddy" initials="D." surname="Bureddy">
              <organization/>
            </author>
            <author fullname="Pak Lui" initials="P." surname="Lui">
              <organization/>
            </author>
            <author fullname="Hal Rosenstock" initials="H." surname="Rosenstock">
              <organization/>
            </author>
            <author fullname="Gilad Shainer" initials="G." surname="Shainer">
              <organization/>
            </author>
            <author fullname="Gil Bloch" initials="G." surname="Bloch">
              <organization/>
            </author>
            <author fullname="Dror Goldenerg" initials="D." surname="Goldenerg">
              <organization/>
            </author>
            <author fullname="Mike Dubman" initials="M." surname="Dubman">
              <organization/>
            </author>
            <author fullname="Sasha Kotchubievsky" initials="S." surname="Kotchubievsky">
              <organization/>
            </author>
            <date month="November" year="2016"/>
          </front>
          <seriesInfo name="2016 First International Workshop on Communication Optimizations in HPC" value="(COMHPC)"/>
          <seriesInfo name="DOI" value="10.1109/comhpc.2016.006"/>
          <refcontent>IEEE</refcontent>
        </reference>
        <reference anchor="SwitchML">
          <front>
            <title>Scaling Distributed Machine Learning with In-Network Aggregation</title>
            <author fullname="Amedeo Sapio" initials="A." surname="Sapio">
              <organization/>
            </author>
            <author fullname="Marco Canini" initials="M." surname="Canini">
              <organization/>
            </author>
            <author fullname="Chen-Yu Ho" initials="C." surname="Ho">
              <organization/>
            </author>
            <author fullname="Jacob Nelson" initials="J." surname="Nelson">
              <organization/>
            </author>
            <author fullname="Panos Kalnis" initials="P." surname="Kalnis">
              <organization/>
            </author>
            <author fullname="Changhoon Kim" initials="C." surname="Kim">
              <organization/>
            </author>
            <author fullname="Arvind Krishnamurthy" initials="A." surname="Krishnamurthy">
              <organization/>
            </author>
            <author fullname="Masoud Moshref" initials="M." surname="Moshref">
              <organization/>
            </author>
            <author fullname="Dan R. K. Ports" initials="D." surname="Ports">
              <organization/>
            </author>
            <author fullname="Peter Richtárik" initials="P." surname="Richtárik">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
          <seriesInfo name="DOI" value="10.48550/ARXIV.1903.06701"/>
          <refcontent>arXiv</refcontent>
        </reference>
        <reference anchor="NetReduce">
          <front>
            <title>In-Network Aggregation with Transport Transparency for Distributed Training</title>
            <author fullname="Shuo Liu" initials="S." surname="Liu">
              <organization>Huawei Technologies, China</organization>
            </author>
            <author fullname="Qiaoling Wang" initials="Q." surname="Wang">
              <organization>Huawei Technologies, China</organization>
            </author>
            <author fullname="Junyi Zhang" initials="J." surname="Zhang">
              <organization>Huawei Technologies, China</organization>
            </author>
            <author fullname="Wenfei Wu" initials="W." surname="Wu">
              <organization>Peking University, China</organization>
            </author>
            <author fullname="Qinliang Lin" initials="Q." surname="Lin">
              <organization>Huawei Technologies, China</organization>
            </author>
            <author fullname="Yao Liu" initials="Y." surname="Liu">
              <organization>Sun Yat-sen University, China</organization>
            </author>
            <author fullname="Meng Xu" initials="M." surname="Xu">
              <organization>Huawei Technologies, China</organization>
            </author>
            <author fullname="Marco Canini" initials="M." surname="Canini">
              <organization>King Abdullah University of Science and Technology, Saudi Arabia</organization>
            </author>
            <author fullname="Ray C. C. Cheung" initials="R." surname="Cheung">
              <organization>City University of Hong Kong, China</organization>
            </author>
            <author fullname="Jianfei He" initials="J." surname="He">
              <organization>City University of Hong Kong, China</organization>
            </author>
            <date month="March" year="2023"/>
          </front>
          <seriesInfo name="Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume" value="3"/>
          <seriesInfo name="DOI" value="10.1145/3582016.3582037"/>
          <refcontent>ACM</refcontent>
        </reference>
        <reference anchor="I-D.irtf-coinrg-use-cases">
          <front>
            <title>Use Cases for In-Network Computing</title>
            <author fullname="Ike Kunze" initials="I." surname="Kunze">
              <organization>RWTH Aachen University</organization>
            </author>
            <author fullname="Klaus Wehrle" initials="K." surname="Wehrle">
              <organization>RWTH Aachen University</organization>
            </author>
            <author fullname="Dirk Trossen" initials="D." surname="Trossen">
              <organization>Huawei Technologies Duesseldorf GmbH</organization>
            </author>
            <author fullname="Marie-Jose Montpetit" initials="M." surname="Montpetit">
              <organization>McGill University</organization>
            </author>
            <author fullname="Xavier de Foy" initials="X." surname="de Foy">
              <organization>InterDigital Communications, LLC</organization>
            </author>
            <author fullname="David Griffin" initials="D." surname="Griffin">
              <organization>University College London</organization>
            </author>
            <author fullname="Miguel Rio" initials="M." surname="Rio">
              <organization>University College London</organization>
            </author>
            <date day="23" month="February" year="2024"/>
            <abstract>
              <t>   Computing in the Network (COIN) comes with the prospect of deploying
   processing functionality on networking devices, such as switches and
   network interface cards.  While such functionality can be beneficial,
   it has to be carefully placed into the context of the general
   Internet communication and it needs to be clearly identified where
   and how those benefits apply.

   This document presents some use cases to demonstrate how a number of
   salient COIN-related applications can benefit from COIN.
   Furthermore, to guide research on COIN, it further identifies
   essential research questions and outlines desirable capabilities that
   COIN systems addressing the use cases may need to support.  It is a
   product of the Computing in the Network Research Group (COINRG).  It
   is not an IETF product and it is not a standard.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-coinrg-use-cases-05"/>
        </reference>
        <reference anchor="I-D.zhou-rtgwg-sinc-deployment-considerations">
          <front>
            <title>Signaling In-Network Computing operations (SINC) deployment considerations</title>
            <author fullname="Zhe Lou" initials="Z." surname="Lou">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Luigi Iannone" initials="L." surname="Iannone">
              <organization>Huawei Technologies France S.A.S.U.</organization>
            </author>
            <author fullname="Yujing Zhou" initials="Y." surname="Zhou">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Jinze Yang" initials="J." surname="Yang">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Zhangcuimin" initials="" surname="Zhangcuimin">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="23" month="February" year="2023"/>
            <abstract>
              <t>   This document is intended to discuss some aspects of the deployment
   of "Signaling In-Network Computing operations" (SINC).  Based on the
   actual topology of the SINC domain, this document analyzes how each
   device in the SINC chain undertakes its own functions.  This document
   provides some specific solutions to the use of SINC mechanism.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-zhou-rtgwg-sinc-deployment-considerations-00"/>
        </reference>
        <reference anchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="RFC9300">
          <front>
            <title>The Locator/ID Separation Protocol (LISP)</title>
            <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
            <author fullname="V. Fuller" initials="V." surname="Fuller"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="D. Lewis" initials="D." surname="Lewis"/>
            <author fullname="A. Cabellos" initials="A." role="editor" surname="Cabellos"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document describes the data plane protocol for the Locator/ID Separation Protocol (LISP). LISP defines two namespaces: Endpoint Identifiers (EIDs), which identify end hosts; and Routing Locators (RLOCs), which identify network attachment points. With this, LISP effectively separates control from data and allows routers to create overlay networks. LISP-capable routers exchange encapsulated packets according to EID-to-RLOC mappings stored in a local Map-Cache.</t>
              <t>LISP requires no change to either host protocol stacks or underlay routers and offers Traffic Engineering (TE), multihoming, and mobility, among other features.</t>
              <t>This document obsoletes RFC 6830.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9300"/>
          <seriesInfo name="DOI" value="10.17487/RFC9300"/>
        </reference>
        <reference anchor="RFC8926">
          <front>
            <title>Geneve: Generic Network Virtualization Encapsulation</title>
            <author fullname="J. Gross" initials="J." role="editor" surname="Gross"/>
            <author fullname="I. Ganga" initials="I." role="editor" surname="Ganga"/>
            <author fullname="T. Sridhar" initials="T." role="editor" surname="Sridhar"/>
            <date month="November" year="2020"/>
            <abstract>
              <t>Network virtualization involves the cooperation of devices with a wide variety of capabilities such as software and hardware tunnel endpoints, transit fabrics, and centralized control clusters. As a result of their role in tying together different elements of the system, the requirements on tunnels are influenced by all of these components. Therefore, flexibility is the most important aspect of a tunneling protocol if it is to keep pace with the evolution of technology. This document describes Geneve, an encapsulation protocol designed to recognize and accommodate these changing capabilities and needs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8926"/>
          <seriesInfo name="DOI" value="10.17487/RFC8926"/>
        </reference>
        <reference anchor="RFC3031">
          <front>
            <title>Multiprotocol Label Switching Architecture</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="A. Viswanathan" initials="A." surname="Viswanathan"/>
            <author fullname="R. Callon" initials="R." surname="Callon"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>This document specifies the architecture for Multiprotocol Label Switching (MPLS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3031"/>
          <seriesInfo name="DOI" value="10.17487/RFC3031"/>
        </reference>
      </references>
    </references>
    <?line 422?>


    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="J." surname="Yang" fullname="Jinze Yang">
        <organization/>
        <address>
          <postal>
            <country>China</country>
          </postal>
          <email>jz.yang@live.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7V9eXPbSJbn//wUOXJsjDRNUodvzc5MyzpsVekaSe6u6o2N
jRSRJLMEAmwkIIllez77vCsPgJCrq6dX3VGiQCDx8uU7fu/I9Gg0GkzKzBaz
fdXU09G7wcO+ejkY1LbOzb7auLGzQufwtTotRhemfiyre3VYLpZNjRfLpal0
bcvCqc2b04vDrY3BQN/dVeYBn4ULG4OsnBR6AWNllZ7Wo7xsRlU9e5yNnC0m
o529wUTXZlZWq31lnpYDV1dGL/bV6fHtyeAFvm5Wlc0SLlzcHlwfHwzuzQqu
ZnChqE1VmHp0hAMPBnZZ7au6aly9t7PzHgbOYOB99eXo4Pb4G4yri+z/6bws
4NrKuMHS7qv/U5eToXJlBS+dOvi0WvAHIHqhl0uY4v+FCTX1vKz2B6OBUrZw
++porM7KBv7iif1lbuTvsgI2fmr0o7Hq1kzmRZmXMwsvU8pzhb+FCzhRU++r
a/gePmvnjNp7DV9MbA28OG8KO5njn2VT1Midj6Za6GJFlzJ47T+/23n/fu+f
4W+z0DbfV7/OzRjY+8c5vWI8KReR5LOxOtVFAbMPZJ81dmaTq88Rr04qXUyM
uhkfjG/Gn8d9k3mhqhLlxWS2Lqtkdrvvhuo/G21V1qir0hY1fvihbKow0Q9l
A+8pzOiDzXN4EXxXp9Pmt8dZv9/b3dlJZp3jNMaWp9E7959huWyY9s/213nZ
8JXfs14v/JSengLtF7r4BWQkJfdwbguNtwu5T08prXZFb+8l83AMkqRpNKb0
sLELW4SLf49wye13GoQLhvqgixo4NQRxLWYzGFYdWbjVTuowpZu5KUCQir45
BTmDJydEXO9Efhyrn3UZpvGjgfvlCs2BhlPn5Z3NTUJ857KfQqDsOxStdHmP
b/njBK8vaAiiCWwbPGDvmrqlwD8ghQmnf7DFr8ZfevEdRr94Xiw+GPtXNInX
pc6G6pO2GXA65e8LkXdjf0tmQMB33r9O5OaXX8crIO6PuX2Qeb24NlNTGdAM
96+DQVGCaajhy30wg8U0+Uupw8vTi334rZTY9Gi9QSJqsF1i1od061Atq3JZ
OpOp0+vbE0XWlx/X1QwnOq/rpdvf3gbzqsFuTe5NNbamno6Bb9vw/wmoOfzS
d2VTb8OTMPxZOblv0QDXcry2rU60q4dqYoAT4Gd+hdfiFwosnZ6ZBVxWjUNa
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
McmqLMZ8Ujy+ezD4b8+MObpvcQAA

-->

</rfc>
