3. Protocol Documentation

3.1. appid_service.proto

3.1.1. AppIdentData

Represents appid data.

Table 3:  AppIdentData 

Field

Type

Label

Description

name

string

Application name

author

string

Author name

is_connected

bool

Connected to IDB or not

version

string

Version string

3.1.2. AppIdentKey

Represents appid key.

Table 4:  AppIdentKey 

Field

Type

Label

Description

id

uint32

Application id

3.1.3. AppIdentNotification

Represents appid notification.

Table 5:  AppIdentNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as create, delete, or update

key

AppIdentKey

AppIdent key

data

AppIdentData

AppIdent data

3.1.4. AppIdentSubscriptionRequest

Represents appid subscription request.

Table 6:  AppIdentSubscriptionRequest 

Field

Type

Label

Description

key

AppIdentKey

Optional, to filter on name

3.2. bfd_service.proto

3.2.1. BfdSessionNotification

Represents BFD session notification.

Table 7:  BfdSessionNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as session create, delete, or update

key

BfdmgrGeneralSessionKeyPb

Session key

data

BfdmgrGeneralSessionDataPb

Session data

3.2.2. BfdSessionSubscriptionRequest

Represents BFD session subscription request.

Table 8:  BfdSessionSubscriptionRequest 

Field

Type

Label

Description

key

BfdmgrGeneralSessionKeyPb

Optional, to filter on name

3.2.3. BfdmgrGeneralSessionDataPb

Represents BFD session data.

Table 9:  BfdmgrGeneralSessionDataPb 

Field

Type

Label

Description

status

BfdmgrGeneralSessionDataPb.BfdmgrSessionStatus

Status of the session

sub_type

BfdmgrGeneralSessionDataPb.BfdmgrSessionSubType

Subtype of the session

src_if_id

uint32

Source interface ID

3.2.4. BfdmgrGeneralSessionKeyPb

Represents BFD session key.

Table 10:  BfdmgrGeneralSessionKeyPb 

Field

Type

Label

Description

src_ip_addr

IpAddressPb

Source IP address of the session

dst_ip_addr

IpAddressPb

Destination IP address of the session

instance_id

uint32

Network instance identifier

type

BfdmgrGeneralSessionKeyPb.BfdmgrSessionType

Session type

3.2.5. BfdmgrGeneralSessionDataPb.BfdmgrSessionStatus

Represents BFD session status.

Table 11:  BfdmgrGeneralSessionDataPb.BfdmgrSessionStatus 

Name

Number

Description

INVALID

0

Session invalid

ADMIN_DOWN

1

Admin down

DOWN

2

Status down

INIT

3

Status initializing

UP

4

Status up and running

3.2.6. BfdmgrGeneralSessionDataPb.BfdmgrSessionSubType

Represents BFD session subtype.

Table 12:  BfdmgrGeneralSessionDataPb.BfdmgrSessionSubType 

Name

Number

Description

SESSION_SUB_TYPE_UNKNOWN

0

Session subtype unknown

SESSION_SUB_TYPE_SINGLE_HOP

1

Single-hop session

SESSION_SUB_TYPE_MULTI_HOP

2

Multi-hop session

3.2.7. BfdmgrGeneralSessionKeyPb.BfdmgrSessionType

Represents BFD session type.

Table 13:  BfdmgrGeneralSessionKeyPb.BfdmgrSessionType 

Name

Number

Description

SESSION_TYPE_UNKNOWN

0

Unknown session type

SESSION_TYPE_P2P

1

Peer-to-peer session type

3.3. config_service.proto

3.3.1. ConfigData

Represents configuration data.

Table 14:  ConfigData 

Field

Type

Label

Description

json

string

Entire configuration fragment as JSON string

3.3.2. ConfigKey

Represents configuration key.

Table 15:  ConfigKey 

Field

Type

Label

Description

js_path

string

JSON path formatted string from YANG; for example, interface{.name==ethernet1/1}.my_field

keys

string

repeated

Value for keys

3.3.3. ConfigNotification

Represents configuration notification message to subscribe to configuration events

Table 16:  ConfigNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation indicating create, delete, or update

key

ConfigKey

Configuration key

data

ConfigData

Configuration data

3.3.4. ConfigSubscriptionRequest

