# US 10,771,537 B2 · Technologies for scrambling in load balancers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,537 B2
- Document ID: US10771537B2
- Status: Granted
- Kind: B2
- Application number: 16/023,257
- Filed: 2018-06-29
- Published: 2020-01-02
- Granted: 2020-09-08
- Earliest claimed: 2018-06-29
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Simon Perron Caissy; Carl Geoffrion; Eduardo Romero
- Web page: https://patentgrep.com/patent/US10771537B2

## CPC

- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 41/142: using statistical or mathematical methods
- H04L 43/16: Threshold monitoring
- H04L 69/324: in the data link layer [OSI layer 2], e.g. HDLC
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Technologies for applying a scrambling function in unfair load balancing scenarios include a network device having a communication circuitry and compute engine executing software on the network device. The compute engine is to determine, using a load balancing function, a distribution for data sets to each of multiple bins. Each bin maps to a destination. The network device determines, as a function of the distribution, an unfairness score indicative of the distribution being unequal among each of the destinations. In response to a determination that the unfairness score exceeds a specified threshold, the network device enables a scrambling function to be performed during configuration of the plurality of bins with the destinations.

## Claims

### Claim 1

A network device comprising:
communication circuitry; and
a compute engine in communication with the communication circuitry, wherein the compute engine is to:
generate a plurality of data sets each having a value that has a sequential relationship with a value of a hash profile;
determine, with a load balancing function, a distribution for the plurality of data sets to each of a plurality of bins, each bin mapped to one of a plurality of destinations;
determine, as a function of the distribution, an unfairness score indicative of the distribution being unequal among each of the destinations; and
enable, in response to a determination that the unfairness score exceeds a specified threshold, a scrambling function to be performed during configuration of the plurality of bins with the destinations, the scrambling function comprising a bit-swapping technique to remap each of the plurality of destinations into the plurality of bins.

### Claim 2 (depends on 1)

The network device of claim 1, wherein to determine, with the load balancing function, the distribution for the plurality of data sets to each of the plurality of bins comprises to determine, using a CRC32 hash function, the distribution for the plurality of data sets to each of the plurality of bins.

### Claim 3 (depends on 1)

The network device of claim 1, wherein to determine the unfairness score comprises to determine the unfairness score for a modulo binning distribution and for a division binning distribution.

### Claim 4 (depends on 1)

The network device of claim 1, wherein to generate the plurality of data sets comprises to generate each of the plurality of data sets at a fixed size.

### Claim 5 (depends on 1)

The network device of claim 1, wherein the compute engine is further to map each of the plurality of bins with one of the plurality of destinations, wherein an amount of the plurality of bins is greater than an amount of the plurality of destinations.

### Claim 6 (depends on 1)

The network device of claim 1, wherein the compute engine is further to map each of the plurality of bins with one of the plurality of destinations using division binning techniques and modulo binning techniques.

### Claim 7 (depends on 1)

The network device of claim 1, wherein to determine, as the function of the distribution, the unfairness score comprises to:
calculate a worst case standard deviation indicative of the plurality of data sets being distributed to one of the destinations.

### Claim 8 (depends on 7)

The network device of claim 7, wherein to determine, as the function of the distribution, the unfairness score further comprises to:
calculate a standard deviation of the distribution; and
determine a normalized unfairness score based on the worst case standard deviation and on the standard deviation of the distribution.

### Claim 9 (depends on 1)

The network device of claim 1, wherein to enable, in response to the determination that the unfairness score exceeds a specified threshold, the scrambling function comprises to enable, in response to the determination that the unfairness score exceeds a specified threshold, the scrambling function, wherein the scrambling function remaps the destinations amongst the bins.

### Claim 10 (depends on 1)

The network device of claim 1, wherein to determine the distribution comprises to determine the distribution for a plurality of data sets, wherein each data set has a sequential value at a specified offset, wherein the specified offset corresponds to one of at least a virtual local area network (VLAN) identifier, source Internet Protocol (IP) address, or a layer 4 source (L4SRC) identifier.

### Claim 11 (depends on 1)

The network device of claim 1, wherein each data set has a sequential value at a specified offset, wherein each bin maps to one of a plurality of destinations.

### Claim 12 (depends on 1)

