Network Interface Port Balancing With Dynamic Hash Bucket Reallocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing load balancing techniques in network interfaces struggle to achieve fair allocation of packets across output ports due to factors like flow control congestion, variable throughput, and head-of-line blocking, leading to inefficiencies and packet drops.
Innovation Solution
A network interface device autonomously detects port overflow or underflow conditions and adjusts load balancing schemes by reallocating hash-based packet buckets to ensure even distribution across available ports, using a combination of hardware and software to minimize packet drops and reordering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If packet-to-flow affinity-based balancing is used, then flow throughput is maintained, but fair allocation to ports becomes difficult to achieve
Solution Approach 1:
The patent implements dynamic load balancing that adapts to changing port conditions in real-time. The system continuously monitors port status and adjusts bucket allocations dynamically, transitioning from static hash-based assignments to adaptive distributions that respond to congestion, speed changes, and other port conditions, thereby achieving both flow throughput maintenance and fair port allocation
Solution Approach 2:
The system employs feedback mechanisms by monitoring port utilization metrics and using this information to adjust bucket allocations. The load balancer receives feedback about port conditions (congestion, speed changes) and modifies its distribution strategy accordingly, creating a closed-loop control system that achieves fair allocation while maintaining throughput
2Device complexity
If static preventive configuration is used, then configuration simplicity is maintained, but fair allocation of heterogeneous traffic among output ports cannot be achieved during runtime
Solution Approach 1:
The load balancing system operates autonomously without requiring manual reconfiguration. It self-monitors port conditions, self-adjusts bucket allocations, and adapts to changing traffic patterns automatically. This self-service capability maintains configuration simplicity while achieving runtime adaptability for fair heterogeneous traffic allocation
Solution Approach 2:
The system transitions from static configuration to dynamic adaptation by continuously adjusting bucket allocations based on real-time port conditions. The load balancer automatically responds to changing traffic characteristics and port states, providing both simplicity and adaptability
3Device complexity
If hash function results have insufficient entropy of distribution, then packet allocation is simplified, but port utilization becomes unbalanced and packets can be dropped
Solution Approach 1:
The system monitors port utilization metrics and uses this feedback to detect when hash distribution becomes unbalanced. Based on this feedback, the load balancer adjusts bucket allocations to compensate for poor hash entropy, maintaining both allocation simplicity and port utilization balance through dynamic corrections
4Reliability
If one port workload exceeds bandwidth or head-of-line blocking occurs, then traffic concentration is reduced, but packet drops increase
Solution Approach 1:
The system proactively monitors port workload and detects conditions that may lead to overload or head-of-line blocking before they cause packet drops. By taking preliminary action to redistribute buckets away from ports approaching capacity thresholds, the system prevents packet loss while maintaining reliable traffic distribution
Solution Approach 2:
The load balancer applies preliminary counter-actions by redistributing traffic buckets before congestion or blocking conditions deteriorate to the point of packet loss. This preventive redistribution counteracts potential overload conditions, reducing packet drops while maintaining traffic distribution reliability
Data Source
AI summary
Examples described herein relate to a network interface device that includes packet processing circuitry to detect usage of an egress port and report the usage of the egress port to a network interface device driver to cause reallocation of hash-based packet buckets to at least one egress port to provide an allocation of hash-based packet buckets to multiple active egress ports of the network interface device with retention of bucket-to-egress port mappings except for re-allocations of one or more buckets to one or more active egress ports. In some examples, usage of the egress port is based on a count of hash buckets assigned to packets to be transmitted from the egress port or a number of bytes of packets enqueued to be transmitted from the egress port.


