Network Device Buffer Module Queue Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The rapid increase in network speed and data streams leads to excessive resource consumption and buffering challenges due to the high logical complexity and quantity of queues in network devices, which are typically implemented as linked lists.
Innovation Solution
A network device with a buffer module containing fewer queues than data streams, utilizing a counting module and control module to manage buffer quantities through counters that send pause indications when thresholds are exceeded, thereby reducing resource consumption and buffer pressure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the quantity of queues is increased to isolate different data streams, then data stream isolation is improved, but device complexity and resource consumption increase sharply
Solution Approach 1:
Multiple data streams share a common queue structure rather than having dedicated queues. The queue serves multiple functions by handling different data streams through shared access with individual counters tracking each stream's buffer quantity, reducing the number of queue structures needed while maintaining isolation.
Solution Approach 2:
Instead of creating multiple physical queue structures, the patent uses virtual separation through counters that copy the tracking function for each data stream. Each counter maintains independent state information for its associated data stream, providing logical isolation without duplicating the queue structure.
2Adaptability or versatility
If the quantity of queues is increased to handle more data streams, then data stream capacity is improved, but buffer pressure increases significantly
Solution Approach 1:
Multiple queues are merged into a single shared queue structure that handles all data streams. The buffer space is consolidated and shared among all M data streams, reducing total buffer pressure while maintaining the capacity to handle multiple streams through the counter-based tracking mechanism.
Solution Approach 2:
The system dynamically allocates buffer space within the shared queue based on real-time needs of different data streams. Counters track buffer quantities for each stream, and pause indication information is sent dynamically when thresholds are exceeded, allowing flexible adaptation to varying traffic conditions without fixed queue allocations.
3Measurement precision
If counters track buffer quantities for all data streams, then buffer management precision is improved, but resource consumption increases
Solution Approach 1:
The patent extracts the tracking function from the queue structure itself and separates it into independent counters for each data stream. This allows precise monitoring of buffer quantities for each stream without requiring separate complex queue structures, reducing overall resource consumption while maintaining tracking accuracy.
Data Source
Figure 1~2
Figure 3
AI summary
This application provides a network device, including a buffer module, a counting module, a control module, and a sending module. The buffer module includes N queues, configured to buffer M data streams, where N is less than M. The counting module includes M counters, the M counters are in a one-to-one correspondence with the M data streams, and the M counters are configured to count buffer quantities for the M data streams in the N queues. The control module is configured to: when a count value on a first counter exceeds a corresponding threshold, discard a to-be-enqueued data packet of a data stream corresponding to the first counter, or control the sending module to send pause indication information to an upper-level control module. Once the count value on the first counter exceeds the corresponding threshold, the to-be-enqueued data packet of the data stream corresponding to the first counter is discarded, or the sending module is controlled to send the pause indication information to the upper-level control module. Therefore, on one hand, resource consumption of the network device can be reduced. On the other hand, buffer pressure of the network device can be released.