OpenConfig RPC Explorer

OpenConfig defines several gRPC-based protocols for network management and operations. This page provides a visual hierarchy of the services and their RPC methods.

Click on any leaf method block in the diagrams below to navigate directly to its definition in the official .proto files on GitHub.


gNMI (gRPC Network Management Interface)

gNMI is used for retrieving state data, applying configuration modifications, and streaming telemetry from network devices.

graph LR
    gNMI[gNMI Service] --> Capabilities[Capabilities]
    gNMI --> Get[Get]
    gNMI --> Set[Set]
    gNMI --> Subscribe[Subscribe]

    classDef clickable cursor:pointer,fill:#f8fafc,stroke:#dc2626,stroke-width:1.5px;
    class Capabilities,Get,Set,Subscribe clickable;

    click Capabilities "https://github.com/openconfig/gnmi/blob/master/proto/gnmi/gnmi.proto#L90" "gNMI Proto"
    click Get "https://github.com/openconfig/gnmi/blob/master/proto/gnmi/gnmi.proto#L112" "gNMI Proto"
    click Set "https://github.com/openconfig/gnmi/blob/master/proto/gnmi/gnmi.proto#L137" "gNMI Proto"
    click Subscribe "https://github.com/openconfig/gnmi/blob/master/proto/gnmi/gnmi.proto#L161" "gNMI Proto"

gRIBI (gRPC Routing Information Base Interface)

gRIBI allows external routing controllers to programmatically inject RIB entries directly into the forwarding plane of the device.

graph LR
    gRIBI[gRIBI Service] --> Modify[Modify]
    gRIBI --> Get[Get]

    classDef clickable cursor:pointer,fill:#f8fafc,stroke:#dc2626,stroke-width:1.5px;
    class Modify,Get clickable;

    click Modify "https://github.com/openconfig/gribi/blob/master/proto/gribi/gribi.proto#L75" "gRIBI Proto"
    click Get "https://github.com/openconfig/gribi/blob/master/proto/gribi/gribi.proto#L102" "gRIBI Proto"

gNOI (gRPC Network Operations Interface)

gNOI defines stateless microservices for executing operational commands on the device (such as reboots, ping, traceroute, and file operations).

graph LR
    gNOI[gNOI Services] --> Certificate[Certificate]
    gNOI --> System[System]
    gNOI --> OS[OS]
    gNOI --> File[File]
    gNOI --> Healthz[Healthz]

    Certificate --> Rotate[Rotate]
    Certificate --> Install[Install]
    Certificate --> Revoke[Revoke]

    System --> Ping[Ping]
    System --> Reboot[Reboot]
    System --> Traceroute[Traceroute]
    System --> Time[Time]

    OS --> InstallOS[Install]
    OS --> Activate[Activate]
    OS --> Verify[Verify]

    File --> Put[Put]
    File --> GetFile[Get]
    File --> Stat[Stat]
    File --> Remove[Remove]

    Healthz --> GetHealth[Get]

    classDef clickable cursor:pointer,fill:#f8fafc,stroke:#dc2626,stroke-width:1.5px;
    class Rotate,Install,Revoke,Ping,Reboot,Traceroute,Time,InstallOS,Activate,Verify,Put,GetFile,Stat,Remove,GetHealth clickable;

    click Rotate "https://github.com/openconfig/gnoi/blob/master/cert/cert.proto" "Certificate Proto"
    click Install "https://github.com/openconfig/gnoi/blob/master/cert/cert.proto" "Certificate Proto"
    click Revoke "https://github.com/openconfig/gnoi/blob/master/cert/cert.proto" "Certificate Proto"
    click Ping "https://github.com/openconfig/gnoi/blob/master/system/system.proto" "System Proto"
    click Reboot "https://github.com/openconfig/gnoi/blob/master/system/system.proto" "System Proto"
    click Traceroute "https://github.com/openconfig/gnoi/blob/master/system/system.proto" "System Proto"
    click Time "https://github.com/openconfig/gnoi/blob/master/system/system.proto" "System Proto"
    click InstallOS "https://github.com/openconfig/gnoi/blob/master/os/os.proto" "OS Proto"
    click Activate "https://github.com/openconfig/gnoi/blob/master/os/os.proto" "OS Proto"
    click Verify "https://github.com/openconfig/gnoi/blob/master/os/os.proto" "OS Proto"
    click Put "https://github.com/openconfig/gnoi/blob/master/file/file.proto" "File Proto"
    click GetFile "https://github.com/openconfig/gnoi/blob/master/file/file.proto" "File Proto"
    click Stat "https://github.com/openconfig/gnoi/blob/master/file/file.proto" "File Proto"
    click Remove "https://github.com/openconfig/gnoi/blob/master/file/file.proto" "File Proto"
    click GetHealth "https://github.com/openconfig/gnoi/blob/master/healthz/healthz.proto" "Healthz Proto"

gNSI (gRPC Network Security Interface)

gNSI provides services for managing security configurations, including gRPC authorization policies, SSH client keys, and TLS certificate validation.

graph LR
    gNSI[gNSI Services] --> Authz[Authz]
    gNSI --> Credentialz[Credentialz]
    gNSI --> Certz[Certz]
    gNSI --> Pathz[Pathz]

    Authz --> RotateAuthz[Rotate]
    Authz --> InstallAuthz[Install]
    Authz --> GetAuthz[Get]

    Credentialz --> RotateSSH[RotateSSH]
    Credentialz --> InstallSSH[InstallSSH]

    Certz --> RotateCertz[Rotate]
    Certz --> InstallCertz[Install]

    Pathz --> RotatePathz[Rotate]
    Pathz --> InstallPathz[Install]

    classDef clickable cursor:pointer,fill:#f8fafc,stroke:#dc2626,stroke-width:1.5px;
    class RotateAuthz,InstallAuthz,GetAuthz,RotateSSH,InstallSSH,RotateCertz,InstallCertz,RotatePathz,InstallPathz clickable;

    click RotateAuthz "https://github.com/openconfig/gnsi/blob/master/authz/authz.proto" "Authz Proto"
    click InstallAuthz "https://github.com/openconfig/gnsi/blob/master/authz/authz.proto" "Authz Proto"
    click GetAuthz "https://github.com/openconfig/gnsi/blob/master/authz/authz.proto" "Authz Proto"
    click RotateSSH "https://github.com/openconfig/gnsi/blob/master/credentialz/credentialz.proto" "Credentialz Proto"
    click InstallSSH "https://github.com/openconfig/gnsi/blob/master/credentialz/credentialz.proto" "Credentialz Proto"
    click RotateCertz "https://github.com/openconfig/gnsi/blob/master/certz/certz.proto" "Certz Proto"
    click InstallCertz "https://github.com/openconfig/gnsi/blob/master/certz/certz.proto" "Certz Proto"
    click RotatePathz "https://github.com/openconfig/gnsi/blob/master/pathz/pathz.proto" "Pathz Proto"
    click InstallPathz "https://github.com/openconfig/gnsi/blob/master/pathz/pathz.proto" "Pathz Proto"