Device Driver Packet Segmentation Reducing CPU Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The CPU overhead associated with repeated traversal of the complex multi-layered software protocol stack during packet segmentation and reassembly operations is significant, and existing solutions focus on hardware offload, which may not fully address the underlying processing costs.
Innovation Solution
A method for performing segmentation and reassembly of data packets at a device driver level, where the driver forms 'superpackets' and segments them into smaller packets suitable for network transmission, reducing the number of protocol stack traversals and processing overhead by offloading segmentation tasks from the protocol stack to the device driver.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If packet segmentation and reassembly are performed within the protocol stack, then protocol processing is thorough and correct, but CPU overhead increases due to repeated traversal of the multi-layered software protocol stack
Solution Approach 1:
The patent extracts the segmentation and reassembly operations from the protocol stack and places them at the device driver level. This allows the protocol stack to be bypassed for these specific operations, reducing CPU overhead while maintaining correctness through dedicated driver-level handling of packet segmentation and reassembly.
Solution Approach 2:
The patent segments the network processing functions by separating packet segmentation and reassembly operations from the protocol stack and assigning them to the device driver layer. This functional segmentation reduces the traversal burden on the protocol stack and decreases CPU overhead.
2Use of energy by moving object
If hardware offload is used to perform segmentation and reassembly, then CPU overhead is reduced, but device complexity increases due to requirements for specialized network interface hardware
Solution Approach 1:
The patent introduces the device driver as an intermediary layer between the protocol stack and the network interface card. This software-based intermediary performs segmentation and reassembly operations, eliminating the need for complex hardware offload capabilities while still reducing CPU overhead through driver-level processing.
Solution Approach 2:
The patent replaces the mechanical/hardware-based segmentation offload with a software-based solution at the device driver level. This substitution maintains the performance benefits of reduced CPU overhead while avoiding the complexity of specialized hardware implementations.
3Productivity
If packet segmentation is performed at the device driver level, then the number of protocol stack traversals is reduced and CPU overhead decreases, but the complexity of the device driver increases
Solution Approach 1:
The patent implements preliminary action by having the device driver perform segmentation before packets are passed to the protocol stack, and reassembly after packets are received. This preliminary and post-processing approach optimizes the number of traversals while concentrating the complexity in a single location (the device driver) rather than distributing it throughout the protocol stack.
Data Source
AI summary
A method for performing segmentation of a first data packet into a plurality of second data packets at a functionality of a device driver for a network interface device supported by a data processing system, each second data packet comprising a header and a segment of data from the first data packet and the network interface device being capable of supporting a communication link over a network with another network interface device, the method comprising: accepting the first data packet, the first data packet carrying data for transmission by the network interface device over the network; forming a set of headers for the plurality of second data packets; writing the set of headers to memory; forming a specification, the specification indicating the headers in memory and the segments of data in the first data packet; requesting by means of the device driver transmission by the network interface device of the headers and the respective segments of data indicated in the specification so as to effect transmission of the second data packets over the network.


