IP Library › Granted Patent US 11,929,886
Granted Patent B2
US 11,929,886 · App. 18/295,299 · Granted Mar 12, 2024

Model driven intent policy conflict detection and resolution through graph analysis

Inventor: Chandrasekhar A (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L41/24G06F16/2246H04L41/0803H04L41/0866H04L41/0873H04L41/0893H04L41/145H04L63/02H04L69/22
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,929,886
App. No.
18/295,299
Filed
Apr 4, 2023
Granted
Mar 12, 2024
Kind
B2
Art Unit
2459
USPC
709/223
Abstract

A method includes maintaining, by a controller device that manages a plurality of network devices, a data structure and receiving, by the controller device, an indication of a stateful intent. The method further includes generating, by the controller device, a logical packet based on the stateful intent and determining, by the controller device, a dependent intent of the data structure based on the logical packet. The method further includes determining that the dependent intent conflicts with the stateful intent. The method further includes, in response to determining that the dependent intent conflicts with the stateful intent, determining, by the controller device, a resolution that resolves the conflict between the dependent intent and the stateful intent based on the dependent intent and the stateful intent and outputting, by the controller device, an indication of the resolution.

Claims (52)

1. A system configured to manage a plurality of network devices, the system comprising:

memory; and

processing circuitry coupled to the memory, wherein the processing circuitry is configured to:

generate a logical packet based on a stateful intent;

determine a dependent intent of a data structure based on the logical packet, wherein the data structure that includes a plurality of vertices and a plurality of edges, each vertex of the plurality of vertices representing a respective network device of the plurality of network devices or a respective stateless intent of a plurality of stateless intents, and the plurality of edges defining relationships between the plurality of vertices; and

in response to a determination that the dependent intent conflicts with the stateful intent, output an indication of the conflict between the dependent intent and the stateful intent.

2. The system of claim 1 , wherein the processing circuitry is further configured to receive the indication of the stateful intent from a command line interface (CLI).

3. The system of claim 1 , wherein the processing circuitry is configured to receive the stateful intent out-of-band from an administrator.

4. The system of claim 1 , wherein the stateful intent specifies an intended state to be translated into one or more device-level configuration changes for the plurality of network devices.

5. The system of claim 1 , wherein the processing circuitry is further configured to:

determine a resolution that resolves the conflict between the dependent intent and the stateful intent based on the dependent intent and the stateful intent; and

output an indication of the resolution.

6. The system of claim 5 ,

wherein to determine the resolution, the processing circuitry is configured to determine one or more device-level configuration changes based on the dependent intent and the stateful intent; and

wherein the processing circuitry is further configured to apply the one or more device-level configuration changes to at least one network device of the plurality of network devices.

7. The system of claim 5 , wherein to determine the resolution, the processing circuitry is configured to determine a modified stateful intent based on the dependent intent and the stateful intent such that the modified stateful intent does not conflict with the dependent intent.

8. The system of claim 5 , wherein to determine the resolution, the processing circuitry is configured to determine a modified dependent intent based on the dependent intent and the stateful intent such that the modified dependent intent does not conflict with the stateful intent.

9. The system of claim 5 , wherein to determine the resolution, the processing circuitry is configured to determine a hierarchical order to apply the dependent intent and the stateful intent.

10. The system of claim 9 , wherein to determine the hierarchical order, the processing circuitry is configured to:

determine that the dependent intent applies to a group;

determine that the stateful intent applies to a subset of the group that includes not all of the group; and

apply the stateful intent to the subset of the group and refrain from applying the dependent intent to the subset of the group in response to a determination that the dependent intent conflicts with the stateful intent and in response to a determination that the stateful intent applies to the subset of the group and the dependent intent applies to the group.

11. The system of claim 9 , wherein to determine the hierarchical order, the processing circuitry is configured to:

determine that the dependent intent applies globally to a plurality of sites;

determine that the stateful intent applies to a subset of the plurality of sites that does not include all of the plurality of sites; and

apply the stateful intent to the subset of the plurality of sites and refrain from applying the dependent intent to the subset of the plurality of sites in response to a determination that dependent intent conflicts with the stateful intent and in response to a determination that the stateful intent applies to the subset of the plurality of sites and the dependent intent applies globally to the plurality of sites.

12. The system of claim 5 ,

wherein to determine the resolution, the processing circuitry is configured to determine that the stateful intent is redundant with the dependent intent; and

wherein to output the indication of the resolution, the processing circuitry is configured to append a change list for the logical packet to indicate that the stateful intent is redundant.

13. The system of claim 5 ,

wherein the stateful intent comprises a network address translation that translates a first network address into a second network address;

wherein the dependent intent comprises configuring a firewall to allow traffic to the first network address; and

wherein to determine the resolution, the processing circuitry is configured to modify the dependent intent to configure the firewall to allow traffic to the second network address and refrain from configuring the firewall to allow traffic to the first network address.

14. The system of claim 1 , wherein to determine the dependent intent of the data structure, the processing circuitry is configured to:

determine an intent-type dependency based on the stateful intent;

determine, based on a traversal of the logical packet, a vertex of the plurality of vertices that comprises the intent-type dependency; and

determine the dependent intent from the vertex of the plurality of vertices that comprises the intent-type dependency.

15. The system of claim 1 , wherein the stateful intent comprises a first intent type of a plurality of intent types and the dependent intent comprises a second intent type of the plurality of intent types different from the first intent type.

16. The system of claim 15 , wherein the plurality of intent types comprises:

a network address translate type;

a firewall allow type; and

a firewall deny type.

17. The system of claim 1 , wherein the stateful intent comprises a first intent type and the dependent intent comprises the first intent type.

18. The system of claim 1 , further comprising receiving the indication of the stateful intent in response to discovering a network device of the plurality of network devices.

19. A method comprising:

generating, by a controller device, a logical packet based on a stateful intent;

determining, by the controller device, a dependent intent of a data structure based on the logical packet, wherein the data structure that includes a plurality of vertices and a plurality of edges, each vertex of the plurality of vertices representing a respective network device of a plurality of network devices or a respective stateless intent of a plurality of stateless intents, and the plurality of edges defining relationships between the plurality of vertices; and

in response to determining that the dependent intent conflicts with the stateful intent, outputting, by the controller device, an indication of the conflict between the dependent intent and the stateful intent.

20. A non-transitory computer-readable storage medium comprising one or more instructions that cause processing circuitry to:

generate a logical packet based on a stateful intent;

determine a dependent intent of a data structure based on the logical packet, wherein the data structure that includes a plurality of vertices and a plurality of edges, each vertex of the plurality of vertices representing a respective network device of a plurality of network devices or a respective stateless intent of a plurality of stateless intents, and the plurality of edges defining relationships between the plurality of vertices; and

in response to a determination that the dependent intent conflicts with the stateful intent, output an indication of the conflict between the dependent intent and the stateful intent.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2023
From: A, CHANDRASEKHAR
To: JUNIPER NETWORKS, INC
Reel/Frame 063302/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2023
From: A, CHANDRASEKHAR
To: JUNIPER NETWORKS, INC
Reel/Frame 063213/0068 →
Continuity (3)
Continuation 17652458 · Feb 24, 2022
Continuation 16949242 · Oct 21, 2020
Related Publication 20230254221A1 · Aug 10, 2023
Cited By (2)
US 12,189,919 US 12,598,111