# US 12,003,408 B2 · Policy validation

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

- Number: US 12,003,408 B2
- Document ID: US12003408B2
- Status: Granted
- Kind: B2
- Application number: 17/522,515
- Filed: 2021-11-09
- Published: 2023-05-11
- Granted: 2024-06-04
- Earliest claimed: 2021-11-09
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Atahar Khan; Ankush Ganpatrai Arora; Amit Dhamija; Naveen Eranoor; Chandrashekar Vasudevan; Rajiv Asati
- Web page: https://patentgrep.com/patent/US12003408B2

## CPC

- H04L 45/02: Topology update or discovery
- G06N 20/00: Machine learning
- H04L 45/22: {Alternate routing}
- H04L 45/24: Multipath
- H04L 45/28: using route fault recovery
- H04L 45/42: Centralised routing
- G06N 20/20: Ensemble learning
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

This disclosure describes techniques for policy validation techniques relating to data traffic routing among network devices. The techniques may include processing a validation request from a controller. A validation request may include information related to a computed path for routing data traffic in a computing network. The processing may include sending one or more path requests to one or more redundant controllers, and comparing computed paths from the redundant controller(s) to the originally computed path. The techniques may include generating a validation response based on comparing the computed paths. In some examples, the techniques may further include determining a health score for the controller. Policy validation techniques may improve data traffic routing among network devices by helping to ensure valid policies are produced.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, at a validation engine and from a primary controller, a validation request including a first computed path for routing data traffic in a computing network;
in response to receiving the validation request, sending, from the validation engine and to a redundant controller, a path request relating to the validation request;
receiving, at the validation engine and from the redundant controller, a second computed path relating to the path request;
comparing the first computed path to the second computed path;
based at least in part on the comparing, generating a validation response; and
sending the validation response from the validation engine to the primary controller.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, at the validation engine and from additional redundant controllers, additional computed paths relating to the path request,
wherein the generating the validation response is further based on comparing the first computed path with the additional computed paths.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining, based at least in part on the comparing, that a policy associated with the validation request is invalid.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising:
sending, based at least in part on determining the policy to be invalid, instructions to the primary controller to re-compute an updated path;
receiving an updated path from the primary controller; and
in response to receiving the updated path, comparing the updated path to the first computed path,
wherein the generating the validation response is further based on comparing the updated path to the first computed path.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining a health variable for the primary controller.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
utilizing the health variable to determine a health score for the primary controller.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein the health score is determined by a machine learned model.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the machine learned model utilizes the first computed path, the second computed path, and the health variable to determine the health score.

### Claim 9

A computing device comprising:
one or more processors; and
one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:
receive, from a primary controller, a validation request including a first computed path for routing data traffic in a computing network;
in response to receiving the validation request, send, to a redundant controller, a path request relating to the validation request;
receive, from the redundant controller, a second computed path relating to the path request;
compare the first computed path to the second computed path;
based at least in part on comparing the first computed path to the second computed path, generate a validation response; and
send the validation response to the primary controller.

### Claim 10 (depends on 9)

The computing device of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
receive, from additional redundant controllers, additional computed paths relating to the path request,
wherein the generating the validation response is further based on comparing the first computed path with the additional computed paths.

### Claim 11 (depends on 9)

The computing device of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
determine, based at least in part on the comparing, that a policy associated with the validation request is invalid.

### Claim 12 (depends on 11)

The computing device of claim 11, wherein the computer-executable instructions further cause the one or more processors to:
send, based at least in part on determining the policy to be invalid, instructions to the primary controller to re-compute an updated path;
receive an updated path from the primary controller; and
in response to receiving the updated path, compare the updated path to the first computed path,
wherein the generating the validation response is further based on comparing the updated path to the first computed path.

### Claim 13 (depends on 9)

The computing device of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
determine a health variable for the primary controller.

### Claim 14 (depends on 13)

The computing device of claim 13, wherein the computer-executable instructions further cause the one or more processors to:
utilize the health variable to determine a health score for the primary controller.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the health score is determined by a machine learned model.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein the machine learned model utilizes the first computed path, the second computed path, and the health variable to determine the health score.

### Claim 17

A method comprising:
receiving path validation information relating to a controller;
based at least in part on the path validation information, determining a health variable for the controller;
accessing a validation database for data corresponding to a network that includes the controller;
utilizing the health variable and the data from the validation database, determining a health score for the controller; and
sending the health score for the controller to an administrator of the network.

### Claim 18 (depends on 17)

The method of claim 17, wherein the health score comprises a prediction of reliability of the controller.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
utilizing the data from the validation database, training a classification model,
wherein the determining the health score comprises using the classification model to determine the health score.

### Claim 20 (depends on 17)

The method of claim 17, further comprising:
storing information related to the health score in the validation database.
