Configurable Receive Buffer Size for Variable Packet Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network interface devices often use fixed-size buffers for receiving packets, which can be inefficient in handling variable-sized packets and may require additional processing steps.
Innovation Solution
A network interface device is programmed to copy packet headers and payloads into configurable sized buffers, allowing dynamic configuration of buffer sizes based on received packet sizes, and utilizing descriptor rings to manage buffer allocation and packet processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If fixed-size buffers are used for receiving packets, then buffer allocation is simple and predictable, but efficiency in handling variable-sized packets deteriorates and additional processing steps are required
Solution Approach 1:
The patent implements dynamic buffer sizing where the network interface device can be programmed with different buffer sizes based on packet requirements. The receive descriptor includes a buffer size field that allows the buffer length to be dynamically adjusted for each packet, transforming the static fixed-size buffer system into a dynamic adaptive system that optimizes packet handling efficiency.
Solution Approach 2:
The invention changes the buffer size parameter from a fixed predetermined value to a configurable variable. The receive descriptor structure includes explicit buffer size fields (e.g., bytes_to_copy, buffer_length) that allow the buffer size parameter to be modified based on the actual packet size, enabling optimal resource utilization without requiring additional processing steps.
2Ease of manufacture
If fixed-size buffers are used, then memory allocation is straightforward, but adaptability to different packet sizes deteriorates
Solution Approach 1:
The patent modifies the buffer size parameter from a fixed constant to a configurable variable through the receive descriptor. The descriptor includes fields such as buffer_size, bytes_to_copy, and buffer_length that allow the memory allocation to be adapted to different packet sizes while maintaining straightforward allocation procedures through standardized descriptor structures.
Solution Approach 2:
The system transitions from static fixed-size buffers to dynamic buffers whose sizes are determined at runtime based on packet characteristics. The receive descriptor mechanism enables this dynamic adaptation while preserving memory allocation simplicity through a standardized interface that abstracts the underlying variability.
3Productivity
If variable-sized buffers are used, then packet handling efficiency improves, but device complexity increases
Solution Approach 1:
The patent introduces the receive descriptor as an intermediary data structure that manages the complexity of variable-sized buffers. The descriptor acts as a mediator between the network interface device and the memory buffers, encapsulating all the necessary information (buffer address, size, offset, status) in a standardized format that simplifies buffer management while enabling efficient variable-sized packet handling.
Solution Approach 2:
The system performs preliminary configuration of buffer parameters through the receive descriptor before packet reception. By pre-setting the buffer size, address, and other parameters in the descriptor, the complex task of dynamic buffer management is prepared in advance, reducing the complexity during actual packet processing while maintaining high efficiency.
4Ease of manufacture
If two rings of fixed-size buffers are used for headers and payloads, then packet structure management is simplified, but flexibility in buffer configuration deteriorates
Solution Approach 1:
The patent creates a universal receive descriptor structure that can manage both packet headers and payloads within a single flexible framework. The descriptor is designed to be multi-functional, handling different packet components (headers, payloads, fragments) with varying sizes through standardized fields that adapt to different configuration needs, eliminating the need for separate fixed-size buffer rings.
Solution Approach 2:
The invention replaces the static two-ring fixed-size buffer structure with a dynamic single-ring approach where the receive descriptor dynamically configures buffer parameters. The buffer size, offset, and length fields in the descriptor allow flexible configuration for different packet structures while maintaining simplified management through a unified descriptor-based interface.
Data Source
AI summary
Examples described herein relate to a network interface device comprising circuitry to: allocate a first number of buffers to store received packets associated with a first descriptor ring; allocate a second number of buffers to store received packets associated with a second descriptor ring; and based on receipt of a packet, copy the received packet into a number of buffers based on whether the received packet is associated with the first descriptor ring or the second descriptor ring. In some examples, the circuitry is to copy the received packet starting at an offset from a start of a starting buffer in a number of buffers, wherein the offset is based on whether the received packet is associated with the first descriptor ring or the second descriptor ring and wherein the number of buffers is based on whether the received packet is associated with the first descriptor ring or the second descriptor ring.


