Skip to Content

NETCONF vs GNMI

NETCONF vs GNMI

In the last article, NETCONF vs RESTCONF I have explained the difference between netconf and restconf and their use-cases. Netconf has very rich functionality, whereas restconf has matching functionality. Restconf has opened the door for the framework with REST-based system and infrastructure.

The gNMI (gRPC Network Management Interface) protocol comes from the openconfig consortium, a group of network operators led by Google, with the following mission - “OpenConfig is an informal working group of network operators sharing the goal of moving our networks toward a more dynamic, programmable infrastructure by adopting software-defined networking principles such as declarative configuration and model-driven management and operations”.

The initial focus for openconfig was to develop vendor-neutral yang models for operator needs. It started with Google’s requirements, later all the operators joined hands. Right now, this is the most active group to add new data models. The group also developed gNMI as a management protocol for configuration and streaming telemetry management. Note that gNMI is based on gRPC as a transport protocol. The gNMI supports more encoding, not just protobuf [more details below]. The protobuf is more compact on the wire, so performance-wise more advantageous. But, operationally it is more complex. Also the distribution of proto files is more challenging, especially upgrade scenarios. It adds more complexities.

GNMI Interface:

service gNMI {
 rpc Capabilities(CapabilityRequest) returns (CapabilityResponse);
 rpc Get(GetRequest) returns (GetResponse);
 rpc Set(SetRequest) returns (SetResponse);
 rpc Subscribe(stream SubscribeRequest) returns (stream SubscribeResponse);
}
gNMI NETCONF RESTCONF
Serialization Protobuf or JSON XML XML or JSON
Transport gRPC (HTTP/2.0) SSH HTTP/TLS/TCP/IP
Diff oriented Yes Returns only elements of the tree that have changed from last read No Always returns entire sub-tree snapshot No
streaming telemetry Yes NetConf notification No
Operation semantics gNMI specific. Single-target, single-shot, sequenced transactions. NETCONF specific; networkwide transactions. RESTCONF specific, based on HTTP verbs. Single-target, single-shot transactions.

LEAVE A REPLY