#include "sch_utils.h"
#include "sch_fcfs.h"
#include "sch_slice_based.h"
+SchCb schCb[SCH_MAX_INST];
/**
* @brief Scheduler All Apis initialized.
void deleteSchCellCb(SchCellCb *cellCb)
{
uint8_t sliceIdx=0, slotIdx=0, plmnIdx = 0;
+ uint8_t ueIdx = 0;
CmLListCp *list=NULL;
CmLList *node=NULL, *next=NULL;
SchPageInfo *tempNode = NULLP;
deleteNodeFromLList(list, node);
node = next;
}
+ for(ueIdx = 0; ueIdx< MAX_NUM_UE; ueIdx++)
+ {
+ SCH_FREE(cellCb->schDlSlotInfo[slotIdx]->rarAlloc[ueIdx], sizeof(RarAlloc));
+ SCH_FREE(cellCb->schDlSlotInfo[slotIdx]->dlMsgAlloc[ueIdx], sizeof(DlMsgSchInfo));
+ }
+ SCH_FREE(cellCb->schDlSlotInfo[slotIdx]->ulGrant, sizeof(DciInfo));
SCH_FREE(cellCb->schDlSlotInfo[slotIdx], sizeof(SchDlSlotInfo));
}
SCH_FREE(cellCb->schDlSlotInfo, cellCb->numSlots *sizeof(SchDlSlotInfo*));
deleteNodeFromLList(list, node);
node = next;
}
+ for(ueIdx = 0; ueIdx< MAX_NUM_UE; ueIdx++)
+ {
+ SCH_FREE(cellCb->schUlSlotInfo[slotIdx]->schPuschInfo[ueIdx], sizeof(SchPuschInfo));
+ }
SCH_FREE(cellCb->schUlSlotInfo[slotIdx], sizeof(SchUlSlotInfo));
}
SCH_FREE(cellCb->schUlSlotInfo, cellCb->numSlots * sizeof(SchUlSlotInfo*));
for(plmnIdx = 0; plmnIdx < MAX_PLMN; plmnIdx++)
{
- if(cellCb->cellCfg.plmnInfoList[plmnIdx].snssai)
+ if(cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.snssai)
{
- for(sliceIdx=0; sliceIdx<cellCb->cellCfg.plmnInfoList[plmnIdx].numSliceSupport; sliceIdx++)
+ for(sliceIdx=0; sliceIdx<cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices; sliceIdx++)
{
- SCH_FREE(cellCb->cellCfg.plmnInfoList[plmnIdx].snssai[sliceIdx], sizeof(Snssai));
+ SCH_FREE(cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.snssai[sliceIdx], sizeof(Snssai));
}
- SCH_FREE(cellCb->cellCfg.plmnInfoList[plmnIdx].snssai, cellCb->cellCfg.plmnInfoList[plmnIdx].numSliceSupport*sizeof(Snssai*));
+ SCH_FREE(cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.snssai, cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices*sizeof(Snssai*));
}
}
/* Here comparing the slice cfg request with the slice stored in cellCfg */
for(plmnIdx = 0; plmnIdx < MAX_PLMN; plmnIdx++)
{
- for(sliceIdx = 0; sliceIdx<cellCb->cellCfg.plmnInfoList[plmnIdx].numSliceSupport; sliceIdx++)
+ for(sliceIdx = 0; sliceIdx<cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices; sliceIdx++)
{
/* If we find the SliceCfgReq's SNSSAI in CellCb's SNSSAI DB, we mark this slice as configured and add it to Sch's DB. */
- if(!memcmp(&schSliceCfgReq->listOfSlices[cfgIdx]->snssai, cellCb->cellCfg.plmnInfoList[plmnIdx].snssai[sliceIdx], sizeof(Snssai)))
+ if(!memcmp(&schSliceCfgReq->listOfSlices[cfgIdx]->snssai, cellCb->cellCfg.plmnInfoList[plmnIdx].suppSliceList.snssai[sliceIdx], sizeof(Snssai)))
{
if(addSliceCfgInSchDb(storedSliceCfg, schSliceCfgReq->listOfSlices[cfgIdx]) == ROK)
{