Configurable Receive Buffer Size for Variable Packet Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvebuffer allocation simplicityVSAvoidpacket handling efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If fixed-size buffers are used, then memory allocation is straightforward, but adaptability to different packet sizes deteriorates

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidpacket size adaptability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

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.

Inventive Principle:
Principle #35Parameter changes

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.

Inventive Principle:
Principle #15Dynamics

3Productivity

If variable-sized buffers are used, then packet handling efficiency improves, but device complexity increases

Engineering Contradiction:
Improvepacket handling efficiencyVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvepacket structure managementVSAvoidbuffer configuration flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12341709B2Configurable receive buffer size
Publication Date: 2025.06.24 INTEL CORP
  • US12341709B2 patent drawing
  • US12341709B2 patent drawing
  • US12341709B2 patent drawing

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.