*
******************************************************************/
-uint8_t BuildAndSendErrorIndication(int8_t transId, RicRequestId requestId, uint16_t ranFuncId, E2FailureCause failureCause)
+uint8_t BuildAndSendErrorIndication(uint16_t transId, RicRequestId requestId, uint16_t ranFuncId, E2FailureCause failureCause)
{
uint8_t elementCnt =0, arrIdx=0, ret = RFAILED;
E2AP_PDU_t *e2apMsg = NULLP;
void procE2NodeConfigUpdateFailure(E2AP_PDU_t *e2apMsg)
{
- uint8_t arrIdx =0, transId =0, timerValue=0;
+ uint8_t arrIdx =0, timerValue=0;
+ uint16_t transId =0;
E2nodeConfigurationUpdateFailure_t *e2NodeCfgUpdFail=NULL;
DU_LOG("\nINFO --> E2AP : E2 Node Config Update failure received");
uint8_t BuildAndSendE2SetupReq()
{
- uint8_t arrIdx = 0, elementCnt=0;
- uint8_t transId = 0, ret = RFAILED;
+ uint16_t transId = 0;
+ uint8_t arrIdx = 0, elementCnt=0, ret =RFAILED;
bool memAllocFailed = false;
E2AP_PDU_t *e2apMsg = NULLP;
E2setupRequest_t *e2SetupReq = NULLP;
void procE2SetupRsp(E2AP_PDU_t *e2apMsg)
{
bool invalidTransId = false;
- uint8_t arrIdx =0, transId=0, idx=0;
+ uint8_t arrIdx =0, idx=0;
+ uint16_t transId=0;
uint32_t recvBufLen;
E2setupResponse_t *e2SetRspMsg=NULL;
+ RANfunctionsID_List_t *ranFuncAcceptedList=NULL;
+ RANfunctionID_ItemIEs_t *ranFuncAcceptedItemIe=NULL;
+ RANfunctionsIDcause_List_t *ranFuncRejectedList=NULL;
+ RANfunctionIDcause_ItemIEs_t *ranFuncRejectedItemIe=NULL;
E2nodeComponentConfigAdditionAck_List_t *e2NodeCfgAckList=NULL;
E2nodeComponentConfigAdditionAck_ItemIEs_t *e2NodeAddAckItem=NULL;
{
e2NodeAddAckItem = (E2nodeComponentConfigAdditionAck_ItemIEs_t*) e2NodeCfgAckList->list.array[idx];
handleE2NodeConfigUpdateAckIes((PTR)&e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item,\
- ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck);
+ ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck);
+ }
+ break;
+ }
+ case ProtocolIE_IDE2_id_RANfunctionsAccepted:
+ {
+ ranFuncAcceptedList = &e2SetRspMsg->protocolIEs.list.array[arrIdx]->value.choice.RANfunctionsID_List;
+ for(idx =0; idx <ranFuncAcceptedList->list.count; idx++)
+ {
+ ranFuncAcceptedItemIe = (RANfunctionID_ItemIEs_t*)ranFuncAcceptedList->list.array[idx];
+ DU_LOG("\nINFO --> E2AP : Ran function id [%ld] accepted",ranFuncAcceptedItemIe->value.choice.RANfunctionID_Item.ranFunctionID);
}
break;
}
+ case ProtocolIE_IDE2_id_RANfunctionsRejected:
+ {
+ ranFuncRejectedList = &e2SetRspMsg->protocolIEs.list.array[arrIdx]->value.choice.RANfunctionsIDcause_List;
+ for(idx =0; idx <ranFuncRejectedList->list.count; idx++)
+ {
+ ranFuncRejectedItemIe = (RANfunctionIDcause_ItemIEs_t*)ranFuncRejectedList->list.array[idx];
+ DU_LOG("\nINFO --> E2AP : Ran function id [%ld] rejected",ranFuncRejectedItemIe->value.choice.RANfunctionIDcause_Item.ranFunctionID);
+ }
+ break;
+ }
default:
{
DU_LOG("\nERROR --> E2AP : Invalid IE received in E2SetupRsp:%ld",
ranFuncDb->numPendingSubsRsp++;
-#ifdef KPI_CALCULATION
/* Send statistics request to other DU entities */
BuildAndSendStatsReq(ricSubscriptionInfo);
-#endif
}
else
{
uint8_t BuildAndSendE2NodeConfigUpdate(E2NodeConfigList *e2NodeList)
{
uint8_t ret = RFAILED;
- uint8_t arrIdx = 0,elementCnt = 0, transId=0;
+ uint8_t arrIdx = 0,elementCnt = 0;
+ uint16_t transId=0;
E2AP_PDU_t *e2apMsg = NULLP;
asn_enc_rval_t encRetVal; /* Encoder return value */
E2nodeConfigurationUpdate_t *e2NodeConfigUpdate = NULLP;
* ****************************************************************/
uint8_t BuildAndSendE2ResetRequest(E2FailureCause resetCause)
{
- uint8_t ieIdx = 0, elementCnt = 0, transId = 0;
+ uint8_t ieIdx = 0, elementCnt = 0;
+ uint16_t transId = 0;
uint8_t ret = RFAILED;
E2AP_PDU_t *e2apMsg = NULLP;
ResetRequestE2_t *resetReq = NULLP;
void procResetResponse(E2AP_PDU_t *e2apMsg)
{
bool invalidTransId=false;
- uint8_t ieIdx =0, transId =0;
+ uint8_t ieIdx =0;
+ uint16_t transId =0;
uint16_t ranFuncIdx=0;
ResetResponseE2_t *resetResponse =NULLP;
* ****************************************************************/
void procE2SetupFailure(E2AP_PDU_t *e2apMsg)
{
- uint8_t arrIdx =0, transId =0, timerValue=0;
+ uint16_t transId =0;
+ uint8_t arrIdx =0, timerValue=0;
E2setupFailure_t *e2SetupFailure;
DU_LOG("\nINFO --> E2AP : E2 Setup failure received");
uint8_t BuildAndSendRicServiceUpdate(RicServiceUpdate serviceUpdate)
{
- uint8_t arrIdx = 0, elementCnt=0;
- uint8_t transId = 0, ret = RFAILED;
+ uint16_t transId = 0;
bool memAllocFailed =false;
+ uint8_t arrIdx = 0, elementCnt=0,ret = RFAILED;
E2AP_PDU_t *e2apMsg = NULLP;
RICserviceUpdate_t *ricServiceUpdate = NULLP;
asn_enc_rval_t encRetVal; /* Encoder return value */
void procRicServiceUpdateAck(E2AP_PDU_t *e2apMsg)
{
- uint8_t arrIdx =0, transId =0;
+ uint8_t arrIdx =0;
+ uint16_t transId =0;
uint16_t id =0, tmpIdx=0, ranFuncIdx=0;
RicServiceUpdate serviceUpdate;
RANfunctionsIDcause_List_t *rejectedList=NULL;
* RFAILED - failure
*
* ****************************************************************/
-uint8_t BuildAndSendResetResponse(uint8_t transId)
+uint8_t BuildAndSendResetResponse(uint16_t transId)
{
uint8_t ieIdx = 0, elementCnt = 0;
uint8_t ret = RFAILED;
void procE2ResetRequest(E2AP_PDU_t *e2apMsg)
{
+ uint8_t arrIdx =0;
+ uint16_t transId =0;
uint16_t ranFuncIdx=0;
- uint8_t arrIdx =0, transId =0;
ResetRequestE2_t *resetReq;
DU_LOG("\nINFO --> E2AP : E2 Reset request received");
uint8_t BuildAndSendRemovalRequest()
{
- uint8_t ieIdx = 0, elementCnt = 0, transId = 0;
+ uint16_t transId = 0;
uint8_t ret = RFAILED;
+ uint8_t ieIdx = 0, elementCnt = 0;
E2AP_PDU_t *e2apMsg = NULLP;
E2RemovalRequest_t *removalReq = NULLP;
asn_enc_rval_t encRetVal; /* Encoder return value */
* ****************************************************************/
void ProcE2RemovalFailure(E2AP_PDU_t *e2apMsg)
{
- uint8_t ieIdx = 0, transId=0;
+ uint8_t ieIdx = 0;
+ uint16_t transId=0;
CauseE2_t *cause = NULLP;
E2RemovalFailure_t *e2RemovalFailure=NULLP;
void ProcE2RemovalResponse(E2AP_PDU_t *e2apMsg)
{
- uint8_t ieIdx = 0, transId=0;
+ uint8_t ieIdx = 0;
+ uint16_t transId=0;
E2RemovalResponse_t *removalRsp = NULLP;
removalRsp = &e2apMsg->choice.successfulOutcome->value.choice.E2RemovalResponse;
void procE2ConnectionUpdate(E2AP_PDU_t *e2apMsg)
{
- uint8_t arrIdx =0, transId =0;
+ uint8_t arrIdx =0;
+ uint16_t transId =0;
bool invalidTransId = false, connectionFailedToUpdate=false;
E2FailureCause failureCause;
E2ConnectionList connectionInfoList;