Shared Buffer Pool Segmentation for Lossless Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data communication networks, switches with shared buffer pools face inefficiencies and congestion due to excessive pause message generation, leading to output port rate drooping, head-of-line blocking, and increased latency, especially when not all ingress ports are active.
Innovation Solution
Implementing per-port color metering with a three-tiered buffer pool structure – unrestricted, enforced, and headroom areas – and using probabilistic flow control to generate pause messages only when necessary, along with timers to manage buffer fullness levels and prevent premature pause generation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If each port is allocated a fixed number of buffer pages, then lossless behavior is maintained for each port, but buffer space is inefficiently used when not all ports are active
Solution Approach 1:
The buffer pool is segmented into multiple regions with different thresholds (first threshold for pause generation, second threshold for pause cancellation). This segmentation allows the system to apply different buffer management strategies to different portions of the buffer, enabling efficient utilization while maintaining lossless behavior for active ports.
Solution Approach 2:
The buffer allocation is made dynamic by monitoring the number of active ingress ports and adjusting the buffer thresholds and pause message generation accordingly. When fewer ports are active, the system dynamically adjusts to allow more efficient buffer usage, transitioning from static per-port allocation to dynamic shared buffer management.
2Reliability
If pause messages are generated when buffer threshold is reached, then buffer overflow is prevented, but excessive pause generation causes output port rate drooping
Solution Approach 1:
The system changes the parameter for pause message generation from a fixed per-port threshold to a dynamic shared buffer threshold that considers the number of active ports. This parameter change allows the buffer threshold to adapt to traffic conditions, preventing premature pause generation and maintaining higher output port rates while still preventing buffer overflow.
Solution Approach 2:
The system implements feedback by continuously monitoring buffer fullness and the number of active ingress ports, then adjusting pause message generation decisions accordingly. This feedback mechanism prevents excessive pause generation by considering the actual buffer state and port activity, thereby maintaining output port rate while preventing overflow.
3Reliability
If pause messages are generated for traffic bursts, then buffer protection is provided, but head-of-line blocking and increased latency occur
Solution Approach 1:
The buffer threshold for pause generation is made dynamic based on the number of active ingress ports. When fewer ports are active, the threshold is adjusted to allow more buffer usage before triggering pause messages. This dynamic adjustment protects the buffer from overflow while reducing premature pause generation that would cause latency and head-of-line blocking.
4Reliability
If fixed buffer allocation per port is used, then lossless behavior is ensured, but excessive pause generation occurs when ports share buffer capacity
Solution Approach 1:
The patent merges the buffer management of multiple ingress ports into a single shared buffer pool with unified threshold-based control. Instead of each port independently triggering pause messages, the system combines buffer usage from all active ports and generates pause messages based on the aggregate buffer state, reducing excessive pause generation while maintaining lossless behavior.
Data Source
AI summary
Packets are colored and stored in a shared packet buffer without assigning fixed page allocations per port. The packet buffer is divided into three areas—an unrestricted area, an enforced area, and a headroom area. Regardless of the fullness level, when a packet is received it will be stored in the packet buffer. If the fullness level is in the unrestricted area, no flow control messages are generated. If the fullness level is in the enforced region, a probabilistic flow control generation process is used determine if a flow control messages will be generated. If the fullness level is in the headroom area, flow control is automatically generated. Quanta timers are used to control regeneration of flow control messages.


