Adaptive Generic Receive Offload for Low-Latency Packet Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing GRO systems face challenges in handling packet reordering, temporal locality, and latency penalties due to fixed queuing and processing overheads, especially in high-speed network environments.

Innovation Solution

Adaptive GRO (A-GRO) system that segregates packets into flows based on precise criteria, moves packets to host memory without hardware queuing, uses per-flow virtual queues, and allows dynamic batching to reduce latency and processing overheads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If GRO accumulates multiple received data segments into a single event notification, then processing efficiency is improved, but latency increases due to waiting for packet arrivals and temporal locality requirements

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

Solution Approach 1:

The patent implements dynamic GRO by allowing the system to adaptively adjust aggregation behavior based on packet arrival patterns and flow characteristics. The NIC can dynamically decide when to flush aggregated packets to host memory rather than waiting for fixed temporal locality conditions, thus reducing latency while maintaining processing efficiency through selective aggregation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary classification and mapping of packets to flows at the NIC before host processing. By pre-organizing packets into flow-specific queues and identifying GRO packet sequences early, the system reduces the computational burden on the host and enables more aggressive aggregation without significantly increasing latency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If GRO holds packets in hardware queues to accumulate segments, then processing overhead is reduced, but packet reordering handling becomes complex and latency increases

Engineering Contradiction:
Improveprocessing overhead reductionVSAvoidpacket reordering handling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the packet handling process into distinct phases: classification at NIC, aggregation in host memory, and processing by protocol stack. By separating header and payload handling and using per-flow virtual queues, the system simplifies reordering handling while maintaining processing efficiency through structured organization of packet segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary buffering mechanism in host memory between the NIC and the protocol stack. This intermediary layer allows the NIC to offload aggregation tasks while the host memory serves as a flexible buffer that can handle out-of-order arrivals without requiring complex hardware reordering logic, thus reducing device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If physical MTU is increased to reduce packet count, then data communication efficiency is improved, but buffer memory requirements increase and congestion recovery becomes difficult

Engineering Contradiction:
Improvedata communication efficiencyVSAvoidbuffer memory requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent changes the dimension of aggregation from physical MTU size to logical packet sequences. Instead of being constrained by fixed MTU boundaries, the system aggregates packets based on flow identification and sequence numbering, allowing flexible accumulation of data segments across multiple MTU boundaries without increasing physical buffer requirements.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent creates a universal GRO mechanism that works across different MTU sizes and network conditions. The per-flow virtual queue system can handle variable-sized packets and adapt aggregation behavior regardless of physical MTU constraints, making the buffer memory requirements independent of the data communication efficiency goals.

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

4Ease of operation

If GRO processes packets in-order with strict flow classification, then processing simplicity is maintained, but adaptability to out-of-order arrivals and network conditions deteriorates

Engineering Contradiction:
Improveprocessing simplicityVSAvoidhandling adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic flow classification that adapts to out-of-order packet arrivals. The system maintains simple per-flow queue structures but dynamically adjusts aggregation decisions based on sequence number validation and packet timing, allowing it to handle out-of-order arrivals while preserving processing simplicity through rule-based adaptation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12438820B2System and method for adaptive generic receive offload
Publication Date: 2025.10.07 ENFABRICA CORP
  • US12438820B2 patent drawing
  • US12438820B2 patent drawing
  • US12438820B2 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.