Zero-Copy Buffering for Long-Haul Network Links

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data communication networks face challenges in efficiently managing buffering for long-haul links, where the propagation delay and varying data transmission rates require larger buffer sizes than typically available, leading to potential congestion and inefficiencies.

Innovation Solution

A network device with multiple ports and buffer slices implements zero-copy buffering by dynamically allocating groups of buffer slices to selected ports based on Round-Trip Time (RTT) and traffic patterns, using a controller to manage read and write pointers and concatenate buffer slices to optimize buffering and flow control, while mitigating congestion through packet discard if necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional buffering schemes are used for long-haul links, then buffer size must be increased to handle propagation delay, but this increases device complexity and reduces buffering flexibility

Engineering Contradiction:
Improvebuffering capacity for long-haul linksVSAvoidbuffer management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The buffer is divided into multiple buffer slices that can be independently allocated and managed. Each slice can be dynamically assigned to different ports based on traffic requirements, allowing the system to handle long-haul links without requiring a single large dedicated buffer, thus reducing overall complexity while maintaining sufficient buffering capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The buffer allocation is made dynamic through the use of read and write pointers that can be adjusted in real-time. Buffer slices are dynamically allocated to ports based on current traffic patterns and RTT requirements, allowing the system to adapt to varying long-haul link demands without fixed buffer assignments, improving both reliability and flexibility.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If static buffer allocation is used, then buffer management is simplified, but buffering flexibility and resource utilization deteriorate

Engineering Contradiction:
Improvebuffer management simplicityVSAvoidbuffer allocation flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system employs dynamic buffer slice allocation with movable read and write pointers that adjust based on real-time traffic conditions. This allows buffer resources to be flexibly reassigned between ports as needed, achieving high adaptability while maintaining manageable complexity through the standardized pointer-based control mechanism.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Buffer slices are designed to be universal resources that can serve multiple ports and different traffic types. The same pool of buffer slices can be allocated to any port requiring long-haul link support, making the buffering system versatile and adaptable to various scenarios without requiring port-specific fixed buffers.

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

3Reliability

If larger buffers are allocated to handle propagation delay, then flow control reliability improves, but buffer resource utilization and congestion efficiency worsen

Engineering Contradiction:
Improveflow control for long-haul linksVSAvoidbuffer resource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the buffer into multiple slices that can be shared across ports, the system ensures that each long-haul link receives sufficient buffering capacity for reliable flow control while the overall buffer resources are efficiently utilized across multiple connections, preventing waste from dedicated large buffers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically changes buffer allocation parameters (read/write pointer positions, slice assignments) based on real-time traffic conditions and RTT measurements. This allows the buffer resources to be optimally sized for current long-haul link requirements, ensuring flow control reliability while maximizing overall resource utilization through adaptive parameter adjustment.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11558316B2Zero-copy buffering of traffic of long-haul links
Publication Date: 2023.01.17 MELLANOX TECHNOLOGIES LTD(IL)
  • US11558316B2 patent drawing
  • US11558316B2 patent drawing

AI summary

A network device includes multiple ports, multiple buffer slices, a controller, and buffer control circuitry. The multiple ports are configured to communicate packets over a network. The multiple buffer slices are linked respectively to the multiple ports. The controller is configured to allocate a group of two or more of the buffer slices to a selected port among the ports. The buffer control circuitry is configured to buffer the packets, communicated via the selected port, in the group of the buffer slices, using zero-copy buffering.