Difference between revisions of "Sweetcomb/gNMIServer"

From fd.io
Jump to: navigation, search
m (Testing gNMI server functionalities)
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
= gNMI Server =
 
= gNMI Server =
 +
 +
A gNMI interface has been developped on top of sysrepo. It is available here: https://github.com/YohanPipereau/sysrepo-gnxi/releases .
  
 
gNMI stands for gRPC Network Management Interface, it works like a client server protocol offering a set of 4 RPCs:
 
gNMI stands for gRPC Network Management Interface, it works like a client server protocol offering a set of 4 RPCs:
Line 6: Line 8:
 
* Set
 
* Set
 
* Subscribe
 
* Subscribe
 
A demo of gNMI server can be found here [https://www.youtube.com/watch?v=hTv6hFnyAhE FD.io's vpp meets gNMI]
 
 
=== Testing gNMI server functionalities ===
 
 
There are multiple gNMI clients available:
 
 
* Arista [https://github.com/aristanetworks/goarista/tree/master/cmd/gnmi gnmi]: Support '''capabilities''', '''get''', '''set''', '''subscribe''' RPCs only with '''IETF JSON''' encoding.
 
 
* Openconfig [https://github.com/openconfig/gnmi gnmi_cli]:
 
 
* Google [https://github.com/google/gnxi/tree/master/gnmi_capabilities gnmi_capabilities], [https://github.com/google/gnxi/tree/master/gnmi_get gnmi_get], [https://github.com/google/gnxi/tree/master/gnmi_set gnmi_set]
 
 
* Nokia [https://github.com/nokia/pygnmi pygnmi]: Support '''subscribe''' RPC only
 
 
* Cisco [https://github.com/cisco-ie/pipeline-gnmi pipeline-gnmi]: For telemetry ('''subscribe''') only
 
 
==== Arista gNMI client ====
 
<code>
 
gnmi -addr localhost:50051 update /ietf-interfaces:interfaces/interface[name="GigabitEthernet0/9/0"]/enabled true
 
</code>
 
 
==== Google gNMI client ====
 
 
<code>
 
gnmi_capabilities -notls -target_addr localhost:50051
 
</code>
 
 
<code>
 
gnmi_get -notls -target_addr localhost:50051 -xpath "/ietf-interfaces/interface-state"
 
</code>
 
 
NB: Please note that google gnmi client don't work with ":" separator in xpath. They only use "/".
 
 
NB2: default encoding is JSON IETF encoding.
 

Latest revision as of 15:32, 13 June 2019

gNMI Server

A gNMI interface has been developped on top of sysrepo. It is available here: https://github.com/YohanPipereau/sysrepo-gnxi/releases .

gNMI stands for gRPC Network Management Interface, it works like a client server protocol offering a set of 4 RPCs:

  • Capabilities
  • Get
  • Set
  • Subscribe