Leaf Switch Buffer Segmentation for PFC Deadlock Mitigation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Priority Flow Control (PFC) deadlocks occur in network switch systems due to cyclic buffer dependencies, causing network transmission to cease when no-drop traffic fills buffers, leading to deadlocks in stretch topologies.
Innovation Solution
Implementing a method to re-classify and re-queue no-drop traffic by initializing multiple queues in leaf switches based on internal Class-of-Service (iCoS) identifiers, allowing pause commands to be forwarded between clusters, thereby breaking cyclic dependencies and preventing deadlocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If PFC is implemented to provide lossless network for no-drop traffic, then network reliability is improved, but cyclic buffer dependencies cause deadlocks that cease traffic transmission
Solution Approach 1:
The patent segments the buffer into multiple queues, with each queue corresponding to a specific cluster. This segmentation allows pause commands to be selectively applied to specific queues rather than the entire buffer, breaking the cyclic dependency that causes deadlocks while maintaining lossless transmission for non-congested queues.
Solution Approach 2:
The patent applies local quality by making each queue have cluster-specific characteristics through iCoS identifiers. Pause commands are processed locally at the cluster level, allowing downstream switches to selectively pause traffic from specific upstream clusters while maintaining transmission from other clusters, thus preventing network-wide deadlocks.
2Reliability
If buffers are filled with no-drop traffic to ensure lossless transmission, then transmission reliability is improved, but buffer overflow causes cyclic dependencies leading to deadlock
Solution Approach 1:
The buffer is segmented into multiple queues organized by cluster, reducing the complexity of managing cyclic dependencies. Each queue can be independently controlled with pause commands, simplifying the buffer management logic compared to managing a single large buffer with complex inter-cluster dependencies.
Solution Approach 2:
The iCoS identifier acts as an intermediary that links pause commands to specific queues. This intermediary simplifies the buffer management by providing a clear mapping between clusters and queues, making it easier to track and manage buffer states across clusters without complex dependency tracking.
3Object-affected harmful factors
If pause commands are applied to all traffic to prevent buffer overflow, then buffer overflow is prevented, but all traffic transmission is blocked causing network-wide deadlock
Solution Approach 1:
The patent applies pause commands locally to specific queues associated with congested clusters rather than globally to all traffic. This allows the network to prevent buffer overflow in affected clusters while maintaining transmission in non-congested clusters, avoiding network-wide deadlocks.
Solution Approach 2:
By segmenting traffic into cluster-specific queues, the patent enables selective application of pause commands to only the queues experiencing congestion. This segmentation prevents the need for network-wide pausing, maintaining productivity in unaffected parts of the network while preventing buffer overflow in congested areas.
Data Source
AI summary
Embodiments provide for mitigating priority flow control deadlock in stretch topologies by initializing a plurality of queues in a buffer of a leaf switch at a local cluster of a site having a plurality of clusters, wherein each queue of the plurality of queues corresponds to a respective one cluster of the plurality of clusters; receiving a pause command for no-drop traffic on the leaf switch, the pause command including an internal Class-of-Service (iCoS) identifier associated with a particular cluster of the plurality of cluster and a corresponding queue in the plurality of queues; and in response to determining, based on the iCoS identifier, that the pause command was received from a remote spine switch associated with a different cluster than the local cluster: forwarding the pause command to a local spine switch in the local cluster; and implementing the pause command on the corresponding queue in the buffer.


