Programmable Switch Queue Distribution for CPU Congestion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In communication systems with software-defined networking (SDN), the existing rate limiting methods are insufficient for managing multiple CPUs connected to a single hardware device, leading to CPU congestion and resource depletion.
Innovation Solution
A communication system with a programmable switch, multiple virtual network functions (VNFs), and a controller that distributes packets across a queue group, using load measurement and analysis to adjust queue distribution rules based on CPU load, implementing coarse or fine rate limiting as needed to prevent CPU congestion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If rate limiting is implemented for a single CPU using existing methods, then the CPU can be protected from overload, but when multiple CPUs are connected to a single hardware device, the number of queues becomes insufficient and rate limiting cannot be performed on all flows
Solution Approach 1:
The patent segments the rate limiting function by creating multiple independent queue groups, each associated with a specific CPU. This allows each CPU to have its own dedicated queues for rate limiting, enabling the system to handle multiple CPUs simultaneously without queue resource conflicts. The queue group is divided into multiple queues, and each queue can be independently controlled for rate limiting.
Solution Approach 2:
The patent introduces a controller as an intermediary that manages the queue groups and distributes packets to appropriate CPUs. The controller receives packet distribution instructions, determines which CPU should handle each packet based on load status and queue availability, and directs packets accordingly. This intermediary layer enables coordinated rate limiting across multiple CPUs while maintaining system-wide resource management.
2Adaptability or versatility
If more queues are added to support multiple CPUs, then rate limiting can be performed on all flows, but the device complexity and resource requirements increase
Solution Approach 1:
The patent makes queues universal by allowing a single queue to serve multiple purposes and be associated with different CPU contexts dynamically. The queue group structure enables queues to be flexibly allocated to different CPUs based on current load conditions and packet distribution requirements. This multi-functionality reduces the need for dedicated queues for each CPU, thereby reducing overall device complexity while maintaining comprehensive rate limiting capability.
Solution Approach 2:
The patent implements dynamic queue allocation where the association between queues and CPUs is not fixed but can change based on real-time system conditions. The controller dynamically determines which queue group should receive packets from which CPU based on current load status, enabling adaptive resource utilization. This dynamic approach allows the system to optimize queue usage and reduce the total number of queues needed compared to static one-to-one mappings.
3Productivity
If packets are distributed evenly across multiple CPUs, then load balance may be maintained, but CPU congestion occurs when some CPUs have higher traffic loads
Solution Approach 1:
The patent implements a feedback mechanism where the controller continuously monitors the load status of each CPU and adjusts packet distribution accordingly. Each CPU reports its load status to the controller, which uses this feedback information to make informed decisions about packet routing. When a CPU becomes congested, the controller redirects packets to less loaded CPUs, maintaining load balance and preventing congestion while preserving overall system throughput.
Solution Approach 2:
The patent changes the distribution parameter from static even distribution to dynamic load-based distribution. The controller adjusts the packet distribution parameters based on real-time CPU load conditions, selecting different distribution strategies depending on the current state. This parameter change enables the system to adapt to varying traffic patterns and maintain optimal load balance across CPUs, preventing congestion while maximizing productivity.
Data Source
AI summary
A communication system includes a programmable switch configured to perform packet transfer and queuing, a plurality of VNFs configured to execute network functions on packets, and a controller configured to control the programmable switch including a queue distribution unit configured to distribute input packets to any of the plurality of VNFs according to an instruction of the controller with respect to a queue group, the plurality of VNFs each include a load measurement unit configured to measure an amount of consumption of server resources and notify the controller of a load status, and the controller includes a load analysis unit configured to analyze a load of each of the plurality of VNFs based on a certain rule, and a queue control unit configured to change a queue distribution rule.


