Cisco Service Layer API Documentation

SLGlobal

Service Description

The following RPCs are used in global initialization and capability queries.

RPC Calls

rpc SLGlobal::SLGlobalInitNotif (SLInitMsg) returns(stream SLGlobalNotif)
 Initialize the connection, and setup a notification channel. More...
 
rpc SLGlobal::SLGlobalsGet (SLGlobalsGetMsg) returns(SLGlobalsGetMsgRsp)
 Get platform specific globals.
 

Messages

message  SLInitMsg
 Initialization message sent to the server. More...
 
message  SLInitMsgRsp
 Server's response to the SLInitMsg. More...
 
message  SLVrfRouteReplayErrorNotif
 Routes replay error notification. More...
 
message  SLGlobalNotif
 Globals query message. More...
 
message  SLGlobalsGetMsg
 Globals query message. More...
 
message  SLGlobalsGetMsgRsp
 Platform specific globals Response. More...
 

Enumerations

enum  SLGlobalNotifType { SL_GLOBAL_EVENT_TYPE_RESERVED = 0x0, SL_GLOBAL_EVENT_TYPE_ERROR = 0x1, SL_GLOBAL_EVENT_TYPE_HEARTBEAT = 0x2, SL_GLOBAL_EVENT_TYPE_VERSION = 0x3 }
 Global Event Notification types. More...
 

RPC Documentation

rpc SLGlobal::SLGlobalInitNotif ( SLInitMsg  )

This MUST be the first call to setup the Service Layer connection.

The caller MUST maintain the notification channel to be able to communicate with the server. If this channel is not properly established and maintained, all other RPC requests are rejected.

The caller must send its version information as part of the SLInitMsg message. The server will reply with SL_GLOBAL_EVENT_TYPE_VERSION that tells the caller whether he can proceed or not. Refer to message SLGlobalNotif below for further details.

After the version handshake, the notification channel is used for "push" event notifications, such as:

  • SLGlobalNotif.EventType = SL_GLOBAL_EVENT_TYPE_HEARTBEAT heartbeat notification messages are sent to the client on a periodic basis. Refer to SLGlobalNotif definition for further info.

Message Documentation

message SLInitMsg

If the client and server are running compatible version numbers, a connection will be made and the server response will be received with a successful status code.

Attributes

uint32 MajorVer = 1
 Client's Major version of service-layer API (refer to sl_version.proto)
 
uint32 MinorVer = 2
 Minor Version.
 
uint32 SubVer = 3
 Sub-Version.
 
message SLInitMsgRsp

On Success (ErrStatus), the session with the server is established and the client is allowed to proceed.

Attributes

uint32 MajorVer = 1
 Server's version of service-layer API (refer to sl_version.proto) Major-number revisions are NOT backwards compatible, unless otherwise specified. More...
 
uint32 MinorVer = 2
 Minor Version.
 
uint32 SubVer = 3
 Sub-Version.
 

Member Data Documentation

uint32 SLInitMsgRsp::MajorVer = 1

The Server may reject a session if there is a version number mismatch or non-backwards compatibility.

message SLVrfRouteReplayErrorNotif

Attributes

string VrfName = 1
 VRF Name.
 
message SLGlobalNotif

Attributes

SLGlobalNotifType EventType = 1
 Event Type.
 
SLErrorStatus ErrStatus = 2
 Status code, interpreted based on the Event Type. More...
 
oneof Event
 Further info based on EventType. More...
 
SLVrfRouteReplayErrorNotif VrfReplayErrorNotif = 4
 case EventType == SL_GLOBAL_EVENT_TYPE_ERROR: case ErrStatus == SL_VRF_V4_ROUTE_REPLAY_FATAL_ERROR: case ErrStatus == SL_VRF_V6_ROUTE_REPLAY_FATAL_ERROR: case ErrStatus == SL_VRF_V4_ROUTE_REPLAY_OK: case ErrStatus == SL_VRF_V6_ROUTE_REPLAY_OK: => this field carries the failed VRF information. More...
 

Member Data Documentation

SLErrorStatus SLGlobalNotif::ErrStatus = 2

