Multi-node zero-copy mechanism for packet data processing

US10909067B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10909067-B2
Application numberUS-201816057006-A
CountryUS
Kind codeB2
Filing dateAug 7, 2018
Priority dateAug 7, 2018
Publication dateFeb 2, 2021
Grant dateFeb 2, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In a system having multiple locally deployed apparatus arranged as separate physical nodes, each data packet of a set of data packets received in a physical node can be classified. Data packets of the set can be batched into one or more batches for processing by a physical node separate from the physical node in which the data packets are classified and batched. Access to a batch in the physical node by another physical node can be controlled using remote data memory access. Additional apparatus, systems, and methods are disclosed.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a plurality of physical nodes, with a physical node including: a memory storage comprising instructions; and one or more processors in communication with the memory storage, wherein the one or more processors execute the instructions to: classify each data packet received at the physical node from an ingress in the system, for which the physical node is an original physical node for receiving the each data packet with respect to the plurality of physical nodes, with the classification including insertion of information in a metadata area of the each data packet, the information being inserted for processing the each data packet within the plurality of physical nodes, the information including an internal representation of the each data packet, with the internal representation including a destination identifier corresponding to a packet destination of the each data packet within the plurality of physical nodes; form at least one batch of data packets based on the classification; and control remote data memory access (RDMA) to the at least one batch of data packets by a second physical node of the plurality of physical nodes, using the internal representations in the metadata area of the data packets of the at least one batch to conduct the RDMA. 2. The system of claim 1 , wherein the memory storage of the physical node includes one or more modules of code that are portions of instructions to operate as a service or a virtual network function on the at least one batch of data packets, and a second memory storage of the second physical node includes one or more second modules of code that are portions of the instructions to operate as the service or the virtual network function on the at least one batch of data packets. 3. The system of claim 2 , wherein the information includes data to identify a data path to reach a service end point or to identify the virtual network function for the each data packet. 4. The system of claim 3 , wherein the information in the each data packet of the at least one batch includes: the destination identifier corresponding to the service or to the virtual network function running on the second physical node; or a policy identifier, generated locally in the system, to identify a path to process the each data packet or portions of the path, the path including the service or the virtual network function on the second physical node. 5. The system of claim 2 , wherein the one or more processors of the physical node execute instructions, after the forming of the at least one batch, to process the each data packet of the at least one batch by the one or more modules of code on the second physical node, with the processing of the each data packet comprising: transmitting a reference of the each data packet with a coded message to the second physical node; receiving a RDMA read request from the second physical node in response to transmitting the reference, and permitting reading of the data packet by the second physical node in response to the RDMA read request; and permitting an update of metadata of the each data packet in the physical node, in response to a RDMA write request from the second physical node, the update corresponding to the each data packet being processed by the one or more modules of code on the second physical node. 6. The system of claim 2 , wherein the one or more processors of the physical node execute instructions to move the at least one batch of data packets to the second physical node, the move performed by an RDMA write, the move performed without involving a central processing unit (CPU), and the move performed after the forming of the at least one batch. 7. The system of claim 2 , wherein the one or more processors of the physical node execute instructions to operate the virtual network function or a component of the virtual network function stored in the second memory storage of the second physical node, by executing instructions to: hold the at least one batch of data packets in the memory storage of the physical node, including all classified and updated metadata of the data packets of the at least one batch, for access by the second physical node; transfer, to the second physical node, access to a data packet of the at least one batch or to the at least one batch, including generating a signal to the second physical node as a request for a RDMA read operation by the physical node with respect to the data packet of the at least one batch or the at least one batch operated on in the second physical node; and store, in the memory storage of the physical node, results of the virtual network function or the component of the virtual network function operating on the at least one batch of data packets in the second physical node, with the storing using a RDMA write operation. 8. The system of claim 1 , wherein the system includes a controller configured to identify a path for processing a data packet of the at least one batch in the plurality of physical nodes. 9. A computer-implemented method for handling data packets, comprising: classifying, with one or more processors in a physical node of a plurality of physical nodes of a system, with each physical node of the plurality of physical nodes having one or more processors in communication with a memory storage in each physical node, each data packet received at the physical node from an ingress in the system, for which the physical node is an original physical node for receiving the each data packet with respect to the plurality of physical nodes, wherein the classification includes inserting information in a metadata area of the each data packet, the information being inserted for processing the each data packet within the plurality of physical nodes, the information including an internal representation of the each data packet, with the internal representation including a destination identifier corresponding to a packet destination of the each data packet within the plurality of physical nodes; forming at least one batch of data packets based on the classification; and controlling remote data memory access (RDMA) to the at least one batch of data packets by a second physical node of the plurality of physical nodes, using the internal representations in the metadata area of the data packets of the at least one batch to conduct the RDMA. 10. The computer-implemented method of claim 9 , wherein the method includes operating a service or a virtual network function on the at least one batch of data packets with the service or the virtual network function being a combination of modules of code with one or more modules of code in the memory storage of the physical node and one or more modules of code in a second memory storage of the second physical node. 11. The computer-implemented method of claim 10 , wherein the information includes data to identify a data path to reach a service end point or to identify the virtual network function for the each data packet. 12. The computer-implemented method of claim 11 , wherein the information in the each data packet of the at least one batch includes: the destination identifier corresponding to the service or to the virtual network function running on the second physical node; or a policy identifier, generated locally in the system, to identify a path to process the each data packet or portions of the path, the path including the service or the virtual network function on the second physical node. 13. The computer-implemented method of claim 10 , wherein the method includes, after the forming of the at least one batch, processing the each data packet of the at least

Assignees

Inventors

Classifications

  • relying on flow classification, e.g. using integrated services [IntServ] · CPC title

  • Routing instructions carried by the data packet, e.g. active networks · CPC title

  • Distributed shared memory [DSM], e.g. remote direct memory access [RDMA] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10909067B2 cover?
In a system having multiple locally deployed apparatus arranged as separate physical nodes, each data packet of a set of data packets received in a physical node can be classified. Data packets of the set can be batched into one or more batches for processing by a physical node separate from the physical node in which the data packets are classified and batched. Access to a batch in the physica…
Who is the assignee on this patent?
Futurewei Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F15/17331. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).