X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_cell_mgr.c;h=8d600cc8c1fcd7bd25211c426c9ef6361aab4053;hb=399c1055e8260b87835b3017e63183e725b9d1bd;hp=e663525813de40139920a93b4b8c13add1935dec;hpb=d18338bde70b043c3dde28b7d88d128c0b138380;p=o-du%2Fl2.git diff --git a/src/du_app/du_cell_mgr.c b/src/du_app/du_cell_mgr.c index e66352581..8d600cc8c 100644 --- a/src/du_app/du_cell_mgr.c +++ b/src/du_app/du_cell_mgr.c @@ -28,8 +28,16 @@ #include "du_app_rlc_inf.h" #include "du_cfg.h" #include "du_mgr.h" +#include "du_utils.h" #include "du_cell_mgr.h" +#ifdef O1_ENABLE + +#include "AlarmInterface.h" +#include "ConfigInterface.h" + +#endif + /******************************************************************* * * @brief Processes cells to be activated @@ -64,7 +72,7 @@ uint8_t duProcCellsToBeActivated(uint8_t *plmnStr, uint16_t nci, uint16_t nRPci) } else { - DU_LOG("\nDU APP : No Cell found for NCI %d", nci); + DU_LOG("\nERROR --> DU APP : No Cell found for NCI %d", nci); return RFAILED; } } @@ -76,7 +84,7 @@ uint8_t duProcCellsToBeActivated(uint8_t *plmnStr, uint16_t nci, uint16_t nRPci) if(duBuildAndSendMacCellCfg(cellCb->cellId) != ROK) { - DU_LOG("\nDU APP : macCellCfg build and send failed"); + DU_LOG("\nERROR --> DU APP : macCellCfg build and send failed"); /* Delete cell from actvCellList */ duCb.actvCellLst[--(duCb.numActvCells)] = NULLP; ret = RFAILED; @@ -101,7 +109,7 @@ uint8_t duProcCellsToBeActivated(uint8_t *plmnStr, uint16_t nci, uint16_t nRPci) ******************************************************************/ void duProcF1SetupRsp() { - DU_LOG("\nDU_APP : F1 Setup Response received"); + DU_LOG("\nINFO --> DU_APP : F1 Setup Response received"); duCb.f1Status = TRUE; //Set F1 status as true } @@ -122,7 +130,7 @@ void duProcF1SetupRsp() ******************************************************************/ void duProcGnbDuCfgUpdAckMsg() { - DU_LOG("\nDU APP: GNB-DU config update Ack received "); + DU_LOG("\nINFO --> DU APP: GNB-DU config update Ack received "); } /******************************************************************* * @@ -141,7 +149,7 @@ void duProcGnbDuCfgUpdAckMsg() * ****************************************************************/ uint8_t duGetCellCb(uint16_t cellId, DuCellCb **cellCb) { - uint8_t cellIdx; + uint8_t cellIdx = 0; for(cellIdx=0; cellIdxcellId == cellId) @@ -151,13 +159,60 @@ uint8_t duGetCellCb(uint16_t cellId, DuCellCb **cellCb) if(!*cellCb) { - DU_LOG("\nDU APP : Cell Id %d not found in DU APP", cellId); + DU_LOG("\nERROR --> DU APP : Cell Id %d not found in DU APP", cellId); return RFAILED; } return ROK; } +/******************************************************************* + * + * @brief Handles cell up indication from MAC + * + * @details + * + * Function : duHandleCellUpInd + * + * Functionality: + * Handles cell up indication from MAC + * + * @params[in] Post structure pointer + * cell Up info + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t duHandleCellUpInd(Pst *pst, OduCellId *cellId) +{ + DuCellCb *cellCb = NULLP; + + if(cellId->cellId <=0 || cellId->cellId > MAX_NUM_CELL) + { + DU_LOG("\nERROR --> DU APP : Invalid Cell Id %d in duHandleCellUpInd()", cellId->cellId); + return RFAILED; + } + + if(duGetCellCb(cellId->cellId, &cellCb) != ROK) + return RFAILED; + + if((cellCb != NULL) && (cellCb->cellStatus == ACTIVATION_IN_PROGRESS)) + { + DU_LOG("\nINFO --> DU APP : 5G-NR Cell %d is UP", cellId->cellId); + cellCb->cellStatus = ACTIVATED; + +#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 + } + + if((pst->selector == ODU_SELECTOR_LWLC) || (pst->selector == ODU_SELECTOR_TC)) + DU_FREE_SHRABL_BUF(pst->region, pst->pool, cellId, sizeof(OduCellId)); + return ROK; +} + /********************************************************************** End of file **********************************************************************/