The network device of claim 1, wherein the network device is a network interface controller.

### Claim 13

One or more non-transitory machine-readable storage media storing a plurality of instructions, which, when executed, causes a network device to:
generate a plurality of data sets each having a value that has a sequential relationship with a value of a hash profile;
determine, with a load balancing function, a distribution for the plurality of data sets to each of a plurality of bins, each bin mapped to one of a plurality of destinations;
determine, as a function of the distribution, an unfairness score indicative of the distribution being unequal among each of the destinations; and
enable, in response to a determination that the unfairness scores exceeds a specified threshold, a scrambling function to be performed during configuration of the plurality of bins with the destinations, the scrambling function comprising a bit-swapping technique to remap each of the plurality of destinations into the plurality of bins.

### Claim 14 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein to determine, with the load balancing function, the distribution for the plurality of data sets to each of the plurality of bins comprises to determine, using a CRC32 hash function, the distribution for the plurality of data sets to each of the plurality of bins.

### Claim 15 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein to determine the unfairness score comprises to determine the unfairness score for a modulo binning distribution and for a division binning distribution.

### Claim 16 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein to generate the plurality of data sets comprises to generate, each of the plurality of data sets at a fixed size.

### Claim 17 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein the plurality of instructions further causes the network device to map each of the plurality of bins with one of the plurality of destinations, wherein an amount of the plurality of bins is greater than an amount of the plurality of destinations.

### Claim 18 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein the plurality of instructions further causes the network device to map each of the plurality of bins with one of the plurality of destination using division binning techniques and modulo binning techniques.

### Claim 19 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein to determine, as the function of the distribution, the unfairness score comprises to:
to calculate a worst case standard deviation indicative of the plurality of data sets being distributed to one of the destinations.

### Claim 20 (depends on 19)

The one or more non-transitory machine-readable machine storage media of claim 19, wherein to determine, as the function of the distribution, the unfairness score further comprises to:
calculate a standard deviation of the distribution; and
determine a normalized unfairness score based on the worst case standard deviation and on the standard deviation of the distribution.

### Claim 21 (depends on 13)

The one or more non-transitory machine-readable machine storage media of claim 13, wherein to enable, in response to the determination that the unfairness score exceeds a specified threshold, the scrambling function comprises enable, in response to the determination that the unfairness score exceeds a specified threshold, the scrambling function, wherein the scrambling function remaps the destinations amongst the bins.

### Claim 22

A method, comprising:
generating, by a network device, a plurality of data sets each having a value that has a sequential relationship with a value of a hash profile;
determining, by the network device and with a load balancing function, a distribution for a plurality of data sets to each of a plurality of bins, wherein each bin maps to one of a plurality of destinations;
determining, by the network device and as a function of the distribution, an unfairness score indicative of the distribution being unequal among each of the destinations; and
enabling, by the network device and in response to a determination that the unfairness score exceeds a specified threshold, a scrambling function to be performed during configuration of the plurality of bins with the destinations, the scrambling function comprising a bit-swapping technique to remap each of the plurality of destinations into the plurality of bins.

### Claim 23 (depends on 22)

The method of claim 22, wherein determining, with the load balancing function, the distribution for the plurality of data sets to each of the plurality of bins comprises determining, using a CRC32 hash function, the distribution for the plurality of data sets to each of the plurality of bins.

### Claim 24

A network device comprising:
means for generating a plurality of data sets each having a value that has a sequential relationship with a value of a hash profile
circuitry for determining, with a load balancing function, a distribution for a plurality of data sets to each of a plurality of bins, wherein each bin maps to one of a plurality of destinations;
means for determining, as a function of the distribution, an unfairness score indicative of the distribution being unequal among each of the destinations; and
means for enabling, in response to a determination that the unfairness score exceeds a specified threshold, a scrambling function to be performed during configuration of the plurality of bins with the destinations, the scrambling function comprising a bit-swapping technique to remap each of the plurality of destinations into the plurality of bins.

### Claim 25 (depends on 24)

The network device of claim 24, wherein the circuitry for determining, with the load balancing function, the distribution for the plurality of data sets to each of the plurality of bins comprises circuitry for determining, using a CRC32 hash function, the distribution for the plurality of data sets to each of the plurality of bins.
