X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_ue_mgr.c;h=f63e47d8d1c2e2755601f9fa9df37997cc973ac4;hb=9c4801c94d7798cc638a6b112d514e68c695f20a;hp=9c660efe069f3a206b96f06b04d1567cb85380c2;hpb=9f07d42c8d327e4009833fc4c673e4086c4e726e;p=o-du%2Fl2.git diff --git a/src/du_app/du_ue_mgr.c b/src/du_app/du_ue_mgr.c index 9c660efe0..f63e47d8d 100644 --- a/src/du_app/du_ue_mgr.c +++ b/src/du_app/du_ue_mgr.c @@ -1169,13 +1169,9 @@ uint8_t fillMacUeCfg(uint16_t cellId, uint8_t gnbDuUef1apId, uint16_t crnti, DuU bool lcIdFound = false; MacUeCfg *duMacDb = NULLP; - macUeCfg->cellId = cellId; - if(crnti) - { - GET_UE_ID(crnti, macUeCfg->ueId); - macUeCfg->crnti = crnti; - } - macUeCfg->duUeF1apId = gnbDuUef1apId; + macUeCfg->cellId = cellId; + macUeCfg->ueId = gnbDuUef1apId; + macUeCfg->crnti = crnti; if(!ueCfgDb) { @@ -2340,64 +2336,43 @@ uint8_t duUpdateDuUeCbCfg(uint8_t ueId, uint8_t cellId) * ****************************************************************/ uint8_t DuProcMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp) { - uint8_t ret = ROK, ueIdx = 0, ueId = 0; - DuUeCb *ueCb = NULLP; + uint8_t ret = ROK; + uint16_t cellIdx; if(cfgRsp) { + GET_CELL_IDX(cfgRsp->cellId, cellIdx); if(cfgRsp->result == MAC_DU_APP_RSP_OK) { if(pst->event == EVENT_MAC_UE_CREATE_RSP) { - DU_LOG("\nINFO --> DU APP : MAC UE Create Response : SUCCESS [DU UE F1AP ID : %d]", cfgRsp->duUeF1apId); - - for(ueIdx = 0; ueIdx < MAX_NUM_UE; ueIdx++) - { - if(duCb.actvCellLst[cfgRsp->cellId -1]->ueCb[ueIdx].gnbDuUeF1apId == cfgRsp->duUeF1apId) - { - ueCb = &duCb.actvCellLst[cfgRsp->cellId -1]->ueCb[ueIdx]; - ueCb->macUeCfg.macUeCfgState = UE_CREATE_COMPLETE; - break; - } - } - if(!ueCb) + DU_LOG("\nINFO --> DU APP : MAC UE Create Response : SUCCESS [DU UE F1AP ID : %d]", cfgRsp->ueId); + + if(duCb.actvCellLst[cellIdx] && + (duCb.actvCellLst[cellIdx]->ueCb[cfgRsp->ueId -1].gnbDuUeF1apId == cfgRsp->ueId)) { - if(duCb.actvCellLst[cfgRsp->cellId -1]->hoUeCb[cfgRsp->duUeF1apId-1].gnbDuUeF1apId == cfgRsp->duUeF1apId) - { - ueCb = &duCb.actvCellLst[cfgRsp->cellId -1]->hoUeCb[cfgRsp->duUeF1apId-1]; - ueCb->macUeCfg.macUeCfgState = UE_CREATE_COMPLETE; - //TODO : in next gerrit - //BuildAndSendUeCtxtRsp(cfgRsp->cellId, cfgRsp->ueId); - } - } + duCb.actvCellLst[cellIdx]->ueCb[cfgRsp->ueId -1].macUeCfg.macUeCfgState = UE_CREATE_COMPLETE; + /* TODO : IF UE state is HANDIN_IN_PROGRESS, then send UE Context Setup Response */ + } } else if(pst->event == EVENT_MAC_UE_RECONFIG_RSP) { - DU_LOG("\nINFO --> DU APP : MAC UE Reconfig Response : SUCCESS [DU UE F1AP ID : %d]", cfgRsp->duUeF1apId); - for(ueIdx = 0; ueIdx < MAX_NUM_UE; ueIdx++) - { - if(duCb.actvCellLst[cfgRsp->cellId -1]->ueCb[ueIdx].gnbDuUeF1apId == cfgRsp->duUeF1apId) - { - ueCb = &duCb.actvCellLst[cfgRsp->cellId -1]->ueCb[ueIdx]; - ueCb->macUeCfg.macUeCfgState = UE_RECFG_COMPLETE; - break; - } - } - - if(ueCb) + DU_LOG("\nINFO --> DU APP : MAC UE Reconfig Response : SUCCESS [DU UE F1AP ID : %d]", cfgRsp->ueId); + if(duCb.actvCellLst[cellIdx] && + (duCb.actvCellLst[cellIdx]->ueCb[cfgRsp->ueId -1].gnbDuUeF1apId == cfgRsp->ueId)) { - GET_UE_ID(ueCb->crnti, ueId); - if((ret = duUpdateDuUeCbCfg(ueId, cfgRsp->cellId)) == ROK) - { - BuildAndSendUeCtxtRsp(cfgRsp->cellId, ueId); + duCb.actvCellLst[cellIdx]->ueCb[cfgRsp->ueId -1].macUeCfg.macUeCfgState = UE_RECFG_COMPLETE; + if((ret = duUpdateDuUeCbCfg(cfgRsp->ueId, cfgRsp->cellId)) == ROK) + { + BuildAndSendUeCtxtRsp(cfgRsp->cellId, cfgRsp->ueId); } } } } else { - DU_LOG("\nERROR --> DU APP : MAC UE CFG Response for EVENT[%d]: FAILURE [DU UE F1AP ID : %d]", pst->event, cfgRsp->duUeF1apId); + DU_LOG("\nERROR --> DU APP : MAC UE CFG Response for EVENT[%d]: FAILURE [DU UE F1AP ID : %d]", pst->event, cfgRsp->ueId); if(pst->event == EVENT_MAC_UE_RECONFIG_RSP) { //TODO: Send the failure case in Ue Context Setup Response