Junos OS interface IDL - Protocol Documentation

Table of Contents

dcd_service.proto

Top

Public API for the DCD services.

This IDL defines the APIs for interface services.

AttributeRequestInfo

Message structure for attribute query commands

FieldTypeLabelDescription
port_name string optional

String value for the physical interface (IFD) name

ifl_unit Value32 optional

32-bit integer value for the logical interface (IFL) unit number

family FamilyType optional

Integer value indicating the protocol family. Currently only INET (2) and INET6 (28) are supported.

interface_address IpAddress optional

String or byte value indicating the interface IP address

arp_address IpAddress optional

String or byte value indicating the interface ARP address

string_attr_list string_attr repeated

A list of string type attributes for the interface

integer_attr_list integer_attr repeated

A list of integer type attributes for the interface

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

AttributeResponseInfo

Message structure for attribute query response

FieldTypeLabelDescription
status ret_status optional

The return status of the query

error_message string optional

A string value containing the returned error message

string_attr_list string_attr repeated

A list of string type attributes for the interface

integer_attr_list integer_attr repeated

A list of integer type attributes for the interface

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

ConfigResp

Response messages for configuration commands

FieldTypeLabelDescription
status ret_status optional

Return status of the command. O indicates success. 1 indicates failure. Other statuses are possible.

error_message string optional

A string value containing the error message

request_id int64 optional

A 64-bit integer value for the request ID

client_ctx int32 optional

Client specific value. This is returned in the return_status message in response to the configuration command

InterfaceAddressConfig

Messages for interface address (IFA) objects configuration.

For example:

set interfaces ge-1/1/6 unit 0 family inet address 192.0.2.1/24

set interfaces ge-1/1/6 unit 0 family inet6 address 2001:db8::1/32

FieldTypeLabelDescription
port_name string optional

A string value for the physical interace (IFD) name

ifl_unit Value32 optional

A 32-bit integer value for the logical interface (IFL) unit number

family FamilyType optional

An integer value indicating the address family. Currently supported families are INET and INET6

interface_address IpAddress optional

IP address value

string_attr_list string_attr repeated

A list of string type attributes for the address family

integer_attr_list integer_attr repeated

A list of integer type attributes for the address family

operation int32 optional

A 32-bit integer value for the operation to be performed

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value indicating the request ID

InterfaceConfig

For IFD objects configurations

For example:

set interfaces ge-1/1/6 vlan-tagging

set interfaces ge-1/1/6 encapsulation extended-vlan-bridge

FieldTypeLabelDescription
port_name string optional

String defining the port name

tagging InterfaceTaggingType optional

Defines tagging type used on the interface

encap InterfaceEncapsulationType optional

Interface encapsulation type

aggregate_members string repeated

List of members

string_attr_list string_attr repeated

List of string attributes applied to the interface

integer_attr_list integer_attr repeated

List of integer attributes applied to the interface

operation int32 optional

The operation to perform on the interface

client_ctx int32 optional

Placeholder for client specific information (Not currently used)

request_id int64 optional

The request ID

InterfaceFamilyConfig

For IFF objects configurations

For example:

set interfaces ge-1/1/6 unit 0 vlan-id 100

set bridge-domains vlan-100 interface ge-1/1/6.0

set routing-instances vlan-100 interface ge-1/1/6.0

set interfaces ge-1/1/6 disable

FieldTypeLabelDescription
port_name string optional

A string value for the physical interface name

ifl_unit Value32 optional

A 32-bit integer value for the logical interface unit number

family FamilyType optional

The family type value. Currently, this must be INET or INET6.

string_attr_list string_attr repeated

A list of string type attributes for the family

integer_attr_list integer_attr repeated

A list of integer type attributes for the family

operation int32 optional

A 32-bit integer value indicating the operation.

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value indicating the request ID

InterfaceLogicalConfig

For IFL objects configurations

For example:

set interfaces ge-1/1/6 unit 0 vlan-id 100

set bridge-domains vlan-100 interface ge-1/1/6.0

set routing-instances ri1 interface ge-1/1/6.0