Represents configuration subscription request.

Table 17:  ConfigSubscriptionRequest 

Field

Type

Label

Description

key

ConfigKey

Optional, to filter on name

3.4. interface_service.proto

3.4.1. InterfaceData

Represents interface data.

Table 18:  InterfaceData 

Field

Type

Label

Description

admin_is_up

uint32

Admin state

mtu

uint32

Maximum transmission unit

if_type

IfMgrIfType

Interface type; for example, loopback, physical, or LAG

port_id

PortIdPb

Port identifier

description

string

Interface description

mac_addr

MacAddressPb

MAC address

3.4.2. InterfaceKey

Represents interface key.

Table 19:  InterfaceKey 

Field

Type

Label

Description

if_name

string

Interface name; for example, ethernet 1/1

3.4.3. InterfaceNotification

Represents interface notification.

Table 20:  InterfaceNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as create, delete, or update

key

InterfaceKey

Interface key

data

InterfaceData

Interface data

3.4.4. InterfaceSubscriptionRequest

Represents interface subscription request.

Table 21:  InterfaceSubscriptionRequest 

Field

Type

Label

Description

key

InterfaceKey

Optional, to filter on name

3.5. lldp_service.proto

3.5.1. LldpNeighborDataPb

Represents LLDP neighbor data.

Table 22:  LldpNeighborDataPb 

Field

Type

Label

Description

port_id

string

Port identifier

port_type

LldpNeighborDataPb.PortSubType

Port type

source_mac

MacAddressPb

Port MAC address

bgp_peer_address

IpAddressPb

repeated

LLDP BGP autodiscovered addresses

bgp_group_id

uint32

BGP group identifier

system_name

string

System name

system_description

string

System description

3.5.2. LldpNeighborKeyPb

Represents LLDP neighbor key.

Table 23:  LldpNeighborKeyPb 

Field

Type

Label

Description

interface_name

string

Local interface name

chassis_id

string

Chassis identifier

chassis_type

LldpNeighborKeyPb.ChassisIdType

Chassis type

3.5.3. LldpNeighborNotification

Represents LLDP neighbor notification.

Table 24:  LldpNeighborNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as create, delete, or update

key

LldpNeighborKeyPb

LLDP neighbor key

data

LldpNeighborDataPb

LLDP neighbor data

3.5.4. LldpNeighborSubscriptionRequest

Represents LLDP neighbor subscription request.

Table 25:  LldpNeighborSubscriptionRequest 

Field

Type

Label

Description

key

LldpNeighborKeyPb

Optional, to filter on name

3.5.5. LldpNeighborDataPb.PortSubType

Represents port subtype.

Table 26:  LldpNeighborDataPb.PortSubType 

Name

Number

Description

RESERVED

0

Reserved for future use

INTERFACE_ALIAS

1

Alias of the interface

PORT_COMPONENT

2

Port identifier based on a locally defined port component

MAC_ADDRESS

3

MAC address

NETWORK_ADDRESS

4

Network address

INTERFACE_NAME

5

Name of the interface

AGENT_CIRCUIT_ID

6

Port identifier based on the circuit ID in the DHCP relay agent information option

LOCALLY_ASSIGNED

7

Port identifier based on a locally defined alphanumeric string

3.5.6. LldpNeighborKeyPb.ChassisIdType

Represents chassis type.

Table 27:  LldpNeighborKeyPb.ChassisIdType 

Name

Number

Description

RESERVED

0

Reserved for future use

CHASSIS_COMPONENT

1

Chassis identifier based on a locally defined chassis component

INTERFACE_ALIAS

2

Alias of the interface

PORT_COMPONENT

3

Chassis identifier based on a locally defined port component

MAC_ADDRESS

4

MAC address

NETWORK_ADDRESS

5

Network address

INTERFACE_NAME

6

Name of the interface

LOCALLY_ASSIGNED

7

Chassis identifier based on a locally defined value

3.6. mpls_service.proto

3.6.1. MplsRouteAddRequest

Represents MPLS route add request, which can include one or more MPLS routes.

Table 28:  MplsRouteAddRequest 

Field

Type

Label

Description

routes

MplsRouteInfo

repeated

MPLS routes

3.6.2. MplsRouteAddResponse

Represents MPLS route add response.

