X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Fsch_harq_ul.c;h=c907655578daf4cbab28b7e0fd3d4d6521a78598;hb=6636207100c598cd70537d177670ef131e263931;hp=55c9b44c8c135eb489392ad68ce472fec76d22c9;hpb=df93fa14853abfc47879088f095dbba96bac3569;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch_harq_ul.c b/src/5gnrsch/sch_harq_ul.c index 55c9b44c8..c90765557 100644 --- a/src/5gnrsch/sch_harq_ul.c +++ b/src/5gnrsch/sch_harq_ul.c @@ -84,9 +84,11 @@ void schUlHqEntReset(SchCellCb *cellCb, SchUeCb *ueCb, SchUlHqEnt *hqE) hqP->ulHqEntLnk.node = (PTR)hqP; hqP->ulHqProcLink.node = (PTR)hqP; hqP->ulSlotLnk.node = (PTR)hqP; + cellCb->api->SchInitUlHqProcCb(hqP); schUlHqAddToFreeList(hqP); } } + /** * @brief Add hq process to free list of UL Harq entity * @@ -213,12 +215,15 @@ uint8_t schUlGetAvlHqProcess(SchCellCb *cellCb, SchUeCb *ueCb, SchUlHqProcCb **h **/ void schUlReleaseHqProcess(SchUlHqProcCb *hqP, Bool togNdi) { + SchCellCb *cellCb = NULLP; if (togNdi == TRUE) { hqP->tbInfo.ndi ^= 1; } - cmLListDeleteLList(&hqP->ulLcPrbEst.dedLcList); - cmLListDeleteLList(&hqP->ulLcPrbEst.defLcList); + + cellCb = hqP->hqEnt->cell; + cellCb->api->SchFreeUlHqProcCb(hqP); + schUlHqDeleteFromInUseList(hqP); schUlHqAddToFreeList(hqP); } @@ -239,17 +244,7 @@ void schUlHqProcessNack(SchUlHqProcCb *hqP) { if (hqP->tbInfo.txCntr < hqP->maxHqTxPerHqP) { - cmLListAdd2Tail(&(hqP->hqEnt->ue->ulRetxHqList), &hqP->ulHqProcLink); -#ifdef NR_DRX - if(hqP->hqEnt->ue->ueDrxInfoPres == true) - { - schDrxStrtUlHqRttTmr(hqP); - } - else -#endif - { - addUeToBeScheduled(hqP->hqEnt->cell, hqP->hqEnt->ue->ueId); - } + hqP->hqEnt->cell->api->SchAddToUlHqRetxList(hqP); } else { @@ -273,6 +268,35 @@ void schUlHqProcessAck(SchUlHqProcCb *hqP) { schUlReleaseHqProcess(hqP, TRUE); } + +/** + * @brief Deletes HARQ Entity + * + * @details + * + * Function : schUlHqEntDelete + * + * This function deletes HARQ entity and its member paremeters + * + * @param[in] Pointer to UE + * @return + * -# void + **/ +void schUlHqEntDelete(SchUeCb *ueCb) +{ + uint8_t count; + SchUlHqProcCb *hqP; + + cmLListDeleteLList(&ueCb->ulHqEnt.free); + cmLListDeleteLList(&ueCb->ulHqEnt.inUse); + for(count=0; count < ueCb->ulHqEnt.numHqPrcs; count++) + { + hqP = &(ueCb->ulHqEnt.procs[count]); + ueCb->cellCb->api->SchDeleteUlHqProcCb(hqP); + } + memset(&ueCb->ulHqEnt, 0, sizeof(SchUlHqEnt)); +} + /********************************************************************** End of file **********************************************************************/