Adaptive Generic Receive Offload for Low-Latency Packet Reordering
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
Data Source
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.


