Hypervisor Packet Processing Offload with Dual Execution Points for VMs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Packet processing programs running in virtual machines (VMs) fail to achieve high performance due to the inefficiency of executing at the VM's virtual NIC driver, which negates the benefits of in-driver packet processing, and existing workarounds like PCI passthrough reduce the advantages of virtualization.

Innovation Solution

Offload packet processing programs from guest vNIC drivers to the hypervisor, implementing dual execution points in the hypervisor, and using hardware offload APIs to manage and execute these programs efficiently, ensuring they are run at the most appropriate points within the host system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If packet processing programs are executed at the VM's virtual NIC driver, then the programs can be run in virtualized environments, but the performance benefit of in-driver packet processing is lost due to packets traversing the host networking stack

Engineering Contradiction:
Improvevirtualization compatibilityVSAvoidpacket processing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a hypervisor-level packet processing execution point as an intermediary between the physical NIC driver and the virtual NIC driver. This intermediary enables packet processing to occur at the hypervisor layer before packets are passed to the VM, achieving performance comparable to bare-metal execution while maintaining virtualization benefits. The hypervisor acts as a mediator that allows PDPP to function in virtualized environments without requiring PCI passthrough.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent adds a new dimension to packet processing by introducing dual execution points: one at the physical NIC driver level and another at the hypervisor level. This dimensional addition allows the system to select the most appropriate execution point based on the virtualization context, enabling PDPP to achieve high performance in both bare-metal and virtualized environments.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If PCI passthrough is used to assign the physical NIC to the VM, then packet processing can execute at the physical driver level, but the VM is tied to the host system and cannot be migrated

Engineering Contradiction:
Improvepacket processing performanceVSAvoidVM mobility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The hypervisor-level execution point serves as an intermediary that eliminates the need for PCI passthrough. By executing packet processing programs at the hypervisor layer, the system achieves physical-driver-level performance without tying the VM to specific host hardware, thereby enabling VM migration while maintaining high packet processing performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a functional copy of the packet processing execution capability at the hypervisor level, mirroring the bare-metal execution model. This copying allows VMs to achieve the same packet processing performance as bare-metal systems without requiring direct access to physical NIC resources, thus enabling migration while preserving performance characteristics.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If multiple VMs share the physical NIC through virtualization, then resource utilization improves, but packet processing performance degrades due to host networking stack traversal

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidpacket processing throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the packet processing function into separate execution points at the hypervisor level for each VM. This segmentation allows each VM to have its own dedicated packet processing execution context, enabling multiple VMs to share the physical NIC while maintaining high packet processing performance without host networking stack overhead for each VM's packets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hypervisor-level execution point acts as an intermediary that handles packet processing for multiple VMs before packets are passed to the virtual NIC drivers. This intermediary approach enables efficient resource sharing among multiple VMs while avoiding the performance degradation that would occur if each VM's packets traversed the host networking stack.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12360798B2Offloading packet processing programs from virtual machines to a hypervisor and efficiently executing the offloaded packet processing programs
Publication Date: 2025.07.15 VMWARE INC
  • US12360798B2 patent drawing
  • US12360798B2 patent drawing
  • US12360798B2 patent drawing

AI summary

In one set of embodiments, a hypervisor of a host system can receive a packet processing program from a virtual network interface controller (NIC) driver of a virtual machine (VM) running on the hypervisor. The hypervisor can then attach the packet processing program to a first execution point in a physical NIC driver of the hypervisor and to a second execution point in a virtual NIC backend of the hypervisor, where the virtual NIC backend corresponds to a virtual NIC of the VM that originated the packet processing program.