# US 2022/0045898 A1 · Using a programmable resource dependency mathematical model to perform root cause analysis

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

- Number: US 2022/0045898 A1
- Document ID: US20220045898A1
- Status: Published application
- Kind: A1
- Application number: 16/947,507
- Filed: 2020-08-04
- Published: 2022-02-10
- Earliest claimed: 2020-08-04
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Chandrasekhar A; Jayanthi R; Javier Antich
- Web page: https://patentgrep.com/patent/US20220045898A1

## CPC

- H04L 41/142: using statistical or mathematical methods
- H04L 41/0631: using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L 41/12: Discovery or management of network topologies
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/0213: Standardised network management protocols, e.g. simple network management protocol [SNMP]
- H04L 41/044: comprising hierarchical management structures
- H04L 41/064: {involving time analysis}
- H04L 41/065: {involving logical or physical relationship, e.g. grouping and hierarchies}
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/0853: by actively collecting configuration information or by backing up configuration information
- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A controller device manages a plurality of network devices. The controller device includes a memory configured to store a dependency model representing dependencies between resources provided by the network devices and a programmed merge strategy, and one or more processors implemented in circuitry and configured to: determine the resources provided by the network devices; determine relationships between the resources according to the programmed merge strategy; construct the dependency model using the determined relationships; determine that at least one of the resources has experienced a failure; and perform a root cause analysis using the dependency mathematical model to determine a root cause of the failure of the at least one of the resources.

## Claims

### Claim 1

A method comprising:
determining, by a controller device that manages a plurality of network devices, resources provided by the network devices, the resources comprising one or more hardware units of the network devices, software units of the network devices, or network services provided by the network devices;
determining, by the controller device, relationships between the resources according to a programmed merge strategy;
constructing, by the controller device, a dependency model representing dependencies between the resources using the determined relationships, wherein constructing the dependency model comprises performing a resource management stage including, for each of the resources:
determining whether the resource is transient;
when the resource is not transient, retrieving existing resources of a playbook, comparing the resource with the existing resources, creating or updating a node for the resource, and forming an updated resource ID list to include the created or updated node; and
when the resource is transient, determining a parent/child ID for the resource;
determining, by the controller device, that at least one of the resources has experienced a failure; and
performing, by the controller device, a root cause analysis using the dependency model to determine a root cause of the failure of the at least one of the resources.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving data defining the playbook representing a set of resource definitions, resource discovery rules, and the programmed merge strategy, wherein determining the resources comprises determining the resources using the resource definitions, the resource discovery rules, and the programmed merge strategy of the playbook.

### Claim 3 (depends on 1)

The method of claim 1, wherein constructing the dependency model comprises:
constructing one or more nodes each respectively representing one of the resources; and
constructing edges between the nodes representing the dependencies between the resources.

### Claim 4 (depends on 3)

The method of claim 3, wherein each of the edges comprises one of a dependency edge or a parent-child edge.

### Claim 5

(canceled)

### Claim 6 (depends on 1)

The method of claim 1, wherein constructing the dependency model comprises:
using an updated resource ID list to determine the resources for which the dependencies have changed;
executing the programmed merge strategy to add or delete dependency edges between the resources according to the dependencies; and
forming an updated associations list.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining that one or more of the resources have been added, updated, or deleted;
fetching the existing resources;
determining one or more differences between the existing resources and the one or more resources that have been added, updated, or deleted;
updating associations for the one or more resources that have been added, updated, or deleted; and
updating inversed dependencies of the dependency model using the updated associations.

### Claim 8 (depends on 1)

The method of claim 1, wherein determining the resources comprises determining the resources from an external controller device separate from the controller device.

### Claim 9

