<?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 docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lou-rtgwg-sinc-04" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="SINC">Signaling In-Network Computing operations (SINC)</title>
    <seriesInfo name="Internet-Draft" value="draft-lou-rtgwg-sinc-04"/>
    <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 and/or a storage 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 need to be taken, e.g. sending a message to the source host. Another option is to 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.
<!--
However, error handling is not necessarily handled by the SINC switch/router, which could simply roll back the operation and 
-->
            </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 executes the calculation when data is arrived. If some of 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 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 either signal an error message back to the source host, or simply forward the packets to the end host that handles the packet losses.</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|                    Job ID                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Group Size           |    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>Job ID: The Job ID identifies different groups. Each group is associated with one task.</t>
        </li>
        <li>
          <t>Group Size: 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 logical 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 for that task or job.</t>
      <t>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>Distributed control plane signaling can be useful in creating the logical in-network computing topology with some "in-band" style. Consider a relatively complex case that the logical computing topology is a multilevel tree. If the centralized controlling manager is used, the tree needs to be established before the end points send the data to be aggregated. Distributed signaling can make the in-band tree creation coupled with the pull-based data aggregation. Each participating end point sends the in-band signal to create the tree. The SINC capable switch receiving them reserves the resource and aggregates such signals. Information from the end points carried in the signaling packet helps the switch determine whether it is the root. Such information can be the total group member counter and the sibling member counter. When the accumulated sibling member counter has the same value as the total gorup member counter, the switch considers it the root. When the root receives the signals from all the participating members, it then starts to pull the data from the end points. Distributed signaling directly initiates the data aggregation procedures without waiting for the control plane setting every ready in advance so that it improves the reusability with the more dynamic way in topology creation and deletion.</t>
      <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 for their contributions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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 (COMHPC)" value="pp. 1-10"/>
          <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 3" value="pp. 376-391"/>
          <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="4" month="December" 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 identifies essential
   research questions and outlines desirable capabilities that COIN
   systems addressing the use cases may need to support.  Finally, the
   document provides a preliminary categorization of the described
   research questions to source future work in this domain.  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-07"/>
        </reference>
        <reference anchor="I-D.zhou-rtgwg-sinc-deployment-considerations">
          <front>
            <title>Signaling In-Network Computing operations (SINC) deployment considerations</title>
            <author fullname="David Lou" initials="D." 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 428?>


    <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:
H4sIAAAAAAAAA7V9eVcbSZbv//oUMfi8MzAticU782amMYtNFRgGcHdVv/PO
O4EyJIVJZaozMgGV7fnsc7dYMpXYXT39qDpGyiWWG3f53SWC0Wg0mJSZLWb7
qqmnozeD+331fDCobZ2bfbVxbWeFzuG2Oi1GH039UFZ36rBcLJsaL5ZLU+na
loVTm9enHw+3NgYDfXtbmXt8Fy5sDLJyUugFtJVVelqP8rIZVfXsYTZytpiM
dl4MJro2s7Ja7SvzuBy4ujJ6sa9Oj29OBs+wu1lVNku48PHm4Or4YHBnVnA1
gwtFbarC1KMjbHgwsMtqX9VV4+q9nZ23O3uDDBreV1+ODm6Ov0G7usj+n87L
Aq6tjBss7b76P3U5GSpXVtDp1MGn1YI/wKAXermEKf5fmFBTz8tqfzAaKGUL
t6+OxuqsbOAbT+wvcyPfywrI+KHRD8aqGzOZF2Vezix0ppSnCt+FCzhRU++r
K7gPn7VzRu29hBsTWwMtzpvCTub4tWyKGqnz3lQLXazoUgbd/vObnbdv9/4Z
vpuFtvm++m1uxkDeP86pi/GkXMQhn43VqS4KmH0Y9lljZza5+tTg1Umli4lR
1+OD8fX407hvMs9UVSK/mMzWZZXMbvfNUP1no63KGnVZ2qLGDz+VTRUm+q5s
oJ/CjN7ZPIeO4F6dTpt7j7N+u7e7s5PMOsdpjC1Po3fuv8Jy2TDtX+1v87Lh
K79nvZ75KT0+hrF/1MVn4JF0uIdzW2h8XIb7+JiO1a6o995hHo6BkzS1xiM9
bOzCFuHi38Nc8vitBuaCpt7pogZKDYFdi9kMmlVHFh61kzpM6XpuCmCkom9O
gc/gzQkNrnciP4/Vr7oM0/jZwPNyheZAzanz8tbmJhl857KfQhjZd0a00uUd
9vLHCV5fUBM0JtBt8IK9beqWAP+EI0wo/ZMtfjP+0rPvEPrZ02zxzti/okq8
KnU2VB+0zYDSKX2fCb8b+yOeAQbfefsy4ZvPv41XMLg/5vZe5vXsykxNZUAy
3L8OBkUJqqGGm/ugBotp8k2pw4vTj/vwWynR6VF7A0fUoLtErQ/p0aFaVuWy
dCZTp1c3J4q0L7+uqxlOdF7XS7e/vQ3qVYPemtyZamxNPR0D3bbh/wmIOfzS
t2VTb8Ob0PxZOblrjQGu5XhtW51oVw/VxAAlwM78Bt3iDQWaTs/MAi6rxuFY
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
DQb/DRy5KgLldgAA

-->

</rfc>
