[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-527] Implementation of E2 Node Configuration...
[o-du/l2.git] / src / 5gnrsch / sch_slot_ind.c
index 00ea9b9..2a21774 100644 (file)
@@ -40,6 +40,7 @@ File:     sch_slot_ind.c
 #include "du_app_mac_inf.h"
 #include "mac_sch_interface.h"
 #include "sch.h"
+#include "sch_tmr.h"
 #include "sch_utils.h"
 #ifdef NR_DRX 
 #include "sch_drx.h"
@@ -650,6 +651,8 @@ uint8_t SchProcSlotInd(Pst *pst, SlotTimingInfo *slotInd)
    DlBrdcstAlloc  *dlBrdcstAlloc = NULLP;
    SchCellCb      *cell = NULLP;
    Inst           schInst = pst->dstInst-SCH_INST_START;
+   CmLList        *node = NULLP;
+   TotalPrbUsage  *dlTotalPrbUsage = NULLP;
 
    cell = schCb[schInst].cells[schInst];
    if(cell == NULLP)
@@ -749,11 +752,26 @@ uint8_t SchProcSlotInd(Pst *pst, SlotTimingInfo *slotInd)
       return (ret);
    }
 
+   /* Update DL PRB Usage for all stats group which requested for DL Total PRB Usage */
+   node = cmLListFirst(&schCb[schInst].statistics.activeKpiList.dlTotPrbUseList);
+   while(node)
+   {
+      dlTotalPrbUsage = (TotalPrbUsage *)node->node;
+      dlTotalPrbUsage->numPrbUsedForTx += cell->schDlSlotInfo[slot]->prbAlloc.numPrbAlloc;
+      dlTotalPrbUsage->totalPrbAvailForTx += MAX_NUM_RB;
+      node = node->next;
+   }
+   
+   /* Re-initialize DL slot */
    schInitDlSlot(cell->schDlSlotInfo[slot]);
+
+   /* Send UL Resource allocation to MAC */
    schUlResAlloc(cell, schInst);
+
 #ifdef NR_DRX 
    schHandleExpiryDrxTimer(cell);
 #endif   
+
    return ret;
 }