X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_cell_mgr.c;h=286d2db88bdfd984e7f02beea1aa7ee6df2d17c3;hb=f1f384a125521129ec29c1589b8499010cc4685c;hp=ea2af406bdc2b49fb21bb90e69e3bb059ede8861;hpb=4a17bf308d12edf226ccfbe0d728ab68d5e19622;p=o-du%2Fl2.git diff --git a/src/du_app/du_cell_mgr.c b/src/du_app/du_cell_mgr.c index ea2af406b..286d2db88 100644 --- a/src/du_app/du_cell_mgr.c +++ b/src/du_app/du_cell_mgr.c @@ -60,6 +60,12 @@ DuMacDlPcchInd packMacDlPcchIndOpts[] = packDuMacDlPcchInd /* Light weight-loose coupling */ }; +DuMacDlBroadcastReq packMacDlBroadcastReqOpts[] = +{ + packDuMacDlBroadcastReq, /* Loose coupling */ + MacProcDlBroadcastReq, /* TIght coupling */ + packDuMacDlBroadcastReq /* Light weight-loose coupling */ +}; /******************************************************************* * * @brief Processes cells to be activated @@ -360,14 +366,15 @@ uint8_t duHandleCellUpInd(Pst *pst, OduCellId *cellId) cellCb->cellStatus = ACTIVATED; gCellStatus = CELL_UP; - if(duCfgParam.tempSliceCfg.rrmPolicy) - BuildAndSendSliceConfigReq(duCfgParam.tempSliceCfg.rrmPolicy, duCfgParam.tempSliceCfg.totalRrmPolicy, duCfgParam.tempSliceCfg.totalSliceCount); + if(duCfgParam.tempSliceCfg.numOfRrmPolicy) + BuildAndSendSliceConfigReq(); #ifdef O1_ENABLE DU_LOG("\nINFO --> DU APP : Raise cell UP alarm for cell id=%d", cellId->cellId); raiseCellAlrm(CELL_UP_ALARM_ID, cellId->cellId); setCellOpState(cellId->cellId, ENABLED, ACTIVE); #endif - + duCfgParam.macCellCfg.cellCfg.opState = OP_ENABLED; + duCfgParam.macCellCfg.cellCfg.cellState = CELL_ACTIVE; } if((pst->selector == ODU_SELECTOR_LWLC) || (pst->selector == ODU_SELECTOR_TC)) @@ -399,7 +406,7 @@ uint8_t DuProcMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *deleteRsp) if(deleteRsp) { - if(deleteRsp->result == SUCCESSFUL_RSP) + if(deleteRsp->status == SUCCESSFUL) { GET_CELL_IDX(deleteRsp->cellId, cellIdx); DU_LOG("\nINFO --> DU APP : MAC CELL Delete Response : SUCCESS [CELL IDX : %d]", deleteRsp->cellId); @@ -1061,6 +1068,56 @@ uint8_t processPagingMsg(uint16_t cellId, DuPagingMsg *rcvdF1apPagingParam) return ROK; } + +/******************************************************************* + * + * @brief DU build and send dl broacast req and send it to MAC + * + * @details + * + * Function : duBuildAndSendDlBroadcastReq + * + * Functionality: DU build and send dl broacast req and send to MAC + * + * + * @params[in] cellId, crnti + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +uint8_t duBuildAndSendDlBroadcastReq() +{ + Pst pst; + uint8_t ret =ROK; + MacDlBroadcastReq *dlBroadcast=NULLP; + + DU_LOG("\nDEBUG --> DU_APP : Building Dl broadcast request"); + + DU_ALLOC_SHRABL_BUF(dlBroadcast, sizeof(MacDlBroadcastReq)); + if(dlBroadcast) + { + /*TODO - fill MAC DL Broadcast Request*/ + + FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_DL_BROADCAST_REQ); + + DU_LOG("\nDEBUG --> DU_APP: Sending Dl broadcast Request to MAC "); + ret = (*packMacDlBroadcastReqOpts[pst.selector])(&pst, dlBroadcast); + if(ret == RFAILED) + { + DU_LOG("\nERROR --> DU_APP: sendDlBroadcastReqToMac(): Failed to send Dl broadcast Req to MAC"); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, dlBroadcast, sizeof(MacDlBroadcastReq)); + } + } + else + { + DU_LOG("\nERROR --> DU_APP: sendDlBroadcastReqToMac(): Failed to allocate memory"); + ret = RFAILED; + } + + return ret; +} + /********************************************************************** End of file **********************************************************************/