# US 11,451,440 B1 · Sharing configuration resources for network devices among applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,451,440 B1
- Document ID: US11451440B1
- Status: Granted
- Kind: B1
- Application number: 17/448,339
- Filed: 2021-09-21
- Granted: 2022-09-20
- Earliest claimed: 2021-09-21
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Raviraj Satish Deshmukh; Pradeep H. Krishnamurthy; Varun S K
- Web page: https://patentgrep.com/patent/US11451440B1

## CPC

- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/0226: Mapping or translating multiple network management protocols
- H04L 41/0843: {based on generic templates}
- H04L 41/0859: by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L 41/0869: Validating the configuration within one network element
- H04L 41/0873: Checking configuration conflicts between network elements
- H04L 41/0883: {Semiautomatic configuration, e.g. proposals from system}
- H04L 45/02: Topology update or discovery
- H04L 45/24: Multipath
- H04L 41/0233: Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
- H04L 41/0246: Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L 41/0856: {by backing up or archiving configuration information}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In an example, a method includes receiving, by a network management system (NMS), a configuration request comprising first configuration data for a network device, the first configuration data defining a data structure comprising a first property/value pair; generating, by the NMS from the first configuration data, a corresponding first path/value pair for the first property/value pair, wherein a path of the first path/value pair uniquely identifies the first path/value pair in an associative data structure; modifying, by the NMS, the associative data structure based on the first path/value pair; generating, by the NMS, from the associative data structure, a configuration resource comprising second configuration data for the network device, the second configuration data comprising a second property/value pair that corresponds to the first path/value pair; and sending, by the NMS, the second configuration data to the network device to modify a configuration of the network device.

## Claims

### Claim 1

A network management system comprising:
a control unit comprising processing circuitry coupled to a memory, wherein the control unit is configured to:
receive a configuration request comprising first configuration data for a network device, the first configuration data defining a data structure comprising a first property/value pair;
generate, from the first configuration data, a corresponding first path/value pair for the first property/value pair, wherein a path of the first path/value pair uniquely identifies the first path/value pair in an associative data structure;
modify the associative data structure based on the first path/value pair;
generate, from the associative data structure, a configuration resource comprising second configuration data for the network device, the second configuration data comprising a second property/value pair that corresponds to the first path/value pair; and
send the second configuration data to the network device to modify a configuration of the network device.

### Claim 2 (depends on 1)

The network management system of claim 1,
wherein the configuration request comprises an application identifier for an application that issued the configuration request, and
wherein to modify the associative data structure to include the first path/value pair, the control unit is configured to:
modify the associative data structure to associate the first path/value pair with the application identifier.

### Claim 3 (depends on 2)

The network management system of claim 2,
wherein the configuration request comprises a first configuration request, and
wherein the control unit is configured to:
receive a second configuration request to delete configuration data, the second configuration request comprising the application identifier for the application;
obtain, from the associative data structure based on the application identifier, an obtained path/value pair that is associated with the application identifier; and
in response to determining the obtained path/value pair is also associated with an application identifier for a different application, deleting the association of the application identifier with the obtained path/value pair.

### Claim 4 (depends on 2)

The network management system of claim 2,
wherein the configuration request comprises a first configuration request, and
wherein the control unit is configured to:
receive a second configuration request to delete configuration data, the second configuration request comprising the application identifier for the application;
obtain, from the associative data structure based on the application identifier, an obtained path/value pair that is associated with the application identifier;
in response to determining the obtained path/value pair is not associated with an application identifier for any other application, deleting the obtained path/value pair from the associative data structure;
generate, from the associative data structure with the obtained path/value pair deleted, an updated configuration resource comprising third configuration data for the network device; and
send the third configuration data to the network device to modify the configuration of the network device.

### Claim 5 (depends on 2)

The network management system of claim 2,
wherein the application comprises a first application,
wherein the configuration request comprises a first configuration request, and
wherein the control unit is configured to:
receive a second configuration request to comprising third configuration data for the network device and an application identifier for a different, second application that issued the second configuration request, the third configuration data defining a data structure comprising a second property/value pair;
generate, from the third configuration data, a corresponding second path/value pair for the second property/value pair, wherein a path of the second path/value pair uniquely identifies the second path/value pair in the associative data structure; and
in response to determining, by querying the associative data structure, that the first path/value pair included in the associative data structure has a same path and a same value as the second path/value pair, modify the associative data structure to associate the first path/value pair with the application identifier for the second application.

### Claim 6 (depends on 2)

The network management system of claim 2,
wherein the application comprises a first application,
wherein the configuration request comprises a first configuration request, and
wherein the control unit is configured to:
receive a second configuration request to comprising third configuration data for the network device and an application identifier for a different, second application that issued the second configuration request, the third configuration data defining a data structure comprising a second property/value pair;
generate, from the third configuration data, a corresponding second path/value pair for the second property/value pair, wherein a path of the second path/value pair uniquely identifies the second path/value pair in the associative data structure; and
in response to determining, by querying the associative data structure, that the first path/value pair included in the associative data structure has a same path and a different value as the second path/value pair, output an indication of an error.

