X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_e2ap_msg_hdl.c;h=bfd29e8dd07f80e1eeb05c23528c943735e6fedc;hb=0c4403cc2355cc38d01c6645b1dad36dd4c1daa7;hp=4f04acab14891be7bad98e267477dde4c3633485;hpb=343c8e8a51dcd313d21310887af0d77023c2af0f;p=o-du%2Fl2.git diff --git a/src/du_app/du_e2ap_msg_hdl.c b/src/du_app/du_e2ap_msg_hdl.c index 4f04acab1..bfd29e8dd 100644 --- a/src/du_app/du_e2ap_msg_hdl.c +++ b/src/du_app/du_e2ap_msg_hdl.c @@ -646,7 +646,7 @@ void FreeErrorIndication(E2AP_PDU_t *e2apMsg) * ******************************************************************/ -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; @@ -835,7 +835,8 @@ void freeAperDecodingOfE2NodeConfigUpdateFailure(E2nodeConfigurationUpdateFailur 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"); @@ -1993,8 +1994,8 @@ void FreeE2SetupReq(E2AP_PDU_t *e2apMsg) 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; @@ -2704,9 +2705,14 @@ void handleE2NodeConfigUpdateAckIes(PTR e2NodeCfg, uint8_t procedureCode) 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; @@ -2753,11 +2759,31 @@ void procE2SetupRsp(E2AP_PDU_t *e2apMsg) { 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 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 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", @@ -3566,10 +3592,8 @@ uint8_t procRicSubscriptionRequest(E2AP_PDU_t *e2apMsg) ranFuncDb->numPendingSubsRsp++; -#ifdef KPI_CALCULATION /* Send statistics request to other DU entities */ BuildAndSendStatsReq(ricSubscriptionInfo); -#endif } else { @@ -4873,7 +4897,8 @@ void FreeE2NodeConfigUpdate(E2AP_PDU_t *e2apMsg) 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; @@ -5081,7 +5106,8 @@ void FreeE2ResetRequest(E2AP_PDU_t *e2apMsg) * ****************************************************************/ 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; @@ -5254,7 +5280,8 @@ void freeAperDecodingOfE2ResetRsp(ResetResponseE2_t *resetResponse) 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; @@ -5360,7 +5387,8 @@ void freeAperDecodingOfE2SetupFailure(E2setupFailure_t *e2SetupFailure) * ****************************************************************/ 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"); @@ -5622,9 +5650,9 @@ void FreeRicServiceUpdate(E2AP_PDU_t *e2apMsg) 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 */ @@ -5970,7 +5998,8 @@ void freeAperDecodingOfRicServiceUpdateAck(RICserviceUpdateAcknowledge_t *ricSer 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; @@ -7017,7 +7046,7 @@ void FreeE2ResetResponse(E2AP_PDU_t *e2apMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t BuildAndSendResetResponse(uint8_t transId) +uint8_t BuildAndSendResetResponse(uint16_t transId) { uint8_t ieIdx = 0, elementCnt = 0; uint8_t ret = RFAILED; @@ -7163,8 +7192,9 @@ void freeAperDecodingOfE2ResetReq(ResetRequestE2_t *resetReq) 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"); @@ -8373,8 +8403,9 @@ void FreeRemovalRequest(E2AP_PDU_t *e2apMsg) 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 */ @@ -8531,7 +8562,8 @@ void freeAperDecodingOfE2RemovalFailure(E2RemovalFailure_t *removalFailure) * ****************************************************************/ 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; @@ -8634,7 +8666,8 @@ void ProcE2RemovalFailure(E2AP_PDU_t *e2apMsg) 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; @@ -9457,7 +9490,8 @@ void handleE2ConnectionRemoval(E2connectionUpdateRemove_List_t *connectionRemova 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;