Most of you will be hearing the abbreviations ‘GNMI’ and ‘gRPC’ for the first time. So, what exactly are GNMI and gRPC? Let’s break down the words and make sense of them one by one.
Well, the “I” in GNMI stands for INTERFACE. Let’s delve deeper here.
So, What are the words you most commonly hear in the tech world associated with the word interface? User Interface is one, right? API (Application Programming Interface) would be another one. What are all these? Let’s see their definitions:
Notice the common word here. Yes !!
The key idea is “INTERACT.”
An interface can be a tool or rule for interacting with something.
So, an Interface could be anything: a tool, a bunch of rules or a set of protocols we use to interact with something.
Well, What are we interacting with then? This perfectly leads to our next set of letters, which has the answer to the above question.
It’s self-explanatory. Still, let’s set a definition for them, too.
Network Management is carried out on Network Devices, namely a router, a switch, a firewall, and anything that has a function in a computer network.
Well, have you performed network management? Yes, If you have ever changed a wifi password! You changed a parameter inside a Wi-Fi router( a network device). That’s network management right there!
Checking if your connection is up also qualifies for network management Since you are reading the status of a state parameter in the router.
So, to sum up, Network Management would be to “Set” a certain parameter according to your liking or to “Get” the status or value of a certain parameter at a particular instant inside a Network Device you possess.
Okay, so far, we have understood that we possess an Interface to interact with Network Devices and manipulate or retrieve their states.
But wait a minute. Shouldn’t we need a set of rules to define how the interface should interact with the network device? Well, that takes us to the last letter remaining in our abbreviation.
Here, we are going to bunch up the last 3 letters together: RPC.
So, what’s RPC? To explain, let’s imagine something common that happens in our homes.
In a nutshell, both RPC and gRPC are ways of instructing remote devices to perform actions. gPRC is an improved version, and the “G” in gRPC can have different meanings depending on the version or context.
This is the final definition that we have reached. GNMI is Network Management of Network Devices (Could be Remote, too) using an Interface that is created using the gRPC Protocol.
In the next section, we will formulate an answer to the above question and discuss GNMI’s relevance.
Yes, SNMP has been around since the 1990s for network management. And since it has been around for too long, it is widely supported across network devices and monitoring platforms.
Let’s take a brief look into SNMP (Simple Network Management Protocol) and find out the main difference it has with GNMI.
The system architecture consists of a central manager (NMS – Network Management System) that communicates with agents installed on network devices.
It allows us to manage configurations of network devices and also monitor them. The “monitoring” part is the most explicit difference between SNMP and GNMI.
We at ThinkPalm had developed Avishkar for a client, a network device management framework using SNMP. Avishkar is an intuitive solution designed for managing network-switching equipment
Well, SNMP uses a “Pull Model” for network monitoring. This means the management system has to create and send requests to each network device every few minutes. And each time a request arrives from a management tool, the network device has to:
These create significant overhead. What’s the alternative then?
What’s the alternative then? “Streaming Telemetry” Let’s take a look into the concept. Streaming Telemetry uses a “Push Model”.
It sends network device operational data to the management system. All it needs is a single request specifying the data to be streamed, unlike SNMP, which requires multiple requests for the same purpose.
Take a look at the following illustration to form a better understanding.
Well, there are 4 modes for GNMI implementation.
Remember the RPCs ( Remote Procedure Calls ) we discussed in PART I. We have 1 RPC for each mode in a network device. They are:
The Push Model Subscribe RPC is the alternative in GNMI for the Pull Model in SNMP. And this is the difference in the monitoring implementation of the two protocols.
Moreover, GNMI uses Model-Driven Streaming Telemetry. This means a predefined model of network parameters is usually generated in ‘YANG’ (a data model language).
For instance, the following is a Standard YANG Model for the Interface parameters developed by OpenConfig.
Using GNMI Subscribe RPC, we only have to subscribe to a parameter, and we will receive a continuous stream of that particular parameter value to the management tool or external collector device.
To demonstrate an example, the following video snippet shows an implementation ThinkPalm created to serve and stream to a GNMI Client the Interface Data.
Now, this continues further. The Applications are endless. One of them is explained below.
The following is a video snippet from ThinkPalm’s implementation of GNMI outputting its streaming data to the Grafana Visualization tool through the Prometheus monitoring tool.
The above illustration shows a Grafana dashboard displaying BGP (Border Gateway Protocol) statistics of a network device in real time.
Let’s Recap what we have learned once more. GRPC Network Management Interface (NMI) Is an interface for network management systems (NMS) to interact with network devices. It provides a mechanism to get, set, and delete the configuration of network devices and, most importantly, to view operational data in real time. All these use standardised YANG-modeled data.
With ThinkPalm’s GNMI solution, you can effortlessly stream data from any network device to popular monitoring tools like Prometheus. Once in Prometheus, visualize your data using Grafana or explore additional features and resources available on ThinkPalm’s Wireless Testing Services page.
Furthermore, if you’re using other protocols like SNMP, Netconf, or Restconf, we can seamlessly integrate GNMI into your network, providing a comprehensive view of all your devices.