NIC Packet Assignment for Virtual Network Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cloud data centers, existing technologies face inefficiencies in processing inbound packets due to high CPU and memory utilization, particularly in virtualized environments where virtual routers handle packet routing, leading to suboptimal performance and resource utilization.
Innovation Solution
Configuring network interface cards (NICs) to directly send packet data to destination virtual machines based on virtual machine identifiers within tunnel packets, bypassing the need for software-based virtual routers, thereby improving memory and CPU utilization by using Direct Memory Access (DMA) transfers and reducing the load on virtual routers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If software-based virtual routers handle packet routing in virtualized environments, then routing functionality is provided, but CPU utilization increases and packet processing efficiency decreases
Solution Approach 1:
The patent extracts the packet routing function from the software-based virtual router and relocates it to the hardware NIC. The NIC is configured with receipt queues associated with specific virtual machines and uses virtual machine identifiers from tunnel packets to directly route packets to the appropriate virtual machine, bypassing the need for software-based routing processing.
Solution Approach 2:
The patent introduces an intermediary mechanism where the NIC acts as a hardware mediator between the physical network and virtual machines. The NIC uses DMA transfers to move packet data directly between network memory and virtual machine memory spaces, eliminating the need for CPU intervention in the packet forwarding path.
2Productivity
If virtual routers process inbound packets, then routing is performed, but memory utilization increases due to packet copying and processing
Solution Approach 1:
The patent extracts the packet forwarding function from the virtual router software and implements it in hardware at the NIC level. The NIC directly writes packet data to the memory locations of destination virtual machines using DMA, eliminating the memory copying operations that would otherwise occur in software-based routing.
Solution Approach 2:
The patent replaces the mechanical software-based packet processing mechanism with a hardware-based DMA transfer mechanism. Instead of software copying packets through multiple memory layers, the NIC hardware directly transfers packet data from network buffer memory to virtual machine memory spaces, reducing memory utilization.
3Ease of operation
If software-based routing is used, then packet forwarding is achieved, but device complexity increases due to software processing layers
Solution Approach 1:
The patent extracts the routing decision logic from the software virtual router and implements it in the hardware NIC. The NIC is configured with receipt queues mapped to specific virtual machines and uses virtual machine identifiers to make routing decisions in hardware, simplifying the overall system architecture by removing software processing layers from the data path.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach enhances memory and CPU utilization, increases packet processing rates, and optimizes resource allocation by offloading routing functionality from virtual routers to NICs, leading to improved performance in virtualized data center environments.
Implementation Method 1
the NIC may directly send packet data for the tunnel packet to the destination virtual machine. In some examples of directly sending packet data, the NIC may write the packet data to a memory location for an address space of the destination virtual machine using, e.g., a Direct Memory Access (DMA) transfer.
Data Source
AI summary
In some examples, a computing device includes one or more processors configured to execute a plurality of virtual machines; and a network interface card (NIC) coupled to the one or more processors and configured to receive configuration data defining a plurality of receipt queues of the NIC and associated with respective virtual machines of the plurality of virtual machines. The NIC is further configured to assign, based on respective virtual machine identifiers of packets received by the NIC, the packets to the plurality of receipt queues associated with the respective virtual machines.