Table 29:  MplsRouteAddResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of MPLS route add request

error_str

string

Detailed error string

3.6.3. MplsRouteDeleteRequest

Represents MPLS route delete request, which can include one or more MPLS routes.

Table 30:  MplsRouteDeleteRequest 

Field

Type

Label

Description

routes

MplsRouteKeyPb

repeated

MPLS routes

3.6.4. MplsRouteDeleteResponse

Represents MPLS route delete response.

Table 31:  MplsRouteDeleteResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of MPLS route delete request

error_str

string

Detailed error string

3.6.5. MplsRouteInfo

Represents MPLS route information; contains key and data.

Table 32:  MplsRouteInfo 

Field

Type

Label

Description

key

MplsRouteKeyPb

MPLS route key

data

MplsRoutePb

MPLS route data

3.6.6. MplsRouteKeyPb

Represents MPLS route key.

Table 33:  MplsRouteKeyPb 

Field

Type

Label

Description

top_label

MplsLabel

Top label

3.6.7. MplsRoutePb

Represents MPLS route data.

Table 34:  MplsRoutePb 

Field

Type

Label

Description

nexthop_group_name

string

Next hop group name

operation

MplsRoutePb.Operation

Operation such as POP or SWAP

preference

uint32

Route preference

3.6.8. MplsRoutePb.Operation

Represents MPLS operation.

Table 35:  MplsRoutePb.Operation 

Name

Number

Description

INVALID_OP

0

Invalid operation

POP

1

Pop operation

SWAP

2

Swap operation

3.6.9. SdkMgrMplsRouteService

Represents service for MPLS programming.

Table 36:  SdkMgrMplsRouteService 

Method Name

Request Type

Response Type

Description

MplsRouteAddOrUpdate

MplsRouteAddRequest

MplsRouteAddResponse

MPLS route add or update; can add or update more than one MPLS route in one request

MplsRouteDelete

MplsRouteDeleteRequest

MplsRouteDeleteResponse

MPLS route delete; can delete more than one MPLS route in one request

SyncStart

SyncRequest

SyncResponse

Synchronization start to begin synchronization operation

SyncEnd

SyncRequest

SyncResponse

Synchronization end to close synchronization operation

3.7. networkinstance_service.proto

3.7.1. NetworkInstanceData

Represents network instance data.

Table 37:  NetworkInstanceData 

Field

Type

Label

Description

net_inst_id

uint32

Network instance identifier

base_name

string

Base name

loopback_addr

IpAddrPrefLenPb

Loopback address of network instance

oper_is_up

bool

Operation status

router_id

string

Router identifier

inst_type

NetworkInstanceData.NetInstType

Network instance type

3.7.2. NetworkInstanceKey

Represents network instance key.

Table 38:  NetworkInstanceKey 

Field

Type

Label

Description

inst_name

string

Network instance name

3.7.3. NetworkInstanceNotification

Represents network instance notification.

Table 39:  NetworkInstanceNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as create, delete, or update

key

NetworkInstanceKey

Network key

data

NetworkInstanceData

Network data

3.7.4. NetworkInstanceSubscriptionRequest

Represents network instance subscription request.

3.7.5. NetworkInstanceData.NetInstType

Represents network instance type.

Table 40:  NetworkInstanceData.NetInstType 

Name

Number

Description

DEFAULT

0

Default network instance type

L3VRF

1

L3VRF network instance type

3.8. nexthop_group_service.proto

3.8.1. MplsNextHop

Represents MPLS next hop.

Table 41:  MplsNextHop 

Field

Type

Label

Description

ip_nexthop

IpAddressPb

Next-hop IP address

label_stack

MplsLabel

repeated

MPLS label stack

3.8.2. NextHop

Represents next-hop.

Table 42:  NextHop 

Field

Type

Label

Description

resolve_to

NextHop.ResolveToType

Resolve-to type

type

NextHop.ResolutionType

Resolution type

ip_nexthop

IpAddressPb

IP next-hop address

mpls_nexthop

MplsNextHop

MPLS next-hop

3.8.3. NextHopGroup

Represents next-hop group.

Table 43:  NextHopGroup 

Field

Type

Label

Description

next_hop

NextHop

repeated

Next-hops

3.8.4. NextHopGroupDeleteRequest

