func (h *E2SetupRequestNotificationHandler) Handle(request *models.NotificationRequest) {
ranName := request.RanName
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureNotInitiated)
h.logger.Infof("#E2SetupRequestNotificationHandler.Handle - RAN name: %s - received E2_SETUP_REQUEST. Payload: %x", ranName, request.Payload)
generalConfiguration, err := h.rNibDataService.GetGeneralConfiguration()
if !generalConfiguration.EnableRic {
cause := models.Cause{Misc: &models.CauseMisc{OmIntervention: &struct{}{}}}
h.handleUnsuccessfulResponse(ranName, request, cause, setupRequest)
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureFailure)
return
}
if _, ok := err.(*e2managererrors.UnknownSetupRequestRanNameError); ok {
cause := models.Cause{RicRequest: &models.CauseRic{RequestIdUnknown: &struct{}{}}}
h.handleUnsuccessfulResponse(ranName, request, cause, setupRequest)
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureFailure)
}
return
}
if err != nil {
h.fillCauseAndSendUnsuccessfulResponse(nodebInfo, request, setupRequest)
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureFailure)
return
}
}
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureOngoing)
ranStatusChangePublished, err := h.e2tAssociationManager.AssociateRan(e2tIpAddress, nodebInfo)
cause := models.Cause{Transport: &models.CauseTransport{TransportResourceUnavailable: &struct{}{}}}
h.handleUnsuccessfulResponse(nodebInfo.RanName, request, cause, setupRequest)
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureFailure)
}
return
}
}
h.handleSuccessfulResponse(ranName, request, setupRequest)
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureCompleted)
+ h.logger.Debugf("#E2SetupRequestNotificationHandler.Handle - updating the enum value to e2setup request completed")
}
func (h *E2SetupRequestNotificationHandler) handleUpdateAndPublishNodebInfo(functionsModified bool, ranStatusChangePublished bool, nodebInfo *entities.NodebInfo) error {
}
func (h *E2SetupRequestNotificationHandler) fillCauseAndSendUnsuccessfulResponse(nodebInfo *entities.NodebInfo, request *models.NotificationRequest, setupRequest *models.E2SetupRequestMessage) {
+ ranName := request.RanName
if nodebInfo.GetConnectionStatus() == entities.ConnectionStatus_DISCONNECTED {
cause := models.Cause{Misc: &models.CauseMisc{ControlProcessingOverload: &struct{}{}}}
h.handleUnsuccessfulResponse(nodebInfo.RanName, request, cause, setupRequest)
+ models.UpdateProcedureType(ranName, models.E2SetupProcedureFailure)
}
}