Packet Path Selection Using DRR to Reduce Hash Collisions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In networks like Clos networks, flow-based load balancing between network interface cards within a chassis leads to performance issues due to hashing collisions, resulting in packet drops, especially with elephant flows, and existing solutions like bandwidth speedup are inadequate.
Innovation Solution
Implementing Deficit Round Robin (DRR) with overage monitoring and binary tree path selection in network interface devices to distribute packets evenly across multiple paths, using programmable packet processing pipelines and match-action units to manage byte allocations and congestion metrics.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If flow-based load balancing with hashing is used to distribute packets across multiple paths, then load balancing is achieved, but hashing collisions occur causing packet drops
Solution Approach 1:
The patent implements feedback mechanisms by monitoring byte counts transmitted on each path and using this information to dynamically adjust path selection. The system tracks actual transmission volumes and feeds this data back to the path selection logic, enabling it to respond to changing network conditions and avoid collisions that cause packet drops.
Solution Approach 2:
The patent changes the selection parameter from hash-based flow identification to byte-count-based path selection. Instead of using fixed hashing algorithms that cause collisions, the system dynamically selects paths based on real-time byte transmission volumes, adjusting the selection criterion to eliminate collisions while maintaining load distribution.
2Reliability
If bandwidth speedup is used to tolerate packet drops from hashing collisions, then packet delivery reliability improves, but network resource efficiency decreases
Solution Approach 1:
The patent converts the harmful effect of hashing collisions into a benefit by using byte count monitoring to guide path selection. Instead of tolerating collisions and wasting resources on retransmissions, the system uses the collision information to dynamically adjust path selection, turning what would be wasted bandwidth into useful throughput by directing traffic to less-utilized paths.
3Reliability
If Deficit Round Robin with overage monitoring is implemented to distribute bytes evenly, then packet drop reduction is achieved, but device complexity increases
Solution Approach 1:
The patent segments the packet processing function into distinct stages: byte count monitoring, overage detection, and path selection. Each stage handles a specific aspect of the problem, with match-action units dedicated to monitoring and separate logic for path determination. This segmentation makes the complex function more manageable and implementable in hardware.
Solution Approach 2:
The patent introduces byte count monitors and overage indicators as intermediary elements between packet reception and path selection. These intermediaries collect and process information about transmission volumes, then pass this processed information to the path selection logic, simplifying the overall control flow and making the system more implementable despite increased functionality.
Data Source
AI summary
Examples described herein relate to a network interface device comprising a multi-stage programmable packet processing pipeline circuitry to determine a path to transmit a packet based on relative network traffic transmitted via multiple paths. In some examples, determine a path to transmit a packet is based on Deficit Round Robin (DRR). In some examples, the programmable packet processing pipeline circuitry includes: a first stage to manage two or more paths, wherein a path of the two or more paths of the first stage is associated with two or more child nodes, a second stage to manage two or more paths, wherein a path of the two or more paths of the second stage is associated with two or more child nodes, and at least one child node is associated with the determined path.


