Device Driver Packet Segmentation Reducing CPU Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprotocol processing correctnessVSAvoidCPU overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
ImproveCPU overheadVSAvoidhardware complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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

Engineering Contradiction:
Improvenetwork transmission efficiencyVSAvoiddevice driver complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9225807B2Driver level segmentation
Publication Date: 2015.12.29 XILINX INC
  • US9225807B2 patent drawing
  • US9225807B2 patent drawing
  • US9225807B2 patent drawing

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.