Generated by GPT-5-mini| gNMI | |
|---|---|
| Name | gNMI |
| Caption | gNMI protocol stack |
| Developer | OpenConfig Working Group, Google |
| Initial release | 2016 |
| Latest release | 2020 |
| Programming languages | Go (programming language), C (programming language), Python (programming language) |
| Operating system | Linux, FreeBSD, Cisco IOS XR, Juniper Junos |
| License | Apache License |
gNMI is a network management interface protocol designed for programmatic configuration and telemetry of network devices. It provides a gRPC-based remote procedure call framework for streaming telemetry and configuration operations on routers and switches from vendors such as Cisco Systems, Juniper Networks, Arista Networks, and Ciena Corporation. Originating from the OpenConfig initiative, gNMI integrates with ecosystem tools including Prometheus (software), Grafana, Thanos (project), and InfluxDB.
gNMI emerged from the collaboration between Google, Facebook, Microsoft, and network vendors within the OpenConfig working group to replace legacy Simple Network Management Protocol patterns with model-driven, streaming approaches. The protocol uses gRPC for transport and Protocol Buffers for schema encoding, aligning with initiatives like OpenConfig YANG and industry efforts such as IETF working groups. Major operators and cloud providers including Amazon Web Services, Microsoft Azure, and Google Cloud Platform have influenced telemetry expectations that gNMI addresses. Standards and implementations reference work from IETF NETCONF YANG, YANG (data modeling language), and vendor schemas from Arista EOS and Cisco IOS XR.
gNMI is built atop gRPC layered over HTTP/2 and leverages Protocol Buffers for compact, extensible messaging. The architecture separates management plane components: clients such as Network Management Systems and collectors (for example Prometheus (software), Telegraf) interact with device agents on equipment from Cisco Systems, Juniper Networks, and Arista Networks. The protocol supports streaming telemetry flows that integrate with time-series backends like InfluxDB, OpenTSDB, and visualization stacks like Grafana. Interoperability is guided by OpenConfig models, which reference IETF YANG modules and vendor-specific augmentations used by Ciena Corporation and Huawei devices.
Data carried by gNMI is described using schema languages such as YANG (data modeling language) and serialized using Protocol Buffers. OpenConfig-provided YANG modules define standardized paths for operational state and configuration; vendors may provide augmentations mapping to proprietary implementations like Cisco IOS XR and Juniper Junos. The encoding choices include binary Protocol Buffers for efficiency and JSON for human-readability, enabling integration with tools such as jq and programming libraries in Go (programming language), Python (programming language), and C (programming language). Model-driven approaches in gNMI echo patterns found in IETF NETCONF and RESTCONF but with streaming telemetry characteristics preferred by hyperscale providers like Google and Facebook.
gNMI specifies RPCs such as Get, Set, and Subscribe that mirror operations in NETCONF and RESTCONF but use gRPC semantics. The Get RPC supports on-demand retrieval similar to SNMP GET but uses structured paths from OpenConfig YANG. The Set RPC provides transactional configuration changes with explicit operations (replace, update, delete) analogous to RFC6241 operations. Subscribe supports modes including ONCE, STREAM, and POLL for different telemetry patterns; streaming modes are commonly consumed by collectors like Prometheus (software) exporters or OpenTelemetry collectors. These RPCs enable integration with orchestration systems such as Ansible (software), Terraform (software), and SaltStack.
gNMI relies on gRPC transport-layer security options including Transport Layer Security with mutual TLS for device and client authentication. Certificate management integrates with Public Key Infrastructure tooling from Let's Encrypt, HashiCorp Vault, and enterprise systems like Microsoft Active Directory Certificate Services. Role-based access and authorization are typically enforced via device OS mechanisms present in Cisco IOS XR and Juniper Junos, and by network policy systems such as TACACS+ and RADIUS. Auditability and secure telemetry collection tie into logging and SIEM platforms like Splunk, Elastic Stack, and IBM QRadar.
Production deployments of gNMI span hyperscalers, service providers, and enterprise networks operated by Google, Facebook, Amazon Web Services, AT&T, and Verizon. Open-source projects implementing gNMI include the OpenConfig gNMI client in Go (programming language), the gnmi-gateway and adapters in Python (programming language), and vendor SDKs from Cisco Systems and Juniper Networks. Integration efforts connect gNMI to telemetry collectors like Prometheus (software), Telegraf, and OpenTelemetry; orchestration tools such as SaltStack, Ansible (software), and Terraform (software) consume gNMI for configuration management. Certification and interoperability events organized by OpenConfig and operator forums validate cross-vendor behavior.
Compared to SNMP, gNMI provides structured, model-driven data using YANG (data modeling language) and supports streaming with lower overhead via Protocol Buffers and gRPC over HTTP/2. Against NETCONF and RESTCONF, gNMI emphasizes telemetry and streaming with a binary encoding path and tighter integration with cloud-native tools like Prometheus (software), Grafana, and OpenTelemetry. Other telemetry protocols and frameworks such as sFlow, IPFIX, and vendor-specific streaming APIs differ in focus: sFlow and IPFIX emphasize flow sampling while gNMI targets fine-grained state and configuration. Adoption by organizations including Google, Facebook, and Microsoft has driven ecosystem support among vendors like Arista Networks and Ciena Corporation.
Category:Network management protocols