A Guide to GNMI & gRPC: How Are They Revolutionizing Network Management?
Networking
Ramees Najeeb September 8, 2023

PART I: What is GNMI & gRPC?!

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.

GNM’I’ – ‘I’ for INTERFACE:

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: 

  • UI – User Interface: In the context of “user interface,” the term “interface” refers to how a user interacts with a software application or system. 
  • API – Application Programming Interface: In the context of “Application Programming Interface,” the term “interface” refers to a set of rules, protocols, and tools that allow different software components to communicate and interact. 

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.

GNMI – ‘NM’ for NETWORK MANAGEMENT:

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.

The Missing ‘G’ – ‘G’ for gRPC:

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.

So, what's RPC? To explain, let’s imagine something common that happens in our homes.

RPC and gRPC in a Nutshell:

Imagine a lazy sunday afternoon. You’re cozily lounging on your favorite sofa, far from the kitchen.

  1. The Request: You playfully call out, “mama!” and cheekily ask for tea. She responds with a distant hum, agreeing to your request.
  1. The Process: Soon, the kettle whistles loudly, and cups clink delicately. Tea is being made—a process in motion.
  1. The Delivery: Moments later, your mother arrives with tea and cookies.

CUT!

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.

G (gRPC) NM (Network Management) I (Interface)

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.

PART II: What Makes GNMI Special?

In the next section, we will formulate an answer to the above question and discuss GNMI’s relevance.

Before there was GNMI, there was SNMP

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

So What’s The Difference?

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:

  • Parse the request from the management tool
  • Parse the MIB inside the device, which is lexicographically sorted, which is not ideal and then form a response for the request.

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.

SDN & NFV are transforming telecom by cutting hardware costs and making networks more agile!

Take a look at the following illustration to form a better understanding.

Streaming Telemetry

What’s Streaming Telemetry Got to Do with GNMI?

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:

  • CAPABILITIES RPC – For informing about the capabilities a network device supports 
  • GET RPC – For getting network parameters 
  • SET RPC – For setting network parameters 
  • SUBSCRIBE RPC – For Ssreaming operational data to external tools or devices.

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.

YANG tree

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.

Read Also: Leveraging Open Source YANG Based Network Configuration Management For Unix/Linux

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. 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. 

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.

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.

1. SNMP 

  • It uses MIB (Management Information Base) for data models. 
  • SNMP works primarily in pull mode. 
  • Push mode is also supported (SNMP Trap) but has some limitations.

2. NETCONF

  • It uses the YANG standard for data modelling and XML for data encoding.
  • NETCONF works based on the RPC (Remote Procedure Call)
  • In the context of telemetry, “Pull Mode” is supported.

3. RESTCONF 

  • It is similar to NETCONF but uses HTTP for transport.

4. GNMI

  • It uses the YANG standard for data modeling and ProtoBuf or JSON for data encoding. 
  • GNMI works based on the RPC (Remote Procedure Call)
  • In the context of telemetry, it natively supports a subscription-based telemetry model (Unidirectional or Bidirectional streaming). 

Avideo snippet from ThinkPalm’s implementation of GNMI outputting its streaming data to the Grafana Visualization tool through the Prometheus monitoring tool.

Conclusion

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. 

Why use ThinkPalm’s GNMI Solution? 

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.

Want to revolutionize your organization's network management with ThinkPalm's GNMI solution?

 


Author Bio

Ramees Najeeb is a networking and embedded software developer working at ThinkPalm Technologies,with a deep-rooted passion for space and communications technology. He is a proud member of the R&D department at ThinkPalm. Working on cutting edge intiatives such as SDN (Software-Defined Networking) and SD-WAN (Software-Defined Wide Area Networking) solutions. He has a strong background in embedded systems and network programming with expertise in programming in Go and Python.