IP Library › Granted Patent US 11,805,013
Granted Patent B2
US 11,805,013 · App. 16/776,018 · Granted Oct 31, 2023

Prioritizing policy intent enforcement on network devices

Inventors: Krishna Mohan Golla (Bangalore, IN); Nagaraja Manikkar Shenoy (Bangalore, IN); Samta Rangare (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L41/0816G06F8/70H04L43/0876H04L67/10
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,805,013
App. No.
16/776,018
Granted
Oct 31, 2023
Kind
B2
Abstract

A controller device manages a plurality of network devices arranged at a plurality of sites. The controller device includes one or more processing units configured to determine a stateful intent for managing a software application at the plurality of network devices and represented by a graph model and translate the stateful intent into low-level configuration data. The one or more processing units are further configured to determine, for each site, a priority index based on a site-level usage of the software application, determine, an ordered list of the plurality of sites based on the priority index for each respective site, and configure, for each respective site, and in an order specified by the ordered list of the plurality of sites, one or more network devices of the plurality of network devices that are arranged at the respective site according to the low-level configuration data.

Claims (58)

1. A method comprising:

determining, by a controller device that manages a plurality of network devices arranged at a plurality of sites operating in different geographical locations, a stateful intent for managing a software application at the plurality of network devices and represented by a graph model;

translating, by the controller device, the stateful intent into low-level configuration instructions for configuring the plurality of network devices;

determining, by the controller device, using one or more logs for the software application, a plurality of best fit lines that represents, for each respective time of the plurality of times, a respective amount of data transmitted to the software application at each respective site of the plurality of sites operating in different geographical locations;

determining, by the controller device, for each respective site of the plurality of sites operating in different geographical locations, a priority index for configuring the plurality of network devices according to the low-level configuration instructions using the plurality of best fit lines that represents, for each respective time of the plurality of times, the respective amount of data transmitted to the software application at each respective site of the plurality of sites operating in different geographical locations;

determining, by the controller device, an ordered list of the plurality of sites based on the priority index for each respective site of the plurality of sites operating in different geographical locations; and

configuring, by the controller device, for each respective site of the plurality of sites, and in an order specified by the ordered list of the plurality of sites operating in different geographical locations, one or more network devices of the plurality of network devices that are arranged at the respective site according to the low-level configuration instructions.

2. The method of claim 1 , wherein the one or more logs comprises one or more application logs for a site of the plurality of sites, wherein determining the plurality of best fit lines comprises:

determining, by the controller device, and for each event of a plurality of events at a site of the plurality of sites, the respective amount of data transmitted to the software application at the site using the one or more application logs for the site.

3. The method of claim 2 , comprising:

determining, by the controller device, and using one or more network logs for the site, for each event of the plurality of events, a respective time the respective amount of data was transmitted to the software application at the site.

4. The method of claim 1 , wherein determining the priority index comprises:

assigning a group of a plurality of groups to a site of the plurality of sites based on a best fit line of the plurality of best fit lines; and

determining the priority index for the site based on the group assigned to the site.

5. The method of claim 4 ,

wherein the best fit line comprises a negative slope; and

wherein determining the priority index comprises assigning, when the best fit line comprises the negative slope, the site to the group.

6. The method of claim 4 ,

wherein the best fit line comprises a positive slope; and

wherein determining the priority index comprises assigning, when the best fit line comprises the positive slope, the site to the group.

7. The method of claim 4 ,

wherein the best fit line comprises a constant slope; and

wherein determining the priority index comprises assigning, when the best fit line comprises the constant slope, the site to the group.

8. The method of claim 4 , wherein determining the priority index comprises:

determining a maximum amount of data transmitted to the software application at the site using the best fit line; and

determining the priority index for the site further based on the maximum amount of data transmitted to the software application at the site.

9. The method of claim 1 , wherein determining a best fit line of the plurality of best fit lines comprises applying one or more of linear regression, non-linear regression, and machine learning.

10. The method of claim 1 , wherein the configuring comprises causing the low-level configuration instructions to be applied to the one or more network devices at a first site of the plurality of sites before the low-level configuration instructions are applied to the one or more network devices at a second site of the plurality of sites operating when the ordered list specifies that the first site has a higher priority for the software application than the second site.

11. A controller device that manages a plurality of network devices arranged at a plurality of sites operating in different geographical locations, the controller device comprising one or more processing units implemented in circuitry and configured to:

determine a stateful intent for managing a software application at the plurality of network devices and represented by a graph model;

translate the stateful intent into low-level configuration instructions for configuring the plurality of network devices;

determine, using one or more logs for the software application, a plurality of best fit lines that represents, for each respective time of the plurality of times, a respective amount of data transmitted to the software application at each respective site of the plurality of sites operating in different geographical locations;

determine, for each respective site of the plurality of sites operating in different geographical locations, a priority index for configuring the plurality of network devices according to the low-level configuration instructions using the plurality of best fit lines that represents, for each respective time of the plurality of times, the respective amount of data transmitted to the software application at each respective site of the plurality of sites operating in different geographical locations;

determine an ordered list of the plurality of sites based on the priority index for each respective site of the plurality of sites operating in different geographical locations; and

configure, for each respective site of the plurality of sites, and in an order specified by the ordered list of the plurality of sites operating in different geographical locations, one or more network devices of the plurality of network devices that are arranged at the respective site according to the low-level configuration instructions.

12. The controller device of claim 11 , wherein the one or more logs comprises one or more application logs for a site of the plurality of sites and wherein to determine the plurality of best fit lines, the one or more processing units are configured to:

determine, for each event of a plurality of events at a site of the plurality of sites, the respective amount of data transmitted to the software application at a site of the plurality of sites using the one or more application logs for the site.

13. The controller device of claim 12 , wherein the one or more processing units are configured to:

determine, using one or more network logs for the site, for each event of the plurality of events, a respective time the respective amount of data was transmitted to the software application at the site.

14. The controller device of claim 11 , wherein, to determine the priority index, the one or more processing units are configured to:

assign a group of a plurality of groups to a site of the plurality of sites based on a best fit line of the plurality of best fit lines; and

determine the priority index for the site based on the group assigned to the site.

15. The controller device of claim 14 ,

wherein the best fit line comprises a negative slope; and

wherein, to determine the priority index, the one or more processing units are configured to assign, when the best fit line comprises the negative slope, the site to the group.

16. The controller device of claim 14 ,

wherein the best fit line comprises a positive slope; and

wherein, to determine the priority index, the one or more processing units are configured to assign, when the best fit line comprises the positive slope, the site to the group.

17. The controller device of claim 14 ,

wherein the best fit line comprises a constant slope; and

wherein, to determine the priority index, the one or more processing units are configured to assign, when the best fit line comprises the constant slope, the site to the group.

18. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processing units of a controller device that manages a plurality of network devices arranged at a plurality of sites operating in different geographical locations to:

determine a stateful intent for managing a software application at the plurality of network devices operating in different geographical locations and represented by a graph model;

translate the stateful intent into low-level configuration instructions for configuring the plurality of network devices;

determine, using one or more logs for the software application, a plurality of best fit lines that represents, for each respective time of the plurality of times, a respective amount of data transmitted to the software application at each respective site of the plurality of sites operating in different geographical locations;

determine, for each respective site of the plurality of sites operating in different geographical locations, a priority index for configuring the plurality of network devices according to the low-level configuration instructions using the plurality of best fit lines that represents, for each respective time of the plurality of times, the respective amount of data transmitted to the software application at each respective site of the plurality of sites operating in different geographical locations;

determine an ordered list of the plurality of sites based on the priority index for each respective site of the plurality of sites operating in different geographical locations; and

configure, for each respective site of the plurality of sites, and in an order specified by the ordered list of the plurality of sites operating in different geographical locations, one or more network devices of the plurality of network devices that are arranged at the respective site according to the low-level configuration instructions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2024
From: GOLLA, KRISHNA MOHAN; SHENOY, NAGARAJA MANIKKAR; RANGARE, SAMTA
To: JUNIPER NETWORKS, INC.
Reel/Frame 069019/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: GOLLA, KRISHNA MOHAN; SHENOY, NAGARAJA MANIKKAR; RANGARE, SAMTA
To: JUNIPER NETWORKS, INC.
Reel/Frame 051661/0493 →
Continuity (1)
Related Publication 20210234754A1 · Jul 29, 2021