PDU Stream Interface Descriptor for Noncontiguous Buffer Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing network stack architecture incurs performance overhead due to the need to copy protocol data units (PDUs) from noncontiguous memory locations, leading to inefficiencies in data processing and potential delays in deep packet inspection and security analysis, especially when dealing with non-contiguous PDUs stored in buffer pools.

Innovation Solution

A PDU stream interface is designed to create descriptor data structures that link related PDUs in the correct order, allowing applications to access PDUs without copying them into contiguous memory locations, thereby bypassing the operating system and reducing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If protocol data units are stored in noncontiguous buffers in the buffer pool, then memory utilization is improved and data can be processed in received order, but data copying overhead increases and processing efficiency decreases

Engineering Contradiction:
Improvememory utilizationVSAvoidprocessing efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the protocol data unit access mechanism into two parts: the actual data storage in noncontiguous buffers and the descriptor structure that provides logical continuity. The descriptor is divided into a header portion (containing metadata like buffer addresses and lengths) and a data portion, allowing the system to maintain both segmented physical storage and contiguous logical access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The descriptor data structure acts as an intermediary between the application and the noncontiguous buffer pool. Instead of applications directly accessing scattered buffers, they access the descriptor which contains all necessary information (buffer addresses, lengths, offsets) to reconstruct the complete protocol data unit view without requiring physical data copying.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If protocol data units are copied into contiguous memory locations, then data access simplicity is improved, but processing time and power consumption increase

Engineering Contradiction:
Improvedata access simplicityVSAvoidprocessing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent uses a logical copy mechanism through the descriptor structure rather than a physical data copy. The descriptor header contains references to the actual data buffers, creating a virtual copy that provides contiguous access semantics without the performance penalty of physical data movement. This allows applications to access protocol data units as if they were contiguous while avoiding actual copying overhead.

Inventive Principle:
Principle #26Copying

3Productivity

If the operating system is bypassed for PDU access, then processing overhead is reduced and performance improves, but system complexity increases

Engineering Contradiction:
Improveprocessing performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The descriptor data structure serves multiple functions simultaneously: it acts as a data structure defining the protocol data unit, a pointer mechanism referencing buffer pool locations, a metadata container holding buffer addresses and lengths, and an access interface for applications. This multi-functionality reduces the need for separate OS-mediated operations while maintaining systematic control.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9398117B2Protocol data unit interface
Publication Date: 2016.07.19 NETAPP INC
  • US9398117B2 patent drawing
  • US9398117B2 patent drawing
  • US9398117B2 patent drawing

AI summary

An interface can be designed that efficiently constructs descriptors for streams of protocol data units (PDUs) and provides coherent views of the PDUs and the PDU stream for a requesting application regardless of location within a buffer pool for PDUs. The interface creates a descriptor for each PDU written into the buffer pool and links the descriptors in accordance with the appropriate order of the corresponding PDUs. The interface can create PDU descriptors hierarchically. For instance, a PDU descriptor for a PDU of a layer N protocol can refer to one or more PDU descriptors of a layer N−1 protocol.