Method and apparatus for virtual network functions and packet forwarding
US-2020053026-A1 · Feb 13, 2020 · US
US10909067B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10909067-B2 |
| Application number | US-201816057006-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 7, 2018 |
| Priority date | Aug 7, 2018 |
| Publication date | Feb 2, 2021 |
| Grant date | Feb 2, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.