Represents next-hop group delete request.

Table 44:  NextHopGroupDeleteRequest 

Field

Type

Label

Description

group_key

NextHopGroupKey

repeated

Next-hop group key details

3.8.5. NextHopGroupDeleteResponse

Represents next-hop group delete response.

Table 45:  NextHopGroupDeleteResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Response for next-hop group request

error_str

string

Detailed error string

3.8.6. NextHopGroupInfo

Represents next-hop group information.

Table 46:  NextHopGroupInfo 

Field

Type

Label

Description

key

NextHopGroupKey

Next-hop group key

data

NextHopGroup

Next-hop group data

3.8.7. NextHopGroupKey

Represents next-hop group key.

Table 47:  NextHopGroupKey 

Field

Type

Label

Description

name

string

Next-hop group name

network_instance_name

string

Next-hop group network instance name

3.8.8. NextHopGroupNotification

Represents next-hop group notification.

Table 48:  NextHopGroupNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as create, delete, or update

key

uint64

Next-hop group key

data

NextHopGroup

Next-hop group data

3.8.9. NextHopGroupRequest

Represents next-hop group request.

Table 49:  NextHopGroupRequest 

Field

Type

Label

Description

group_info

NextHopGroupInfo

repeated

Next-hop group details

3.8.10. NextHopGroupResponse

Represents next-hop group response.

Table 50:  NextHopGroupResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Response for next-hop group request

error_str

string

Detailed error string

3.8.11. NextHopGroupSubscriptionRequest

Represents next-hop group subscription request.

Table 51:  NextHopGroupSubscriptionRequest 

Field

Type

Label

Description

key

NextHopGroupKey

Optional, to filter on name

3.8.12. NextHop.ResolutionType

Represents resolution type.

Table 52:  NextHop.ResolutionType 

Name

Number

Description

INVALID

0

Invalid resolution

REGULAR

1

Regular resolution

MPLS

2

MPLS resolution

3.8.13. NextHop.ResolveToType

Represents resolve-to type.

Table 53:  NextHop.ResolveToType 

Name

Number

Description

LOCAL

0

Resolve to local routes

DIRECT

1

Resolve to direct routes

INDIRECT

2

Resolve to indirect routes

3.8.14. SdkMgrNextHopGroupService

Represents service for next-hop group operations.

Table 54:  SdkMgrNextHopGroupService 

Method Name

Request Type

Response Type

Description

NextHopGroupAddOrUpdate

NextHopGroupRequest

NextHopGroupResponse

Add or update one or more next-hop groups.

NextHopGroupDelete

NextHopGroupDeleteRequest

NextHopGroupDeleteResponse

Delete next-hop group.

SyncStart

SyncRequest

SyncResponse

Synchronization start to open synchronization operation.

SyncEnd

SyncRequest

SyncResponse

Synchronization end to close synchronization operation.

3.9. route_service.proto

3.9.1. IpRouteNotification

Represents IP route notification.

Table 55:  IpRouteNotification 

Field

Type

Label

Description

op

SdkMgrOperation

Operation such as create, delete, or update

key

RouteKeyPb

IP route key

data

RoutePb

IP route data

3.9.2. IpRouteSubscriptionRequest

Represents IP route subscription request.

Table 56:  IpRouteSubscriptionRequest 

Field

Type

Label

Description

key

RouteKeyPb

Optional, to filter on name

3.9.3. RouteAddRequest

Represents route add request; can contain more than one route.

Table 57:  RouteAddRequest 

Field

Type

Label

Description

routes

RouteInfo

repeated

IP routes

3.9.4. RouteAddResponse

Represents route add response.

Table 58:  RouteAddResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of route add operation

error_str

string

Detailed error string

3.9.5. RouteDeleteRequest

Represents route delete request; can contain more than one route.

Table 59:  RouteDeleteRequest 

Field

Type

Label

Description

routes

RouteKeyPb

repeated

IP routes

3.9.6. RouteDeleteResponse

Represents route delete response.

Table 60:  RouteDeleteResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of route delete operation

error_str

string

Detailed error string

3.9.7. RouteInfo

Represents route information.

Table 61:  RouteInfo 

Field

Type

Label

Description

key

RouteKeyPb

Route key

data

RoutePb

