Internet-Draft | SINC deployment considerations | February 2023 |
Lou, et al. | Expires 27 August 2023 | [Page] |
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.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 27 August 2023.¶
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
"Signaling In-Network Computing operations" (SINC) is a mechanism to enable signaling in-network computing operations on data packets in specific scenarios like NetReduce, NetDistributedLock, NetSequencer, etc. This mechanism can effectively reduce the task completion time and improve the system efficiency. The SINC framework design can be found in the draft [I-D.zhou-rtgwg-sinc-00].¶
This document uses the terms as defined in [RFC7498], [RFC7665], [RFC8300], [RFC3031], [RFC5036] and [RFC2205]. This document assume that the reader is familiar with the Service Function Chaining architecture and Multi-Protocol Label Switching architecture.¶
In order to deploy the SINC solution in the network, the packet from the host needs to be transmitted through a path containing SINC capable switches/routers (SW/R) for data computation. Different from the simplistic experimental network environment used for in network computing verification in research papers, the real network is much more complex, containing multiple SINC SW/Rs with different capabilities and multiple paths between sources and destinations, as shown in Figure 1. The packet traveling between Host A and Host B may pass SINC Node A or B via different paths. It is essential to create a proper route with nodes to support SINC operation and facilitate the packet delivery. The SINC capable SW/Rs should periodically advertise their networking & computing capacities and capabilities, e.g. the operation it can perform, the current work load, the link capacity, etc. Based on those information, the control plane is responsible to create a proper route where the data in the packet will undertake the desired computation before arriving at the destination host. Such a path could be located at layer 2, 3 or 4 dependent of the network context and application environments. For instance, in a telecommunication network where the Multi-Protocol Label Switching (MPLS) [RFC3031] is deployed, we could used the MPLS protocol to encapsulate the SINC header and deliver the packet to a SINC capable SW/R. In a Data Center Network, if the Generic Network Virtualization Encapsulation (GENEVE) [RFC8926] is applied, we may use the GENEVE protocol for encapsulation. Other encapsulation protocols like General Routing Encapsulation (GRE) [RFC2784], Service Function Chaining (SFC) [RFC7665], and so on, could be potential candidates as well. The SINC header is usually copied/moved right after the new encapsulation header, which makes it easier to access the SINC header.¶
In this section, SFC, which is a layer 3.5 protocol, is used as a running example on how to create a tunnel and encapsulate the SINC header, in order to implement the desired in-network computation.¶
Figure 2 shows the architecture of a SFC-based SINC network. In the computing service chain, a host sends out packets containing data operations to be executed in the network. The data operation description should be carried in the packet itself by using a SINC-specific NSH encapsulation.¶
Once the SINC packet enters into the SFC domain, the Service Function Forwarder (SFF) [RFC7665] will forward packets to one or more connected service functions according to information carried in the SFC encapsulation. The Service Function (SF) [RFC7665] is responsible for implementing data operations.¶
This section shows how the SINC header can be embedded in the Network Service Header (NSH) [RFC8300] for SFC [RFC7665].¶
The SINC NSH base header, as shown in Figure 3, is basically another type of NSH Meta Data (MD) header. SINC NSH encapsulation uses the NSH MD fixed-length context headers to carry the data operation information as show in Figure 3. Please refer to the NSH [RFC8300] for a detailed SFC basic header description.¶
Following the NSH basic header there is the Service Path Header, show in Figure 4, as defined in [RFC8300].¶
The complete SINC NSH header, as shown in Figure 5, stacks the NSH base header, NSH Service Path Header, and the SINC Header all together.¶
For the sake of clarity, a simple example with one sender (Host A) and one receiver (Host B) is used to illustrate the workflow. Packet processing goes through the following steps:¶
In this section, MPLS, which is a layer 2.5 protocol, is used as a running example on how to create a tunnel and encapsulate the SINC header, in order to implement the desired in-network computation.¶
As shown in the Figure 6, the overall architecture is similar to the SFC solution. In this case, the SINC proxy is also a Label Edge Router. The SW/Rs connecting the SINC proxies and SINC SW/Rs are Label Switching Routers (LSR). Before sending out a SINC packet, the Label Switched Paths (LSP) should be established between the SINC proxies and SINC SW/Rs. The SINC SW/Rs and proxies can identify a SINC packet by the LSPs used.¶
Upon receiving a packet with a SINC header, the SINC Ingress Proxy encapsulates the packet with a MPLS label(s) according to LSP, before forwarding it to the SINC SW/R. The SINC SW/R pops up/pushes the MPLS label before/after the data computation. The results will be forwarded to the SINC Egress Proxy where the MPLS label will be popped up again before the packet is delivered to the destination.¶
As shown in the Figure 7, one or more MPLS labels are added in front of the SINC header.¶
A simple example with one sender (Host A) and one receiver (Host B) is used to illustrate the workflow. Packet processing goes through the following steps:¶
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:¶
This documents assume that the deployment is done in a trusted environment. For example, in a data center network or a private network.¶
A fine security analysis will be provided in future revisions of this memo.¶
This memo does not contain any request to IANA.¶
Dirk Trossen's feedbacks were of great help in improving this document.¶