NIC Hardware Flow ID Generation for CPU-Free Packet Reassembly
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Reassembling fragmented IP packets at the destination requires significant CPU resources, slowing down packet processing and incurring performance penalties, especially for short-lived flows.
Innovation Solution
A network interface controller (NIC) with a hardware pipeline that generates unique IDs for network flows using packet data fields, allowing packet reassembly and other operations without relying on software, and includes a flow table for auto-aging and sub-entry management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If software on host CPU or NIC processing core is used for packet reassembly, then packet reassembly function is achieved, but processing time increases and CPU resources are consumed
Solution Approach 1:
The patent replaces software-based packet reassembly with a hardware pipeline system that uses circuitry to generate unique IDs and manage flow tables. This hardware implementation eliminates the need for CPU software processing, significantly reducing processing time and improving packet reassembly speed while consuming minimal resources.
2Speed
If hardware pipeline with circuitry is used for unique ID generation, then processing speed improves, but device complexity increases
Solution Approach 1:
The patent segments the packet processing function into distinct hardware components: a pipeline with circuitry for unique ID generation, a flow table for storing flow information, and sub-entry management structures. This segmentation allows each component to be optimized independently and simplifies the overall hardware design while maintaining high processing speed.
Data Source
AI summary
Embodiments herein describe a NIC that generates unique IDs for data flows using data fields within packets. The flow table can include multiple sub-entries that can map to the same IP ID. Each sub-entry in the flow table can be assigned a different key that serves as a unique ID for the flow for matching to packets that belong to the same network flow.


