Programmable Switch Queue Distribution for CPU Congestion

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveCPU protection from overloadVSAvoidRate limiting capability across multiple CPUs
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
ImproveRate limiting coverage for multiple CPUsVSAvoidNumber of queues required
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
ImprovePacket processing throughputVSAvoidCPU load balance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11431636B2Communication system and communication method
Publication Date: 2022.08.30 NIPPON TELEGRAPH & TELEPHONE CORP
  • US11431636B2 patent drawing
  • US11431636B2 patent drawing
  • US11431636B2 patent drawing

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.