Hierarchical Buffer Management for Switch Congestion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy network switch architectures face challenges in managing buffer space efficiently due to fixed allocation per queue, which becomes inadequate in large-scale virtual output queuing (VOQ) systems with tens of thousands of queues, leading to difficulties in fair usage of shared buffer resources and increased packet dropping.

Innovation Solution

The buffer management system adapts to the current congestion state by dynamically adjusting the buffer space each queue can utilize, considering both the queue's actual usage and the overall buffer utilization, using a hierarchical accounting structure and lookup tables to determine adaptive utilization based on base and parent utilization, along with a bias value.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fixed buffer allocation per queue is used, then queue isolation is improved, but buffer efficiency deteriorates and packet dropping increases under congestion

Engineering Contradiction:
Improvequeue isolationVSAvoidbuffer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The buffer management system is segmented into hierarchical levels: global buffer pool, queue-level sub-buffers, and packet-level allocation. This segmentation allows independent control at each level, enabling both queue isolation through dedicated sub-buffers and overall buffer efficiency through global pool management and dynamic reallocation based on congestion state.

Inventive Principle:
Principle #1Segmentation

2Reliability

If fixed buffer allocation per queue is used, then queue isolation is improved, but device complexity increases in large-scale VOQ systems

Engineering Contradiction:
Improvequeue isolationVSAvoidbuffer management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple queue-specific buffer management functions are merged into a unified hierarchical buffer management system. The global buffer pool serves all queues, and a centralized control mechanism manages allocation and reallocation across queues based on congestion state, reducing the complexity of managing thousands of independent queue buffers while maintaining isolation through logical separation and priority schemes.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If dynamic buffer adjustment based on congestion state is implemented, then buffer efficiency is improved, but measurement precision requirements increase

Engineering Contradiction:
Improvebuffer efficiencyVSAvoidcongestion state detection precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The buffer management system implements feedback mechanisms that continuously monitor queue length, buffer utilization, and packet drop rates. This feedback is used to dynamically adjust buffer allocation and admission control decisions. The feedback loop operates at multiple levels (global and queue-specific) and uses threshold-based triggers to initiate buffer reallocation, reducing the need for ultra-precise continuous measurement while maintaining effective congestion response.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11902170B2System and method for adaptive buffer management
Publication Date: 2024.02.13 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11902170B2 patent drawing
  • US11902170B2 patent drawing
  • US11902170B2 patent drawing

AI summary

One aspect of the instant application provides a system and method for managing a switch buffer. During operation, the system establishes a hierarchical accounting structure to determine utilizations of different elements of a buffer on the switch. The hierarchical accounting structure comprises one or more parent elements, and each parent element is associated with one or more child elements. The system determines a base utilization of a child element based on an amount of buffer space allocated to the child element and an amount of buffer space used by the child element, and determines an adaptive utilization of the child element based at least on the base utilization of the child element and a congestion state of a corresponding parent element. Determining the adaptive utilization of the child element comprises performing a table lookup operation. The system then stores a received packet associated with the child element in the buffer in response to the adaptive utilization of the child element being less than a predetermined threshold.