Difference between revisions of "Sweetcomb/gNMIServer"

From fd.io
Jump to: navigation, search
m (Testing gNMI server functionalities)
m (Testing gNMI server functionalities)
Line 19: Line 19:
 
* 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]  
 
* 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]:
+
* Nokia [https://github.com/nokia/pygnmi pygnmi]:
  
 
* Cisco [https://github.com/cisco-ie/pipeline-gnmi pipeline-gnmi]: For telemetry (subscribe) only
 
* Cisco [https://github.com/cisco-ie/pipeline-gnmi pipeline-gnmi]: For telemetry (subscribe) only

Revision as of 14:56, 3 April 2019

gNMI Server

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

  • Capabilities
  • Get
  • Set
  • Subscribe

A demo of gNMI server can be found here FD.io's vpp meets gNMI

Testing gNMI server functionalities

There are multiple gNMI clients available:

  • Arista gnmi: Support capabilities, get, set, subscribe RPCs only with IETF JSON encoding.

Arista gNMI client

gnmi -addr localhost:50051 update /ietf-interfaces:interfaces/interface[name="GigabitEthernet0/9/0"]/enabled true

Google gNMI client

gnmi_capabilities -notls -target_addr localhost:50051

gnmi_get -notls -target_addr localhost:50051 -xpath "/ietf-interfaces/interface-state"

NB: Please note that google gnmi client don't work with ":" separator in xpath. They only use "/".

NB2: default encoding is JSON IETF encoding.