Junos OS routing IDL - Protocol Documentation

Table of Contents

prpd_service.proto

Top

This is the programmable routing protocol service (prpd) API. It requires the import of the prpd_common API since it relies on some functions within that API.

The primary function of this API is to work with the client purge timers.

Copyright (c) 2016, Juniper Networks, Inc. All rights reserved.

RtEmptyRequest

Generic empty request message

FieldTypeLabelDescription

RtOperReply

Reply message to get the return code for a operation performed

FieldTypeLabelDescription
ret_code ReturnCode optional

Return code indicating the success or failure of the operation and in / case of failure, the code will indicate the type of the failure that / occurred.

RtPurgeConfigRequest

Request message to configure a purge timer for the client

FieldTypeLabelDescription
time uint32 optional

Purge time to be configured for the client

RtPurgeTimeGetReply

Reply message to get purge timer for the client

FieldTypeLabelDescription
ret_code ReturnCode optional

Return code indicating the success or failure of the operation and in / case of failure, the code will indicate the type of the failure that / occurred.

time uint32 optional

Purge time for the client

Base

APIs for the RPD Infra Operations

Method NameRequest TypeResponse TypeDescription
RoutePurgeTimeConfig RtPurgeConfigRequest RtOperReply

Service to configure purge timer for the client

Configure a purge timer for the client so that server side will retain the client installed routes till this time after client disconnects and provide sufficient time for the client to reconnect if possible.

RoutePurgeTimeUnconfig RtEmptyRequest RtOperReply

Service to unconfigure purge timer for the client

Unconfigure a previously configured purge timer for the client.

RoutePurgeTimeGet RtEmptyRequest RtPurgeTimeGetReply

Service to retrive the purge timer for the client

Get a purge timer for the client

Scalar Value Types

.proto TypeNotesC++ TypeJava TypePython Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str