Global Initialization and Notifications.
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 application level heartbeat 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 | ) |
Initialize the connection, and setup a application level heartbeat channel.
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 |
Initialization message sent to the server.
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 |
Server's response to the SLInitMsg.
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 |
Server's version of service-layer API (refer to sl_version.proto) Major-number revisions are NOT backwards compatible, unless otherwise specified.
The Server may reject a session if there is a version number mismatch or non-backwards compatibility.
message SLVrfRouteReplayErrorNotif |
Routes replay error notification.
Attributes | |
string | VrfName = 1 |
VRF Name. | |
message SLGlobalNotif |
Globals query message.
Attributes | |
SLGlobalNotifType | EventType = 1 |
Event Type. | |
SLErrorStatus | ErrStatus = 2 |
Status code, interpreted based on the Event Type. More... | |
oneof { | |
SLInitMsgRsp InitRspMsg = 3 | |
case EventType == SL_GLOBAL_EVENT_TYPE_VERSION: => this field carries the Server version number. More... | |
SLVrfRouteReplayErrorNotif VrfReplayErrorNotif = 4 [deprecated = true] | |
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... | |
}; | |
Further info based on EventType. | |
SLErrorStatus SLGlobalNotif::ErrStatus = 2 |
Status code, interpreted based on the Event Type.
case EventType == SL_GLOBAL_EVENT_TYPE_ERROR: 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.
SLInitMsgRsp SLGlobalNotif::InitRspMsg = 3 |
case EventType == SL_GLOBAL_EVENT_TYPE_VERSION: => this field carries the Server version number.
SLVrfRouteReplayErrorNotif SLGlobalNotif::VrfReplayErrorNotif = 4 [deprecated = true] |
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.
message SLGlobalsGetMsg |
Globals query message.
message SLGlobalsGetMsgRsp |
Platform specific globals Response.
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 | MaxPathsInNexthopNotif = 16 |
Maximum paths returned by the network element for a next hop notification. | |
uint32 | MaxVrfRegPerMsg = 17 |
Max SLVrfReg objects within a SLVrfRegMsg or SLAFVrfRegMsg. | |
uint32 | MaxAFOpsPerMsg = 18 |
Max Route or AF objects within a single RouteMsg or SLAFMsg. | |
uint32 | MaxNotifReqPerSLAFNotifReq = 19 |
Max SLAFNotifRegReq requests in SLAFNotifReq. | |
uint32 SLGlobalsGetMsgRsp::MaxL2PmsiTunnelIdLength = 14 |
Maximum Provider Multicast Service Interface (PMSI) tunnel ID length.
Used for L2 Inclusive Multicast Ethernet Tag (IMET) routes.
enum SLGlobalNotifType |
Global Event Notification types.
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. |