Network Interface Packet Header Splitting and Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing networking protocols, such as TCP and RTP, face challenges in maintaining the correct order of packet delivery, especially when packets are lost or received out of order, leading to incorrect storage and reconstruction of data in receiver buffers.
Innovation Solution
A network interface device is equipped with programmable circuitry that classifies and distributes packets based on packet order information, using descriptors to identify available buffers and store received packets in the correct order by copying headers and payloads into separate buffers, allowing for stateless copying and reordering of packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If packets are copied to host memory in the order of receipt, then the copying process is simple and fast, but the packets may be stored in incorrect order when received out of order
Solution Approach 1:
The patent segments the packet copying process into two independent parts: header copying and payload copying. The header is copied to a header buffer while the payload is copied to a payload buffer using separate buffer management mechanisms. This segmentation allows independent optimization of each copying operation and enables proper reordering through separate buffer address calculations based on packet sequence numbers.
Solution Approach 2:
The patent introduces an intermediary buffer mechanism with separate header and payload buffers. Instead of copying packets directly to final destination memory in receipt order, the system uses these intermediary buffers to temporarily store packet components, then reconstructs them in the correct transmission order. The buffer management unit acts as a mediator that calculates appropriate buffer addresses based on packet sequence information.
2Device complexity
If a single dedicated buffer is used for packet storage, then buffer management is simple, but header and payload cannot be handled separately for reordering
Solution Approach 1:
The patent divides the single buffer into two separate buffers: a header buffer for storing packet headers and a payload buffer for storing packet payloads. This segmentation allows the system to independently manage header and payload data, enabling separate reordering operations. The driver can provide separate descriptors to the NIC for each buffer type, facilitating flexible reordering based on packet sequence numbers while maintaining relatively simple buffer management through dedicated descriptor structures.
3Productivity
If packets are copied without considering transmission order, then the copying process is stateless and efficient, but the reconstructed data sequence is incorrect
Solution Approach 1:
The patent applies preliminary action by calculating and setting the correct buffer addresses before packets are copied. The buffer management unit calculates the appropriate payload buffer address based on the packet sequence number extracted from the header, before the actual copying occurs. This preliminary address calculation ensures that packets are placed in the correct positions in the payload buffer, maintaining transmission order without requiring complex reordering operations after copying.
Solution Approach 2:
The system uses feedback from the packet header information (specifically the sequence number) to dynamically determine the destination buffer address. The buffer management unit reads the sequence number from the copied header, uses this information to calculate the correct payload buffer address, and then performs the copying operation. This feedback mechanism ensures that packet sequence information is preserved and used to maintain correct data reconstruction order.
Data Source
AI summary
Examples described herein relate to a network interface device to perform header splitting with payload reordering for one or more packets received at the network interface device and copy headers and/or payloads associated with the one or more packets to at least one memory device.


