Flow Control Signal Definition for Transmit Queue Congestion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing flow control protocols, such as Ethernet pause (IEEE 802.3x) and priority pause (IEEE 802.1qbb), are inadequate in managing congestion in multi-stage queues and handling data bursts, leading to potential buffer overflow and loss of data due to head-of-line blocking and congestion issues in hop-by-hop network links.
Innovation Solution
A processor-readable medium stores code that defines a suspension time value for a transmit queue based on the congestion level of a receive queue and its state, allowing for granular control of data flow through multiple flow control loops, including physical link control loops, first-stage control loops, and second-stage control loops, to prevent buffer overflow and manage congestion effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If known flow control protocols (Ethernet pause, priority pause, QCN) are used, then buffer overflow can be prevented in some applications, but they cannot adequately resolve congestion issues in multi-stage queues and handle data bursts effectively
Solution Approach 1:
The patent segments the flow control mechanism into multiple independent control loops (physical link control loop, first-stage control loop, second-stage control loop), each managing congestion at different stages of the multi-stage queue system. This allows targeted congestion management for each queue stage without affecting the entire system, resolving the limitation of conventional protocols that treat congestion uniformly.
Solution Approach 2:
The patent implements dynamic suspension time values that are calculated based on real-time congestion levels and queue states. The suspension time is not fixed but adapts to current network conditions, allowing the system to respond dynamically to data bursts and congestion patterns, thereby improving both reliability and adaptability.
2Loss of substance
If flow control is implemented to manage congestion, then data loss due to buffer overflow is reduced, but head-of-line blocking and congestion issues persist in multi-stage queues
Solution Approach 1:
By segmenting the flow control into multiple control loops that operate independently at different stages, the patent eliminates head-of-line blocking at each stage. The first-stage control loop manages congestion before data enters the multi-stage queue, while the second-stage control loop manages congestion within the queue, preventing HOL blocking from propagating through the system.
Solution Approach 2:
The patent employs feedback mechanisms where each control loop continuously monitors congestion levels and queue states, adjusting suspension time values based on real-time conditions. This feedback allows the system to detect and respond to congestion patterns, preventing data loss and HOL blocking before they occur.
3Ease of operation
If suspension time value is defined based on congestion level and queue state, then granular control of data flow is achieved, but system complexity increases
Solution Approach 1:
The patent divides the complex flow control function into three separate control loops, each with a relatively simple structure. The physical link control loop handles basic pause/frame transmission, the first-stage control loop manages congestion before the multi-stage queue, and the second-stage control loop manages congestion within the queue. This segmentation makes each individual controller simpler while achieving granular control of the entire system.
Solution Approach 2:
Each control loop in the patent is designed to be multi-functional, handling both flow control and congestion management tasks within a single loop structure. The control loops can operate independently or in coordination, providing universal functionality that reduces overall system complexity while maintaining precise flow control.
Data Source
AI summary
In one embodiment, a processor-readable medium can store code representing instructions that when executed by a processor cause the processor to receive a value representing a congestion level of a receive queue and a value representing a state of a transmit queue. At least a portion of the transmit queue can be defined by a plurality of packets addressed to the receive queue. A rate value for the transmit queue can be defined based on the value representing the congestion level of the receive queue and the value representing the state of the transmit queue. The processor-readable medium can store code representing instructions that when executed by the processor cause the processor to define a suspension time value for the transmit queue based on the value representing the congestion level of the receive queue and the value representing the state of the transmit queue.


