This section describes the gNMI (gRPC Network Management Interface) integration within the netconfd-pro server and ypgnmi-app application. The model-driven configuration and retrieval of operational data using the gNMI CAPABILITIES, GET and SET gRPCs. gNMI version 0.4.0 is supported.
Throughout this specification the following terminology is used:
Telemetry - refers to streaming data relating to underlying characteristics of the device - either operational state or configuration
Configuration - elements within the data schema which are read/write and can be manipulated by the client
Target - the device within the protocol which acts as the owner of the data that is being manipulated or reported on. Typically this will be a netconfd-pro server that communicate with the client with help of ypgnmi-app application
Client - the device or system using the protocol and the service described in this document to query/modify data on the target, or act as a collector for streamed data. Typically this will be a network management system. The client will contact the ypgnmi-app application to query/modify data on the target
The main gNMI service functionality contains the following requests (gRPC):
Capabilities - used by the client and target as an initial handshake to exchange capability information
Get - used to retrieve snapshots of the data on the target by the client
Set - used by the client to modify the state of the target
Subscribe - used to control subscriptions to data on the target by the client
Future revisions of the gNMI specification MAY result in additional services being introduced, and hence an implementation MUST NOT make assumptions that limit to a single service definition.
The ypgnmi-app application is capable of handling these requests and transferring them to the netconfd-pro server for further processing as well as handle replies from the netconfd-pro server and transmit them back to the gNMI clients. The following sections will describe in more details how these requests are handled internally in the netconfd-pro and how ypgnmi-app application transform original gNMI requests and how they are transmitted to and from the netconfd-pro.
Restrictions for gNMI Protocol
The YumaPro gNMI protocol has the following restrictions:
Only JSON encoding options
In a SetRequest, wildcards and all keys are not supported. Only fully-specified paths are supported
In Subscribe, only supported mode is ONCE
Using the gNMI Server
Refer to the Running ypgnmi-app section for details on starting the ypgnmi-app program.
Refer to the Running gNMI Client Applications section for details on running the ypgnmi-app program.
Refer to the Closing ypgnmi-app section for details on closing the ypgnmi-app program.
Refer to the gNMI GetRequest section for details on using the gNMI GET RPC.
Refer to the gNMI SetRequest section for details on using the gNMI Set RPC.
Refer to the gNMI JSON_ietf_val section for details on using JSON with gNMI.
Refer to the gNMI Error Messages section for details on gNMI Error Messages