|
|
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]:
| |
− |
| |
− | * Openconfig [https://github.com/openconfig/gnmi/tree/master/cmd/gnmi_collector gnmi_collector]
| |
− |
| |
− | * 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