set interfaces ge-1/1/6 disable

FieldTypeLabelDescription
port_name string optional

A string value for the physical interface name

ifl_unit Value32 optional

A 32-bit integer value for the IFL unit number

lr_name string optional

LR name

bd_name string optional

A string value for the bridge domain name

ri_name string optional

A string value for the routing instance name

status IfStatus optional

Interface status information

string_attr_list string_attr repeated

A list of string type attributes for the logical interface

integer_attr_list integer_attr repeated

A list of integer type attributes for the logical interface

operation int32 optional

The integer value for the operation to be performed

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

IpAddress

IP address definition

FieldTypeLabelDescription
addr_string string optional

Provide IP address in string format

addr_bytes bytes optional

Provide IP address in byte format

MacAddress

MAC address definition

FieldTypeLabelDescription
addr_string string optional

Provide MAC address in string format

addr_bytes bytes optional

Provide MAC address in byte format

ObjectOwnershipQuery

Message structure for object ownership query command

FieldTypeLabelDescription
port_name string optional

A string value for the physical interface (IFD) name

ifl_unit Value32 optional

A 32-bit integer value for the logical interface (IFL) unit number

family FamilyType optional

The family type value. Currently, this must be INET or INET6.

interface_address IpAddress optional

A string or byte value indicating the IP address

arp_address IpAddress optional

ARP address

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

ObjectOwnershipResp

Message structure for ownership query response

FieldTypeLabelDescription
status ret_status optional

A 32-bit integer value containing the return status of the query

error_message string optional

A string value containing the returned error message

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

PublicIflResp

Message structure for public (CLI-created) logical interface (IFL) query response

FieldTypeLabelDescription
status ret_status optional

A 32-bit integer value containing the return status of the query

error_message string optional

A string value containing the returned error message

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

RTConfig

For RT object configurations

FieldTypeLabelDescription
port_name string optional

A string value for the physical interface (IFD) name

ifl_unit Value32 optional

A 32-bit integer value for the logical interface (IFL) unit number

family FamilyType optional

A 32-bit integer value for the interface address family. Currently only INET and INET6 are supported.

interface_address IpAddress optional

IP Address

arp_address IpAddress optional

A string or byte value indicating the ARP address

string_attr_list string_attr repeated

A list of string type attributes

integer_attr_list integer_attr repeated

A list of integer type attributes

operation int32 optional

A 32-bit integer value for the operation being performed

client_ctx int32 optional

Client specific value. This is returned in the return_status message

request_id int64 optional

A 64-bit integer value for the request ID

TimeoutInfo

API for timeout in seconds for the client

FieldTypeLabelDescription
timeout int32 optional

TimeoutResp

Response message for timeout queries

FieldTypeLabelDescription
status ret_status optional

A 32-bit integer value containing the return status of the query

error_message string optional

A string value containing the returned error message

Value32

Logical interface (IFL) object distinguisher

FieldTypeLabelDescription
unit int32 optional

IFL unit number

integer_attr

Integer attribute definition

FieldTypeLabelDescription
attr_name string optional

Attribute name in string format

attr_value int32 optional

Attribute value in integer format

string_attr

String attribute definition

FieldTypeLabelDescription
attr_name string optional

String attribute name

attr_value string optional

String attribute value

AddressFormat

For defining IP address and MAC address formats

NameNumberDescription
ADDRESS_STRING 0

String format

ADDRESS_BYTES 1

Byte format

FamilyType

For defining the protocol family type

NameNumberDescription
INTF_AF_UNKNOWN 0

Address family unknown

INTF_AF_INET 2

INET address family

INTF_AF_INET6 28

INET6 address family

IfStatus

For defining interface status

NameNumberDescription
INTF_DOWN 0

Interface down

INTF_UP 1

Interface up

InterfaceEncapsulationType

For defining interface encapsulations

NameNumberDescription
VLAN_BRIDGE 0

vlan-bridge

VLAN_EXTENDED_BRIDGE 1

extended-vlan-bridge

INTERFACE_ENCAP_MAX 2

No encapsulation

InterfaceTaggingType

