IP Library Granted Patent US 10,374,886
Granted Patent B1
US 10,374,886 · App. 15/396,262 · Granted Aug 6, 2019

Processing multiple parallel high level configuration changes for managed network devices

Inventors: Chandrasekhar A (Bangalore, IN); Nirmal Anburose (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L41/082H04L41/12H04L41/20
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 10,374,886
App. No.
15/396,262
Granted
Aug 6, 2019
Kind
B1
Abstract

In one example, a network management system (NMS) device manages a plurality of network devices. The NMS device includes a processor configured to determine a first set of differences between an existing high-level configuration for the plurality of network devices and a first received high-level configuration for the plurality of network devices, determine a second set of differences between the existing high-level configuration and a second received high-level configuration, wherein the second received high-level configuration is received separately from the first received high-level configuration, translate the first set of differences to a first low-level configuration modification, translate the second set of differences to a second low-level configuration modification, merge the first low-level configuration modification and the second low-level configuration modification, and apply the merged low-level configuration modification to low-level configuration of the plurality of network devices.

Claims (122)

1. A method performed by a network management system (NMS) device that manages a plurality of network devices, the method comprising:

determining a first set of differences between an existing high-level configuration for the plurality of network devices and a first received high-level configuration for the plurality of network devices;

determining a second set of differences between the existing high-level configuration for the plurality of network devices and a second received high-level configuration for the plurality of network devices, wherein the second received high-level configuration is received separately from the first received high-level configuration;

translating the first set of differences to a first low-level configuration modification for the plurality of network devices;

translating the second set of differences to a second low-level configuration modification for the plurality of network devices;

merging the first low-level configuration modification and the second low-level configuration modification to produce a merged low-level configuration modification; and

applying the merged low-level configuration modification to low-level configuration of the plurality of network devices.

2. The method of claim 1 , wherein the first low-level configuration modification represents a first modification to a node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to the node of the low-level configuration information for the plurality of network devices.

3. The method of claim 2 , wherein when the first modification comprises adding the node and the second modification comprises updating a value for the node, merging comprises producing the merged low-level configuration modification to add the node such that the node has the value from the second modification.

4. The method of claim 2 , wherein when the first modification comprises adding the node and the second modification comprises deleting the node, merging comprises producing the merged low-level configuration modification to omit addition of the node.

5. The method of claim 2 , wherein when the first modification comprises updating an element of the node to a first value and the second modification comprises updating the element of the node to a second value, merging comprises producing the merged low-level configuration to update the element of the node to the second value.

6. The method of claim 2 , wherein when the first modification comprises updating an element of the node and the second modification comprises deleting the node, merging comprises producing the merged low-level configuration to delete the node.

7. The method of claim 1 , wherein the first low-level configuration modification represents a first modification to a parent node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to a child node of the parent node of the low-level configuration information for the plurality of network devices.

8. The method of claim 1 , wherein the first low-level configuration modification represents a first modification to a child node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to a parent node of the child node of the low-level configuration information for the plurality of network devices.

9. The method of claim 1 , wherein applying the merged low-level configuration modification comprises, for each of the plurality of network devices:

locking the network device;

applying the merged low-level configuration modification to the network device; and

immediately after applying the merged low-level configuration modification to the network device, unlocking the network device.

10. The method of claim 9 , further comprising preventing locking of one or more network devices of the plurality of network devices while applying the merged low-level configuration modification to a different network device of the plurality of network devices.

11. The method of claim 9 , wherein locking the network device comprises locking the network device without locking the other network devices of the plurality of network devices.

12. The method of claim 1 , further comprising performing concurrent service transactions without locking the network devices.

13. The method of claim 1 , wherein applying the merged low-level configuration modification comprises:

after applying the merged low-level configuration modification to the low-level configuration of a current network device of the plurality of network devices, determining whether the application of the merged low-level configuration modification was successful;

when application of the merged low-level configuration modification to the current network device was successful, applying the merged low-level configuration modification to the low-level configuration of a second network device of the plurality of network devices;

when application of the merged low-level configuration modification to the current network device was not successful, performing a roll-back of the low-level modification of previously modified network devices of the plurality of network devices.

14. The method of claim 13 , wherein performing the roll-back comprises:

determining a set of negative differences between the second received high-level configuration and the existing high-level configuration;

translating the set of negative differences to a negative low-level configuration modification; and

applying the negative low-level configuration modification to each of the plurality of network devices to which the merged low-level configuration modification has been applied.

15. The method of claim 1 ,

further comprising:

storing the first received high-level configuration in a first private data store; and

storing the second received high-level configuration in a second, different private data store,

wherein translating the first set of differences comprises generating first dependency information and storing the first dependency information in the first private data store;

wherein translating the first set of differences comprises generating second dependency information and storing the second dependency information in the second private data store; and

wherein merging comprises merging based on the first dependency information from the first private data store and the second dependency information from the second private data store.

16. The method of claim 1 ,

wherein translating the first set of differences further comprises forming a first snapshot representing current values for elements changed by the first low-level configuration modification; and

wherein translating the second set of differences further comprises forming a second snapshot representing current values for elements changed by the second low-level configuration modification.

17. The method of claim 1 , wherein applying the merged low-level configuration modification comprises maintaining a transaction during a commit of a private data store irrespective of whether the network devices support transactions.

18. A network management system (NMS) device that manages a plurality of network devices, the NMS device comprising:

a first interface configured to receive high-level configuration for the plurality of network devices;

a second interface configured to communicate low-level configuration to the plurality of network devices; and

one or more processing units, implemented using digital logic circuitry, configured to:

determine a first set of differences between an existing high-level configuration for the plurality of network devices and a first received high-level configuration, received via the first interface, for the plurality of network devices;

determine a second set of differences between the existing high-level configuration for the plurality of network devices and a second received high-level configuration, received via the first interface, for the plurality of network devices, wherein the second received high-level configuration is received separately from the first received high-level configuration;

translate the first set of differences to a first low-level configuration modification for the plurality of network devices;

translate the second set of differences to a second low-level configuration modification for the plurality of network devices;

merge the first low-level configuration modification and the second low-level configuration modification to produce a merged low-level configuration modification; and

apply, via the second interface, the merged low-level configuration modification to low-level configuration of the plurality of network devices.

19. The NMS device of claim 18 , wherein the first low-level configuration modification represents a first modification to a node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to the node of the low-level configuration information for the plurality of network devices.

20. The NMS device of claim 18 , wherein the first low-level configuration modification represents a first modification to a parent node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to a child node of the parent node of the low-level configuration information for the plurality of network devices.

21. The NMS device of claim 18 , wherein the first low-level configuration modification represents a first modification to a child node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to a parent node of the child node of the low-level configuration information for the plurality of network devices.

22. The NMS device of claim 18 , wherein to apply the merged low-level configuration modification, the one or more processing units are configured to, for each of the plurality of network devices:

lock the network device;

apply the merged low-level configuration modification to the network device; and

immediately after applying the merged low-level configuration modification to the network device, unlock the network device.

23. The NMS device of claim 18 , wherein the one or more processing units are configured to perform concurrent service transactions without locking the network devices.

24. The NMS device of claim 18 , wherein to apply the merged low-level configuration modification, the one or more processing units are configured to:

after applying the merged low-level configuration modification to the low-level configuration of a current network device of the plurality of network devices, determine whether the application of the merged low-level configuration modification was successful;

when application of the merged low-level configuration modification to the current network device was successful, apply the merged low-level configuration modification to the low-level configuration of a second network device of the plurality of network devices; and

when application of the merged low-level configuration modification to the current network device was not successful, perform a roll-back of the low-level modification of previously modified network devices of the plurality of network devices.

25. The NMS device of claim 24 , wherein to perform the roll-back, the one or more processing units are configured to:

determine a set of negative differences between the second received high-level configuration and the existing high-level configuration;

translate the set of negative differences to a negative low-level configuration modification; and

apply the negative low-level configuration modification to each of the plurality of network devices to which the merged low-level configuration modification has been applied.

26. The NMS device of claim 18 ,

further comprising one or more computer-readable storage media having stored thereon a plurality of private data stores;

wherein the one or more processing units are further configured to:

store the first received high-level configuration in a first private data store of the plurality of private data stores; and

store the second received high-level configuration in a second, different private data store of the plurality of private data stores,

generate first dependency information and store the first dependency information in the first private data store;

generate second dependency information and store the second dependency information in the second private data store; and

merge the first low-level configuration modification and the second low-level configuration modification based on the first dependency information from the first private data store and the second dependency information from the second private data store.

27. The NMS device of claim 18 , wherein the one or more processing units are further configured to:

form a first snapshot representing current values for elements changed by the first low-level configuration modification; and

form a second snapshot representing current values for elements changed by the second low-level configuration modification.

28. A network management system comprising:

a plurality of network devices;

a network management system (NMS) device configured to manage the plurality of network devices, the NMS device comprising:

a first interface configured to receive high-level configuration for the plurality of network devices;

a second interface configured to communicate low-level configuration to the plurality of network devices; and

one or more processing units, implemented using digital logic circuitry, configured to:

determine a first set of differences between an existing high-level configuration for the plurality of network devices and a first received high-level configuration, received via the first interface, for the plurality of network devices;

determine a second set of differences between the existing high-level configuration for the plurality of network devices and a second received high-level configuration, received via the first interface, for the plurality of network devices, wherein the second received high-level configuration is received separately from the first received high-level configuration;

translate the first set of differences to a first low-level configuration modification for the plurality of network devices;

translate the second set of differences to a second low-level configuration modification for the plurality of network devices;

merge the first low-level configuration modification and the second low-level configuration modification to produce a merged low-level configuration modification; and

apply, via the second interface, the merged low-level configuration modification to low-level configuration of the plurality of network devices.

29. The computer-readable storage medium 28 , further comprising instructions that cause the processor to:

form a first snapshot representing current values for elements changed by the first low-level configuration modification; and

form a second snapshot representing current values for elements changed by the second low-level configuration modification.

30. A computer-readable storage medium comprising instructions that, when executed, cause a processor of a network management system (NMS) device that manages a plurality of network devices to:

determine a first set of differences between an existing high-level configuration for the plurality of network devices and a first received high-level configuration for the plurality of network devices;

determine a second set of differences between the existing high-level configuration for the plurality of network devices and a second received high-level configuration for the plurality of network devices, wherein the second received high-level configuration is received separately from the first received high-level configuration;

translate the first set of differences to a first low-level configuration modification for the plurality of network devices;

translate the second set of differences to a second low-level configuration modification for the plurality of network devices;

merge the first low-level configuration modification and the second low-level configuration modification to produce a merged low-level configuration modification; and

apply the merged low-level configuration modification to low-level configuration of the plurality of network devices.

31. The computer-readable storage medium of claim 30 , wherein the first low-level configuration modification represents a first modification to a node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to the node of the low-level configuration information for the plurality of network devices.

32. The computer-readable storage medium of claim 30 , wherein the first low-level configuration modification represents a first modification to a parent node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to a child node of the parent node of the low-level configuration information for the plurality of network devices.

33. The computer-readable storage medium of claim 30 , wherein the first low-level configuration modification represents a first modification to a child node of low-level configuration information for the plurality of network devices, and wherein the second low-level configuration modification represents a second modification to a parent node of the child node of the low-level configuration information for the plurality of network devices.

34. The computer-readable storage medium of claim 30 , wherein the instructions that cause the processor to apply the merged low-level configuration modification comprise instructions that cause the processor to, for each of the plurality of network devices:

lock the network device;

apply the merged low-level configuration modification to the network device; and

immediately after applying the merged low-level configuration modification to the network device, unlock the network device.

35. The computer-readable storage medium of claim 30 , further comprising instructions that cause the processor to perform concurrent service transactions without locking the network devices.

36. The computer-readable storage medium of claim 30 , wherein the instructions that cause the processor to apply the merged low-level configuration modification comprise instructions that cause the processor to:

after applying the merged low-level configuration modification to the low-level configuration of a current network device of the plurality of network devices, determine whether the application of the merged low-level configuration modification was successful;

when application of the merged low-level configuration modification to the current network device was successful, apply the merged low-level configuration modification to the low-level configuration of a second network device of the plurality of network devices;

when application of the merged low-level configuration modification to the current network device was not successful, perform a roll-back of the low-level modification of previously modified network devices of the plurality of network devices.

37. The computer-readable storage medium of claim 36 , wherein the instructions that cause the processor to perform the roll-back comprise instructions that cause the processor to:

determine a set of negative differences between the second received high-level configuration and the existing high-level configuration;

translate the set of negative differences to a negative low-level configuration modification; and

apply the negative low-level configuration modification to each of the plurality of network devices to which the merged low-level configuration modification has been applied.

38. The computer-readable storage medium of claim 30 ,

further comprising instructions that cause the processor to:

store the first received high-level configuration in a first private data store; and

store the second received high-level configuration in a second, different private data store,

wherein the instructions that cause the processor to translate the first set of differences comprise instructions that cause the processor to generate first dependency information and store the first dependency information in the first private data store;

wherein the instructions that cause the processor to translate the first set of differences comprise instructions that cause the processor to generate second dependency information and store the second dependency information in the second private data store; and

wherein the instructions that cause the processor to merge comprise instructions that cause the processor to merge based on the first dependency information from the first private data store and the second dependency information from the second private data store.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2016
From: A, CHANDRASEKHAR; ANBUROSE, NIRMAL
To: JUNIPER NETWORKS, INC.
Reel/Frame 040812/0488 →
Cited By (2)
US 12,562,962 US 12,659,765