Route data

3.9.8. RouteKeyPb

Represents route key.

Table 62:  RouteKeyPb 

Field

Type

Label

Description

net_inst_name

string

Network instance name

ip_prefix

IpAddrPrefLenPb

IP prefix

3.9.9. RoutePb

Represents route data.

Table 63:  RoutePb 

Field

Type

Label

Description

nexthop_group_name

string

Next hop group name

preference

uint32

Preference

metric

uint32

Metric

nexthop

NextHop

repeated

List of next hops

owner_id

uint32

Next hop owner identifier returned only on notification.

nhg_id

uint64

Next-hop group identifier returned only on notification.

3.9.10. SdkMgrRouteService

Represents service for IP route operations.

Table 64:  SdkMgrRouteService 

Method Name

Request Type

Response Type

Description

RouteAddOrUpdate

RouteAddRequest

RouteAddResponse

Add or update IP routes.

RouteDelete

RouteDeleteRequest

RouteDeleteResponse

Delete IP routes.

SyncStart

SyncRequest

SyncResponse

Synchronization start for IP routes

SyncEnd

SyncRequest

SyncResponse

Synchronization end for IP routes

3.10. sdk_common.proto

3.10.1. AgentReply

Empty message from agent.

3.10.2. GlobalIfId

Represents global interface identifier.

Table 65:  GlobalIfId 

Field

Type

Label

Description

global_if_id

uint32

Global interface identifier

3.10.3. IpAddrPrefLenPb

Represents IP prefix.

Table 66:  IpAddrPrefLenPb 

Field

Type

Label

Description

ip_addr

IpAddressPb

IP address

prefix_length

uint32

IP address prefix length

3.10.4. IpAddressPb

Represents IP address.

Table 67:  IpAddressPb 

Field

Type

Label

Description

addr

bytes

IP address

3.10.5. IpInterfaceAddrPrefixPb

Represents IP prefix state.

Table 68:  IpInterfaceAddrPrefixPb 

Field

Type

Label

Description

prefix

IpAddrPrefLenPb

IP prefix

state

IpAddressState

IP prefix state

3.10.6. MacAddressPb

Represents MAC address.

Table 69:  MacAddressPb 

Field

Type

Label

Description

mac_address

bytes

MAC address

3.10.7. MplsLabel

Represents MPLS label.

Table 70:  MplsLabel 

Field

Type

Label

Description

mpls_label

uint32

MPLS label

3.10.8. NetInstanceId

Represents network instance identifier.

Table 71:  NetInstanceId 

Field

Type

Label

Description

instance_id

uint32

Network instance identifier

3.10.9. PortIdPb

Represents port identifier.

Table 72:  PortIdPb 

Field

Type

Label

Description

port_id

uint64

Port identifier

3.10.10. SyncRequest

Empty message for synchronization request.

3.10.11. SyncResponse

Empty message for synchronization end.

Table 73:  SyncResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Error code

error_str

string

Detailed error string

3.10.12. IfEthernetPortSpeedType

Represents interface ethernet port speed. Corresponds to yang values

Table 74:  IfEthernetPortSpeedType 

Name

Number

Description

IF_ETH_PORT_SPEED_UNSET

0

Speed unknown

IF_ETH_PORT_SPEED_10M

1

IF_ETH_PORT_SPEED_100M

2

IF_ETH_PORT_SPEED_1G

3

IF_ETH_PORT_SPEED_10G

4

IF_ETH_PORT_SPEED_25G

5

IF_ETH_PORT_SPEED_40G

6

IF_ETH_PORT_SPEED_50G

7

IF_ETH_PORT_SPEED_100G

8

IF_ETH_PORT_SPEED_200G

9

IF_ETH_PORT_SPEED_400G

10

IF_ETH_PORT_SPEED_1T

11

3.10.13. IfMgrIfType

Represents interface type.

Table 75:  IfMgrIfType 

Name

Number

Description

ETHERNET

0

Ethernet interface

LOOPBACK

1

Loopback interface

MANAGEMENT

2

Management interface

AGGREGATE

3

Aggregate(LAG) interface

IRB

4

Integrated Routing and Bridging (IRB) interface

MAX

5

3.10.14. IfOperDownReason

Table 76:  IfOperDownReason 

Name

