Adaptive Receive Offload for Low-Latency Packet Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Generic Receive Offload (GRO) techniques face challenges in handling packet reordering, temporal locality, and latency penalties due to fixed queuing and processing overheads, particularly in high-speed network environments.

Innovation Solution

Adaptive Generic Receive Offload (A-GRO) system that segregates packets into flows based on header analysis, moves packets to host memory without hardware queuing, uses per-flow virtual queues, and allows dynamic batching to reduce processing latency and improve efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If GRO accumulates multiple packets into a single event notification, then processing efficiency is improved, but latency increases due to waiting for packet aggregation

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary classification and mapping of packets to flows before full aggregation is complete. By pre-establishing flow contexts and preparing data structures in advance, the system reduces the time needed for final packet processing and notification, thereby reducing latency while maintaining aggregation benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts aggregation behavior based on flow characteristics and packet arrival patterns. By making aggregation depth and timing adaptive rather than fixed, the system can optimize between latency and processing efficiency for different network conditions and flow types.

Inventive Principle:
Principle #15Dynamics

2Ease of manufacture

If GRO uses fixed queuing structures, then implementation simplicity is improved, but flexibility in handling packet reordering and variable flow patterns deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidflexibility in handling packet reordering
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The system segments the GRO functionality into distinct components: packet classification, flow context management, aggregation control, and notification generation. This modular segmentation allows each component to be optimized independently for handling packet reordering while maintaining overall system simplicity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes key parameters dynamically based on packet characteristics and flow state, including aggregation depth, notification timing, and flow context allocation. These parameter changes enable the system to adapt to variable flow patterns and packet reordering scenarios while maintaining a relatively simple fixed queuing structure.

Inventive Principle:
Principle #35Parameter changes

3Speed

If GRO processes packets in hardware, then processing speed is improved, but memory resources are consumed due to hardware buffering

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware buffer memory
Core Design Contradiction:
SpeedVSVolume of stationary object

Solution Approach 1:

The system extracts the aggregation and context management functions from hardware buffering, performing these operations in software or firmware after packets are received. This extraction allows hardware to focus on high-speed packet reception and initial classification while reducing the memory burden on hardware buffers by moving complex processing to systems with access to larger memory resources.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12556484B2System and method for adaptive generic receive offload
Publication Date: 2026.02.17 ENFABRICA CORP
  • US12556484B2 patent drawing
  • US12556484B2 patent drawing
  • US12556484B2 patent drawing

AI summary

An adaptive generic receive offload (A-GRO) system and method are disclosed. In some embodiments, the system comprises a host including a host protocol stack and a host memory, and a network interface card that is communicatively connectable to the host. The A-GRO system is configured to: receive a packet from a network, parse the packet to a header and a payload, classify and map the packet into a particular flow based on contexts associated with a plurality of flows and the header, and move the header and the payload to separate queues associated with the particular flow in the host memory, without holding and stalling the packet in hardware of the NIC. By maintain packet coherence information including header chains, the A-GRO allows the host to skip processing the packets between the first and last headers in a GRO aggregation. The A-GRO system also improves mis-ordering packet handling.