gRPC Network Management Interface (gNMI)
draft-openconfig-rtgwg-gnmi-spec-00

Document Type Active Internet-Draft (individual)
Last updated 2017-03-13
Stream (None)
Intended RFC status (None)
Formats plain text pdf html bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                          R. Shakir
Internet-Draft                                                 A. Shaikh
Intended status: Informational                                 P. Borman
Expires: September 14, 2017                                     M. Hines
                                                              C. Lebsack
                                                               C. Morrow
                                                                  Google
                                                          March 13, 2017

                gRPC Network Management Interface (gNMI)
                  draft-openconfig-rtgwg-gnmi-spec-00

Abstract

   This document describes the gRPC Network Management Interface (gNMI),
   a network management protocol based on the gRPC RPC framework.  gNMI
   supports retrieval and manipuation of state from network elements
   where the data is represented by a tree structure, and addressable by
   paths.  The gNMI service defines operations for configuration
   management, operational state retrieval, and bulk data collection via
   streaming telemtry.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 14, 2017.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of

Shakir, et al.         Expires September 14, 2017               [Page 1]
Internet-Draft             gNMI specification                 March 2017

   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Common Message Types and Encodings  . . . . . . . . . . . . .   4
     2.1.  Reusable Notification Message Format  . . . . . . . . . .   4
     2.2.  Common Data Types . . . . . . . . . . . . . . . . . . . .   5
       2.2.1.  Timestamps  . . . . . . . . . . . . . . . . . . . . .   5
       2.2.2.  Paths . . . . . . . . . . . . . . . . . . . . . . . .   5
       2.2.3.  Node Values . . . . . . . . . . . . . . . . . . . . .   6
     2.3.  Encoding Data in an Update Message  . . . . . . . . . . .   6
       2.3.1.  JSON and JSON_IETF  . . . . . . . . . . . . . . . . .   6
       2.3.2.  Bytes . . . . . . . . . . . . . . . . . . . . . . . .   9
       2.3.3.  Protobuf  . . . . . . . . . . . . . . . . . . . . . .   9
       2.3.4.  ASCII . . . . . . . . . . . . . . . . . . . . . . . .   9
     2.4.  Use of Data Schema Paths  . . . . . . . . . . . . . . . .   9
       2.4.1.  Path Prefixes . . . . . . . . . . . . . . . . . . . .   9
       2.4.2.  Path Aliases  . . . . . . . . . . . . . . . . . . . .  10
       2.4.3.  Interpretation of Paths Used in RPCs  . . . . . . . .  11
     2.5.  Error handling  . . . . . . . . . . . . . . . . . . . . .  12
     2.6.  Schema Definition Models  . . . . . . . . . . . . . . . .  13
       2.6.1.  The ModelData message . . . . . . . . . . . . . . . .  13
   3.  Service Definition  . . . . . . . . . . . . . . . . . . . . .  14
     3.1.  Session Security, Authentication and RPC Authorization  .  14
     3.2.  Capability Discovery  . . . . . . . . . . . . . . . . . .  15
       3.2.1.  The CapabilityRequest message . . . . . . . . . . . .  15
       3.2.2.  The CapabilityResponse message  . . . . . . . . . . .  15
     3.3.  Retrieving Snapshots of State Information . . . . . . . .  16
       3.3.1.  The GetRequest Message  . . . . . . . . . . . . . . .  16
       3.3.2.  The GetResponse message . . . . . . . . . . . . . . .  17
       3.3.3.  Considerations for using Get  . . . . . . . . . . . .  18
     3.4.  Modifying State . . . . . . . . . . . . . . . . . . . . .  18
Show full document text