For defining interface tagging

NameNumberDescription
VLAN_TAGGING 0

VLAN tagging

INTERFACE_TAGGING_MAX 1

No interface tagging

operation

This data type defines the available operations

NameNumberDescription
UNKNOWN 0

Unknown operation

ADD_INTERFACE 1

Add an interface

DELETE_INTERFACE 2

Delete an interface

ADD_AE_MEMBER 3

Add a member to an aggregate ethernet (AE) interface

DELETE_AE_MEMBER 4

Delete a member from an aggregate ethernet (AE) interface

ADD_INTF_ATTRIBUTES 5

Add attributes to an interface

DELETE_INTF_ATTRIBUTES 6

Delete attributes from an interface

DELETE_ALL_INTF_ATTRIBUTES 7

Delete all attributes from an interface

QUERY_ATTRIBUTES 8

Query an interface for its attributes

QUERY_OWNERSHIP 9

Query an interface for its ownership information

QUERY_PUBLIC_IFL 10

Query a logical interface to see if it was created by CLI (public)

SET_TIMEOUT 11

Set the timeout value for API clients

ret_status

This data type defines the available return status messages.

NameNumberDescription
SUCCESS 0

Integer value indicating success (0)

FAILURE 1

Integer value indicating failure (1)

OWNER 2

Client is the owner of the interface object

NOT_OWNER 3

Client is not the owner of the interface object

OBJECT_FOUND 4

Object found

OBJECT_NOT_FOUND 5

Object not found

OBJECT_CLI_OWNER 6

Object created by CLI commands

OBJECT_JAPI_OWNER 7

Object created by Japi commands

ATTRIBUTE_FOUND 8

Attribute found

ATTRIBUTE_NOT_FOUND 9

Attribute not found

NO_PORT_NAME 10

Port name not specified

NO_IFL_UNIT 11

IFL unit not specified

NO_IFF_FAMILY 12

IFF family not specified

NO_IP_ADDR 13

IP address not specified

NO_ARP_ADDR 14

ARP address not specified

NO_ARP_MAC 15

ARP MAC address not specified

InterfacesService

List of interface related configuration commands

Method NameRequest TypeResponse TypeDescription
InterfaceCreate InterfaceConfig ConfigResp

Physical interface (IFD) configuration

InterfaceDelete InterfaceConfig ConfigResp

Delete IFD configuration

InterfaceLogicalCreate InterfaceLogicalConfig ConfigResp

Logical interface (IFL) configuration

InterfaceLogicalDelete InterfaceLogicalConfig ConfigResp

Delete IFL configuration

InterfaceFamilyCreate InterfaceFamilyConfig ConfigResp

Interface protocol family (IFF) configuration

InterfaceFamilyDelete InterfaceFamilyConfig ConfigResp

Delete IFF configuration

InterfaceAddressCreate InterfaceAddressConfig ConfigResp

IP address setting for interfaces

InterfaceAddressDelete InterfaceAddressConfig ConfigResp

Delete interface IP address configuration

InterfaceRTAddressCreate RTConfig ConfigResp

RT address setting for interfaces (ARP address for inet and NDP address for inet6

InterfaceRTAddressDelete RTConfig ConfigResp

Delete RT address configuration

AttrQueryService

List of interface attribute related query commands

Method NameRequest TypeResponse TypeDescription
InterfacesQueryAttribute AttributeRequestInfo AttributeResponseInfo

Method used to perform interface attribute queries

ObjectQueryService

List of object ownership related query commands

Method NameRequest TypeResponse TypeDescription
isObjectOwner ObjectOwnershipQuery ObjectOwnershipResp

Method used to perform object ownership queries

TimeoutService

Service for setting the client timeout value

Method NameRequest TypeResponse TypeDescription
setClientTimeout TimeoutInfo TimeoutResp

Method used to set client timeout value

PublicIflService

List of public (CLI created) logical interface (IFL) query commands

Method NameRequest TypeResponse TypeDescription
isPublicIfl InterfaceLogicalConfig PublicIflResp

Method used to determine if a logical interface is public (interface created by CLI)

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