Defines RPC calls for L2 route changes and Bridge-Domain (BD) registration.
This service declares calls for adding, deleting, updating and getting L2 routes.
RPC Calls | |
rpc | SLL2Oper::SLL2GlobalsGet (SLL2GlobalsGetMsg) returns(SLL2GlobalsGetMsgRsp) |
Global L2 route operations. More... | |
rpc | SLL2Oper::SLL2RegOp (SLL2RegMsg) returns(SLL2RegMsgRsp) |
L2 Registration Operations. More... | |
rpc | SLL2Oper::SLL2BdRegOp (SLL2BdRegMsg) returns(SLL2BdRegMsgRsp) |
L2 Bridge-Domain (BD) Registration Operations. More... | |
rpc | SLL2Oper::SLL2RouteOp (SLL2RouteMsg) returns(SLL2RouteMsgRsp) |
L2 Route Operations. More... | |
rpc | SLL2Oper::SLL2RouteOpStream (stream SLL2RouteMsg) returns(stream SLL2RouteMsgRsp) |
L2 Stream Route Operations. More... | |
rpc | SLL2Oper::SLL2GetNotifStream (stream SLL2GetNotifMsg) returns(stream SLL2Notif) |
L2 Route Redistribution Operations. More... | |
Messages | |
message | SLL2GlobalsGetMsg |
L2 Route Globals Get Message. More... | |
message | SLL2GlobalsGetMsgRsp |
L2 Route Globals Get Message Response. More... | |
message | SLL2RegMsg |
Global L2 Registration Message. More... | |
message | SLL2RegMsgRsp |
Global L2 Registration message Response. More... | |
message | SLL2BdRegMsg |
L2 Bridge-Domain (BD) Registration Messages. More... | |
message | SLL2BdRegRes |
BD Registration message Result. More... | |
message | SLL2BdRegMsgRsp |
BD Registration message Response. More... | |
message | SLL2RouteEsi |
Ethernet Segment Identifier (ESI) More... | |
message | SLL2RouteNh |
Nexthop info. More... | |
message | SLL2OverlayNh |
Overlay nexthop info. More... | |
message | SLL2MacRouteKey |
MAC route key. More... | |
message | SLL2MacRoute |
Type 2 EVPN MAC route. More... | |
message | SLL2ImetRouteKey |
IMET route key. More... | |
message | SLL2ImetRoute |
Type-3 EVPN IMET Route. More... | |
message | SLL2RouteKey |
L2 route key. More... | |
message | SLL2Route |
L2 route. More... | |
message | SLL2RouteMsg |
Batch of L2 Routes for bulk download. More... | |
message | SLL2RouteRes |
L2 route result, uniquely identified by BD + L2 route key. More... | |
message | SLL2RouteMsgRsp |
L2 bulk download response. More... | |
message | SLL2GetNotifMsg |
L2 Get Notifications message. More... | |
message | SLL2RouteNotif |
L2 Route notification. More... | |
message | SLL2BdStateInfo |
Bridge-Domain (BD) state info. More... | |
message | SLL2NotifStatusMsg |
L2 Notification Status message. More... | |
message | SLL2Notif |
L2 Notification. More... | |
Enumerations | |
enum | SLL2RouteType { SL_L2_ROUTE_RESERVED = 0x0, SL_L2_ROUTE_MAC = 0x1, SL_L2_ROUTE_IMET = 0x2 } |
L2 Route Types that can be programmed by client. More... | |
enum | SLL2NotifType { SL_L2_EVENT_TYPE_RESERVED = 0x0, SL_L2_EVENT_TYPE_ERROR = 0x1, SL_L2_EVENT_TYPE_STATUS = 0x2, SL_L2_EVENT_TYPE_START_MARKER = 0x3, SL_L2_EVENT_TYPE_BD_STATE = 0x4, SL_L2_EVENT_TYPE_BD_STATE_END_MARKER = 0x5, SL_L2_EVENT_TYPE_ROUTE = 0x6, SL_L2_EVENT_TYPE_ROUTE_END_MARKER = 0x7 } |
L2 Notification types. More... | |
rpc SLL2Oper::SLL2BdRegOp | ( | SLL2BdRegMsg | ) |
L2 Bridge-Domain (BD) Registration Operations.
SLL2BdRegMsg.Oper = SL_REGOP_REGISTER: BD registration: Sends a list of BD registration messages and expects a list of registration responses. A client Must Register a BD BEFORE L2 Routes can be added/modified in that BD.
SLL2BdRegMsg.Oper = SL_REGOP_UNREGISTER: BD un-registration: Sends a list of BD 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 programming routes in this BD. All installed L2 routes will be removed.
SLL2BdRegMsg.Oper = SL_REGOP_EOF: BD 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 in that BD. This is especially useful under certain restart scenarios when the client and the server are trying to synchronize their routes.
rpc SLL2Oper::SLL2GetNotifStream | ( | stream | SLL2GetNotifMsg | ) |
L2 Route Redistribution Operations.
This call is used to get a stream of BD state and 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 3 types of notification requests:
The success/failure of the notification request is relayed in the SLL2NotifStatusMsg followed by a Start marker, any routes if present, and an End Marker.
After all requests are sent, client should send GetNotifEof = TRUE.
rpc SLL2Oper::SLL2GlobalsGet | ( | SLL2GlobalsGetMsg | ) |
Global L2 route operations.
Used to retrieve global L2 info from the server.
rpc SLL2Oper::SLL2RegOp | ( | SLL2RegMsg | ) |
L2 Registration Operations.
SLL2RegMsg.Oper = SL_REGOP_REGISTER: Global L2 registration. A client Must Register BEFORE sending BD registration messages (to add/update/delete routes) or BEFORE requesting for L2 route notifications.
SLL2RegMsg.Oper = SL_REGOP_UNREGISTER: Global L2 un-registration. This call is used to convey that the client is no longer interested in programming L2 routes and in receiving L2 route notifications. All programmed L2 routes will be deleted on the server and the server will stop sending L2 route notifications.
SLL2RegMsg.Oper = SL_REGOP_EOF: Global L2 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 and to convey the end of requests for L2 route notifications. This is especially useful under certain restart scenarios when the client and the server are trying to synchronize their routes.
rpc SLL2Oper::SLL2RouteOp | ( | SLL2RouteMsg | ) |
L2 Route Operations.
SLL2RouteMsg.Oper = SL_OBJOP_ADD: Route add. Fails if the route already exists.
SLL2RouteMsg.Oper = SL_OBJOP_UPDATE: Route update. Creates or updates the route.
SLL2RouteMsg.Oper = SL_OBJOP_DELETE: Route delete. The route path is not necessary to delete the route.
rpc SLL2Oper::SLL2RouteOpStream | ( | stream | SLL2RouteMsg | ) |
L2 Stream Route Operations.
Stream adds/updates/deletes of L2 Routes.
message SLL2GlobalsGetMsg |
L2 Route Globals Get Message.
message SLL2GlobalsGetMsgRsp |
L2 Route Globals Get Message Response.
Attributes | |
SLErrorStatus | ErrStatus = 1 |
Corresponding error code. | |
uint32 | MaxBdRegPerBdRegmsg = 2 |
Max BD registration objects within a single BdRegMsg. | |
uint32 | MaxRoutePerRoutemsg = 3 |
Max Route objects within a single RouteMsg. | |
message SLL2RegMsg |
Global L2 Registration Message.
Attributes | |
SLRegOp | Oper = 1 |
Registration Operation. | |
uint32 | AdminDistance = 2 |
Default Admin distance for routes programmed by this application. More... | |
uint32 | PurgeIntervalSeconds = 3 |
In case Service Layer -> L2RIB connection is lost, this specifies the timeout period after which L2RIB will automatically purge the installed routes, unless the service layer: More... | |
uint32 SLL2RegMsg::AdminDistance = 2 |
Default Admin distance for routes programmed by this application.
Range [0-255]. If the client does not need to program routes, set this value to 0.
uint32 SLL2RegMsg::PurgeIntervalSeconds = 3 |
In case Service Layer -> L2RIB connection is lost, this specifies the timeout period after which L2RIB will automatically purge the installed routes, unless the service layer:
message SLL2RegMsgRsp |
Global L2 Registration message Response.
Attributes | |
SLErrorStatus | RegStatus = 1 |
Error code. | |
message SLL2BdRegMsg |
message SLL2BdRegRes |
BD Registration message Result.
Attributes | |
SLErrorStatus | ErrStatus = 1 |
Corresponding error code. | |
string | BdName = 2 |
BD Name. | |
message SLL2BdRegMsgRsp |
BD Registration message Response.
Attributes | |
SLErrorStatus | StatusSummary = 1 |
Summary result of the bulk operation (refer to enum SLErrorStatus) In general, the StatusSummary implies one of 3 things: More... | |
repeated SLL2BdRegRes | Results = 2 |
In case of errors, this field indicates which entry in the bulk was erroneous. More... | |
repeated SLL2BdRegRes SLL2BdRegMsgRsp::Results = 2 |
In case of errors, this field indicates which entry in the bulk was erroneous.
SLErrorStatus SLL2BdRegMsgRsp::StatusSummary = 1 |
Summary result of the bulk operation (refer to enum SLErrorStatus) In general, the StatusSummary implies one of 3 things:
message SLL2RouteEsi |
Ethernet Segment Identifier (ESI)
Attributes | |
bytes | Esi = 1 |
10-bytes long ESI value | |
message SLL2RouteNh |
Nexthop info.
Public Types | |
enum | SLL2RouteNhType { SL_L2_NH_RESERVED = 0x0, SL_L2_NH_INTERFACE = 0x1, SL_L2_NH_OVERLAY = 0x2 } |
Next Hop types. More... | |
Attributes | |
SLL2RouteNhType | NhType = 1 |
oneof { | |
SLInterface NhInterface = 2 | |
case NhType == SL_L2_NH_INTERFACE => This field carries the interface nexthop. More... | |
SLL2OverlayNh NhOverlay = 3 | |
case NhType == SL_L2_NH_OVERLAY => This field carries the overlay nexthop. More... | |
}; | |
Next Hop data based on type. | |
SLInterface SLL2RouteNh::NhInterface = 2 |
case NhType == SL_L2_NH_INTERFACE => This field carries the interface nexthop.
SLL2OverlayNh SLL2RouteNh::NhOverlay = 3 |
case NhType == SL_L2_NH_OVERLAY => This field carries the overlay nexthop.
message SLL2OverlayNh |
Overlay nexthop info.
Attributes | |
SLIpAddress | OverlayNhIp = 1 |
IPv4 or IPv6 address. | |
SLEncapType | OverlayNhEncap = 2 |
Encap type. | |
uint32 | OverlayNhLabel = 3 |
L2 label for encap type MPLS, this will be remote MPLS label for encap type VXLAN, this will be L2 VNI. More... | |
repeated uint32 | OverlayNhL3Label = 4 |
L3 label for encap type MPLS, this will be a stack of MPLS labels. More... | |
bytes | OverlayNhRouterMac = 5 |
Router MAC. | |
repeated uint32 SLL2OverlayNh::OverlayNhL3Label = 4 |
L3 label for encap type MPLS, this will be a stack of MPLS labels.
for encap type VXLAN, this will be L3 VNI.
uint32 SLL2OverlayNh::OverlayNhLabel = 3 |
L2 label for encap type MPLS, this will be remote MPLS label for encap type VXLAN, this will be L2 VNI.
message SLL2MacRouteKey |
MAC route key.
Attributes | |
bytes | MacAddress = 1 |
Mac address. | |
SLIpAddress | IpAddress = 2 |
IP address. | |
message SLL2MacRoute |
Type 2 EVPN MAC route.
Attributes | |
SLL2MacRouteKey | RouteKey = 1 |
Mac route key. | |
uint32 | SequenceNum = 2 |
Sequence number. | |
SLL2RouteEsi | MacEsi = 3 |
ESI. | |
repeated SLL2RouteNh | NextHopList = 4 |
List of NHs for this host. | |
message SLL2ImetRouteKey |
IMET route key.
Attributes | |
uint32 | EthTagId = 1 |
Ethernet Tag ID. | |
SLIpAddress | IpAddress = 2 |
Ipv4 or Ipv6 address. | |
message SLL2ImetRoute |
Type-3 EVPN IMET Route.
Public Types | |
enum | PMSITunnelType { PMSI_NO_TUNNEL = 0, PMSI_RSVPP2MP_TUNNEL = 1, PMSI_MLDPP2MP_TUNNEL = 2, PMSI_PIMSSM_TUNNEL = 3, PMSI_PIMSM_TUNNEL = 4, PMSI_PIMBIDIR_TUNNEL = 5, PMSI_INGREP_TUNNEL = 6, PMSI_MLDPMP2MP_TUNNEL = 7 } |
Provider Multicast Service Interface (PMSI) tunnel type. More... | |
Attributes | |
SLL2ImetRouteKey | RouteKey = 1 |
IMET Route Key. | |
SLEncapType | EncapType = 2 |
Encapsulation type (VXLAN or MPLS) | |
uint32 | Label = 3 |
For ENCAP_VXLAN, this field will specify the L2 Virtual Network Identifier (VNI) | |
PMSITunnelType | TunnelType = 4 |
uint32 | TunnelIdLength = 5 |
bytes | TunnelIdValue = 6 |
When the type is set to Ingress Replication the Tunnel Identifier carries the unicast tunnel endpoint IP address of the local PE that is to be this PE's receiving endpoint address for the tunnel. More... | |
Provider Multicast Service Interface (PMSI) tunnel type.
bytes SLL2ImetRoute::TunnelIdValue = 6 |
When the type is set to Ingress Replication the Tunnel Identifier carries the unicast tunnel endpoint IP address of the local PE that is to be this PE's receiving endpoint address for the tunnel.
message SLL2RouteKey |
L2 route key.
Attributes | |
string | BdName = 1 |
BD name. | |
SLL2RouteType | Type = 2 |
L2 Route Type. | |
oneof { | |
SLL2MacRouteKey MacKey = 3 | |
case Type == SL_L2_ROUTE_MAC: => Carries the Mac Route Key | |
SLL2ImetRouteKey ImetKey = 4 | |
case Type == SL_L2_ROUTE_IMET: => Carries the IMET Route Key | |
}; | |
Further info based on Route Type. | |
message SLL2Route |
L2 route.
Attributes | |
string | BdName = 1 |
BD name. | |
SLL2RouteType | Type = 2 |
L2 Route Type to be programmed. | |
oneof { | |
SLL2MacRoute MacRoute = 3 | |
case Type == SL_L2_ROUTE_MAC: => Carries the Mac Route details | |
SLL2ImetRoute ImetRoute = 4 | |
case Type == SL_L2_ROUTE_IMET: => Carries the IMET route details | |
}; | |
Further info based on Route Type. | |
message SLL2RouteMsg |
Batch of L2 Routes for bulk download.
Attributes | |
uint64 | Correlator = 1 |
Correlator. More... | |
SLObjectOp | Oper = 2 |
Route Object Operations. | |
repeated SLL2Route | Routes = 3 |
List of L2 Routes The list may contain routes from different BDs. More... | |
uint64 SLL2RouteMsg::Correlator = 1 |
Correlator.
This can be used to correlate replies with requests. The Server simply reflects this field back in the reply.
repeated SLL2Route SLL2RouteMsg::Routes = 3 |
List of L2 Routes The list may contain routes from different BDs.
message SLL2RouteRes |
L2 route result, uniquely identified by BD + L2 route key.
Attributes | |
SLErrorStatus | ErrStatus = 1 |
Corresponding error code. | |
SLL2RouteKey | RouteKey = 2 |
L2 Route Key. | |
message SLL2RouteMsgRsp |
L2 bulk download response.
Attributes | |
uint64 | Correlator = 1 |
Correlator. More... | |
SLErrorStatus | StatusSummary = 2 |
Summary result of the bulk operation (refer to enum SLErrorStatus) In general, the StatusSummary implies one of 3 things: More... | |
repeated SLL2RouteRes | Results = 3 |
In case of errors, this field indicates which entry in the bulk was erroneous. More... | |
uint64 SLL2RouteMsgRsp::Correlator = 1 |
Correlator.
This can be used to correlate replies with requests. The Server simply reflects this field back in the reply.
repeated SLL2RouteRes SLL2RouteMsgRsp::Results = 3 |
In case of errors, this field indicates which entry in the bulk was erroneous.
SLErrorStatus SLL2RouteMsgRsp::StatusSummary = 2 |
Summary result of the bulk operation (refer to enum SLErrorStatus) In general, the StatusSummary implies one of 3 things:
message SLL2GetNotifMsg |
L2 Get Notifications message.
Attributes | |
SLNotifOp | Oper = 1 |
Oper = SL_NOTIFOP_ENABLE This is to enable route notifications Oper = SL_NOTIFOP_DISABLE This is to disable route notifications. | |
uint64 | Correlator = 2 |
Correlator. More... | |
bool | GetNotifEof = 3 |
End of file. More... | |
oneof { | |
bool BdAll = 4 | |
If the notification request is for routes in all BDs - set to TRUE. | |
string BdName = 5 | |
If the notification request is for routes in a specific BD, pass the name. More... | |
}; | |
string SLL2GetNotifMsg::BdName = 5 |
If the notification request is for routes in a specific BD, pass the name.
uint64 SLL2GetNotifMsg::Correlator = 2 |
Correlator.
This is used to correlate GetNotifMsg with NotifMsgStatus. The server reflects this field in the reply.
bool SLL2GetNotifMsg::GetNotifEof = 3 |
End of file.
When set to True, it indicates that the client is done with sending requests for notifications.
It is useful when client is sending per-BD notification requests. The client can send this after receiving SL_L2_EVENT_TYPE_BD_STATE_END_MARKER.
message SLL2RouteNotif |
L2 Route notification.
Attributes | |
SLObjectOp | Oper = 1 |
Route Object Operations. | |
SLL2Route | Routes = 2 |
L2 route. | |
message SLL2BdStateInfo |
Bridge-Domain (BD) state info.
Public Types | |
enum | SLL2BdState { SL_L2_BD_STATE_RESERVED = 0x0, SL_L2_BD_STATE_ADDED = 0x1, SL_L2_BD_STATE_DELETED = 0x2, SL_L2_BD_STATE_REPLAY_NEEDED = 0x3 } |
BD states. More... | |
Attributes | |
string | BdName = 1 |
BD name. | |
SLL2BdState | BdState = 2 |
BD states.
message SLL2NotifStatusMsg |
L2 Notification Status message.
Attributes | |
SLNotifOp | Oper = 1 |
Notification Operation in the request. | |
uint64 | Correlator = 2 |
Correlator in the request. | |
string | BdName = 3 |
BD in the request. More... | |
SLErrorStatus | NotifStatus = 4 |
The NotifStatus implies one of 2 things: SL_SUCCESS: signifies that the notification request was successful SL_XXX: signifies an error in setting up a notification. More... | |
string SLL2NotifStatusMsg::BdName = 3 |
BD in the request.
This is not set if the request was for all BDs
SLErrorStatus SLL2NotifStatusMsg::NotifStatus = 4 |
The NotifStatus implies one of 2 things: SL_SUCCESS: signifies that the notification request was successful SL_XXX: signifies an error in setting up a notification.
If BdName is passed, it implies that notifications for the BD will not be sent.
message SLL2Notif |
L2 Notification.
Attributes | |
SLL2NotifType | EventType = 1 |
L2 Notification type. | |
oneof { | |
SLErrorStatus ErrStatus = 2 | |
case EventType == SL_L2_EVENT_TYPE_ERROR: => This field carries error info, if any error occurs during notification subscription. More... | |
SLL2NotifStatusMsg NotifStatus = 3 | |
case EventType == SL_L2_EVENT_TYPE_STATUS: => This field carries the status of the GetNotifMsg request. More... | |
SLL2BdStateInfo BdStateInfo = 4 | |
case EventType == SL_L2_EVENT_TYPE_BD_STATE: => This field carries the BD state notification | |
SLL2RouteNotif Route = 5 | |
case EventType == SL_L2_EVENT_TYPE_ROUTE: => This field carries the L2 route | |
}; | |
Further info based on EventType. | |
SLErrorStatus SLL2Notif::ErrStatus = 2 |
case EventType == SL_L2_EVENT_TYPE_ERROR: => This field carries error info, if any error occurs during notification subscription.
SLL2NotifStatusMsg SLL2Notif::NotifStatus = 3 |
case EventType == SL_L2_EVENT_TYPE_STATUS: => This field carries the status of the GetNotifMsg request.
enum SLL2NotifType |
L2 Notification types.
enum SLL2RouteType |