Number

Description

IF_OPER_DOWN_NONE

0

IF_OPER_DOWN_PORT_ADMIN_DISABLED

1

IF_OPER_DOWN_MDA_ADMIN_DISABLED

2

IF_OPER_DOWN_TRANS_ADMIN_DISABLED

3

IF_OPER_DOWN_MDA_NOT_PRESENT

4

IF_OPER_DOWN_TRANS_NOT_PRESENT

5

IF_OPER_DOWN_PHY_INIT

6

IF_OPER_DOWN_LOOPBACK

7

IF_OPER_DOWN_LOWER_LAYER_DOWN

8

IF_OPER_DOWN_MTU_RESOURCES

9

IF_OPER_DOWN_UNSUPPORTED_SPEED

10

IF_OPER_DOWN_UNSUPPORTED_TRANS_FEC

11

IF_OPER_DOWN_OTHER

12

IF_OPER_DOWN_PORT_NOT_PRESENT

13

used internally by chassis mgr only - never publish to IDB!

IF_OPER_DOWN_FABRIC_AVAILABILITY

14

used internally by chassis mgr only - never publish to IDB!

IF_OPER_DOWN_NO_ACTIVE_LINKS

15

lag interface only

IF_OPER_DOWN_MIN_LINK_THRESHOLD

16

lag interface only

3.10.15. IfOperStateType

Represents interface operational state.

Table 77:  IfOperStateType 

Name

Number

Description

IF_OPER_STATE_UP

0

Interface operational state up

IF_OPER_STATE_DOWN

1

Interface operational state down

IF_OPER_STATE_TESTING

2

Interface operational state testing

IF_OPER_STATE_UNKNOWN

3

Interface operational state unknown

IF_OPER_STATE_DORMANT

4

Interface operational state dormant

IF_OPER_STATE_NOT_PRESENT

5

Interface operational state not present

IF_OPER_STATE_LOWER_LAYER_DOWN

6

Interface operational state lower layer down

3.10.16. IfTransceiverFecType

Represents interface transceiver fec. Corresponds to yang values

Table 78:  IfTransceiverFecType 

Name

Number

Description

IF_TRANS_FEC_UNSET

0

Fec unknown

IF_TRANS_FEC_DISABLED

1

IF_TRANS_FEC_RS528

2

IF_TRANS_FEC_RS544

3

3.10.17. IpAddressState

Represents IP address state.

Table 79:  IpAddressState 

Name

Number

Description

IPADDR_STATE_UNKNOWN

0

IP address state unknown

IPADDR_STATE_TENTATIVE

1

IP address state tentative

IPADDR_STATE_DUPLICATED

2

IP address state duplicated

IPADDR_STATE_INACCESSIBLE

3

IP address state inaccessible

IPADDR_STATE_DEPRECATED

4

IP address state deprecated

IPADDR_STATE_PREFERRED

5

IP address state preferred

3.10.18. SdkMgrOperation

Represents enumeration value for operation in subscription.

Table 80:  SdkMgrOperation 

Name

Number

Description

Create

0

Create operation

Change

1

Change operation

Delete

2

Delete operation

3.10.19. SdkMgrStatus

Represents status of network programming service calls.

Table 81:  SdkMgrStatus 

Name

Number

Description

kSdkMgrSuccess

0

Successful service call

kSdkMgrFailed

1

Failed service call

3.11. sdk_service.proto

3.11.1. AgentRegistrationRequest

Represents registration request message used in agent register and unregister.

Table 82:  AgentRegistrationRequest 

Field

Type

Label

Description

js_path

string

repeated

Optional, JSON path formatted strings, which are used in telemetry. Format of js_path follows hierarchical YANG. for example: .interface{.name==*}.my_app. .my_app.tunnel{.name==*} '*'' needs to be replaced with a specific key.

agent_liveliness

uint32

Kill this agent unless a keepalive is received within this many seconds. Value of 0 means do not monitor this agent for liveliness.

3.11.2. AgentRegistrationResponse

Represents registration response in reply to registration request.

Table 83:  AgentRegistrationResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of the register; for example: kOk, kFailed

error_str

string

Detailed error text

app_id

uint32

Application ID assigned by SDK manager.

3.11.3. AppIdRequest

