Virtualized Receive Descriptors for Network Interface Controllers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network interface controllers (NICs) do not provide virtualization of receive descriptors, leading to inefficient packet processing as context information is lost between the NIC and the target system, requiring repeated processing stages to reproduce context information.
Innovation Solution
The system and method for providing virtualized receive descriptors allow guest systems to specify customized formats for receive descriptors, which are then built and stored by the NIC, enabling efficient packet processing by including context information directly in the descriptors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If current NICs do not provide virtualization of receive descriptors, then device complexity is reduced, but packet processing performance deteriorates due to lost context information requiring repeated processing
Solution Approach 1:
The receive descriptor is segmented into multiple parts: a header portion containing context information (packet length, packet type, VLAN ID, etc.) and a data portion. This segmentation allows the context information to be preserved and reused, eliminating the need for repeated processing while maintaining manageable descriptor structure.
Solution Approach 2:
Context information is extracted and stored in the receive descriptor header during the initial packet reception phase, before the target system needs to process the packet. This preliminary action preserves the context information that would otherwise be lost, enabling efficient subsequent processing without reproduction.
2Productivity
If customized receive descriptor formats are provided to each guest system, then packet processing efficiency improves, but device complexity and memory requirements increase
Solution Approach 1:
A universal receive descriptor format is designed that can serve multiple guest systems with different requirements. The descriptor includes flexible fields that can be customized through profiles, allowing one descriptor structure to fulfill multiple functions for different virtual machines without requiring separate descriptor formats for each.
Solution Approach 2:
The receive descriptor format allows parameter changes through configurable profiles that specify different formats for different guest systems. Parameters such as packet length, packet type, and VLAN ID handling can be adjusted per guest system requirements while maintaining a consistent underlying structure, enabling customization without proportionally increasing complexity.
3Loss of information
If context information is included in receive descriptors, then information loss is eliminated, but descriptor size and memory usage increase
Solution Approach 1:
Context information is extracted from the packet data and placed into a dedicated header portion of the receive descriptor. This extraction concentrates the essential context information (packet length, type, VLAN ID, checksum status) in a compact format, preventing information loss while using minimal additional memory compared to storing full packet copies.
Solution Approach 2:
Only the essential context information required for efficient packet processing is included in the receive descriptor header, rather than duplicating the entire packet. This partial action includes just the critical fields needed to avoid repeated processing, balancing information retention with memory efficiency.
Data Source
AI summary
There is disclosed in one example a computing apparatus, including: a hardware platform including at least a processor; and one or more memories having encoded thereon instructions to instruct the hardware platform to: receive a request to generate a receive descriptor profile (RDP) for the requestor's network flow; receive at least one parameter for the RDP; generate the RDP from the at least one parameter; and send the RDP to a network interface controller for the requestor.


