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

Placeholder for client specific information (Not currently used)

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

Placeholder for client specific information (Not currently used)

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

Placeholder for client specific information (Not currently used)

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

Placeholder for client specific information (Not currently used)

request_id int64 optional

A 64-bit integer value indicating the request ID

InterfaceConfig

These messages are related to physical interface (IFD) object 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

Defines the encapsulation type used on the interface

aggregate_members string repeated

List of members of the aggregate ethernet interface

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

Messages for interface protocol family (IFF) objects configuration

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

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

Placeholder for client specific information (Not currently used)

request_id int64 optional

A 64-bit integer value indicating the request ID

InterfaceLogicalConfig

Messages for logical interface (IFL) object configuration

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

FieldTypeLabelDescription
port_name string optional

A string value for the physical interface name

ifl_unit int32 optional

A 32-bit integer value for the logical interface 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

Placeholder for client specific information (Not currently used)

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 interace (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

client_ctx int32 optional

Placeholder for client specific information (Not currently used)

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

Placeholder for client specific information (Not currently used)

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

Placeholder for client specific information (Not currently used)

request_id int64 optional

A 64-bit integer value for the request ID

RTConfig

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 (2) and INET6 (28) are supported.

interface_address IpAddress optional

A string or byte value indicating the 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

Placeholder for client specific information (Not currently used)

request_id int64 optional

A 64-bit integer value for the request ID

TimeoutInfo

API for setting timeout in seconds for the client

FieldTypeLabelDescription
timeout int32 optional

TimeoutResp

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 related messages

FieldTypeLabelDescription
unit int32 optional

integer_attr

Integer attribute definition

FieldTypeLabelDescription
attr_name string optional

Integer attribute name

attr_value int32 optional

Integer attribute value

string_attr

String attribute definition

FieldTypeLabelDescription
attr_name string optional

String attribute name

attr_value string optional

String attribute value

AddressFormat

This data type defines IP address and MAC address formats

NameNumberDescription
ADDRESS_STRING 0

String format

ADDRESS_BYTES 1

Byte format

FamilyType

This data type is for defining the address 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

This data type is for defining interface status.

NameNumberDescription
INTF_DOWN 0

Interface down

INTF_UP 1

Interface up

InterfaceEncapsulationType

NameNumberDescription
VLAN_BRIDGE 0

VLAN bridge encapsulation

VLAN_EXTENDED_BRIDGE 1

VLAN extended bridge encapsulation

INTERFACE_ENCAP_MAX 2

No encapuslation

InterfaceTaggingType

This data type is for defining interface tagging type

NameNumberDescription
VLAN_TAGGING 0

VLAN tagging

INTERFACE_TAGGING_MAX 1

None

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 that is being created or modified

NOT_OWNER 3

Client is not the owner of the interface object that is being created or modified

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

Physical interface (IFD) name not specified

NO_IFL_UNIT 11

Logical interface (IFL) not specified

NO_IFF_FAMILY 12

Address family (IFF) 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 config 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

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