NIC Layer 4 Flow Classification and Per-Flow Queue Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network interface cards (NICs) lack the capability to perform scheduling operations on individual Layer 4-level packet flows, such as TCP, UDP, or RDMA, resulting in insufficient user control over applications and increased network burdens.
Innovation Solution
The development of a network interface card that supports Layer 4-level data packet flows by retrieving and reconfiguring packet flows into per-flow queues, enabling queue scheduling tasks like rate limiting, congestion management, and flow pacing, with the host or NIC performing these tasks independently or in collaboration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If NICs support only VF and PF level rate limiters and scheduling tasks, then device complexity is reduced and ease of operation is improved, but user control over individual application flows is insufficient and network burden increases
Solution Approach 1:
The patent segments the scheduling and rate limiting functionality from the host CPU to the NIC hardware. By implementing flow classification, per-flow queueing, and scheduling algorithms directly in the NIC, the system divides the network processing tasks into manageable components that can operate independently at the network interface level, thereby providing fine-grained flow control without proportionally increasing overall system complexity
Solution Approach 2:
The patent introduces an intermediary classification mechanism within the NIC that acts as a mediator between incoming network traffic and the per-flow queues. This intermediary component automatically classifies packets into appropriate flows based on L4 headers and routing rules, enabling detailed flow-level control without requiring complex host-based processing for each packet
2Adaptability or versatility
If NICs perform scheduling operations at packet flow level, then user control over applications is enhanced, but device complexity and processing burden on the NIC increases
Solution Approach 1:
The patent applies preliminary action by performing flow classification and queue assignment before packets enter the scheduling stage. The NIC classifies packets into per-flow queues in advance using L4 header information and pre-configured routing rules, so that subsequent rate limiting and scheduling operations can be applied efficiently to already-grouped flows rather than requiring complex per-packet analysis
Solution Approach 2:
The patent implements partial action by applying rate limiting and scheduling only to specific per-flow queues that require control, rather than processing all traffic uniformly. The system can selectively enable flow-level scheduling for certain applications or traffic types while maintaining simpler handling for other flows, thereby achieving adaptability without uniformly increasing processing complexity across all traffic
3Productivity
If host performs flow classification and queue reconfiguration, then NIC processing burden is reduced, but host involvement and system complexity increases
Solution Approach 1:
The patent enables self-service by allowing the NIC to autonomously perform flow classification, packet reconfiguration into per-flow queues, and scheduling operations without requiring continuous host intervention. The NIC uses its own classification mechanisms and internal queue management structures to handle these tasks independently, improving packet processing efficiency by eliminating the need for host-based flow management while maintaining manageable system complexity through hardware-based automation
Data Source
AI summary
Described are platforms, systems, and methods for performing queue scheduling tasks on data packet flows. In one aspect, a method comprises: retrieving a plurality of packet flows from a network stack; reconfiguring the retrieved packet flows into per-flow queues; and performing one or more queue scheduling tasks on the per-flow queues.


