Cisco Service Layer API Documentation

SLRouteIPv4Oper

Service Description

This service declares both the Vrf Registration, as well as adding, deleting and getting IPv4 routes.

RPC Calls

rpc SLRoutev4Oper::SLRoutev4GlobalsGet (SLRouteGlobalsGetMsg) returns(SLRouteGlobalsGetMsgRsp)
 Global Route operations. More...
 
rpc SLRoutev4Oper::SLRoutev4GlobalStatsGet (SLRouteGlobalStatsGetMsg) returns(SLRouteGlobalStatsGetMsgRsp)
 Used to retrieve Global Route Stats.
 
rpc SLRoutev4Oper::SLRoutev4VrfRegOp (SLVrfRegMsg) returns(SLVrfRegMsgRsp)
 VRF registration operations. More...
 
rpc SLRoutev4Oper::SLRoutev4VrfRegGet (SLVrfRegGetMsg) returns(SLVrfRegGetMsgRsp)
 VRF get. Used to retrieve VRF attributes from the server.
 
rpc SLRoutev4Oper::SLRoutev4VrfGetStats (SLVrfRegGetMsg) returns(SLVRFGetStatsMsgRsp)
 Used to retrieve VRF Stats from the server.
 
rpc SLRoutev4Oper::SLRoutev4Op (SLRoutev4Msg) returns(SLRoutev4MsgRsp)
 Route operations. More...
 
rpc SLRoutev4Oper::SLRoutev4Get (SLRoutev4GetMsg) returns(SLRoutev4GetMsgRsp)
 Retrieves route attributes.
 
rpc SLRoutev4Oper::SLRoutev4OpStream (stream SLRoutev4Msg) returns(stream SLRoutev4MsgRsp)
 Stream Route operations. More...
 
rpc SLRoutev4Oper::SLRoutev4GetStream (stream SLRoutev4GetMsg) returns(stream SLRoutev4GetMsgRsp)
 Retrieves route attributes.
 
rpc SLRoutev4Oper::SLRoutev4GetNotifStream (stream SLRouteGetNotifMsg) returns(stream SLRoutev4Notif)
 Route Redistribution Operations. More...
 

Messages

message  SLRoutev4
 IPv4 route. More...
 
message  SLRoutev4Msg
 List of routes for bulk download. More...
 
message  SLRoutev4Res
 IPv4 route result, uniquely identified by the Prefix/PrefixLen pair. More...
 
message  SLRoutev4MsgRsp
 IPv4 bulk route result status. More...
 
message  SLRoutev4GetMsg
 Used to retrieve route attributes. More...
 
message  SLRoutev4GetMsgRsp
 Gt Route message response. More...
 
message  SLRoutev4NotifRoute
 IPv4 Route notification. More...
 
message  SLRoutev4Notif
 IPv4 notification message. More...
 

RPC Documentation

rpc SLRoutev4Oper::SLRoutev4GetNotifStream ( stream  SLRouteGetNotifMsg)

This call is used to get a stream of route notifications. It can be used to get "push" notifications for route adds/updates/deletes. The caller must maintain the GRPC channel as long as there is interest in route notifications.

The call takes a stream of per-VRF notification requests. The success/failure of the notification request is relayed in the SLRouteNotifStatus followed by a Start marker, any routes if present, and an End Marker.

rpc SLRoutev4Oper::SLRoutev4GlobalsGet ( SLRouteGlobalsGetMsg  )

Used to retrieve Global Route information

rpc SLRoutev4Oper::SLRoutev4Op ( SLRoutev4Msg  )

SLRoutev4Msg.Oper = SL_OBJOP_ADD: Route add. Fails if the route already exists.

SLRoutev4Msg.Oper = SL_OBJOP_UPDATE: Route update. Creates or updates the route.

SLRoutev4Msg.Oper = SL_OBJOP_DELETE: Route delete. The route path is not necessary to delete the route.

rpc SLRoutev4Oper::SLRoutev4OpStream ( stream  SLRoutev4Msg)

SLRoutev4Msg.Oper = SL_OBJOP_ADD: Route add. Fails if the route already exists.

SLRoutev4Msg.Oper = SL_OBJOP_UPDATE: Route update. Creates or updates the route.

SLRoutev4Msg.Oper = SL_OBJOP_DELETE: Route delete. The route path is not necessary to delete the route.

rpc SLRoutev4Oper::SLRoutev4VrfRegOp ( SLVrfRegMsg  )

SLVrfRegMsg.Oper = SL_REGOP_REGISTER: VRF registration: Sends a list of VRF registration messages and expects a list of registration responses. A client Must Register a VRF BEFORE routes can be added/modified in the associated VRF.

SLVrfRegMsg.Oper = SL_REGOP_UNREGISTER: VRF Un-registeration: Sends a list of VRF un-registration messages and expects a list of un-registration responses. This can be used to convey that the client is no longer interested in this VRF. All previously installed routes would be lost.

SLVrfRegMsg.Oper = SL_REGOP_EOF: VRF End Of File message. After Registration, the client is expected to send an EOF message to convey the end of replay of the client's known objects. This is especially useful under certain restart scenarios when the client and the server are trying to synchronize their Routes.


Message Documentation

message SLRoutev4

Attributes

uint32 Prefix = 1
 IPv4 Prefix Valid addresses: 0.0.0.0 1.0.0.0 - 223.255.255.255.
 
