X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_msg_hdl.c;h=45abfe4e9e305160928ef3e4b36772c0afa03062;hb=0bdd575f55257e64b4becb4cee0df0dab2bac3fa;hp=a0f040e47761f8f7a58d1a4c0fd55dc756a92bb5;hpb=069ae37558afd5aee2d1072bbf5b517cf665bdd8;p=o-du%2Fl2.git diff --git a/src/du_app/du_msg_hdl.c b/src/du_app/du_msg_hdl.c index a0f040e47..45abfe4e9 100644 --- a/src/du_app/du_msg_hdl.c +++ b/src/du_app/du_msg_hdl.c @@ -21,6 +21,7 @@ #include "du_mgr.h" #include "du_sctp.h" #include "du_f1ap_msg_hdl.h" +#include "du_ue_mgr.h" #include "lsctp.h" #include "legtp.h" #include "lphy_stub.h" @@ -38,7 +39,7 @@ extern S16 cmPkLkwCntrlReq(Pst *pst, KwMngmt *cfg); extern S16 cmPkLrgCfgReq(Pst *pst, RgMngmt *cfg); extern S16 BuildAndSendE2SetupReq(); extern S16 egtpHdlDatInd(EgtpMsg egtpMsg); -extern S16 BuildAndSendDUConfigUpdate(); +extern uint8_t BuildAndSendDUConfigUpdate(); extern U16 getTransId(); extern S16 cmPkLrgSchCfgReq(Pst * pst,RgMngmt * cfg); @@ -312,7 +313,7 @@ S16 duProcCfgComplete() U16 idx; for(idx=0; idx< DEFAULT_CELLS; idx++) { - DuCellCb *cell; + DuCellCb *cell = NULLP; DU_ALLOC(cell, sizeof(DuCellCb)) if(cell == NULLP) { @@ -324,7 +325,7 @@ S16 duProcCfgComplete() U32 nci; U8 idx1; memset(cell, 0, sizeof(DuCellCb)); - cell->cellId = cellId++; + cell->cellId = ++cellId; cell->cellInfo.nrEcgi.plmn.mcc[0] = PLMN_MCC0; cell->cellInfo.nrEcgi.plmn.mcc[1] = PLMN_MCC1; cell->cellInfo.nrEcgi.plmn.mcc[2] = PLMN_MCC2; @@ -1655,7 +1656,7 @@ uint16_t duHandleSlotInd(Pst *pst, SlotInfo *slotInfo) (duCb.actvCellLst[slotInfo->cellId-1]->cellStatus == \ ACTIVATION_IN_PROGRESS)) { - DU_LOG("\nDU APP : Cell Id %d is ACTIVE", slotInfo->cellId); + DU_LOG("\nDU APP : 5G-NR Cell %d is UP", slotInfo->cellId); duCb.actvCellLst[slotInfo->cellId-1]->cellStatus = ACTIVATED; } @@ -1697,7 +1698,7 @@ uint16_t duBuildAndSendMacCellStartReq() DU_LOG("\nDU APP : Building and Sending cell start request to MAC"); /* Send Cell Start Request to MAC */ - DU_ALLOC(cellStartInfo, sizeof(MacCellStartInfo)); + DU_ALLOC_SHRABL_BUF(cellStartInfo, sizeof(MacCellStartInfo)); if(!cellStartInfo) { DU_LOG("\nDU APP : Memory alloc failed while building cell start request"); @@ -1745,7 +1746,7 @@ uint16_t duBuildAndSendMacCellStartReq() * RFAILED - failure * * ****************************************************************/ -S16 duBuildAndSendMacCellStopReq() +uint16_t duBuildAndSendMacCellStopReq() { Pst pst; MacCellStopInfo *cellStopInfo = NULL; @@ -1753,7 +1754,7 @@ S16 duBuildAndSendMacCellStopReq() DU_LOG("\nDU APP : Building and Sending cell stop request to MAC"); /* Send Cell Stop Request to MAC */ - DU_ALLOC(cellStopInfo, sizeof(MacCellStopInfo)); + DU_ALLOC_SHRABL_BUF(cellStopInfo, sizeof(MacCellStopInfo)); if(!cellStopInfo) { DU_LOG("\nDU APP : Memory alloc failed while building cell stop request"); @@ -1776,6 +1777,72 @@ S16 duBuildAndSendMacCellStopReq() return (*packMacCellStopReqOpts[pst.selector])(&pst, cellStopInfo); } +/******************************************************************* + * + * @brief Handles stop indication from MAC + * + * @details + * + * Function : duHandleStopInd + * + * Functionality: + * Handles stop indication from MAC + * + * @params[in] Post structure pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint16_t duHandleStopInd(Pst *pst, MacCellStopInfo *cellStopId) +{ + if(cellStopId->cellId <=0 || cellStopId->cellId > DU_MAX_CELLS) + { + DU_LOG("\nDU APP : Invalid Cell Id %d", cellStopId->cellId); + } + if(duCb.actvCellLst[cellStopId->cellId-1] != NULL) + { + if(duCb.actvCellLst[cellStopId->cellId-1]->firstSlotIndRcvd) + { + duCb.actvCellLst[cellStopId->cellId-1]->firstSlotIndRcvd = false; + if((duCb.actvCellLst[cellStopId->cellId-1]->cellStatus == \ + ACTIVATED)) + { + DU_LOG("\nDU APP : 5G-NR Cell %d is DOWN", cellStopId->cellId); + duCb.actvCellLst[cellStopId->cellId-1]->cellStatus = DELETION_IN_PROGRESS; + } + } + } + if((pst->selector == DU_SELECTOR_LWLC) || (pst->selector == DU_SELECTOR_TC)) + DU_FREE_SHRABL_BUF(MAC_MEM_REGION, pst->pool, cellStopId, sizeof(MacCellStopInfo)); + + return ROK; +} + +/******************************************************************* + * + * @brief Handles slot indication from MAC + * + * @details + * + * Function : duHandleUlCcchInd + * + * Functionality: + * Handles UL CCCH indication from MAC + * + * @params[in] Post structure pointer + * UL CCCH Ind pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint16_t duHandleUlCcchInd(Pst *pst, UlCcchIndInfo *ulCcchIndInfo) +{ + + DU_LOG("\nDU APP : UL CCCH Indication received"); + + return (duProcUlCcchInd(ulCcchIndInfo)); +} + /********************************************************************** End of file