### Claim 7 (depends on 1)

The network management system of claim 1, wherein to modify the associative data structure to include the first path/value pair, the control unit is configured to:
modify, in response to determining the associative data structure does not store the first path/value pair, the associative data structure to include the first path/value pair.

### Claim 8 (depends on 1)

The network management system of claim 1, wherein to generate the corresponding first path/value pair for the first property/value pair the control unit is configured to:
process the data structure to obtain a prefix string for the first property/value pair;
form the path of the first path/value pair from the prefix string and a property of the first property/value pair; and
form the value of the first path/value pair from the value of the first property/value pair.

### Claim 9 (depends on 1)

The network management system of claim 1, wherein to generate the corresponding first path/value pair for the first property/value pair the control unit is configured to:
process the data structure to use a schema for generic remote procedure call network management interface (gNMI) paths to form the path of the first path/value pair; and
form the value of the first path/value pair from the value of the first property/value pair.

### Claim 10 (depends on 1)

The network management system of claim 1, wherein to generate the configuration resource comprising second configuration data for the network device, the control unit is configured to:
obtain the first path/value pair from the associative data structure;
generate, from the first path/value pair, the second property/value pair; and
generate the second configuration data of the configuration resource to include the second property/value pair.

### Claim 11 (depends on 1)

The network management system of claim 1,
wherein the configuration request comprises an application identifier for an application that issued the configuration request, and
wherein the control unit is configured to:
embed, in the second configuration data, a representation of the first path/value pair and the application identifier;
obtain, from the network device, after sending the second configuration data to the network device, the second configuration data; and
generate the associative data structure to include an association of the first path/value pair and the application identifier.

### Claim 12 (depends on 1)

The network management system of claim 1, wherein the second configuration data of the configuration resource is formatted according to one of Javascript Object Notation or eXtensible Markup Language.

### Claim 13 (depends on 1)

The network management system of claim 1,
wherein the second configuration data configures, in the network device, a resource that corresponds to the configuration resource,
wherein a type of the resource comprises one of an interface, a routing instance, a network instance, or a protocol.

### Claim 14

A method comprising:
receiving, by a network management system, a configuration request comprising first configuration data for a network device, the first configuration data defining a data structure comprising a first property/value pair;
generating, by the network management system from the first configuration data, a corresponding first path/value pair for the first property/value pair, wherein a path of the first path/value pair uniquely identifies the first path/value pair in an associative data structure;
modifying, by the network management system, the associative data structure based on the first path/value pair;
generating, by the network management system, from the associative data structure, a configuration resource comprising second configuration data for the network device, the second configuration data comprising a second property/value pair that corresponds to the first path/value pair; and
sending, by the network management system, the second configuration data to the network device to modify a configuration of the network device.

### Claim 15 (depends on 14)

The method of claim 14,
wherein the configuration request comprises an application identifier for an application that issued the configuration request, and
wherein modifying the associative data structure to include the first path/value pair comprises modifying the associative data structure to associate the first path/value pair with the application identifier.

### Claim 16 (depends on 15)

The method of claim 15,
wherein the configuration request comprises a first configuration request, the method further comprising:
receiving, by the network management system, a second configuration request to delete configuration data, the second configuration request comprising the application identifier for the application;
obtaining, by the network management system, from the associative data structure based on the application identifier, an obtained path/value pair that is associated with the application identifier; and
in response to determining the obtained path/value pair is also associated with an application identifier for a different application, deleting the association of the application identifier with the obtained path/value pair.

### Claim 17 (depends on 14)

The method of claim 14, wherein modifying the associative data structure to include the first path/value pair comprises modifying, in response to determining the associative data structure does not store the first path/value pair, the associative data structure to include the first path/value pair.

### Claim 18 (depends on 14)

The method of claim 14, wherein generating the corresponding first path/value pair for the first property/value pair comprises:
processing the data structure to obtain a prefix string for the first property/value pair;
forming the path of the first path/value pair from the prefix string and a property of the first property/value pair; and
forming the value of the first path/value pair from the value of the first property/value pair.

### Claim 19 (depends on 14)

The method of claim 14,
wherein the second configuration data configures, in the network device, a resource that corresponds to the configuration resource,
wherein a type of the resource comprises one of an interface, a routing instance, a network instance, or a protocol.

### Claim 20

A non-transitory computer-readable medium comprising instructions for causing processing circuitry of a network management system to perform operations comprising:
receiving a configuration request comprising first configuration data for a network device, the first configuration data defining a data structure comprising a first property/value pair;
generating, from the first configuration data, a corresponding first path/value pair for the first property/value pair, wherein a path of the first path/value pair uniquely identifies the first path/value pair in an associative data structure;
modifying the associative data structure based on the first path/value pair;
generating, from the associative data structure, a configuration resource comprising second configuration data for the network device, the second configuration data comprising a second property/value pair that corresponds to the first path/value pair; and
sending the second configuration data to the network device to modify a configuration of the network device.
