IP Library › Granted Patent US 10,917,284
Granted Patent B2
US 10,917,284 · App. 15/162,244 · Granted Feb 9, 2021

Method and system for using an OpenConfig architecture on network elements

Inventors: Benoit Sigoure (San Francisco, CA); Andrew Fort (San Francisco, CA)
Assignee: Arista Networks, Inc.
H04L41/0226H04L41/08H04L67/2823H04L41/0853
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,917,284
App. No.
15/162,244
Granted
Feb 9, 2021
Kind
B2
Abstract

In general, embodiments of the invention relate to a method for managing network element state information (NESI). The method includes receiving, from a target entity, a state information request, storing a preferred transport protocol (PTP), obtaining a preferred serialization encoding (PSE), determining, in response to the state information request, that a program specific representation (PSR) on a network element is populated with the NESI, serializing the PSR using the PSE, and transmitting a serialized PSR, to the target entity, using the stored PTP.

Claims (66)

1. A method for managing a network element comprising:

receiving, from a target entity, a state information request for network element state information (NEST);

obtaining, in response to the state information request, a program specific representation (PSR) populated with the NESI obtained from an internal data model on the network element;

serializing the PSR using a preferred serialization encoding (PSE); and

transmitting a serialized PSR, to the target entity, using a preferred transport protocol (PTP);

receiving, from the target entity, a state change for the network element;

based on the state change:

updating the PSR to obtain an updated PSR, wherein the updated PSR comprises the state change; and

updating an internal data model using the updated PSR, comprising:

determining a plurality of data mappings between the updated PSR and the internal data model;

implementing a data mapping pipeline based on the plurality of determined data mappings; and

processing the updated PSR using the data mapping pipeline to store the state change in the internal data model,

wherein, after the state change is stored, the network element performs a process using at least a portion of the updated internal data model.

2. The method of claim 1 , wherein at least one of the plurality of data mappings comprises a function that maps an address and value in the updated PSR to at least one address and at least one value in the internal data model.

3. The method of claim 1 , wherein the data mapping pipeline is a unidirectional conveyance of data between the updated PSR and the internal data model, and comprises a generator, at least one pipe function, and a sink.

4. The method of claim 3 , wherein the at least one pipe function is one selected from a group consisting of a data type conversion function and a data address translation function.

5. The method of claim 1 , wherein the internal data model is a vendor-proprietary state configuration data model associated with the network element.

6. The method of claim 1 , wherein the target entity is one selected from a group consisting of a 3 rd party device and a virtual machine executing on the 3 rd party device.

7. The method of claim 1 , further comprising:

receiving a request from the target entity to obtain information about at least a portion of the NESI when the NESI changes on the network element; and

after receiving the request and in response to determining a change in the at least the portion of the NESI, providing the at least a portion of the NESI to the target entity.

8. The method of claim 1 , wherein the PTP is one selected from a group of transport protocols consisting of HTTP, HTTPS, HTTP2, SPDY, QUIC, gRPC, Thrift Mux, RESTCONF, NETCONF, SOAP, and XMPP.

9. The method of claim 1 , wherein the PSE is one selected from a group consisting of JSON, XML, ASN.1, Protocol Buffer, Thrift, BSON, BDSN, YAML, “gob” from the Go programming language, and Cap′n Proto.

10. The method of claim 1 , wherein the PSR comprises at least one data structure for storing the NESI.

11. The method of claim 1 , wherein the NESI comprises of a plurality of records corresponding to a plurality of variables specified in the network element.

12. The method claim 11 , wherein each of the plurality of records comprises a group of information consisting of at least a name, a current value, and a timestamp associated with each of the plurality of variables specified in the network element.

13. The method of claim 1 , further comprising:

receiving an external data model (EDM) by the network element;

generating a second PSR based on the EDM;

mapping at least a portion of internal data model on the network element to the second PSR to generate a second mapping; and

servicing at least one request for the NESI using the second mapping and the second PSR.

14. The method of claim 1 , further comprising:

in response to the state information request, determining that the program specific representation (PSR) is not populated with the NESI; and

based on the determination, populating the PSR with the NESI obtained from the internal data model.

15. A network element, comprising:

an internal data model

a data plane comprising a plurality of ports;

a control plane comprising an OpenConfig agent configured to:

receive, from a target entity, a state information request for network element state information (NESI);

obtain, in response to the state information request, a program specific representation (PSR) populated with the NESI obtained from the internal data model;

serialize the PSR using a preferred serialization encoding (PSE); and

transmit a serialized PSR, to the target entity, using a preferred transport protocol (PTP);

receive, from the target entity, a state change for the network element;

based on the state change:

update the PSR to obtain an updated PSR, wherein the updated PSR comprises the state change; and

update the internal data model on the network element using the updated PSR, comprising:

determining a plurality of data mappings between the updated PSR and the internal data model;

implementing a data mapping pipeline based on the plurality of determined data mappings; and

process the updated PSR using the data mapping pipeline to store the state change in the internal data model,

wherein, after the state change is stored, the network element performs a process using at least a portion of the updated internal data model.

16. The network element of claim 15 , wherein the NESI comprises data stored in a system state database (SSD) in the control plane and data plane information from the data plane.

17. The network element of claim 15 , wherein the PSE is one selected from a group consisting of JSON, XML, ASN.1, Protocol Buffer, Thrift, BSON, BDSN, YAML, “gob” from the Go programming language, and Cap′ n Proto.

18. The network element of claim 15 , wherein the PTP is one selected from a group consisting of HTTP, HTTPS, HTTP2, SPDY, QUIC, gRPC, Thrift Mux, RESTCONF, NETCONF, SOAP, and XMPP.

19. A non-transitory computer readable medium comprising computer readable program code, which when executed by a processor on a network element enables the processor to:

receive, from a target entity, a state information request for network element state information (NESI);

obtain, in response to the state information request, a program specific representation (PSR) populated with the NESI obtained an internal data model on the network element;

serialize the PSR using a preferred serialization encoding (PSE); and

transmit a serialized PSR, to the target entity, using a preferred transport protocol (PTP);

receive, from the target entity, a state change for the network element;

based on the state change:

update the PSR to obtain an updated PSR, wherein the updated PSR comprises the state change; and

update the internal data model on the network element using the updated PSR, comprising:

determining a plurality of data mappings between the updated PSR and the internal data model;

implementing a data mapping pipeline based on the plurality of determined data mappings; and

process the updated PSR using the data mapping pipeline to store the state change in the internal data model,

wherein, after the state change is stored, the network element performs a process using at least a portion of the updated internal data model.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2019
From: FORT, ANDREW
To: ARISTA NETWORKS, INC.
Reel/Frame 048310/0459 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2017
From: SIGOURE, BENOIT
To: ARISTA NETWORKS, INC.
Reel/Frame 042617/0839 →
Continuity (1)
Related Publication 20170339002A1 · Nov 23, 2017