X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_ue_mgr.c;h=aa67128f4e6ff2a5d7731450309aec3fcac414c7;hb=aa2b46912637dd3c7b52af75779f20af79f483e5;hp=a5594da7a7542492f095026a2d0d2c7add5f5911;hpb=6e4e341b9d0e394196b7dc49045073cae098e6bf;p=o-du%2Fl2.git diff --git a/src/du_app/du_ue_mgr.c b/src/du_app/du_ue_mgr.c index a5594da7a..aa67128f4 100644 --- a/src/du_app/du_ue_mgr.c +++ b/src/du_app/du_ue_mgr.c @@ -102,50 +102,6 @@ DuRlcUeDeleteReq packRlcUeDeleteReqOpts[] = packDuRlcUeDeleteReq /* Light weight-loose coupling */ }; - -/****************************************************************** - * - * @brief Function to fetch lcId based on DRB Id - * - * @details - * - * Function : fetchLcId - * - * @params[in] drbId - * - * Functionality: Function to fetch lcId based on DRB Id - * - * Returns: lcId - SUCCESS - * RFAILED - FAILURE - *****************************************************************/ - -uint8_t fetchLcId(uint8_t drbId) -{ - uint8_t cellIdx = 0, ueIdx = 0, lcIdx = 0, numLcs = 0, lcId = 0; - - for(cellIdx = 0; cellIdx < MAX_NUM_CELL; cellIdx++) - { - for(ueIdx = 0; ueIdx < MAX_NUM_UE; ueIdx++) - { - if(duCb.actvCellLst[cellIdx] != NULLP) - { - numLcs = duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.numLcs; - for(lcIdx = 0; lcIdx < numLcs; lcIdx++) - { - if(duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.rlcLcCfg[lcIdx].rbId == drbId && \ - duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.rlcLcCfg[lcIdx].rbType == RB_TYPE_DRB) - { - lcId = duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.rlcLcCfg[lcIdx].lcId; - return lcId; - } - } - } - } - } - DU_LOG("\nERROR --> DU_APP: fetchLcId() failed for drbId %d", drbId); - return RFAILED; -} - /****************************************************************** * * @brief Function to return Drb LcId @@ -210,13 +166,13 @@ uint8_t fillDlUserDataInfo(uint32_t teId, RlcDlUserDataInfo *dlDataMsgInfo) { if(duCb.upTnlCfg[drbIdx] && (duCb.upTnlCfg[drbIdx]->tnlCfg1 != NULLP)) { - if(duCb.upTnlCfg[drbIdx]->tnlCfg1->teId == teId) - { - dlDataMsgInfo->cellId = duCb.upTnlCfg[drbIdx]->cellId; - dlDataMsgInfo->ueIdx = duCb.upTnlCfg[drbIdx]->ueIdx; - dlDataMsgInfo->rbId = duCb.upTnlCfg[drbIdx]->drbId; - return ROK; - } + if(duCb.upTnlCfg[drbIdx]->tnlCfg1->teId == teId) + { + dlDataMsgInfo->cellId = duCb.upTnlCfg[drbIdx]->cellId; + dlDataMsgInfo->ueIdx = duCb.upTnlCfg[drbIdx]->ueIdx; + dlDataMsgInfo->rbId = duCb.upTnlCfg[drbIdx]->drbId; + return ROK; + } } } return RFAILED; @@ -691,7 +647,7 @@ void fillDefaultInitDlBwp(InitialDlBwp *initDlBwp) coreset1StartPrb = coreset0EndPrb +6; coreset1NumPrb = CORESET1_NUM_PRB; /* calculate the PRBs */ - freqDomRscAllocType0(((coreset1StartPrb)/6), (coreset1NumPrb/6), freqDomainResource); + fillCoresetFeqDomAllocMap(((coreset1StartPrb)/6), (coreset1NumPrb/6), freqDomainResource); memcpy(initDlBwp->pdcchCfg.cRSetToAddModList[idx].freqDomainRsrc, freqDomainResource, FREQ_DOM_RSRC_SIZE); @@ -994,11 +950,11 @@ void fillDefaultMacCellGrpInfo(MacUeCfg *macUeCfg) void fillDefaultModulation(MacUeCfg *ueCfg) { ueCfg->dlModInfo.modOrder = MOD_ORDER_QPSK; - ueCfg->dlModInfo.mcsIndex = SIB1_MCS; + ueCfg->dlModInfo.mcsIndex = DEFAULT_MCS; ueCfg->dlModInfo.mcsTable = MCS_TABLE_QAM64; /* Spec 38.214-Table 5.1.3.1-1 */ ueCfg->ulModInfo.modOrder = MOD_ORDER_QPSK; - ueCfg->ulModInfo.mcsIndex = SIB1_MCS; + ueCfg->ulModInfo.mcsIndex = DEFAULT_MCS; ueCfg->ulModInfo.mcsTable = MCS_TABLE_QAM64; /* Spec 38.214-Table 5.1.3.1-1 */ } @@ -2232,29 +2188,31 @@ uint8_t duUpdateTunnelCfgDb(uint8_t ueIdx, uint8_t cellId, DuUeCfg *duUeCfg) duUeCfg->upTnlInfo[drbIdx].ueIdx = ueIdx; for(duCbDrbIdx = 0; duCbDrbIdx < duCb.numDrb; duCbDrbIdx++) { - if(duCb.upTnlCfg[duCbDrbIdx]->drbId == duUeCfg->upTnlInfo[drbIdx].drbId) - { - drbFound = true; /* existing DRB */ - if(duProcEgtpTunnelCfg(duCbDrbIdx, duCb.upTnlCfg[duCbDrbIdx], &duUeCfg->upTnlInfo[drbIdx]) != ROK) - { - DU_LOG("\nERROR -> DU_APP : duUpdateTunnelCfgDb: Failed to modify tunnel req for Drb id[%d]", - duUeCfg->upTnlInfo[drbIdx].drbId); - ret = RFAILED; - } - break; - } - else - drbFound = false; + if((duCb.upTnlCfg[duCbDrbIdx]->ueIdx == duUeCfg->upTnlInfo[drbIdx].ueIdx) && \ + (duCb.upTnlCfg[duCbDrbIdx]->drbId == duUeCfg->upTnlInfo[drbIdx].drbId)) + { + drbFound = true; /* existing DRB */ + if(duProcEgtpTunnelCfg(duCbDrbIdx, duCb.upTnlCfg[duCbDrbIdx], &duUeCfg->upTnlInfo[drbIdx]) != ROK) + { + DU_LOG("\nERROR -> DU_APP : duUpdateTunnelCfgDb: Failed to modify tunnel req for Drb id[%d]", + duUeCfg->upTnlInfo[drbIdx].drbId); + ret = RFAILED; + } + break; + } + else + drbFound = false; } + if(!drbFound && ret == ROK)/* new DRB to Add */ { - if(duProcEgtpTunnelCfg(NULLP, NULLP, &duUeCfg->upTnlInfo[drbIdx]) != ROK) - { + if(duProcEgtpTunnelCfg(NULLP, NULLP, &duUeCfg->upTnlInfo[drbIdx]) != ROK) + { DU_LOG("\nERROR -> DU_APP : duUpdateTunnelCfgDb: Failed to add tunnel req for Drb id[%d]", - duUeCfg->upTnlInfo[drbIdx].drbId); - ret = RFAILED; - break; - } + duUeCfg->upTnlInfo[drbIdx].drbId); + ret = RFAILED; + break; + } } else break; @@ -3303,12 +3261,14 @@ uint8_t duProcUeContextReleaseCommand(DuUeCb *duUeCb) cellId = duCb.actvCellLst[duUeCb->f1UeDb->cellIdx]->cellId; crnti = duUeCb->crnti; + GET_UE_IDX(crnti, ueIdx); + /* Send DL RRC msg for RRC release */ if(duUeCb->f1UeDb->dlRrcMsg) { if(duUeCb->f1UeDb->dlRrcMsg->rrcMsgPdu != NULLP) { - ret = duBuildAndSendDlRrcMsgToRlc(cellId, duCb.actvCellLst[duUeCb->f1UeDb->cellIdx]->ueCb[ueIdx].rlcUeCfg,\ + ret = duBuildAndSendDlRrcMsgToRlc(cellId, duCb.actvCellLst[duUeCb->f1UeDb->cellIdx]->ueCb[ueIdx-1].rlcUeCfg,\ duUeCb->f1UeDb->dlRrcMsg); if(ret == RFAILED) {