X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_msg_hdl.c;h=a0f040e47761f8f7a58d1a4c0fd55dc756a92bb5;hb=069ae37558afd5aee2d1072bbf5b517cf665bdd8;hp=5f819170c86819ca2e36eb9b98abf6d140777167;hpb=f15bab416a36e421d42be3d2d1a42bf4c8c8b6c2;p=o-du%2Fl2.git diff --git a/src/du_app/du_msg_hdl.c b/src/du_app/du_msg_hdl.c index 5f819170c..a0f040e47 100644 --- a/src/du_app/du_msg_hdl.c +++ b/src/du_app/du_msg_hdl.c @@ -36,6 +36,11 @@ extern DuCfgParams duCfgParam; extern S16 cmPkLkwCfgReq(Pst *pst, KwMngmt *cfg); 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 U16 getTransId(); +extern S16 cmPkLrgSchCfgReq(Pst * pst,RgMngmt * cfg); packMacCellCfgReq packMacCellCfgOpts[] = { @@ -317,8 +322,7 @@ S16 duProcCfgComplete() else { U32 nci; - U8 idx; - + U8 idx1; memset(cell, 0, sizeof(DuCellCb)); cell->cellId = cellId++; cell->cellInfo.nrEcgi.plmn.mcc[0] = PLMN_MCC0; @@ -330,15 +334,15 @@ S16 duProcCfgComplete() cell->cellInfo.nrEcgi.cellId = NR_CELL_ID; cell->cellInfo.nrPci = NR_PCI; cell->cellInfo.fiveGsTac = DU_TAC; - for(idx=0; idxcellInfo.plmn[idx].mcc[0] = PLMN_MCC0; - cell->cellInfo.plmn[idx].mcc[1] = PLMN_MCC1; - cell->cellInfo.plmn[idx].mcc[2] = PLMN_MCC2; - cell->cellInfo.plmn[idx].mnc[0] = PLMN_MNC0; - cell->cellInfo.plmn[idx].mnc[1] = PLMN_MNC1; - cell->cellInfo.plmn[idx].mnc[2] = PLMN_MNC2; - } + cell->cellInfo.plmn[idx1].mcc[0] = PLMN_MCC0; + cell->cellInfo.plmn[idx1].mcc[1] = PLMN_MCC1; + cell->cellInfo.plmn[idx1].mcc[2] = PLMN_MCC2; + cell->cellInfo.plmn[idx1].mnc[0] = PLMN_MNC0; + cell->cellInfo.plmn[idx1].mnc[1] = PLMN_MNC1; + cell->cellInfo.plmn[idx1].mnc[2] = PLMN_MNC2; + } cell->cellInfo.maxUe = duCfgParam.maxUe; cell->cellStatus = CELL_OUT_OF_SERVICE; nci = (U16)cell->cellInfo.nrEcgi.cellId; @@ -682,7 +686,7 @@ S16 duBuildMacGenCfg() genCfg = &(rgMngmt.t.cfg.s.genCfg); /*----------- Fill General Configuration Parameters ---------*/ - genCfg->mem.region = RG_MEM_REGION; + genCfg->mem.region = MAC_MEM_REGION; genCfg->mem.pool = RG_POOL; genCfg->tmrRes = 10; genCfg->numRguSaps = 2; @@ -695,7 +699,7 @@ S16 duBuildMacGenCfg() genCfg->lmPst.srcInst = macCfgInst; genCfg->lmPst.prior = PRIOR0; genCfg->lmPst.route = RTESPEC; - genCfg->lmPst.region = RG_MEM_REGION; + genCfg->lmPst.region = MAC_MEM_REGION; genCfg->lmPst.pool = RG_POOL; genCfg->lmPst.selector = DU_SELECTOR_LC; @@ -711,7 +715,7 @@ S16 duBuildMacGenCfg() rgMngmt.hdr.response.prior = PRIOR0; rgMngmt.hdr.response.route = RTESPEC; - rgMngmt.hdr.response.mem.region = RG_MEM_REGION; + rgMngmt.hdr.response.mem.region = MAC_MEM_REGION; rgMngmt.hdr.response.mem.pool = RG_POOL; rgMngmt.hdr.response.selector = DU_SELECTOR_LC; @@ -758,7 +762,7 @@ S16 duBuildMacUsapCfg(SpId sapId) uSap = &(rgMngmt.t.cfg.s.rguSap); - uSap->mem.region = RG_MEM_REGION; + uSap->mem.region = MAC_MEM_REGION; uSap->mem.pool = RG_POOL; uSap->suId = 0; uSap->spId = sapId; @@ -774,7 +778,7 @@ S16 duBuildMacUsapCfg(SpId sapId) rgMngmt.hdr.entId.ent = ENTRG; rgMngmt.hdr.entId.inst = (Inst)0; rgMngmt.hdr.elmId.elmnt = STRGUSAP; - rgMngmt.hdr.response.mem.region = RG_MEM_REGION; + rgMngmt.hdr.response.mem.region = MAC_MEM_REGION; rgMngmt.hdr.response.mem.pool = RG_POOL; /* fill pst */ @@ -1363,7 +1367,7 @@ S16 duSendSchCfg() /* Filling of Instance Id */ cfg->instId = DEFAULT_CELLS + 1; /* Filling of Gen config */ - cfg->genCfg.mem.region = RG_MEM_REGION; + cfg->genCfg.mem.region = MAC_MEM_REGION; cfg->genCfg.mem.pool = RG_POOL; cfg->genCfg.tmrRes = 10; @@ -1380,7 +1384,7 @@ S16 duSendSchCfg() cfg->genCfg.lmPst.srcInst = DEFAULT_CELLS + 1; cfg->genCfg.lmPst.prior = PRIOR0; cfg->genCfg.lmPst.route = RTESPEC; - cfg->genCfg.lmPst.region = RG_MEM_REGION; + cfg->genCfg.lmPst.region = MAC_MEM_REGION; cfg->genCfg.lmPst.pool = RG_POOL; cfg->genCfg.lmPst.selector = DU_SELECTOR_LC; @@ -1389,7 +1393,7 @@ S16 duSendSchCfg() rgMngmt.hdr.entId.ent = ENTRG; rgMngmt.hdr.entId.inst = DU_INST; rgMngmt.hdr.elmId.elmnt = STSCHINST; - rgMngmt.hdr.response.mem.region = RG_MEM_REGION; + rgMngmt.hdr.response.mem.region = MAC_MEM_REGION; rgMngmt.hdr.response.mem.pool = RG_POOL; /* Fill Pst */ @@ -1582,7 +1586,7 @@ S16 duBuildAndSendMacCellCfg() * RFAILED - failure * ***************************************************************************/ -uint16_t duHandleMacCellCfgCfm(MacCellCfgCfm *macCellCfgCfm) +int duHandleMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm) { S16 ret = ROK; @@ -1600,7 +1604,7 @@ uint16_t duHandleMacCellCfgCfm(MacCellCfgCfm *macCellCfgCfm) /* TODO: Trigger cell start req once cell up slot ind is received*/ /* Build and Send Cell Start Req to MAC */ - //ret = duBuildAndSendMacCellStartReq(); + ret = duBuildAndSendMacCellStartReq(); } else @@ -1640,12 +1644,32 @@ uint16_t duHandleSlotInd(Pst *pst, SlotInfo *slotInfo) DU_LOG("\nDU APP : Slot Indication received"); + if(slotInfo->cellId <=0 || slotInfo->cellId > DU_MAX_CELLS) + { + DU_LOG("\nDU APP : Invalid Cell Id %d", slotInfo->cellId); + } + if(!duCb.actvCellLst[slotInfo->cellId-1]->firstSlotIndRcvd) + { + duCb.actvCellLst[slotInfo->cellId-1]->firstSlotIndRcvd = true; + if((duCb.actvCellLst[slotInfo->cellId-1] != NULL) && \ + (duCb.actvCellLst[slotInfo->cellId-1]->cellStatus == \ + ACTIVATION_IN_PROGRESS)) + { + DU_LOG("\nDU APP : Cell Id %d is ACTIVE", slotInfo->cellId); + duCb.actvCellLst[slotInfo->cellId-1]->cellStatus = ACTIVATED; + } + + } + /* TODO : Slot Indication to be moved out of EGTP_TEST when * data path is established */ #ifdef EGTP_TEST duSendEgtpSlotInd(); #endif - DU_FREE_MEM(pst->region, pst->pool, slotInfo, sizeof(SlotInfo)); + + if((pst->selector == DU_SELECTOR_LWLC) || (pst->selector == DU_SELECTOR_TC)) + DU_FREE_SHRABL_BUF(MAC_MEM_REGION, pst->pool, slotInfo, sizeof(SlotInfo)); + return ROK; } @@ -1684,6 +1708,7 @@ uint16_t duBuildAndSendMacCellStartReq() { if(duCb.actvCellLst[id]) { + duCb.actvCellLst[id]->firstSlotIndRcvd = FALSE; cellStartInfo->cellId = duCb.actvCellLst[id]->cellInfo.nrEcgi.cellId; /* Fill Pst */