Represents application identifier request from agent. All applications are assigned an identifier by IDB.

Table 84:  AppIdRequest 

Field

Type

Label

Description

name

string

Application name

3.11.4. AppIdResponse

Represents application identifier response to agent.

Table 85:  AppIdResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of the call; for example, kOk, kFailed

id

uint32

Identifier for the given application name

3.11.5. KeepAliveRequest

Represents keep alive request from agent to refresh liveliness of the agent.

3.11.6. KeepAliveResponse

Represents keepalive response.

Table 86:  KeepAliveResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of keepalive; for example, kOk or kFailed

3.11.7. Notification

Represents notification stream response.

Table 87:  Notification 

Field

Type

Label

Description

sub_id

uint64

Subscription identifier

intf

InterfaceNotification

Interface details

nw_inst

NetworkInstanceNotification

Network instance details

lldp_neighbor

LldpNeighborNotification

LLDP neighbor details

config

ConfigNotification

Configuration notification

bfd_session

BfdSessionNotification

BFD session details

route

IpRouteNotification

IP route details

appid

AppIdentNotification

App identification details

nhg

NextHopGroupNotification

Next-hop group details

3.11.8. NotificationQueryRequest

Represents notification query to return specific subscription details.

Table 88:  NotificationQueryRequest 

Field

Type

Label

Description

stream_id

uint64

Stream identifier, in NotificationRegisterResponse

3.11.9. NotificationQueryResponse

Represents notification query response.

Table 89:  NotificationQueryResponse 

Field

Type

Label

Description

subscriptions

NotificationQuerySubscription

repeated

List of subscription details

status

SdkMgrStatus

Status of the query

3.11.10. NotificationQuerySubscription

Represents notification subscription.

Table 90:  NotificationQuerySubscription 

Field

Type

Label

Description

sub_id

uint64

Subscription identifier

description

string

Subscription description

3.11.11. NotificationRegisterRequest

Represents notification request from agent. Agent uses this message to subscribe to router events such as interface create, delete, or update, as well as LLDP neighbor create, delete, or update, and so on.

Table 91:  NotificationRegisterRequest 

Field

Type

Label

Description

stream_id

uint64

Unset on create, set otherwise

op

NotificationRegisterRequest.Operation

Specific operation in the notification register request

sub_id

uint64

Set for delete subscription, unset otherwise

intf

InterfaceSubscriptionRequest

Interface subscription request

nw_inst

NetworkInstanceSubscriptionRequest

Network instance subscription request

lldp_neighbor

LldpNeighborSubscriptionRequest

LLDP neighbor subscription request

config

ConfigSubscriptionRequest

Configuration subscription request

bfd_session

BfdSessionSubscriptionRequest

BFD session subscription request

route

IpRouteSubscriptionRequest

IP route subscription request

appid

AppIdentSubscriptionRequest

App identification subscription request

nhg

NextHopGroupSubscriptionRequest

Nexthop Group subscription request

3.11.12. NotificationRegisterResponse

Represents notification response.

Table 92:  NotificationRegisterResponse 

Field

Type

Label

Description

stream_id

uint64

Stream identifier. This needs to be passed to the SDK manager for further notification subscription changes specific to the current subscription

sub_id

uint64

Subscription identifier. Each subscription gets an identifier, which can be used to delete a subscription

status

SdkMgrStatus

Status of subscription

3.11.13. NotificationStreamRequest

Represents notification stream request.

Table 93:  NotificationStreamRequest 

Field

Type

Label

Description

stream_id

uint64

Stream identifier

3.11.14. NotificationStreamResponse

Represents notification stream response that contains one or more notification.

Table 94:  NotificationStreamResponse 

Field

Type

Label

Description

notification

Notification

repeated

Notification details

3.11.15. NotificationRegisterRequest.Operation

Represents notification stream subscription request operation.

Table 95:  NotificationRegisterRequest.Operation 

Name

Number

Description

Create

0

Create a subscription

Delete

1

Delete all subscriptions

AddSubscription

2

Add subscription to existing subscriptions

DeleteSubscription

3

Delete one subscription from existing subscriptions

3.11.16. SdkMgrService

Represents base service that defines agent registration, unregistration, notification subscriptions, and keepalive messages.

Table 96:  SdkMgrService 

Method Name

