# US 11,122,114 B2 · Selective load balancing of network traffic

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

- Number: US 11,122,114 B2
- Document ID: US11122114B2
- Status: Granted
- Kind: B2
- Application number: 16/537,966
- Filed: 2019-08-12
- Published: 2019-11-28
- Granted: 2021-09-14
- Earliest claimed: 2015-04-04
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Samar Sharma; Mouli Vytla; Rajendra Kumar Thirumurthi
- Web page: https://patentgrep.com/patent/US11122114B2

## CPC

- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 12/00: Data switching networks (interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units G06F13/00)
- H04L 12/4625: {Single bridge functionality, e.g. connection of two networks over a single bridge}
- H04L 61/00: Network arrangements, protocols or services for addressing or naming
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/1025: Dynamic adaptation of the criteria on which the server selection is based
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In one embodiment, load balancing criteria and an indication of a plurality of network nodes is received. A plurality of forwarding entries are created based on the load balancing criteria and the indication of the plurality of nodes. A content addressable memory of a network element is programmed with the plurality of forwarding entries. The network element selectively load balances network traffic by applying the plurality of forwarding entries to the network traffic, wherein network traffic meeting the load balancing criteria is load balanced among the plurality of network nodes.

## Claims

### Claim 1

A method comprising:
programming a network element with a plurality of forwarding entries to enable load balancing of network traffic, each of the plurality of forwarding entries including one of a plurality of variable ranges of internet protocol (IP) addresses, each of the plurality of variable ranges including a first IP address defining a low end of a respective one of the plurality of variable ranges and a second IP address defining a high end of the respective one of the plurality of variable ranges;
receiving, via the network element, the network traffic; and
performing, via the network element, the load balancing of the network traffic based on the plurality of variable ranges.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving load balancing criteria, the load balancing criteria defining a portion of the plurality of variable ranges using one or more destination IP addresses.

### Claim 3 (depends on 2)

The method of claim 2, wherein the one or more destination IP addresses corresponds to one or more virtual IP addresses of the network element.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving load balancing criteria with a layer 4 protocol.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving load balancing criteria with a layer 4 destination port.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
receiving load balancing criteria; and
accessing a forwarding table of the network element for network traffic that does not meet the load balancing criteria,
wherein,
the forwarding table of the network element is accessed to determine an egress port for the network traffic that does not meet the load balancing criteria,
the forwarding table is based on a destination IP address of a packet of the network traffic that does not meet the load balancing criteria, and
the forwarding table is stored in another memory separate from a content addressable memory of the network element with the plurality of forwarding entries.

### Claim 7 (depends on 1)

The method of claim 1, wherein each of the plurality of forwarding entries specifies another indication of a port to forward network traffic matching load balancing criteria and comprises a source IP address within a range of source IP addresses.

### Claim 8 (depends on 1)

The method of claim 1, wherein the network element determines whether any of the plurality of forwarding entries applies to a data packet of the network traffic in a single clock cycle of the network element.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving load balancing criteria via a command line interface from a user of the network element.

### Claim 10 (depends on 1)

The method of claim 1, wherein the plurality of forwarding entries are stored in a ternary content-addressable memory (TCAM) of the network element.

### Claim 11

An apparatus comprising:
at least one memory with instructions; and
a processor configured to execute the instructions and cause performance of operations comprising:
programming a plurality of forwarding entries to enable load balancing of network traffic, each of the plurality of forwarding entries including a plurality of variable ranges of internet protocol (IP) addresses, each of the plurality of variable ranges including a first IP address defining a low end of a respective one of the plurality of variable ranges and a second IP address defining a high end of the respective one of the plurality of variable ranges,
receiving the network traffic, and
performing the load balancing of the network traffic based on the plurality of variable ranges.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the at least one memory includes a ternary content addressable memory.

### Claim 13 (depends on 11)

The apparatus of claim 11, wherein each of the plurality of forwarding entries includes an identifier indicating a port through which to forward network traffic matching load balancing criteria and a source IP address within a range of source IP addresses.

### Claim 14 (depends on 11)

The apparatus of claim 11, wherein the operations include receiving a load balancing criteria, the load balancing criteria defining a portion of the plurality of variable ranges using one or more destination IP addresses, a layer 4 protocol, and a layer 4 destination port.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the one or more destination IP addresses corresponds to one or more virtual IP addresses of the apparatus.

### Claim 16

A computer-readable non-transitory medium comprising one or more instructions that, when executed by a processor, cause the processor to perform operations comprising:
programming a network element with a plurality of forwarding entries to enable load balancing of network traffic, each of the plurality of forwarding entries including a plurality of variable ranges of internet protocol (IP) addresses, each of the plurality of variable ranges including a first IP address defining a low end of a respective one of the plurality of variable ranges and a second IP address defining a high end of the respective one of the plurality of variable ranges;
receiving, via the network element, the network traffic; and
performing the load balancing of the network traffic based on the plurality of variable ranges.

### Claim 17 (depends on 16)

The medium of claim 16, wherein the operations include receiving load balancing criteria via a command line interface from a user of the network element.

### Claim 18 (depends on 16)

The medium of claim 16, wherein each of the plurality of forwarding entries includes an indication of a port to forward network traffic matching load balancing criteria and a source IP address within a range of source IP addresses.

### Claim 19 (depends on 16)

The medium of claim 16, wherein the operations include receiving load balancing criteria, the load criteria defining a portion of the plurality of variable ranges using one or more destination IP addresses, a layer 4 protocol, and a layer 4 destination port.

### Claim 20 (depends on 1)

The method of claim 1, further comprising:
increasing a range of source IP addresses of the plurality of variable ranges to increase a load of traffic directed to a particular node.
