Multi-Core NIC Queue Management via Logical Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-core systems face challenges in balancing network traffic distribution across cores due to lack of effective NIC queue management, leading to queue mismatching and uneven processing loads.
Innovation Solution
A method is introduced where packet engines on multiple cores store and manage data packets in logical transmit and receive queues, with an interface module directing packets to a common network interface card (NIC) for transmission or reception, using a flow distributor to hash tuples for core selection based on IP addresses and ports, ensuring even distribution of network traffic.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a Receive Side Scaler distributes packets to cores based on a predetermined function, then packet distribution is achieved, but queue mismatching occurs due to lack of NIC queue management for each core
Solution Approach 1:
The patent divides the single NIC receive queue into multiple logical queues, with each logical queue assigned to a specific core. This segmentation allows each core to have dedicated queue management, eliminating queue mismatching while maintaining packet distribution capability across multiple cores.
2Productivity
If network traffic is distributed across multiple cores using functional parallelism or data parallelism, then processing capacity is increased, but distribution symmetry is poor due to not considering traffic amount
Solution Approach 1:
The patent implements dynamic traffic distribution by having the flow distributor continuously monitor and adjust packet routing based on current traffic conditions. The system dynamically selects which logical queue receives packets from the NIC, ensuring balanced load distribution across cores while adapting to changing traffic patterns in real-time.
3Adaptability or versatility
If each core shares a common network interface card, then resource utilization is improved, but access to transmit and receive queues becomes problematic since cores are not associated with particular NIC queues
Solution Approach 1:
The patent introduces logical queues as intermediary structures between the physical NIC and individual cores. The flow distributor acts as a mediator that receives packets from the NIC's physical queue and distributes them to appropriate logical queues assigned to different cores, simplifying access management while maintaining resource sharing.
Data Source
AI summary
Described herein is a method and system for directing outgoing data packets from packet engines to a transmit queue of a NIC in a multi-core system, and a method and system for directing incoming data packets from a receive queue of the NIC to the packet engines. Packet engines store outgoing traffic in logical transmit queues in the packet engines. An interface module obtains the outgoing traffic and stores it in a transmit queue of the NIC, after which the NIC transmits the traffic from the multi-core system over a network. The NIC receives incoming traffic and stores it in a NIC receive queue. The interface module obtains the incoming traffic and applies a hash to a tuple of each obtained data packet. The interface module then stores each data packet in the logical receive queue of a packet engine on the core identified by the result of the hash.