uint32 PrefixLen = 2
 IPv4 prefix length, [0-32].
 
SLRouteCommon RouteCommon = 3
 Common route attributes.
 
repeated SLRoutePath PathList = 4
 List of route paths for a particular route. More...
 

Member Data Documentation

repeated SLRoutePath SLRoutev4::PathList = 4

Specifying more than one path is allowed for ECMP/UCMP cases

message SLRoutev4Msg

Attributes

SLObjectOp Oper = 1
 Route Object Operations.
 
uint64 Correlator = 2
 Correlator. More...
 
string VrfName = 3
 VRF name.
 
repeated SLRoutev4 Routes = 4
 List of routes for the VRF specified above.
 

Member Data Documentation

uint64 SLRoutev4Msg::Correlator = 2

This can be used to correlate replies with requests. The Server simply reflects this field back in the reply.

message SLRoutev4Res

Attributes

SLErrorStatus ErrStatus = 1
 Corresponding error code.
 
uint32 Prefix = 2
 IPv4 Prefix.
 
uint32 PrefixLen = 3
 IPv4 prefix length, [0-32].
 
message SLRoutev4MsgRsp

Attributes

uint64 Correlator = 1
 Correlator. More...
 
string VrfName = 2
 VRF name (matches the VRF name of the original operation)
 
SLErrorStatus StatusSummary = 3
 Summary result of the bulk operation (refer to enum SLErrorStatus) In general, the StatusSummary implies one of 3 things: More...
 
repeated SLRoutev4Res Results = 4
 In case of errors, this field indicates which entry in the bulk was erroneous. More...
 

Member Data Documentation

uint64 SLRoutev4MsgRsp::Correlator = 1

This can be used to correlate replies with requests. The Server simply reflects this field back in the reply.

repeated SLRoutev4Res SLRoutev4MsgRsp::Results = 4
SLErrorStatus SLRoutev4MsgRsp::StatusSummary = 3
  1. SL_SUCCESS: signifies that the entire bulk operation was successful. In this case, the Results list is empty.
  2. SL_SOME_ERR: signifies that the operation failed for one or more entries. In this case, Results holds the result for each individual entry in the bulk.
  3. SL_RPC_XXX: signifies that the entire bulk operation failed. In this case, the Results list is empty.
message SLRoutev4GetMsg

Attributes

uint64 Correlator = 1
 Correlator. More...
 
string VrfName = 2
 VRF name. More...
 
uint32 Prefix = 3
 IPv4 Prefix.
 
uint32 PrefixLen = 4
 IPv4 prefix length, [0-32].
 
uint32 EntriesCount = 5
 Number of entries requested.
 
bool GetNext = 6
 if GetNext is FALSE: request up to 'EntriesCount' entries starting from the key If GetNext is TRUE, or if the key exact match is not found: request up to 'EntriesCount' entries starting from the key's next
 

Member Data Documentation

uint64 SLRoutev4GetMsg::Correlator = 1

This can be used to correlate stream replies with requests. The Server simply reflects this field back in the reply.

string SLRoutev4GetMsg::VrfName = 2

If the Key is not specified, then request up to the first 'EntriesCount' entries.

message SLRoutev4GetMsgRsp

Attributes

uint64 Correlator = 1
 Correlator. More...
 
bool Eof = 2
 End Of File. More...
 
string VrfName = 3
 VRF name.
 
SLErrorStatus ErrStatus = 4
 Status of the Get operation.
 
repeated SLRoutev4 Entries = 5
 Returned entries as requested in the Get operation. More...
 

Member Data Documentation

uint64 SLRoutev4GetMsgRsp::Correlator = 1

This can be used to correlate replies with requests. The Server simply reflects this field back in the reply.

repeated SLRoutev4 SLRoutev4GetMsgRsp::Entries = 5

if ErrStatus is SL_SUCCESS, Entries contains the info requested

bool SLRoutev4GetMsgRsp::Eof = 2

When set to True, it indicates that the server has returned M, where M < N, of the original N requested Entries.

message SLRoutev4NotifRoute

Attributes

string VrfName = 1
 VRF name.
 
repeated SLRoutev4 Entries = 2
 IPv4 routes.
 
message SLRoutev4Notif

Attributes

SLNotifType EventType = 1
 Event Type.
 
oneof Event
 Further info based on EventType. More...
 
SLRouteNotifStatus NotifStatus = 3
 case EventType == SL_EVENT_TYPE_STATUS: => This field carries the status of the GetNotifMsg request. More...
 
SLRoutev4NotifRoute Route = 4
 case EventType == SL_EVENT_TYPE_ROUTE: => This field carries the v4 route
 
SLRouteNotifMarker Marker = 5
 case EventType == SL_EVENT_TYPE_START_MARKER: case EventType == SL_EVENT_TYPE_END_MARKER: => This field carries the start marker and end marker per-VRF. More...
 
SLVrfNotif Vrf = 6
 case EventType == SL_EVENT_TYPE_VRF:
 

Member Data Documentation

oneof SLRoutev4Notif::Event
Initial value:
{
SLErrorStatus ErrStatus = 2
SLRouteNotifMarker SLRoutev4Notif::Marker = 5
SLRouteNotifStatus SLRoutev4Notif::NotifStatus = 3