X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrrlc%2Frlc_dl_ul_inf_ul.c;h=b6afa2021de4194fcd44b906b8ded4b4122fc170;hb=959944c4b572d2027bceb7bb474a8fc40f85ec1c;hp=0831de8e47ccf486cde2439a6a7cb9dcfa6c4f4a;hpb=70e1fb5996d93ef4973ffb654ee6a66228e9031c;p=o-du%2Fl2.git diff --git a/src/5gnrrlc/rlc_dl_ul_inf_ul.c b/src/5gnrrlc/rlc_dl_ul_inf_ul.c index 0831de8e4..b6afa2021 100755 --- a/src/5gnrrlc/rlc_dl_ul_inf_ul.c +++ b/src/5gnrrlc/rlc_dl_ul_inf_ul.c @@ -193,6 +193,7 @@ SuId suId, RlcCfgCfmInfo *cfmInfo ) { + uint8_t cfgIdx=0; RlcCb *tRlcCb; RlcCfgCfmInfo *cfgCfm; RlcUlCfgTmpData *cfgTmpData; @@ -261,31 +262,44 @@ RlcCfgCfmInfo *cfmInfo if(tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_CREATE_REQ) { FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_CREATE_RSP); - SendRlcUeCfgRspToDu(&rspPst, cfgCfm); + SendRlcUeCreateRspToDu(&rspPst, cfgCfm); } else if(tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_RECONFIG_REQ) { FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_RECONFIG_RSP); - SendRlcUeCfgRspToDu(&rspPst, cfgCfm); + SendRlcUeReconfigRspToDu(&rspPst, cfgCfm); } else if (tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_DELETE_REQ) { FILL_PST_RLC_TO_DUAPP(rspPst, RLC_UL_INST, EVENT_RLC_UE_DELETE_RSP); - if(sendRlcUeDeleteRspToDu(cfgCfm->ueId, cfgCfm->cellId, SUCCESSFUL) != ROK) + if(sendRlcUeDeleteRspToDu(cfgCfm->cellId, cfgCfm->ueId, SUCCESSFUL) != ROK) { DU_LOG("ERROR --> RLC_UL: rlcUlUdxCfgCfm(): Failed to send UE delete response "); + RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo)); return RFAILED; } + RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo)); + } + else if (tRlcCb->u.ulCb->rlcUlUdxEventType == EVENT_RLC_UE_REESTABLISH_REQ) + { + if(sendRlcUeReestablishRspToDu(cfgCfm->cellId, cfgCfm->ueId, SUCCESSFUL) != ROK) + { + DU_LOG("ERROR --> RLC_UL: rlcUlUdxCfgCfm(): Failed to send UE Reestablishment response to DU "); + RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo)); + return RFAILED; + } + RLC_FREE(tRlcCb, cfgCfm, sizeof(RlcCfgCfmInfo)); } /* free the memory from DL */ - RLC_FREE_SHRABL_BUF(pst->region, - pst->pool, - cfmInfo, - sizeof(RlcCfgCfmInfo)); + RLC_FREE_SHRABL_BUF(pst->region, pst->pool, cfmInfo, sizeof(RlcCfgCfmInfo)); /* free the cfgInfo that came from LM */ - RLC_PST_FREE(pst->region, pst->pool, cfgTmpData->cfgInfo, sizeof(RlcCfgInfo)); + for(cfgIdx=0; cfgIdxcfgInfo->numEnt; cfgIdx++) + { + RLC_FREE(tRlcCb, cfgTmpData->cfgInfo->entCfg[cfgIdx].snssai, sizeof(Snssai)); + } + RLC_FREE(tRlcCb, cfgTmpData->cfgInfo, sizeof(RlcCfgInfo)); RLC_FREE(tRlcCb,cfgTmpData,sizeof(RlcUlCfgTmpData)); return ROK;