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.
Lastly, the ‘G’ in GNMI stands for gRPC (Google Remote Procedure Call). Let’s simplify it:
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.
Imagine a lazy sunday afternoon. You’re cozily lounging on your favorite sofa, far from the kitchen.
Let’s put this into tech terms:
RPC (Remote Procedure Call) is like asking for tea from another room—a way to request a remote action, just like you did with your mother.
gRPC, an advanced version of RPC, was created by Google to make these remote requests more efficient. The “G” doesn’t always stand for Google; it can mean different things in different versions.
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 our final definition: GNMI represents the network management of network devices, including remote ones, utilizing an interface created using the gRPC protocol
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.
In this example, we are streaming the “in-octets” parameter shown under the “counters” container in the yang model illustrated above.
Now, this continues further. The Applications are endless. One of them is explained below.
We can output these network statistics to monitoring and interactive data visualisation applications such as Prometheus and Grafana.
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.
These implementations were made possible by the streaming telemetry feature of GNMI.
Let’s finish this part by comparing other network management protocols and see how they compare to GNMI.
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 standardized YANG-modeled data.
If you’re part of a network operations team, having real-time data at your fingertips is crucial for improving network visibility and performance.
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.
These dynamic dashboards will not only support your day-to-day tasks but also enhance network automation and strategic planning.
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.