This IDL provides common API framework elements needed for the programmable routing protocol process (prpd).
L3VPN route destination address prefix composed of a route distinguisher (RD) and IP address.
Field | Type | Label | Description |
rd | RouteDistinguisher | optional | Route distinguisher. REQUIRED |
vpn_addr | IpAddress | optional | IPv4 or IPv6 VPN customer address. REQUIRED. |
RFC 4364 Route type 0: 2-byte AS and assigned number
Field | Type | Label | Description |
as_number | uint32 | optional | 2 byte AS number |
assigned_number | uint32 | optional | 4 byte assigned number subfield |
RFC 4364 Route type 1: IPv4 address and assigned number
Field | Type | Label | Description |
ip_address | IpAddress | optional | 4 byte IP address |
assigned_number | uint32 | optional | 2 byte assigned number subfield |
RFC 4364 Route type 2: 4-byte AS and assigned number
Field | Type | Label | Description |
as_number | uint32 | optional | 4 byte AS number |
assigned_number | uint32 | optional | 2 byte assigned number subfield |
An RFC 4364 route distinguisher to distinguish customer VPN routes within the BGP NLRIs. Valid RD can be type 0, type 1, or type 2.
Field | Type | Label | Description |
rd0 | RdType0 | optional | Type 0 RD Type 0 RD |
rd1 | RdType1 | optional | Type 1 RD Type 1 RD |
rd2 | RdType2 | optional | Type 2 RD Type 2 RD |
Route destination prefix defined for each supported address family
Field | Type | Label | Description |
inet | IpAddress | optional | IPv4 destination prefix |
inet6 | IpAddress | optional | IPv6 destination prefix |
inetvpn | L3vpnAddress | optional | IPv4 VPN (L3VPN) destination prefix |
inet6vpn | L3vpnAddress | optional | IPv6 VPN (L3VPN) destination prefix |
Routing table (RIB), which may either be specified as a string or RPD table ID.
Field | Type | Label | Description |
rtt_id | RouteTableId | optional | Table id to which the route belongs |
rtt_name | RouteTableName | optional | Table name to which the route belongs |
Routing table identifier as an integer value uniquely identifying a table.
Field | Type | Label | Description |
id | uint32 | optional | Table identifier - REQUIRED |
Routing table (RIB) name uniquely identifying a route table - Formatted as a string per Junos OS convention.
Field | Type | Label | Description |
name | string | optional | Table name - REQUIRED |
Different types of return codes to be sent back to client based on the success of the operation. If unsuccessful, specific reasons for the failure may be included in the response.
Name | Number | Description |
RET_SUCCESS | 0 | Operation executed successfully |
RET_FAILURE | 1 | General failure - Operation not executed successfully |
RET_NOT_FOUND | 2 | Entry not found |
RET_INVALID_PARAMS | 3 | Invalid input paramters |
Routing table destination address families.
Name | Number | Description |
RT_AF_UNSPEC | 0 | Unspecified |
RT_AF_INET | 1 | IPv4 destination prefix |
RT_AF_INET6 | 2 | IPv6 destination prefix |
RT_AF_INETVPN | 3 | IPv4 VPN (L3VPN) destination prefix |
RT_AF_INET6VPN | 4 | IPv6 VPN (L3VPN) destination prefix |
The table format allows the client to request the format that the server should use to represent tables in replies sent by the server to the client.
Name | Number | Description |
TABLE_STRING | 0 | The server represents tables by name as strings |
TABLE_ID | 1 | The server represents tables by RPD as table ID |
.proto Type | Notes | C++ Type | Java Type | Python 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 |