# US 2021/0243114 A1 · Weighted cost multipath packet processing

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

- Number: US 2021/0243114 A1
- Document ID: US20210243114A1
- Status: Published application
- Kind: A1
- Application number: 16/779,372
- Filed: 2020-01-31
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: Avago Technologies International Sales Pte. Limited
- Applicants: Avago Technologies International Sales Pte, Limited
- Inventors: Surendra ANUBOLU
- Web page: https://patentgrep.com/patent/US20210243114A1

## CPC

- H04L 45/12: Shortest path evaluation
- H04L 45/24: Multipath
- H04L 45/121: by minimising delays
- H04L 45/245: {Link aggregation, e.g. trunking}
- H04L 45/54: {Organization of routing tables}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 49/3009: {Header conversion, routing tables or routing tags}
- H04L 45/7453: using hashing
- H04L 45/748: using longest matching prefix
- H04L 47/41: by acting on aggregated flows or links
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The disclosed systems and methods provide weighted cost multipath for packet processing devices. A method includes receiving a network packet for routing through one of a number of paths of a network switch device. The method also includes selecting, via a first function applied to the network packet, a record from a plurality of records corresponding to the number of paths, wherein each of the plurality of records includes a threshold, a first routing index, and a second routing index. The method also includes determining, via a second function applied to the network packet, a routing value within a predefined range of values. The method also includes choosing, from the selected record, the first routing index or the second routing index based on whether the routing value meets the threshold of the selected record. The method also includes routing the network packet based on the chosen routing index.

## Claims

### Claim 1

A method comprising:
receiving a network packet for routing through one of a number of paths of a network switch device;
selecting, via a first function applied to the network packet, a record from a plurality of records corresponding to the number of paths, wherein each of the plurality of records includes a threshold, a first routing index, and a second routing index;
determining, via a second function applied to the network packet, a routing value within a predefined range of values;
choosing, from the selected record, the first routing index or the second routing index based on whether the routing value meets the threshold of the selected record; and
routing the network packet through the one of the number of paths of the network switch device based on the chosen routing index.

### Claim 2 (depends on 1)

The method of claim 1, wherein prior to the selecting, the method further comprises:
encoding, in the plurality of records, a weighted cost of each of the number of paths of the network switch device such that for each path index from the number of paths, a corresponding weight is determined by:
summing, for each record of the plurality of records, the threshold when the first routing index matches the path index; and
summing, for each record of the plurality of records, a quantity of the predefined range of values minus the threshold when the second routing index matches the path index.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
determining a change in the weighted cost of each of the number of paths of the network switch device; and
updating the plurality of records to reflect the change in the weighted cost of each of the number of paths of the network switch device.

### Claim 4 (depends on 3)

The method of claim 3, wherein updating the plurality of records does not trigger an update of other records in a routing table containing the plurality of records.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first function corresponds to an approximately uniform distribution function.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first function includes a hash function performed on at least a portion of a header of the network packet.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second function corresponds to an approximately uniform distribution function.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first function is input into the second function.

### Claim 9 (depends on 1)

The method of claim 1, wherein prior to the determining, the method further comprises:
defining the predefined range of values based on satisfying a weighting error threshold.

### Claim 10 (depends on 1)

The method of claim 1, wherein a count of the plurality of records does not exceed the number of paths.

### Claim 11 (depends on 1)

The method of claim 1, wherein prior to the selecting, the method further comprises:
selecting the plurality of records from a routing table according to a routing destination of the network packet matching an entry in the routing table.

### Claim 12

A network switch device comprising:
a plurality of ports corresponding to a number of paths;
a memory storing a plurality of records corresponding to the number of paths, wherein each of the plurality of records includes a threshold, a first routing index, and a second routing index;
one or more processing components configured to:
receive a network packet for routing through one of the number of paths;
select, via a first function applied to the network packet, a record from the plurality of records;
determine, via a second function applied to the network packet, a routing value within a predefined range of values;
choose, from the selected record, the first routing index or the second routing index based on whether the routing value meets the threshold of the selected record; and
route the network packet through the one of the number of paths based on the chosen routing index.

### Claim 13 (depends on 12)

The network switch device of claim 12, wherein prior to the selecting, the one or more processing components are further configured to:
encode, in the plurality of records, a weighted cost of each of the number of paths such that for each path index from the number of paths, a corresponding weight is determined by:
summing, for each record of the plurality of records, the threshold when the first routing index matches the path index; and
summing, for each record of the plurality of records, a quantity of the predefined range of values minus the threshold when the second routing index matches the path index.

### Claim 14 (depends on 13)

The network switch device of claim 13, wherein the one or more processing components are further configured to:
determine a change in the weighted cost of each of the number of paths; and
update the plurality of records to reflect the change in the weighted cost of each of the number of paths.

### Claim 15 (depends on 12)

The network switch device of claim 12, wherein the first function and the second function each correspond to an approximately uniform distribution function.

### Claim 16 (depends on 12)

The network switch device of claim 12, wherein the first function includes a hash function performed on at least a portion of a header of the network packet.

### Claim 17 (depends on 12)

The network switch device of claim 12, wherein prior to the determining, the one or more processing components are further configured to:
define the predefined range of values based on satisfying a weighting error threshold.

### Claim 18 (depends on 12)

The network switch device of claim 12, wherein a count of the plurality of records does not exceed the number of paths.

### Claim 19 (depends on 12)

The network switch device of claim 12, wherein prior to the selecting, the one or more processing components are further configured to:
select the plurality of records from a routing table according to a routing destination of the network packet matching an entry in the routing table.

### Claim 20

A non-transitory storage medium comprising instructions that, when read by one or more processors, cause a method comprising:
receiving a network packet for routing through one of a number of paths of a network switch device;
selecting, via a first function applied to the network packet, a record from a plurality of records corresponding to the number of paths, wherein each of the plurality of records includes a threshold, a first routing index, and a second routing index;
determining, via a second function applied to the network packet, a routing value within a predefined range of values;
choosing, from the selected record, the first routing index or the second routing index based on whether the routing value meets the threshold of the selected record; and
routing the network packet through the one of the number of paths of the network switch device based on the chosen routing index.
