Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

gNOI Services Overview

SUMMARY Junos devices support the gNOI services and RPCs outlined in this topic.

The gRPC Network Operations Interface (gNOI) defines services for performing operational commands on network devices. OpenConfig defines the operations (RPCs) and data structures (messages) for each service in proto definition files. The proto files with the full list of gNOI RPCs are located in the OpenConfig gNOI GitHub repository at https://github.com/openconfig/gnoi. Junos devices support a subset of the services and RPCs as described in the following sections.

Supported Services Overview

Table 1 outlines the gNOI services supported on Junos devices. The table lists the release in which support starts for the given version of the proto file.

Table 1: Supported gNOI Services
Service Release Starting Support Proto File Version

CertificateManagement

Junos OS Evolved Release 22.2R1

0.2.0

Diag

Junos OS Evolved Release 22.2R1

0.1.0

File

Junos OS Evolved Release 22.2R1

0.1.0

Layer2

Junos OS and Junos OS Evolved Release 24.2R1

0.1.0

OS

Junos OS Evolved Release 22.2R1

0.1.1

System

Junos OS Evolved Release 22.2R1

1.0.0

CertificateManagement Service

Table 2: Supported cert.proto RPCs
RPC Description Introduced in Release
CanGenerateCSR()

Query the target device to determine if it can generate a certificate signing request (CSR) with the specified key type, key size, and certificate type. Supported values:

  • Key type: KT_RSA

  • Key sizes: 1024, 2048, 4096

  • Certificate type: CT_X509

Returns True if the gNOI server supports the specific key type, key size, and certificate type.

Junos OS Evolved 23.1R1

GenerateCSR()

Generate and return a certificate signing request (CSR).

Junos OS Evolved 22.2R1

GetCertificates()

Return the local certificates loaded on the target device.

Junos OS Evolved 22.2R1

Install()

Load a new certificate on the target device by creating a CSR request, generating a certificate based on the CSR, and loading the certificate using a new certificate ID.

Junos OS Evolved 22.2R1

LoadCertificate()

Load a certificate signed by a Certificate Authority (CA) on the target device.

Junos OS Evolved 22.2R1

LoadCertificateAuthorityBundle()

Load a CA certificate bundle on the target device.

Junos OS Evolved 22.2R1

RevokeCertificates()

Revoke the certificates with the specified certificate IDs on the target device.

Junos OS Evolved 23.1R1

Rotate()

Replace an existing certificate on the target device by creating a CSR request, generating a certificate based on the CSR, and loading the certificate using an existing certificate ID.

Junos OS Evolved 22.2R1

Diagnostic (Diag) Service

Table 3: Supported diag.proto RPCs
RPC Description Introduced in Release
StartBERT()

Start a BERT on a set of ports. Junos devices support the following PRBS patterns for gNOI BERTs:

  • PRBS7
  • PRBS9
  • PRBS15
  • PRBS23
  • PRBS31

Junos OS Evolved 22.2R1

StopBert()

Stop an already in-progress BERT on a set of ports.

Junos OS Evolved 22.2R1

GetBERTResult()

Get BERT results during the BERT or after it completes.

Junos OS Evolved 22.2R1

File Service

Table 4: Supported file.proto RPCs
RPC Description Introduced in Release
Get()

Read and stream the contents of a file from the target.

The file is streamed by sequential messages, each message containing up to 64KB of data. A final message is sent prior to closing the stream that contains the hash of the data sent. The operation returns an error if the file does not exist or there is an error reading the file.

Junos OS Evolved 22.2R1

Put()

Stream data to a file on the target.

The file is sent in sequential messages, each message containing up to 64KB of data. A final message must be sent that includes the hash of the data.

The operation returns an error if the location does not exist or there is an error writing the data. If no checksum is received, the target removes the partially transmitted file. A failure will not alter any existing file of the same name.

Junos OS Evolved 22.2R1

Remove()

Remove the specified file from the target. The operation returns an error if the file does not exist, if the file path resolves to a directory, or if the remove operation encounters an error.

Junos OS Evolved 22.2R1

Stat()

Return metadata about a file on the target device. The operation returns an error if the file does not exist or there is an error accessing the metadata.

Junos OS Evolved 22.2R1

Layer 2 Service

Table 5: Supported layer2.proto RPCs
RPC Description Introduced in Release
ClearLLDPInterface()

Clear all LLDP neighbors of the specified interface.

Junos OS and Junos OS Evolved 24.2R1

Operating System (OS) Service

Table 6: Supported os.proto RPCs
RPC Description Introduced in Release
Activate()

Set the OS version that is used at the next reboot.

Activate() reboots the target if the no_reboot flag is omitted or set to False. If the reboot fails to boot the requested OS version, the target rolls back to the previous OS package.

Note:

Junos devices do not support the standby_supervisor field in the ActivateRequest message.

Junos OS Evolved 22.2R1

Install()

Transfer a software image onto the target.

Note:

Junos devices do not support the standby_supervisor field in the TransferRequest message.

Junos OS Evolved 22.2R1

Verify()

Check the running OS version. This RPC may be called multiple times while the target boots until successful.

Note:

Junos devices do not support verify_standby for VerifyResponse.

Junos OS Evolved 22.2R1

System Service

System Service (Ping and Traceroute)

Table 7: Supported system.proto RPCs for Troubleshooting the Network
RPC Description Introduced in Release
Ping()

Ping a device. The Ping() RPC supports IPv4 and IPv6 pings. This RPC streams back the results of the ping after the ping is complete.

Default number of packets: 5

Junos OS Evolved 22.2R1

Traceroute()

Execute the traceroute command on the target device and stream back the results.

Default hop count: 30

Junos OS Evolved 22.2R1

System Service (Reboot)

Table 8: Supported system.proto RPCs for Rebooting
RPC Description Introduced in Release
Reboot()

Reboot the target. You can only execute one reboot request on a target at a time.

You can optionally configure a delay to reboot in the future, reboot subcomponents individually, and add a message when the reboot initiates. The delay is configured in nanoseconds.

Junos devices support the following reboot methods:

  • COLD (1)

  • POWERDOWN (2)

  • HALT (3)

  • POWERUP (7)

Junos OS Evolved 22.2R1

RebootStatus() Return the status of the reboot.

Junos OS Evolved 22.2R1

CancelReboot() Cancel a pending reboot request.

Junos OS Evolved 22.2R1

System Service (Software Upgrade)

Table 9: Supported system.proto RPCs for Software Upgrades
RPC Description Introduced in Release
SetPackage()

Install a software image on the target device.

Junos OS Evolved 22.2R1

System Service (Routing Engine Switchover)

Table 10: Supported system.proto RPCs for Routing Engine Switchover
RPC Description Introduced in Release
SwitchControlProcessor()

Switch from the current Routing Engine to the specified Routing Engine. If the current and specified Routing Engines are the same, it is a NOOP. If the target does not exist, the RPC returns an error.

Note:

Junos devices do not support control_processor for SwitchControlProcessorResponse.

Junos OS Evolved 22.2R1