X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_f1ap_msg_hdl.c;h=c263e52925c9d6c70e083e438452106548e5d14d;hb=05d098e6b94f629a932caaff404f2b703b123852;hp=22ee3915981d14bbb59015a79cb9468145c23f90;hpb=3fcf32e0ea0cbb4e83cbd3ece7a16e692fedcedd;p=o-du%2Fl2.git diff --git a/src/du_app/du_f1ap_msg_hdl.c b/src/du_app/du_f1ap_msg_hdl.c index 22ee39159..c263e5292 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -18,6 +18,7 @@ /* This file contains F1AP message handler functions */ #include "common_def.h" +#include "du_tmr.h" #include "ckw.h" #include "ckw.x" #include "kwu.h" @@ -33,6 +34,8 @@ #include "du_app_mac_inf.h" #include "du_cfg.h" #include "du_app_rlc_inf.h" +#include "du_e2ap_mgr.h" +#include "du_e2ap_msg_hdl.h" #include "du_mgr_main.h" #include "du_mgr.h" #include "du_utils.h" @@ -160,7 +163,6 @@ #include "UPTransportLayerInformation.h" #include "GTPTunnel.h" #include "SupportedSULFreqBandItem.h" -#include "du_e2ap_msg_hdl.h" #include "du_f1ap_conversions.h" #include "CNUEPagingIdentity.h" #include "PCCH-Config.h" @@ -1754,17 +1756,14 @@ uint8_t BuildAndSendF1SetupReq() printf("%x",encBuf[ieIdx]); } #endif + - duCb.f1SetupReqAndRspMsg.f1MsgReqBufSize = encBufSize; - DU_ALLOC(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf, encBufSize); - if(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf == NULLP) - { - DU_LOG("\nERROR --> F1AP : Memory allocation failed to store the encoding of f1setup req"); - return RFAILED; - } - memcpy(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf, &encBuf, duCb.f1SetupReqAndRspMsg.f1MsgReqBufSize); } - + if(addOrModifyE2NodeComponent(F1, E2_NODE_COMPONENT_ADD, true, encBufSize, encBuf) !=ROK) + { + DU_LOG("\nERROR --> F1AP : Failed to add the e2 node in the list"); + break; + } /* Sending msg */ if(sendF1APMsg() != ROK) { @@ -2763,6 +2762,11 @@ uint8_t BuildAndSendDUConfigUpdate(ServCellAction servCellAction) } #endif } + if(addOrModifyE2NodeComponent(F1, E2_NODE_COMPONENT_UPDATE, true, encBufSize, encBuf)!=ROK) + { + DU_LOG("\nERROR --> F1AP : Failed to update the e2 node in the list"); + break; + } /* Sending msg */ if(sendF1APMsg() != ROK) { @@ -3287,6 +3291,7 @@ uint8_t BuildRlcConfigAm(AmBearerCfg *amCfg, struct RLC_Config *rlcConfig) /* Fill default AM UL configuration if input pointer to DU database is NULL */ if(amCfg == NULLP) { + *(rlcConfig->choice.am->ul_AM_RLC.sn_FieldLength) = SN_FIELD_LEN_12BIT; /*As per Spec 38.331, "Network configures only value size12 in SN-FieldLengthAM for SRB"*/ rlcConfig->choice.am->ul_AM_RLC.t_PollRetransmit = T_POLL_RETRANSMIT; rlcConfig->choice.am->ul_AM_RLC.pollPDU = POLL_PDU; @@ -15546,15 +15551,12 @@ uint8_t procF1SetupRsp(F1AP_PDU_t *f1apMsg, MsgLen recvBufLen, char *recvBuf) duProcF1SetupRsp(); freeAperDecodeF1SetupRsp(f1SetRspMsg); - - duCb.f1SetupReqAndRspMsg.f1MsgRspBufSize = recvBufLen; - DU_ALLOC(duCb.f1SetupReqAndRspMsg.f1MsgRspBuf, duCb.f1SetupReqAndRspMsg.f1MsgRspBufSize); - if(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf == NULLP) + + if(addOrModifyE2NodeComponent(F1, E2_NODE_COMPONENT_ADD, false, recvBufLen, recvBuf) !=ROK) { - DU_LOG("\nERROR --> F1AP : Memory allocation failed to store the buf of F1setup response"); + DU_LOG("\nERROR --> F1AP : Failed to add the e2 node in the list"); return RFAILED; } - memcpy(duCb.f1SetupReqAndRspMsg.f1MsgRspBuf, recvBuf, recvBufLen); if(BuildAndSendE2SetupReq() != ROK) { @@ -15732,11 +15734,12 @@ uint8_t duProcGnbDuCfgUpdAckMsg(uint8_t transId) * * Functionality: added free part for the memory allocated by aper_decoder * -* @params[in] F1AP_PDU_t *f1apMsg +* @params[in] F1AP_PDU_t *f1apMsg, MsgLen recvBufLen, char *recvBuf * @return void * * ****************************************************************/ -uint8_t procF1GNBDUCfgUpdAck(F1AP_PDU_t *f1apMsg) + +uint8_t procF1GNBDUCfgUpdAck(F1AP_PDU_t *f1apMsg, MsgLen recvBufLen, char *recvBuf) { uint8_t ieIdx=0,transId=0; GNBDUConfigurationUpdateAcknowledge_t *gnbDuAck = NULLP; @@ -15778,6 +15781,12 @@ uint8_t procF1GNBDUCfgUpdAck(F1AP_PDU_t *f1apMsg) } #endif + if(addOrModifyE2NodeComponent(F1, E2_NODE_COMPONENT_UPDATE, false, recvBufLen, recvBuf) !=ROK) + { + DU_LOG("\nERROR --> F1AP : Failed to update the e2 node in the list"); + return RFAILED; + } + freeAperDecodeGnbDuAck(gnbDuAck); return ROK; } @@ -16214,6 +16223,13 @@ void FreeUeContextModResp(F1AP_PDU_t *f1apMsg) break; case ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID: break; + case ProtocolIE_ID_id_DUtoCURRCInformation: + { + DU_FREE(ueContextModifyRes->protocolIEs.list.array[ieIdx]->value.choice.DUtoCURRCInformation.\ + cellGroupConfig.buf, ueContextModifyRes->protocolIEs.list.array[ieIdx]->value.choice.\ + DUtoCURRCInformation.cellGroupConfig.size); + break; + } case ProtocolIE_ID_id_DRBs_SetupMod_List: { FreeDrbSetupModList(&(ueContextModifyRes->protocolIEs.list.array[ieIdx]->\ @@ -16461,6 +16477,7 @@ uint8_t BuildAndSendUeContextModRsp(DuUeCb *ueCb) ret = ROK; break; } + FreeUeContextModResp(f1apMsg); return ret; } @@ -17953,7 +17970,7 @@ void F1APMsgHdlr(Buffer *mBuf) case SuccessfulOutcome__value_PR_GNBDUConfigurationUpdateAcknowledge: { - procF1GNBDUCfgUpdAck(f1apMsg); + procF1GNBDUCfgUpdAck(f1apMsg, recvBufLen, recvBuf); break; }