# US 2025/0097152 A1 · Increasing multi-path size using hierarchical forwarding equivalent classes

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

- Number: US 2025/0097152 A1
- Document ID: US20250097152A1
- Status: Published application
- Kind: A1
- Application number: 18/969,638
- Filed: 2024-12-05
- Published: 2025-03-20
- Earliest claimed: 2021-01-28
- Assignees: Arista Networks, Inc.
- Applicants: Arista Networks, Inc.
- Inventors: Trevor Siemens; Mayukh Saubhasik; Vahab Akbarzadeh
- Web page: https://patentgrep.com/patent/US20250097152A1

## CPC

- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 45/22: {Alternate routing}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques for operating a network device for increasing the logical multi-path size of a hardware forwarding table are provided. In some embodiments, the network device may determine that a number of data points in a first node is greater than a maximum node capacity; generate second nodes; update the first node to refer to the second nodes; distribute the data points among the second nodes; and program a hardware table with the updated first node and the second nodes.

## Claims

### Claim 1

A method in a network device comprising:
obtaining a plurality of first next hops, wherein the plurality of first next hops represents a first forwarding equivalence class (FEC); and
programming the plurality of first next hops in a hardware forwarding table of the network device, wherein the hardware forwarding table comprises FEC groups, the programming including:
instantiating a first FEC group and a plurality of second FEC groups;
storing references to the plurality of second FEC groups in the first FEC group;
distributing and storing the plurality of first next hops among the plurality of second FEC groups; and
programming the first FEC group and the plurality of second FEC groups in the hardware forwarding table.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of first next hops are obtained from a first memory, wherein the hardware forwarding table is a second memory separate from the first memory.

### Claim 3 (depends on 1)

The method of claim 1, wherein the number of next hops in the plurality of first next hops exceeds a maximum number of next hops that can be stored in a FEC group.

### Claim 4 (depends on 1)

The method of claim 1, wherein the number of next hops stored in each of the first FEC groups is equal to or less than a percentage of a maximum number of next hops that can be stored in a FEC group.

### Claim 5 (depends on 1)

The method of claim 1, wherein the number of second FEC groups is based on storing at most M×F next hops in each second FEC group, wherein M is a maximum number of next hops that can be stored in a FEC group and F is a number between 0.0 and 1.0.

### Claim 6 (depends on 1)

The method of claim 1, wherein further comprising:
receiving a plurality of second next hops that represent a second FEC; and
in response to the number of next hops in the plurality of second next hops being less than a maximum number of next hops that can be stored in a FEC group:
instantiating a third FEC group;
storing the plurality of second next hops in the third FEC group; and
programming the third FEC group in the hardware forwarding table.

### Claim 7 (depends on 1)

The method of claim 1, further comprising performing the operations of obtaining and programming the plurality of first next hops as part of booting up the network device.

### Claim 8

A network device comprising:
one or more computer processors; and
a computer-readable storage device comprising instructions for controlling the one or more computer processors to:
obtain a plurality of first next hops, wherein the plurality of next hops represents a first forwarding equivalence class (FEC); and
program the plurality of first next hops in a hardware forwarding table of the network device, wherein the hardware forwarding table comprises FEC groups, the programming including:
instantiating a first FEC group and a plurality of second FEC groups;
storing references to the plurality of second FEC groups in the first FEC group;
distributing and storing the plurality of first next hops among the plurality of second FEC groups; and
programming the first FEC group and the plurality of second FEC groups in the hardware forwarding table.

### Claim 9 (depends on 8)

The network device of claim 8, wherein the plurality of first next hops are obtained from a first memory, wherein the hardware forwarding table is a second memory separate from the first memory.

### Claim 10 (depends on 8)

The network device of claim 8, wherein the number of next hops in the plurality of first next hops exceeds a maximum number of next hops that can be stored in a FEC group.

### Claim 11 (depends on 8)

The network device of claim 8, wherein the number of next hops stored in each of the first FEC groups is equal to or less than a percentage of a maximum number of next hops that can be stored in a FEC group.

### Claim 12 (depends on 8)

The network device of claim 8, wherein the number of second FEC groups is based on storing at most M x F next hops in each second FEC group, wherein M is a maximum number of next hops that can be stored in a FEC group and F is a number between 0.0 and 1.0.

### Claim 13 (depends on 8)

The network device of claim 8, wherein the computer-readable storage device further comprises instructions for controlling the one or more computer processors to:
receive a plurality of second next hops that represent a second FEC; and
in response to the number of next hops in the plurality of second next hops being less than a maximum number of next hops that can be stored in a FEC group:
instantiate a third FEC group;
store the plurality of second next hops in the third FEC group; and
program the third FEC group in the hardware forwarding table.

### Claim 14 (depends on 8)

The network device of claim 8, wherein the plurality of first next hops are obtained and programmed as part of booting up the network device.

### Claim 15

A non-transitory computer-readable storage device in a network device, the non-transitory computer-readable storage device having stored thereon computer executable instructions, which when executed, cause the network device to:
obtain a plurality of first next hops, wherein the plurality of next hops represents a first forwarding equivalence class (FEC); and
program the plurality of first next hops in a hardware forwarding table of the network device, wherein the hardware forwarding table comprises FEC groups, the programming including:
instantiating a first FEC group and a plurality of second FEC groups;
storing references to the plurality of second FEC groups in the first FEC group;
distributing and storing the plurality of first next hops among the plurality of second FEC groups; and
programming the first FEC group and the plurality of second FEC groups in the hardware forwarding table.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage device of claim 15, wherein the plurality of first next hops are obtained from a first memory, wherein the hardware forwarding table is a second memory separate from the first memory.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage device of claim 15, wherein the number of next hops in the plurality of first next hops exceeds a maximum number of next hops that can be stored in a FEC group.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage device of claim 15, wherein the number of next hops stored in each of the first FEC groups is equal to or less than a percentage of a maximum number of next hops that can be stored in a FEC group.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage device of claim 15, wherein the number of second FEC groups is based on storing at most M x F next hops in each second FEC group, wherein M is a maximum number of next hops that can be stored in a FEC group and F is a number between 0.0 and 1.0.

### Claim 20 (depends on 15)

The non-transitory computer-readable storage device of claim 15, wherein the computer-readable storage device further comprises instructions for controlling the one or more computer processors to:
receive a plurality of second next hops that represent a second FEC; and
in response to the number of next hops in the plurality of second next hops being less than a maximum number of next hops that can be stored in a FEC group:
instantiate a third FEC group;
store the plurality of second next hops in the third FEC group; and
program the third FEC group in the hardware forwarding table.