A controller device that manages a plurality of network devices, the controller device comprising:
a memory configured to store a dependency model representing dependencies between resources provided by the network devices and a programmed merge strategy, the resources comprising one or more hardware units of the network devices, software units of the network devices, or network services provided by the network devices; and
one or more processors implemented in circuitry and configured to:
determine the resources provided by the network devices;
determine relationships between the resources according to the programmed merge strategy;
construct the dependency model using the determined relationships, wherein to construct the dependency mode, the one or more processors are configured to perform a resource management stage to construct the dependency model, including, for each of the resources:
determine whether the resource is transient;
when the resource is not transient, retrieve existing resources of a playbook, compare the resource with existing resources, create or update a node for the resource, and form an updated resource ID list to include the created or updated node; and
when the resource is transient, determine a parent/child ID for the resource;
determine that at least one of the resources has experienced a failure; and
perform a root cause analysis using the dependency model to determine a root cause of the failure of the at least one of the resources.

### Claim 10 (depends on 9)

The controller device of claim 9, wherein the one or more processors are further configured to receive data defining the playbook representing a set of resource definitions, resource discovery rules, and the programmed merge strategy, wherein the one or more processors are configured to determine the resources using the resource definitions, the resource discovery rules, and the programmed merge strategy of the playbook.

### Claim 11 (depends on 9)

The controller device of claim 9, wherein to construct the dependency model, the one or more processors are configured to:
construct one or more nodes each respectively representing one of the resources; and
construct edges between the nodes representing the dependencies between the resources.

### Claim 12 (depends on 11)

The controller device of claim 11, wherein each of the edges comprises one of a dependency edge or a parent-child edge.

### Claim 13

(canceled)

### Claim 14 (depends on 9)

The controller device of claim 9, wherein to construct the dependency model, the one or more processors are configured to:
use an updated resource ID list to determine the resources for which the dependencies have changed;
execute the programmed merge strategy to add or delete dependency edges between the resources according to the dependencies; and
form an updated associations list.

### Claim 15 (depends on 9)

The controller device of claim 9, wherein the one or more processors are further configured to:
determine that one or more of the resources have been added, updated, or deleted;
fetch the existing resources;
determine one or more differences between the existing resources and the one or more resources that have been added, updated, or deleted;
update associations for the one or more resources that have been added, updated, or deleted; and
update inversed dependencies of the dependency model using the updated associations.

### Claim 16 (depends on 9)

The controller device of claim 9, wherein the one or more processors are configured to determine the resources from an external controller device separate from the controller device.

### Claim 17

A computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a controller device that manages a plurality of network devices to:
determine resources provided by the network devices, the resources comprising one or more hardware units of the network devices, software units of the network devices, or network services provided by the network devices;
determine relationships between the resources according to a programmed merge strategy;
construct a dependency model representing dependencies between the resources using the determined relationships, wherein the instructions that cause the processor to construct the dependency model comprise instructions that cause the processor to perform a resource management stage including, for each of the resources:
determining whether the resource is transient;
when the resource is not transient, retrieving existing resources of a playbook, comparing the resource with existing resources, creating or updating a node for the resource, and forming an updated resource ID list to include the created or updated node; and
when the resource is transient, determining a parent/child ID for the resource;
determine that at least one of the resources has experienced a failure; and
perform a root cause analysis using the dependency model to determine a root cause of the failure of the at least one of the resources.

### Claim 18 (depends on 17)

The computer-readable storage medium of claim 17, further comprising instructions that cause the processor to receive data defining the playbook representing a set of resource definitions, resource discovery rules, and the programmed merge strategy, wherein the instructions that cause the processor to determine the resources comprise instructions that cause the processor to determine the resources using the resource definitions, the resource discovery rules, and the programmed merge strategy of the playbook.

### Claim 19 (depends on 17)

The computer-readable storage medium of claim 17, wherein the instructions that cause the processor to construct the dependency model comprise instructions that cause the processor to:
construct one or more nodes each respectively representing one of the resources; and
constructing edges between the nodes representing the dependencies between the resources, wherein each of the edges comprises one of a dependency edge or a parent-child edge.

### Claim 20 (depends on 17)

The computer-readable storage medium of claim 17, further comprising instructions that cause the processor to:
determine that one or more of the resources have been added, updated, or deleted;
fetch the existing resources;
determine one or more differences between the existing resources and the one or more resources that have been added, updated, or deleted;
update associations for the one or more resources that have been added, updated, or deleted; and
update inversed dependencies of the dependency model using the updated associations.
