Automated packet switch type and host selection for efficient virtualized network function service chaining
US-10999219-B1 · May 4, 2021 · US
US11936562B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11936562-B2 |
| Application number | US-201816039946-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 19, 2018 |
| Priority date | Jul 19, 2018 |
| Publication date | Mar 19, 2024 |
| Grant date | Mar 19, 2024 |
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.
A method to offload network function packet processing from a virtual machine onto an offload destination is disclosed. In an embodiment, a method comprises: defining an application programing interface (“API”) for capturing, in a packet processor offload, a network function packet processing for a data flow by specifying how to perform the network function packet processing on data packets that belong to the data flow. Based on capabilities of the packet processor offload and available resources, a packet processing offload destination is selected. Based at least on the API, the packet processor offload for the packet processing offload destination is generated. The packet processor offload is downloaded to the packet processing offload destination to configure the packet processing offload destination to provide the network function packet processing on the data packets that belong to the data flow. The packet processing offload destination is a PNIC or a hypervisor.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving, by a virtual machine (VM), one or more packets of a data flow; performing, by the VM, slow path packet processing of the one or more packets of the data flow; generating, by the VM, a set of instructions for performing network function processing offload on data packets that belong to the data flow that would otherwise be performed by the VM, the network function processing comprising a network processing function that operates on any network layer between the lower layers of networking and the Layer 4 of networking; providing the set of instructions for the data flow to a hypervisor; in response to receiving the set of instructions for the data flow: obtaining available resources for each of a plurality of destinations, the plurality of destinations comprising the following resources: a physical network interface controller (“PNIC”), a hypervisor kernel space module and a hypervisor user space module; determining, based on hardware capabilities of the PNIC and capabilities of the hypervisor, whether to offload the network function processing of the data flow to the hypervisor; in response to determining that the network function processing for the data flow can be offloaded to the hypervisor: determining to offload the network function processing of the data flow to a kernel space module of a hypervisor; and based on the determining, downloading the set of instructions to the kernel space module of the hypervisor to configure the hypervisor to enable the hypervisor to provide the network function processing on the data packets that belong to the data flow. 2. The method of claim 1 , wherein the packet processing offload destination is the PNIC. 3. The method of claim 1 , wherein the packet processing offload destination is the hypervisor user space module. 4. The method of claim 1 , further comprising: determining, based on the hardware capabilities of the PNIC and the capabilities of the hypervisor, whether the network function processing for the data flow can be offloaded to a user space module of the hypervisor; in response to determining that network function packet processing for the data flow can be offloaded to the user space module of the hypervisor: downloading the set of instructions to the user space module of the hypervisor to configure the hypervisor to enable the hypervisor to provide the network function processing on the data packets that belong to the data flow. 5. The method of claim 1 , wherein a packet processor offload configuration for the packet processing offload destination is generated based at least in part on the downloaded set of instructions and an application programing interface (“API”) for capturing network function packet processing; and wherein generating, based at least on the set of instructions and the API, the packet processor offload for the PNIC comprises translating actions included in the set of instructions into instructions and primitives that the PNIC can process; wherein generating, based at least on the set of instructions and the API, the packet processor offload configuration for the kernel space module of the hypervisor comprises translating the actions included in the set of instructions into instructions and primitives that the hypervisor can process; and wherein generating, based at least on the set of instructions and the API, the packet processor offload configuration for the user space module of the hypervisor comprises translating the actions included in the set of instructions into instructions and primitives that the hypervisor can process. 6. One or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by one or more processors, cause the one or more processors to perform: receiving one or more packets of a data flow; enabling a virtual machine to perform slow path packet processing of the one or more packets of the data flow; generating a set of instructions for performing network function processing offload on data packets that belong to the data flow, the network function processing comprising a network processing function that operates on any network layer between the lower layers of networking and the Layer 4 of networking; obtaining available resources for each of a plurality of destinations, the plurality of destinations comprising the following resources: a physical network interface controller (“PNIC”), a hypervisor kernel space module and a hypervisor user space module; determining, based on hardware capabilities of the PNIC and capabilities of a hypervisor, whether to offload the network function processing of the data flow to the hypervisor; in response to determining that the network function processing for the data flow can be offloaded to the hypervisor: determining whether the network function processing for the data flow can be offloaded to a kernel space module of the hypervisor; in response to determining that the network function processing for the data flow can be offloaded to the kernel space module of the hypervisor: downloading the set of instructions to the kernel space module of the hypervisor to configure the hypervisor to enable the hypervisor to provide the network function processing on the data packets that belong to the data flow. 7. The one or more non-transitory computer-readable storage media of claim 6 , wherein the packet processing offload destination is the PNIC. 8. The one or more non-transitory computer-readable storage media of claim 6 , wherein the packet processing offload destination is the hypervisor user space module. 9. The one or more non-transitory computer-readable storage media of claim 8 , wherein a packet processor offload configuration for the packet processing offload destination is generated based at least in part on the downloaded set of instructions and an application programing interface (“API”) for capturing network function packet processing. 10. The one or more non-transitory computer-readable storage media of claim 8 , comprising additional instructions which, when executed by the one or more processors, cause the one or more processors to perform: determining, based on the hardware capabilities of the PNIC and the capabilities of the hypervisor, whether the network function processing for the data flow can be offloaded to a user space module of the hypervisor; in response to determining that the network function processing for the data flow can be offloaded to the user space module of the hypervisor: downloading the set of instructions to the user space module of the hypervisor to configure the hypervisor to enable the hypervisor to provide the network function processing on the data packets that belong to the data flow. 11. The one or more non-transitory computer-readable storage media of claim 9 , wherein generating, based at least on the set of instructions and the API, the packet processor offload for the PNIC comprises translating actions included in the set of instructions into instructions and primitives that the PNIC can process; wherein generating, based at least on the set of instructions and the API, the packet processor offload configuration for the kernel space module of the hypervisor comprises translating the actions included in the set of instructions into instructions and primitives that the hypervisor can process; and wherein generating, based at least on the set of instructions and the API, the packet processor offload configuration for the user space module of the hypervisor comprises translating the actions included in the set of instructions into instructions and primitives that the hypervisor can pro
by balancing the load, e.g. traffic engineering · CPC title
Hypervisor-specific management and integration aspects · CPC title
using an overlay routing layer · CPC title
NAT traversal · CPC title
Network integration; Enabling network access in virtual machine instances · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.