IP Library Granted Patent US 11,025,489
Granted Patent B2
US 11,025,489 · App. 16/421,332 · Granted Jun 1, 2021

Automated discovery of manual configuration changes

Inventor: Viktor M. E. Leijon (San Jose, CA)
Assignee: Cisco Technology, Inc.
H04L41/0816G06F9/44505H04L41/0806H04L41/0853H04L41/0883
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,025,489
App. No.
16/421,332
Granted
Jun 1, 2021
Kind
B2
Abstract

Techniques for automated analysis and classification of network configurations are provided. Resource provisioning code used to provision resources in a network is received, and a set of constraints is generated based on the resource provisioning code, where the set of constraints define valid network configurations. A configuration tree for the network is received, and a set of candidates is generated for the network based at least in part on the configuration tree. Upon determining that a first candidate of the set of candidates does not fail any constraint in the set of constraints, the first candidate is recorded as a manual intent. The manual intent is integrated into an automated configuration system for the network.

Claims (51)

1. A method comprising:

receiving resource provisioning code, wherein the resource provisioning code is software used to provision and configure resources in a network;

generating a set of constraints by evaluating the resource provisioning code, wherein the set of constraints define valid network configurations that can be implemented using the resource provisioning code;

receiving a configuration tree for the network, wherein the configuration tree defines a hierarchical arrangement of configuration elements in the network and includes one or more valid nodes that were generated using the resource provisioning code and one or more invalid nodes that were not generated using the resource provisioning code;

generating a set of candidates for the network based at least in part on the configuration tree, wherein each candidate in the set of candidates corresponds to one or more nodes in the configuration tree; and

upon determining, by operation of one or more computer processors, that a first candidate of the set of candidates satisfies the set of constraints, recording the first candidate as a first manual intent; and

integrating the first manual intent into an automated configuration system for the network.

2. The method of claim 1 , wherein each respective candidate in the set of candidates comprises a respective set of one or more inputs for the resource provisioning code, wherein the respective set of one or more inputs, when provided to the resource provisioning code, cause the resource provisioning code to output a respective configuration corresponding to the respective candidate.

3. The method of claim 1 , the method further comprising:

upon determining that a second candidate of the set of candidates fails at least one constraint in the set of constraints, flagging the second candidate for manual review.

4. The method of claim 1 , the method further comprising:

upon determining that a second candidate has multiple sets of inputs that could be used to satisfy a first constraint of the set of constraints, splitting the second candidate into at least two new candidates.

5. The method of claim 1 , the method further comprising:

receiving a schema associated with the resource provisioning code, wherein each node in the schema has zero or more instances in the configuration tree, and wherein each node in the configuration tree corresponds to at least one node in the schema.

6. The method of claim 1 , the method further comprising:

recursively applying one or more constraints from the set of constraints to each node in the configuration tree, in order to identify nodes in the configuration tree that correspond to manual user intent.

7. The method of claim 1 , wherein generating the set of constraints comprises determining, based on the resource provisioning code, a set of valid nodes for the network, wherein each node in the set of valid nodes corresponds to a configuration node that can be generated using the resource provisioning code.

8. A non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to perform an operation comprising:

receiving resource provisioning code, wherein the resource provisioning code is software used to provision and configure resources in a network;

generating a set of constraints by evaluating the resource provisioning code, wherein the set of constraints define valid network configurations that can be implemented using the resource provisioning code;

receiving a configuration tree for the network, wherein the configuration tree defines a hierarchical arrangement of configuration elements in the network and includes one or more valid nodes that were generated using the resource provisioning code and one or more invalid nodes that were not generated using the resource provisioning code;

generating a set of candidates for the network based at least in part on the configuration tree, wherein each candidate in the set of candidates corresponds to one or more nodes in the configuration tree; and

upon determining that a first candidate of the set of candidates satisfies the set of constraints, recording the first candidate as a first manual intent; and

integrating the first manual intent into an automated configuration system for the network.

9. The non-transitory computer-readable storage medium of claim 8 , wherein each respective candidate in the set of candidates comprises a respective set of one or more inputs for the resource provisioning code, wherein the respective set of one or more inputs, when provided to the resource provisioning code, cause the resource provisioning code to output a respective configuration corresponding to the respective candidate.

10. The non-transitory computer-readable storage medium of claim 8 , the operation further comprising:

upon determining that a second candidate of the set of candidates fails at least one constraint in the set of constraints, flagging the second candidate for manual review.

11. The non-transitory computer-readable storage medium of claim 8 , the operation further comprising:

upon determining that a second candidate has multiple sets of inputs that could be used to satisfy a first constraint of the set of constraints, splitting the second candidate into at least two new candidates.

12. The non-transitory computer-readable storage medium of claim 8 , the operation further comprising:

receiving a schema associated with the resource provisioning code, wherein each node in the schema has zero or more instances in the configuration tree, and wherein each node in the configuration tree corresponds to at least one node in the schema.

13. The non-transitory computer-readable storage medium of claim 8 , the operation further comprising:

recursively applying one or more constraints from the set of constraints to each node in the configuration tree, in order to identify nodes in the configuration tree that correspond to manual user intent.

14. The non-transitory computer-readable storage medium of claim 8 , wherein generating the set of constraints comprises determining, based on the resource provisioning code, a set of valid nodes for the network, wherein each node in the set of valid nodes corresponds to a configuration node that can be generated using the resource provisioning code.

15. A system comprising:

one or more computer processors; and

a memory containing a program which when executed by the one or more computer processors performs an operation, the operation comprising:

receiving resource provisioning code, wherein the resource provisioning code is software used to provision and configure resources in a network;

generating a set of constraints by evaluating the resource provisioning code, wherein the set of constraints define valid network configurations that can be implemented using the resource provisioning code;

receiving a configuration tree for the network, wherein the configuration tree defines a hierarchical arrangement of configuration elements in the network and includes one or more valid nodes that were generated using the resource provisioning code and one or more invalid nodes that were not generated using the resource provisioning code;

generating a set of candidates for the network based at least in part on the configuration tree, wherein each candidate in the set of candidates corresponds to one or more nodes in the configuration tree; and

upon determining that a first candidate of the set of candidates satisfies the set of constraints, recording the first candidate as a first manual intent; and

integrating the first manual intent into an automated configuration system for the network.

16. The system of claim 15 , wherein each respective candidate in the set of candidates comprises a respective set of one or more inputs for the resource provisioning code, wherein the respective set of one or more inputs, when provided to the resource provisioning code, cause the resource provisioning code to output a respective configuration corresponding to the respective candidate.

17. The system of claim 15 , the operation further comprising:

upon determining that a second candidate of the set of candidates fails at least one constraint in the set of constraints, flagging the second candidate for manual review.

18. The system of claim 15 , the operation further comprising:

upon determining that a second candidate has multiple sets of inputs that could be used to satisfy a first constraint of the set of constraints, splitting the second candidate into at least two new candidates.

19. The system of claim 15 , the operation further comprising:

receiving a schema associated with the resource provisioning code, wherein each node in the schema has zero or more instances in the configuration tree, and wherein each node in the configuration tree corresponds to at least one node in the schema.

20. The system of claim 15 , wherein generating the set of constraints comprises determining, based on the resource provisioning code, a set of valid nodes for the network, wherein each node in the set of valid nodes corresponds to a configuration node that can be generated using the resource provisioning code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2019
From: LEIJON, VIKTOR M. E.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 049273/0429 →
Continuity (1)
Related Publication 20200374192A1 · Nov 26, 2020