# US 2021/0243248 A1 · Cloud service load balancing

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

- Number: US 2021/0243248 A1
- Document ID: US20210243248A1
- Status: Published application
- Kind: A1
- Application number: 16/779,112
- Filed: 2020-01-31
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Applicants: Tigera, Inc.
- Inventors: Alexander James Pollitt; Shaun Crampton
- Web page: https://patentgrep.com/patent/US20210243248A1

## CPC

- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 45/745: Address table lookup; Address filtering
- H04L 61/2592: using tunnelling or encapsulation
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 61/2503: Translation of Internet protocol [IP] addresses
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A data packet associated with a data request is analyzed at a load balancing node of a cloud service. The cloud service comprises a plurality of computing nodes. A computing node included in the plurality of computing nodes is selected to service the data request, based at least in part on a determination via from an analysis that the selected computing node is associated with a workload associated with the data request. The data packet associated with the data request is provided to the selected computing node. The computing node selects a workload from one or more workloads hosted by the computing node to handle the data request.

## Claims

### Claim 1

A method, comprising:
analyzing, at a load balancing node of a cloud service, a data packet associated with a data request, wherein the cloud service comprises a plurality of computing nodes;
selecting a computing node included in the plurality of computing nodes to service the data request, based at least in part on a determination via said analyzing that the selected computing node is associated with a workload associated with the data request; and
providing the data packet associated with the data request to the selected computing node, wherein the computing node selects a workload from one or more workloads hosted by the computing node to handle the data request.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving the data packet associated with the data request.

### Claim 3 (depends on 1)

The method of claim 1, wherein the load balancing node uses a Berkeley Packet Filter to analyze the data packet associated with the data request.

### Claim 4 (depends on 1)

The method of claim 1, wherein the data packet associated with the data request includes a destination internet protocol address and/or a destination port.

### Claim 5 (depends on 4)

The method of claim 4, wherein analyzing the data packet associated with the data request comprises performing a lookup on the destination internet protocol address and/or the destination port.

### Claim 6 (depends on 5)

The method of claim 5, wherein analyzing the data packet associated with the data request further comprises determining a value indicative of an identifier associated with a workload and a number of workloads having the identifier.

### Claim 7 (depends on 6)

The method of claim 6, wherein analyzing the data packet associated with the data request further comprises selecting one of the workloads having the identifier.

### Claim 8 (depends on 7)

The method of claim 7, wherein an internet protocol address associated with a computing node hosting the selected workload is stored in a network address translation map associated with a plurality of workloads.

### Claim 9 (depends on 7)

The method of claim 7, wherein analyzing the data packet associated with the data request further comprises determining that the selected workload is located on the computing node that is different than the load balancing node.

### Claim 10 (depends on 9)

The method of claim 9, wherein analyzing the data packet associated with the data request further comprises determining an internet protocol address associated with the computing node.

### Claim 11 (depends on 10)

The method of claim 10, wherein analyzing the data packet associated with the data request further comprises storing connection track information.

### Claim 12 (depends on 10)

The method of claim 10, wherein analyzing the data packet associated with the data request further comprises encapsulating the data packet with an additional header.

### Claim 13 (depends on 12)

The method of claim 12, wherein the encapsulated data packet includes a value that indicates the computing node needs to perform load balancing.

### Claim 14 (depends on 10)

The method of claim 10, wherein a destination layer 2 MAC address is set to a MAC address associated with the computing node hosting the selected workload and the data packet is provided to the computing node hosting the selected workload, wherein the computing node hosting the selected workload performs load balancing on the data packet.

### Claim 15 (depends on 1)

The method of claim 1, wherein the data packet provided to the computing node is encapsulated, wherein the computing node decapsulates the encapsulated data packet.

### Claim 16 (depends on 15)

The method of claim 15, wherein the computing node performs destination network address translation on the data packet and provides the data packet to the selected workload.

### Claim 17 (depends on 16)

The method of claim 16, wherein the selected workload generates a response packet, wherein source network address translation is applied to the response packet, wherein the response packet is encapsulated and provided to the load balancing node.

### Claim 18 (depends on 17)

The method of claim 17, wherein the load balancing node decapsulates the encapsulated response packet and provides the decapsulated packet to an endpoint that generated the data request.

### Claim 19 (depends on 16)

The method of claim 16, wherein the selected workload generates a response packet, wherein source network address translation is applied to the response packet.

### Claim 20 (depends on 19)

The method of claim 19, wherein the response packet is provided from the computing node hosting the selecting workload to an endpoint that generated the data request.

### Claim 21

A system, comprising:
a processor configured to:
analyze, at a load balancing node of a cloud service, a data packet associated with a data request, wherein the cloud service comprises a plurality of computing nodes;
select a computing node included in the plurality of computing nodes to service the data request, based at least in part on a determination via an analysis that the selected computing node is associated with a workload associated with the data request; and
provide the data packet associated with the data request to the selected computing node, wherein the computing node selects a workload from one or more workloads hosted by the computing node to handle the data request; and
a memory coupled to the processor and configured to provide the processor with instructions.

### Claim 22

A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
analyzing, at a load balancing node of a cloud service, a data packet associated with a data request, wherein the cloud service comprises a plurality of computing nodes;
selecting a computing node included in the plurality of computing nodes to service the data request, based at least in part on a determination via said analyzing that the selected computing node is associated with a workload associated with the data request; and
providing the data packet associated with the data request to the selected computing node, wherein the computing node selects a workload from one or more workloads hosted by the computing node to handle the data request.
