# US 12,003,401 B2 · Systems and methods for constructing application-aware virtual topologies in wide area networks

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

- Number: US 12,003,401 B2
- Document ID: US12003401B2
- Status: Granted
- Kind: B2
- Application number: 17/535,248
- Filed: 2021-11-24
- Published: 2023-02-09
- Granted: 2024-06-04
- Earliest claimed: 2021-08-05
- Assignees: Arista Networks, Inc.
- Applicants: Arista Networks, Inc.
- Inventors: Abhijith Kudupu Narayan; Venkitraman Kasiviswanathan; Alton Lo; Udayakumar Srinivasan; Kumaran Narayanan
- Web page: https://patentgrep.com/patent/US12003401B2

## CPC

- H04L 45/02: Topology update or discovery
- H04L 45/586: of virtual routers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for generating an application-aware virtual topology (AAVT) routing table for a network device among network devices connected via a wide area network is provided. The method is executed by a network controller connected to the network and includes: receiving, from the network devices, path information of the network devices; generating, using the path information, an underlay graph specifying a path topology of the network device; generating, based on the path topology specified in the underlay graph, the AAVT routing table for the network device where the AAVT routing table includes a set of paths; and transmitting, in response to generating the AAVT routing table, the AAVT routing table to the network device to cause the network device to program the set of paths.

## Claims

### Claim 1

A system comprising:
a plurality of network devices connected via a wide area network; and
a network controller comprising:
a route reflector; and
a route identifier agent,
wherein the network controller is configured to:
receive, via the route reflector and from a network device among the plurality of network devices, path information of all of the network devices, wherein the path information comprises:
reachability information specifying paths between each of the network devices, and
path metrics of each of the paths;
generate, using the path information, an underlay graph specifying a path topology for all of the network devices connected via the wide area network;
generate, using the underlay graph and for the network device among the network devices, an application-aware virtual topology (AAVT) routing table, wherein the AAVT routing table comprises:
the paths between the network device and the other network devices connected via the wide area network; and
usability information for each of the paths between the network device and the other network devices;
transmit, in response to generating the AAVT routing table and via the route reflector, the AAVT routing table to the network device to cause the network device to program one or more of the paths specified in the AAVT routing table for routing network traffic.

### Claim 2 (depends on 1)

The system of claim 1, wherein the usability information comprises application classification information for each of the paths between the network device and the other network devices.

### Claim 3 (depends on 1)

The system of claim 1, wherein generating the usability information for the AAVT routing table for the network device comprises:
determining, by the route identifier agent and using the underlay graph:
all of the paths between the network device and the other network devices,
the path metrics of all of the paths between the network device and the other network devices,
applications to be executed by the network device, and
network traffic policies set for the network device;
associating, based on the determining and considering the network traffic policies, each of the applications to be executed by the network device with one or more of the paths between the network device and the other network devices to generate path association information; and
storing, based on the association, the path association information as the usability information in the AAVT routing table.

### Claim 4

A method for generating an application-aware virtual topology (AAVT) routing table for a network device among network devices connected via a wide area network, the method comprising:
receiving, from the network devices, path information of the network devices;
generating, using the path information, an underlay graph specifying a path topology of the network device;
obtaining application information of the network device, wherein the application information specifies a set of applications for which traffic is handled by the network device;
generating, based on the path topology specified in the underlay graph, the AAVT routing table for the network device, wherein the AAVT routing table comprises a set of paths each associated with at least one application in the set of applications; and
transmitting, in response to generating the AAVT routing table, the AAVT routing table to the network device to cause the network device to program the set of paths.

### Claim 5 (depends on 4)

The method of claim 4, wherein the path information comprises:
reachability information specifying paths between each of the network devices, and
a path metric of each of the paths.

### Claim 6 (depends on 5)

The method of claim 5, wherein the path metric is at least one of a jitter, a latency, a total bandwidth, and a current utilization of a path among the paths.

### Claim 7 (depends on 5)

