Patent ID: 11936562
Assignee: VMWARE LLC
Field: Digital communication (Electrical engineering)
Classification: CPC H  G | IPC G  H

Claim 11:
12. A host computer comprising: a virtual machine (VM) configured to:
receive one or more packets of a data flow;
perform slow path packet processing of the one or more packets of the data flow; and
generate a set of instructions for performing network function processing offload on data packets that belong to the data flow, the network function processing includes a network processing function that operates on any network layer between the lower layers of networking and the Layer 4 of networking;
one or more processors;
one or more memory units; and
a hypervisor configured with one or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by the one or more processors, cause the one or more processors to perform:
receiving the set of instructions for performing the network function processing offload on data packets that belong to the data flow;
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 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.