};
SchCb schCb[SCH_MAX_INST];
-int schFillRar(RarAlloc *rarAlloc, uint16_t raRnti, uint16_t pci, uint8_t
- offsetPointA);
/*******************************************************************
*
memset(&pst, 0, sizeof(Pst));
FILL_PST_SCH_TO_MAC(pst, inst);
- pst.event = EVENT_DL_ALLOC;
+ pst.event = EVENT_DL_SCH_INFO;
return(*schMacDlAllocOpts[pst.selector])(&pst, dlSchedInfo);
* RFAILED - failure
*
* ****************************************************************/
-void schCalcSlotValues(SlotIndInfo slotInd, SchSlotValue *schSlotValue)
+void schCalcSlotValues(SlotTimingInfo slotInd, SchSlotValue *schSlotValue)
{
/****************************************************************
* PHY_DELTA - the physical layer delta *
* on PHY_DELTA + SCHED_DELTA + BO_DELTA *
****************************************************************/
- ADD_DELTA_TO_TIME(slotInd, schSlotValue->currentTime, PHY_DELTA);
- ADD_DELTA_TO_TIME(slotInd, schSlotValue->broadcastTime, PHY_DELTA + SCHED_DELTA);
- ADD_DELTA_TO_TIME(slotInd, schSlotValue->rarTime, PHY_DELTA + SCHED_DELTA);
- ADD_DELTA_TO_TIME(slotInd, schSlotValue->dlMsgTime, PHY_DELTA + SCHED_DELTA);
+ ADD_DELTA_TO_TIME(slotInd, schSlotValue->currentTime, PHY_DELTA_DL);
+ ADD_DELTA_TO_TIME(slotInd, schSlotValue->broadcastTime, PHY_DELTA_DL + SCHED_DELTA);
+ ADD_DELTA_TO_TIME(slotInd, schSlotValue->rarTime, PHY_DELTA_DL + SCHED_DELTA);
+ ADD_DELTA_TO_TIME(slotInd, schSlotValue->dlMsgTime, PHY_DELTA_DL + SCHED_DELTA);
}
/*******************************************************************
}
ueCb->dlInfo.dlLcCtxt[lcIdx].bo = 0;
}
+
+ if (!dlMsgAlloc->numLc)
+ {
+ DU_LOG("\nDEBUG --> SCH : No bo for any lcid\n");
+ return ROK;
+ }
/* pdcch and pdsch data is filled */
schDlRsrcAllocDlMsg(dlMsgAlloc, cell, crnti, &accumalatedSize, slot);
* RFAILED - failure
*
* ****************************************************************/
-uint8_t schProcessSlotInd(SlotIndInfo *slotInd, Inst schInst)
+uint8_t schProcessSlotInd(SlotTimingInfo *slotInd, Inst schInst)
{
uint8_t ssb_rep, ueIdx, lcgIdx, ret = ROK;
uint16_t slot;
dlBrdcstAlloc->sib1Trans = NO_SIB1;
cell = schCb[schInst].cells[schInst];
+ if(cell == NULLP)
+ {
+ DU_LOG("\nERROR --> SCH : Cell Does not exist");
+ return RFAILED;
+ }
ssb_rep = cell->cellCfg.ssbSchCfg.ssbPeriod;
- memcpy(&cell->slotInfo, slotInd, sizeof(SlotIndInfo));
+ memcpy(&cell->slotInfo, slotInd, sizeof(SlotTimingInfo));
dlBrdcstAlloc->ssbIdxSupported = 1;
slot = dlSchedInfo.schSlotValue.currentTime.slot;
schFillRar(rarAlloc,
cell->schDlSlotInfo[slot]->rarInfo->raRnti,
cell->cellCfg.phyCellId,
- cell->cellCfg.ssbSchCfg.ssbOffsetPointA);
+ cell->cellCfg.ssbSchCfg.ssbOffsetPointA,
+ dlBrdcstAlloc->ssbTrans,
+ dlBrdcstAlloc->sib1Trans);
- SCH_FREE(cell->schDlSlotInfo[slot]->rarInfo,sizeof(RarAlloc));
+ SCH_FREE(cell->schDlSlotInfo[slot]->rarInfo,sizeof(RarInfo));
cell->schDlSlotInfo[slot]->rarInfo = NULLP;
}
sizeof(DlMsgInfo));
/* pdcch and pdsch data is filled */
- schDlRsrcAllocMsg4(msg4Alloc, cell, dlSchedInfo.schSlotValue.dlMsgTime.slot);
+ schDlRsrcAllocMsg4(msg4Alloc, cell, dlSchedInfo.schSlotValue.dlMsgTime.slot, dlBrdcstAlloc->ssbTrans, dlBrdcstAlloc->sib1Trans);
/* PUCCH resource */
schAllocPucchResource(cell, msg4Alloc->dlMsgInfo.crnti, dlSchedInfo.schSlotValue.dlMsgTime.slot);
}
memset(dciInfo,0,sizeof(DciInfo));
/* update the SFN and SLOT */
- memcpy(&dlSchedInfo.schSlotValue.ulDciTime, slotInd, sizeof(SlotIndInfo));
+ memcpy(&dlSchedInfo.schSlotValue.ulDciTime, slotInd, sizeof(SlotTimingInfo));
slot = dlSchedInfo.schSlotValue.ulDciTime.slot;
/* Update PUSCH allocation */
schFillPuschAlloc(ueCb, slot, totDataReq, &schPuschInfo);
/* Fill DCI for UL grant */
schFillUlDci(ueCb, schPuschInfo, dciInfo);
- memcpy(&dciInfo->slotIndInfo, &dlSchedInfo.schSlotValue.ulDciTime, sizeof(SlotIndInfo));
+ memcpy(&dciInfo->slotIndInfo, &dlSchedInfo.schSlotValue.ulDciTime, sizeof(SlotTimingInfo));
dlSchedInfo.ulGrant = dciInfo;
}
}