The method of claim 5, wherein generating the underlay graph for the network device comprises:
determining, for the network device and using the reachability information, all of the paths between the network device and the other network devices in the wide area network, wherein all of the paths comprise single virtual-hop paths and multiple virtual-hop paths between the network device and the other network devices; and
generating, based on the determining, the path topology using the single virtual-hop paths and the multiple virtual-hop paths between the network device and the other network devices.

### Claim 8 (depends on 5)

The method of claim 5, wherein generating the underlay graph for the network device comprises:
determining, for the network device and using the reachability information, only multiple virtual-hop paths between the network device and the other network devices; and
generating, based on the determining, the path topology using only the multiple virtual-hop paths.

### Claim 9 (depends on 5)

The method of claim 5, wherein generating the AAVT routing table for the network device comprises:
obtaining, by the network controller, network traffic policies of the network device;
determining, using the underlay graph of the network device, the set of paths to be included in the AAVT routing table;
associating, in response to determining the set of paths and based on the path metric of each of the paths and the network traffic policies of the network device, each application in the set of applications with one or more paths in the set of paths to generate path association information;
storing, in response to the association, the path association information as usability information for the AAVT routing table; and
aggregating the set of paths and the usability information to generate the AAVT routing table.

### Claim 10 (depends on 9)

The method of claim 9, wherein the associating each application in the set of applications with one or more paths in the set of paths comprises:
making a first determination that an application in the set of the applications is a voice application;
making a second determination, in response to the first determination and using the path metric of each of the paths, that a first path of the set of paths is a multiple virtual-hop path and has a lowest amount of jitter among the set of paths;
making a third determination, in response to the second determination and using the network traffic policies, that the network device is able to transmit network traffic using multiple virtual-hop paths; and
associating, based on the third determination, the voice application with the first path.

### Claim 11 (depends on 4)

The method of claim 4, wherein:
the network devices comprise a hub network device and branch network devices,
the wide area network comprises a first service provider and a second service provider,
the branch network devices are all connected to the hub network device through one or more of the first service provider and the second service provider, and
the path information is received from the hub network device.

### Claim 12 (depends on 11)

The method of claim 11, wherein:
the path information is received by a route reflector, and
a route identifier agent uses the path information received by the route reflector to generate the AAVT routing table for the network device.

### Claim 13

A method for transmitting network traffic between network devices connected to a wide area network, the method being executed by a network device among the network devices and comprising:
receiving an application-aware virtual topology (AAVT) routing table from a network controller for the network device, wherein the AAVT routing table includes a set of paths obtained based on a path topology of the network devices;
making a first determination that network traffic to be transmitted is associated with a first application among a set of applications being executed by the network device;
making a second determination that the AAVT routing table specifies a path within the wide area network to use for transmitting the network traffic associated with the first application; and
transmitting, in response to the first determination and the second determination, the network traffic associated with the first application based on the path.

### Claim 14 (depends on 13)

The method of claim 13, wherein the path topology of the network devices is based on:
reachability information specifying paths between each of the network devices, and
a path metric of each of the paths of the set of paths.

### Claim 15 (depends on 14)

The method of claim 14, wherein the path metric is at least one of a jitter, a latency, a total bandwidth, and a current utilization of a path among the paths.

### Claim 16 (depends on 13)

The method of claim 13, wherein the set of paths include single virtual-hop paths and multiple virtual-hop paths between the network device and the other network devices.

### Claim 17 (depends on 13)

The method of claim 13, wherein the set of paths include multiple virtual-hop paths between the network device and the other network devices and no single virtual-hop paths.

### Claim 18 (depends on 13)

The method of claim 13, wherein:
the AAVT routing table of the network device comprises usability information, and
the usability information includes path association information associating a path with a corresponding application for which network traffic is processed by the network device.

### Claim 19 (depends on 18)

The method of claim 18, wherein the path association information includes an association between a voice application and a given path in the path topology selected based on an amount of jitter.

### Claim 20 (depends on 13)

The method of claim 13, wherein:
the network devices comprise a hub network device and branch network devices,
the wide area network comprises a first service provider and a second service provider, and
the branch network devices are all connected to the hub network device through one or more of the first service provider and the second service provider.
