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 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:
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. | |
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... | |
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 |
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. | |
uint32 SLGlobalsGetMsgRsp::MaxL2PmsiTunnelIdLength = 14 |
Used for L2 Inclusive Multicast Ethernet Tag (IMET) routes.
enum SLGlobalNotifType |
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. |