case EventType == SL_GLOBAL_EVENT_TYPE_ERROR: case ErrStatus == SL_NOTIF_TERM: => Another client is attempting to take over the session. This session will be closed. case ErrStatus == SL_VRF_V4_ROUTE_REPLAY_FATAL_ERROR: => IPv4 Routes replay failed for a VRF. See VrfReplayErrorNotif for details. case ErrStatus == SL_VRF_V6_ROUTE_REPLAY_FATAL_ERROR: => IPv6 Routes replay failed for a VRF. See VrfReplayErrorNotif for details. case ErrStatus == SL_ILM_REPLAY_FATAL_ERROR: => ILM replay failed. case ErrStatus == SL_VRF_V4_ROUTE_REPLAY_OK: => IPv4 Routes replay succeeded for a VRF. See VrfReplayErrorNotif for details. This notification is sent only if a SL_VRF_V4_ROUTE_REPLAY_FATAL_ERROR was sent earlier on the identified VRF. case ErrStatus == SL_VRF_V6_ROUTE_REPLAY_OK: => IPv6 Routes replay succeeded for a VRF. See VrfReplayErrorNotif for details. This notification is sent only if a SL_VRF_V6_ROUTE_REPLAY_FATAL_ERROR was sent earlier on the identified VRF. case ErrStatus == SL_ILM_REPLAY_OK: => ILM replay succeeded. This notification is sent only if a SL_ILM_REPLAY_FATAL_ERROR was sent earlier. case ErrStatus == (some error from SLErrorStatus) => Client must look into the specific error message returned.

case EventType == SL_GLOBAL_EVENT_TYPE_HEARTBEAT: case ErrStatus == SL_SUCCESS => Client can safely ignore this heartbeat message.

case EventType == SL_GLOBAL_EVENT_TYPE_VERSION: case ErrStatus == SL_SUCCESS => Client version accepted. case ErrStatus == SL_INIT_STATE_READY => Client version accepted. Any previous state was sucessfully recovered. case ErrStatus == SL_INIT_STATE_CLEAR => Client version accepted. Any previous state was lost. Client must replay all previous objects to server. case ErrStatus == SL_UNSUPPORTED_VER => Client and Server version mismatch. The client is not allowed to proceed, and the channel will be closed. case ErrStatus == (some error from SLErrorStatus) => Client must either try again, or look into the specific error message returned.

oneof SLGlobalNotif::Event
Initial value:
{
SLInitMsgRsp InitRspMsg = 3
SLVrfRouteReplayErrorNotif SLGlobalNotif::VrfReplayErrorNotif = 4
message SLGlobalsGetMsg
message SLGlobalsGetMsgRsp

Attributes

SLErrorStatus ErrStatus = 1
 Corresponding error code.
 
uint32 MaxVrfNameLength = 2
 Maximum vrf name length.
 
uint32 MaxInterfaceNameLength = 3
 Maximum interface name length.
 
uint32 MaxPathsPerEntry = 4
 Maximum paths per Route/ILM Entry.
 
uint32 MaxPrimaryPathPerEntry = 5
 Maximum primary paths per Route/ILM Entry.
 
uint32 MaxBackupPathPerEntry = 6
 Maximum backup paths per Route/ILM Entry.
 
uint32 MaxMplsLabelsPerPath = 7
 Maximum MPLS labels per Route/ILM Entry.
 
uint32 MinPrimaryPathIdNum = 8
 Minimum Primary path id number.
 
uint32 MaxPrimaryPathIdNum = 9
 Maximum Primary path id number.
 
uint32 MinBackupPathIdNum = 10
 Minimum Pure Backup path id number.
 
uint32 MaxBackupPathIdNum = 11
 Maximum Pure Backup path id number.
 
uint32 MaxRemoteAddressNum = 12
 Maximum number of remote addresses.
 
uint32 MaxL2BdNameLength = 13
 Maximum Bridge Domain name length - used for L2 routes.
 
uint32 MaxL2PmsiTunnelIdLength = 14
 Maximum Provider Multicast Service Interface (PMSI) tunnel ID length. More...
 
uint32 MaxLabelBlockClientNameLength = 15
 Maximum label block client name length.
 

Member Data Documentation

uint32 SLGlobalsGetMsgRsp::MaxL2PmsiTunnelIdLength = 14

Used for L2 Inclusive Multicast Ethernet Tag (IMET) routes.

Enumeration Type Documentation

Enumerator
SL_GLOBAL_EVENT_TYPE_RESERVED 

Reserved. 0x0.

SL_GLOBAL_EVENT_TYPE_ERROR 

Error. ErrStatus field elaborates on the message. 0x1.

SL_GLOBAL_EVENT_TYPE_HEARTBEAT 

HeartBeat. 0x2.

SL_GLOBAL_EVENT_TYPE_VERSION 

Version. SLInitMsgRsp field elaborates on the server version. 0x3.