IP Library › Granted Patent US 11,140,049
Granted Patent B2
US 11,140,049 · App. 16/125,245 · Granted Oct 5, 2021

Dynamic intent assurance and programmability in computer networks

Inventors: Chandrasekhar A (Bangalore, IN); Nirmal Anburose (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L41/5019H04L41/0213
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,140,049
App. No.
16/125,245
Granted
Oct 5, 2021
Kind
B2
Abstract

In general, techniques are described for automatic intent provisioning and management in computer networks. A device comprising a processor, a memory, and an interface may perform the techniques. The processor may obtain a policy that includes high-level configuration data defining a service to be deployed within a network, the high-level configuration data including resource selector criteria that identifies one or more criteria for selecting a resource to support the service from a plurality of potential resources. The processor may also determine, based on the resource selector criteria, the resource to support the service from the plurality of potential resources, and translate the high-level configuration data to low-level configuration data specific to the determined resource. The memory may store the low-level configuration data specific to the determined resource. The interface may enable configuration, when provisioning the service, the determined resource using the low-level configuration data specific to the determined resource.

Claims (57)

1. A method comprising:

obtaining, by a management device configured to manage operation of a plurality of potential resources, a policy that includes high-level configuration data defining a service to be deployed within a network, the high-level configuration data including resource selector criteria that identifies one or more criteria for selecting a resource to support the service from the plurality of potential resources and defines, using an extensible set of commands, the resource selector criteria;

obtaining state data identifying a status of each of the plurality of potential resources;

determining, by the management device and based on application of the resource selector criteria to the state data, the resource to support the service from the plurality of potential resources;

translating, by the management device, the high-level configuration data to low-level configuration data specific to the determined resource; and

configuring, by the management device and when provisioning the service in the network, the determined resource using the low-level configuration data specific to the determined resource.

2. The method of claim 1 , wherein the high-level configuration data includes an intent specifying the network service and includes the resource selector criteria.

3. The method of claim 1 , wherein determining the resource comprises automatically determining, without manual intervention and based on application of the resource selector criteria to the state data, the resource from the plurality of potential resources.

4. The method of claim 1 , further comprising:

obtaining updated state data identifying an updated state of each of the plurality of potential resources;

determining, based on the updated state data and the resource selector criteria, whether the determined resource is to continue to support the service;

determining, responsive to determining that the determine resource is not to continue to support the service and based on the resource selector criteria and the updated state data, a replacement resource to support the service;

translating the high-level configuration data to low-level configuration data specific to the determined replacement resource; and

configuring, when re-provisioning the service in the network, the determined replacement resource using the low-level configuration data specific to the determined replacement resource.

5. The method of claim 1 ,

wherein the state data identifies one or more resource metrics that are defined using an extensible set of commands, and a corresponding one or more weights,

wherein the resource metrics identify an operational state of a corresponding resource of the plurality of potential resources, and

wherein determining the resource comprises:

applying the one or more weights to the corresponding one of the resource metrics to obtain one or more corresponding resource loads; and

determining, based on application of the resources selector criteria to the resource loads, the resource to support the service from the plurality of potential resources.

6. The method of claim 1 , further comprising determining, based on a device schema, the plurality of potential resources.

7. The method of claim 1 , wherein determining the resources comprises:

determining, based on application of the resource selector criteria to the state data, one or more of a decision variable, an objective, and a constraint;

applying the one or more of the decision variable, the objective, and the constraint to the plurality of potential resources to determine the resource to support the service.

8. A device configured to manage a plurality of potential resources, the device comprising:

one or more processors configured to:

obtain a policy that includes high-level configuration data defining a service to be deployed within a network, the high-level configuration data including resource selector criteria that identifies one or more criteria for selecting a resource to support the service from the plurality of potential resources and defines, using an extensible set of commands, the resource selector criteria;

obtain state data identifying a status of each of the plurality of potential resources;

determine, based on application of the resource selector criteria to the state data, the resource to support the service from the plurality of potential resources;

translate the high-level configuration data to low-level configuration data specific to the determined resource;

a memory configured to store the low-level configuration data specific to the determined resource; and

an interface by which to configure, when provisioning the service in the network, the determined resource using the low-level configuration data specific to the determined resource.

9. The device of claim 8 , wherein the high-level configuration data includes an intent specifying the network service and includes the resource selector criteria.

10. The device of claim 8 , wherein the one or more processors are configured to automatically determine, without manual intervention and based on application of the resource selector criteria to the state data, the resource from the plurality of potential resources.

11. The device of claim 8 , wherein the one or more processors are further configured to:

obtain updated state data identifying an updated state of each of the plurality of potential resources;

determine, based on the updated state data and the resource selector criteria, whether the determined resource is to continue to support the service;

determine, responsive to determining that the determine resource is not to continue to support the service and based on the resource selector criteria and the updated state data, a replacement resource to support the service;

translate the high-level configuration data to low-level configuration data specific to the determined replacement resource; and

configure, when re-provisioning the service in the network, the determined replacement resource using the low-level configuration data specific to the determined replacement resource.

12. The device of claim 8 ,

wherein the state data identifies one or more resource metrics that are defined using an extensible set of commands, and a corresponding one or more weights,

wherein the resource metrics identify an operational state of a corresponding resource of the plurality of potential resources, and

wherein the one or more processors are configured to:

apply the one or more weights to the corresponding one of the resource metrics to obtain one or more corresponding resource loads; and

determine, based on application of the resources selector criteria to the resource loads, the resource to support the service from the plurality of potential resources.

13. The device of claim 8 , wherein the one or more processors are further configured to determining load characteristics for each of the plurality of potential resources,

wherein the one or more processors are configured to determine, based on the load characteristics and application of the resource selector criteria to the state data, the resource to support the service from the plurality of potential resources.

14. The device of claim 8 , further comprising maintaining a commit log data structure by which to identify that the resource of the plurality of potential resources has been allocated to support the service.

15. The device of claim 14 ,

wherein the commit log data structure indicates that the plurality of potential resources are available for allocation in support of the service, and

wherein determining the resource comprises determining, based on the the commit log data and application of the resource selector criteria to the state data, the resource to support the service from the plurality of potential resources.

16. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a management device to:

obtain a policy that includes high-level configuration data defining a service to be deployed within a network, the high-level configuration data including resource selector criteria that identifies one or more criteria for selecting a resource to support the service from a plurality of potential resources and defines, using an extensible set of commands, the resource selector criteria, wherein the management device is configured to manage the plurality of potential resources;

determine, based on application of the resource selector criteria to the state data, the resource to support the service from the plurality of potential resources;

translate the high-level configuration data to low-level configuration data specific to the determined resource; and

configure, when provisioning the service in the network, the determined resource using the low-level configuration data specific to the determined resource.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2018
From: A, CHANDRASEKHAR; ANBUROSE, NIRMAL
To: JUNIPER NETWORKS, INC.
Reel/Frame 046818/0262 →
Continuity (1)
Related Publication 20200084120A1 · Mar 12, 2020
Cited By (2)
US 12,231,290 US 12,314,398