Virtual machine packet processing offload

US11936562B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11936562-B2
Application numberUS-201816039946-A
CountryUS
Kind codeB2
Filing dateJul 19, 2018
Priority dateJul 19, 2018
Publication dateMar 19, 2024
Grant dateMar 19, 2024

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.

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.

First claim

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

Assignees

Inventors

Classifications

  • H04L47/125Primary

    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

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 US11936562B2 cover?
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 tha…
Who is the assignee on this patent?
VMware LLC, Vmware Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/125. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 19 2024 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 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).