Request Type

Response Type

Description

AgentRegister

AgentRegistrationRequest

AgentRegistrationResponse

Register agent

AgentUnRegister

AgentRegistrationRequest

AgentRegistrationResponse

Unregister agent

NotificationRegister

NotificationRegisterRequest

NotificationRegisterResponse

Register for event notifications

NotificationQuery

NotificationQueryRequest

NotificationQueryResponse

Returns current or specific notification subscription details

KeepAlive

KeepAliveRequest

KeepAliveResponse

Send periodic keepalive message

GetAppId

AppIdRequest

AppIdResponse

Get application name from application identifier

3.11.17. SdkNotificationService

Represents service for handling notifications.

Table 97:  SdkNotificationService 

Method Name

Request Type

Response Type

Description

NotificationStream

NotificationStreamRequest

NotificationStreamResponse

Send stream of event notifications based on the agent subscriptions

3.12. telemetry_service.proto

3.12.1. TelemetryData

Represents telemetry data.

Table 98:  TelemetryData 

Field

Type

Label

Description

json_content

string

Structured JSON telemetry data

3.12.2. TelemetryDeleteRequest

Represents telemetry delete request.

Table 99:  TelemetryDeleteRequest 

Field

Type

Label

Description

key

TelemetryKey

repeated

Telemetry key

3.12.3. TelemetryDeleteResponse

Represents telemetry delete response.

Table 100:  TelemetryDeleteResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of delete request

error_str

string

Detailed error message

3.12.4. TelemetryInfo

Represents telemetry information.

Table 101:  TelemetryInfo 

Field

Type

Label

Description

key

TelemetryKey

Telemetry key

data

TelemetryData

Telemetry data

3.12.5. TelemetryKey

Represents telemetry key.

Table 102:  TelemetryKey 

Field

Type

Label

Description

js_path

string

JSON path referencing the key for telemetry data

3.12.6. TelemetryUpdateRequest

Represents telemetry update request.

Table 103:  TelemetryUpdateRequest 

Field

Type

Label

Description

state

TelemetryInfo

repeated

State of application

3.12.7. TelemetryUpdateResponse

Represents telemetry update response.

Table 104:  TelemetryUpdateResponse 

Field

Type

Label

Description

status

SdkMgrStatus

Status of telemetry update request

error_str

string

Detailed error message

3.12.8. SdkMgrTelemetryService

Represents service for telemetry service to store state data.

Table 105:  SdkMgrTelemetryService 

Method Name

Request Type

Response Type

Description

TelemetryAddOrUpdate

TelemetryUpdateRequest

TelemetryUpdateResponse

Add or update telemetry data

TelemetryDelete

TelemetryDeleteRequest

TelemetryDeleteResponse

Delete telemetry data

3.13. Scalar Values

Table 106:  Scalar Values 

.proto Type

Notes

C++

Java

Python

Go

C#

PHP

Ruby

double

double

double

float

float64

double

float

Float

float

float

float

float

float32

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

int32

int

integer

Bignum or Fixnum (as required)

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

int64

long

integer/string

Bignum

uint32

Uses variable-length encoding.

uint32

int

int/long

uint32

uint

integer

Bignum or Fixnum (as required)

uint64

Uses variable-length encoding.

uint64

long

int/long

uint64

ulong

integer/string

Bignum or Fixnum (as required)

sint32

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sint64

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.

int64

long

int/long

int64

long

integer/string

Bignum

fixed32

Always four bytes. More efficient than uint32 if values are often greater than 2^28.

uint32

int

int

uint32

uint

integer

Bignum or Fixnum (as required)

fixed64

Always eight bytes. More efficient than uint64 if values are often greater than 2^56.

uint64

long

int/long

uint64

ulong

integer/string

Bignum

sfixed32

Always four bytes.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sfixed64

Always eight bytes.

int64

long

int/long

int64

long

integer/string

Bignum

bool

bool

boolean

boolean

bool

bool

boolean

TrueClass/FalseClass

string

A string must always contain UTF-8 encoded or 7-bit ASCII text.

string

String

str/unicode

string

string

string

String (UTF-8)

bytes

May contain any arbitrary sequence of bytes.

string

ByteString

str

[]byte

ByteString

string

String (ASCII-8BIT)