# US 2022/0045936 A1 · Weighted Bandwidth Allocation For Adaptive Routing

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

- Number: US 2022/0045936 A1
- Document ID: US20220045936A1
- Status: Published application
- Kind: A1
- Application number: 17/508,464
- Filed: 2021-10-22
- Published: 2022-02-10
- Earliest claimed: 2019-11-27
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Nicholas McDonald; Arjun Singh; Moray McLaren
- Web page: https://patentgrep.com/patent/US20220045936A1

## CPC

- H04L 45/24: Multipath
- H04L 45/122: by minimising distances, e.g. by selecting a route with minimum of number of hops
- H04L 45/124: {using a combination of metrics}
- H04L 45/22: {Alternate routing}
- H04L 45/42: Centralised routing
- H04L 49/254: {Centralised controller, i.e. arbitration or scheduling}
- H04L 49/30: {Peripheral units, e.g. input or output ports}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods of routing are provided. In the system, one or more processors determine that a packet is to be transmitted to a destination. In one or more aspects of the system, the one or more processors select a next port to be used for transmitting the packet by selecting a set of ports among a plurality of ports based on a static weight configuration associated with each port. The next port may be selected from the set of ports based on a number of hops required to reach the destination from each port and based on an estimated latency from each port to the destination. The one or more processors may then route the packet through the selected next port.

## Claims

### Claim 1

A method, comprising:
determining, by one or more processors, that a packet is to be transmitted to a destination;
selecting, by the one or more processors, a next port to be used for transmitting the packet by:
selecting, by the one or more processors, a set of ports among a plurality of ports based on a static weight configuration associated with each port of the plurality of ports; and
selecting, by the one or more processors, the next port among the set of ports based on a number of hops required to reach the destination from each port of the set of ports and based on an estimated latency to the destination associated with each port of the set of ports; and
routing, by the one or more processors, the packet through the selected next port.

### Claim 2 (depends on 1)

The method of claim 1, wherein selecting a set of ports is based on static weights assigned by weighted cost multipath routing (WCMP).

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
repeating, by the one or more processors, the selection of a next port at each hop until the packet reaches the destination.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
categorizing, by the one or more processors, each of the plurality of ports as a primary port or a secondary port based on a number of hops required to reach the destination.

### Claim 5 (depends on 4)

The method of claim 4, wherein selection of the set of ports is separately performed for the primary ports and the secondary ports, resulting in a set of primary ports and a set of secondary ports.

### Claim 6 (depends on 5)

The method of claim 5, wherein the next port is selected among the set of primary ports and the set of secondary ports.

### Claim 7 (depends on 4)

The method of claim 4, wherein the primary ports and the secondary ports are stored in separate lists accessible by the one or more processors.

### Claim 8 (depends on 1)

The method of claim 1, wherein the latency is estimated based on at least one of: a number of hops required to reach the destination, a network congestion condition, and one or more heuristic offsets.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
selecting, by the one or more processors, a first set of ports among the plurality of ports based on the static weight configuration associated with each of the plurality of ports;
selecting, by the one or more processors, a second set of ports among the first set of ports based on congestive conditions along routes requiring equal number of hops to reach the destination;
selecting, by the one or more processors, the next port among the second set of ports based on estimated latency to destination associated with each port of the second set of ports.

### Claim 10 (depends on 9)

The method of claim 9, wherein the selection of the first set of ports is separately performed for primary ports and secondary ports, resulting in a first set of primary ports and a first set of secondary ports.

### Claim 11

A system, comprising:
one or more processors, the one or more processors configured to:
determine that a packet is to be transmitted to a destination;
select a next port to be used for transmitting the packet by:
selecting a set of ports among a plurality of ports based on static weight configuration associated with each port of the plurality of ports; and
selecting the next port among the selected set of ports based on a number of hops required to reach the destination from each port of the set of ports and based on an estimated latency to the destination associated with each port of the set of ports; and
route the packet through the selected next port.

### Claim 12 (depends on 11)

The system of claim 11, further comprising:
one or more memories accessible by the one or more processors, wherein information on the plurality of ports are stored in the one or more memories.

### Claim 13 (depends on 12)

The system of claim 12, wherein the one or more processors are further configured to categorize each of the plurality of ports as a primary port or a secondary port based on a number of hops required to reach the destination, and wherein the one or more memories store information on the primary ports and the secondary ports in separate lists.

### Claim 14 (depends on 13)

The system of claim 13, wherein the one or more processors are further configured to perform selection of the set of ports separately for the primary ports and the secondary ports, resulting in a set of primary ports and a set of secondary ports.

### Claim 15 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
select a first set of ports among the plurality of ports based on static weight configuration associated with each port of the plurality of ports;
select a second set of ports among the first set of ports based on congestive condition along routes requiring equal number of hops to reach the destination;
select the next port among the second set of ports based on estimated latency to the destination associated with each port of the second set of ports.

### Claim 16

A computer-readable storage medium storing instructions executable by one or more processors for performing a method, comprising:
determining that a packet is to be transmitted to a destination;
selecting a next port to be used for transmitting the packet by:
selecting a set of ports among a plurality of ports based on static weight configuration associated with each port of the plurality of ports; and
selecting the next port among the set of ports based on a number of hops required to reach the destination from each port of the set of ports and based on an estimated latency to the destination associated with each port of the set of ports; and
routing the packet through the selected next port.

### Claim 17 (depends on 16)

The computer-readable storage medium of claim 16, wherein the method further comprising:
categorizing each of the plurality of ports as a primary port or a secondary port based on a number of hops required to reach the destination.

### Claim 18 (depends on 17)

The computer-readable storage medium of claim 17, wherein selection of the set of ports is separately performed for the primary ports and the secondary ports, resulting in a set of primary ports and a set of secondary ports.

### Claim 19 (depends on 16)

The computer-readable storage medium of claim 16, wherein the method further comprising:
selecting a first set of ports among the plurality of ports based on static weight configuration associated with each port of the plurality of ports;
selecting a second set of ports among the first set of ports based on congestive condition along routes requiring equal number of hops to reach the destination;
selecting the next port among the second set of ports based on estimated latency to the destination associated with each port of the second set of ports.

### Claim 20 (depends on 16)

The computer-readable storage medium of claim 16, wherein the method further comprising:
repeating the selection of a next port at each hop until the packet reaches the destination.
