# US 12,184,548 B2 · Implementing border gateway protocol (BGP) optimal route reflection

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

- Number: US 12,184,548 B2
- Document ID: US12184548B2
- Status: Granted
- Kind: B2
- Application number: 17/739,668
- Filed: 2022-05-09
- Published: 2023-10-12
- Granted: 2024-12-31
- Earliest claimed: 2022-04-12
- Assignees: Arista Networks, Inc.
- Applicants: Arista Networks, Inc.
- Inventors: Jesper Skriver; Isidoros Kouvelas; Asang Kamalakar Dani
- Web page: https://patentgrep.com/patent/US12184548B2

## CPC

- H04L 45/745: Address table lookup; Address filtering
- H04L 45/02: Topology update or discovery
- H04L 45/036: Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L 45/123: {Evaluation of link metrics (techniques for monitoring network metrics H04L43/08)}
- H04L 45/124: {using a combination of metrics}
- H04L 45/64: using an overlay routing layer
- H04L 45/655: Interaction between route computation entities and forwarding entities, e.g. for route determination or for flow table update
- H04L 45/04: {Interdomain routing, e.g. hierarchical routing}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for distributing an optimal path to a router using a route reflector, that includes obtaining, by the route reflector, a path location bitmask associated with the optimal path, obtaining a router location bitmask associated with the router, performing a bitwise AND operation on the path location bitmask and the router location bitmask to obtain a result bitmask, identifying a nonzero bit in the result bitmask, and in response to identifying the nonzero bit, sending the optimal path to the router.

## Claims

### Claim 1

A method for distributing an optimal path to a router using a route reflector, comprising:
obtaining, by the route reflector, a path location bitmask associated with the optimal path, wherein the path location bitmask has a value that indicates one or more locations for which the optimal path was determined to be optimal;
obtaining a router location bitmask having a value that indicates one or more locations associated with the router;
performing a bitwise AND operation on the path location bitmask and the router location bitmask to obtain a result bitmask;
identifying a nonzero bit in the result bitmask; and
in response to identifying the nonzero bit:
sending the optimal path to the router.

### Claim 2 (depends on 1)

The method of claim 1, wherein the path location bitmask associates the optimal path with at least one location.

### Claim 3 (depends on 2)

The method of claim 2, wherein after sending the optimal path to the router, the method further comprises:
sending the optimal path to a second router, wherein the second router is associated with the at least one location.

### Claim 4 (depends on 3)

The method of claim 3, wherein the optimal path is not directly operatively connected to the second router.

### Claim 5 (depends on 2)

The method of claim 2, wherein the path location bitmask associates the optimal path with a second location, wherein the at least one location is different than the second location.

### Claim 6 (depends on 5)

The method of claim 5, wherein after sending the optimal path to the router, the method further comprises:
sending the optimal path to a second router, wherein the second router is associated with the second location.

### Claim 7 (depends on 1)

The method of claim 1, wherein the router location bitmask associates the router with only one location.

### Claim 8 (depends on 2)

The method of claim 2,
wherein the path location bitmask further associates the optimal path with a second location,
wherein the at least one location is different than the second location,
wherein a second router location bitmask associates a second router with the second location, and
wherein after sending the optimal path to the router, the method further comprises:
sending the optimal path to the second router.

### Claim 9 (depends on 1)

The method of claim 1, wherein obtaining the path location bitmask comprises:
populating a router path metrics table with:
a router entry associated with the router,
a first path identifier associated with a first path, and
a second path identifier associated with a second path;
obtaining a first path cost associated with the first path identifier for the router entry;
obtaining a second path cost associated with the second path identifier for the router entry;
determining, based on the first path cost and the second path cost, which one of the first path and the second path is the optimal path; and
generating the path location bitmask based on the optimal path and a location associated with the router entry.

### Claim 10 (depends on 1)

The method of claim 1, wherein obtaining the router location bitmask comprises:
looking up, in a router path metrics table, a router identifier and a location identifier; and
generating the router location bitmask based on the router identifier and the location identifier.

### Claim 11

A method for distributing a plurality of optimal paths to a plurality of routers using a route reflector, comprising:
obtaining, by the route reflector, a plurality of path location bitmasks associated with the plurality of optimal paths, respectively, wherein each path location bitmask has a value that indicates one or more locations for which a corresponding one or more of the plurality of optimal paths was determined to be optimal;
obtaining a plurality of router location bitmasks associated with the plurality of routers, respectively, wherein each router location bitmask has a value that indicates one or more locations associated with a corresponding one of more the plurality of routers;
for each path location bitmask of the plurality of path location bitmasks:
performing a bitwise AND operation with each router location bitmask, of the plurality of router location bitmasks, to obtain a plurality of result bitmasks; and
sending, to each router of the plurality of routers, an optimal path of the plurality of optimal paths, based on the plurality of result bitmasks.

### Claim 12 (depends on 11)

The method of claim 11, wherein a first optimal path, of the plurality of optimal paths, is associated with a first location.

### Claim 13 (depends on 12)

The method of claim 12, wherein a first router, of the plurality of routers, is associated with the first location, wherein the first optimal path is sent to the first router.

### Claim 14 (depends on 13)

The method of claim 13, wherein the first optimal path is further associated with a second location, and wherein a second router, of the plurality of routers, is associated with the second location, and wherein the first optimal path is sent to the second router.

### Claim 15 (depends on 14)

The method of claim 14,
wherein the plurality of result bitmasks comprises a first result bitmask,
wherein the first result bitmask is associated with the first router,
wherein the first result bitmask comprises a first plurality of bitmask positions, and
wherein the first plurality of bitmask positions comprises a first nonzero bit in a first bitmask position.

### Claim 16 (depends on 15)

The method of claim 15,
wherein the plurality of result bitmasks comprises a second result bitmask,
wherein the second result bitmask is associated with the second router,
wherein the second result bitmask comprises a second plurality of bitmask positions, and
wherein the second plurality of bitmask positions comprises a second nonzero bit in a second bitmask position.

### Claim 17

A route reflector, comprising:
memory; and
a processor, wherein the processor is configured to perform a method for distributing an optimal path to a router, comprising:
generating a router path metrics table in the memory;
obtaining a path location bitmask associated with the optimal path based on the router path metrics table, wherein the path location bitmask has a value that indicates one or more locations for which the optimal path was determined to be optimal and the optimal path is a path with a lowest associated path cost of a plurality of paths;
obtaining a router location bitmask having a value that indicates one or more locations associated with the router;
performing a bitwise AND operation on the path location bitmask and the router location bitmask to obtain a result bitmask;
identifying a nonzero bit in the result bitmask; and in response to identifying the nonzero bit:
sending the optimal path to the router.

### Claim 18 (depends on 17)

The route reflector of claim 17, wherein generating the router path metrics table in the memory comprises:
populating the router path metrics table with:
a router entry associated with the router,
a first path identifier associated with a first path, and
a second path identifier associated with a second path;
obtaining a first path cost associated with the first path identifier for the router entry;
obtaining a second path cost associated with the second path identifier for the router entry;
determining, based on the first path cost and the second path cost, which one of the first path and the second path is the optimal path; and
generating the path location bitmask based on the optimal path and a location associated with the router entry.

### Claim 19 (depends on 17)

The route reflector of claim 17, wherein the path location bitmask associates the optimal path with a location.

### Claim 20 (depends on 19)

The route reflector of claim 19, wherein after sending the optimal path to the router, the method further comprises:
sending the optimal path to a second router, wherein the second router is associated with the location.
