LSB Symmetric RSS Hash Key Generation for Network Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Receive-Side Scaling (RSS) designs face inefficiencies in processing data packets in both directions of a TCP/IP connection, leading to increased processing delays and load imbalances across multiple processors, particularly in high-performance systems like firewalls and intrusion detection systems.
Innovation Solution
The implementation of Least Significant Bits (LSBs) based symmetric RSS, which generates hash keys that ensure symmetry constraints for request and response packets, allowing efficient load-balancing across multiple processing cores by indexing an indirection table with determined LSBs, ensuring that packet processing for a given connection stays on an assigned processor.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional RSS design maps data packets in the same TCP connection to different receive queues depending on packet direction, then load distribution across processors is achieved, but processing delays increase and lock protection is required undermining RSS benefits
Solution Approach 1:
The patent applies asymmetry by using different hash key generation methods for forward and backward packets. Specifically, forward packets use one hash key while backward packets use a different hash key, allowing each direction to be processed by different processors without requiring locks. This asymmetric approach resolves the contradiction by enabling load distribution while avoiding the processing delays and lock overhead associated with symmetric handling.
Solution Approach 2:
The patent segments the TCP connection processing by separating forward and backward packet handling into distinct processing paths with different hash keys. This segmentation allows independent processor assignment for each direction, eliminating the need for lock protection and reducing processing delays while maintaining load distribution across multiple processors.
2Adaptability or versatility
If data structures are shared across different threads/processes for bidirectional packet processing, then both directions can be processed, but lock protection is required which undermines RSS benefits
Solution Approach 1:
Instead of sharing data structures and using locks to protect them, the patent inverts the approach by using different hash keys for forward and backward packets. This causes packets in opposite directions to be routed to different processors, eliminating the need for shared data structures and lock protection while maintaining full bidirectional processing capability.
3Power
If multiple processors are used to improve computation power, then processing capacity increases, but load imbalances occur across processors
Solution Approach 1:
The patent implements dynamic load balancing by using hash keys that change based on packet direction. Forward packets and backward packets use different hash keys, which dynamically routes traffic to different processors. This dynamic approach ensures balanced utilization of multiple processors while maintaining high computation power, preventing load imbalances that would occur with static assignment.
Data Source
AI summary
A computer-implemented method includes generating a hash key using a number of least significant bits (LSBs) for indexing an indirection table in a computing system including multiple processing cores. In generating the hash key, symmetry constraints for a request packet and a response packet through a same communication channel are computed. The symmetry constraints include at least a condition where the LSBs of a hash value corresponding to a source or destination IP address of the request packet are equal to the LSBs of a hash value corresponding to a destination or source IP address of the response packet, wherein the LSBs of the hash value of the request and response packets are of a number same as the number of LSBs used for indexing the indirection table. A string of bits are subjected to the symmetry constraints and adjusted to satisfy the symmetry constraints to generate the hash key.


