SchUeCb *ueCb = NULLP;
DlMsgSchInfo *dciSlotAlloc, *dlMsgAlloc;
SlotTimingInfo pdcchTime, pdschTime, pucchTime;
+ SchPdcchAllocInfo pdcchAllocInfo;
GET_CRNTI(crnti,ueId);
ueCb = &cell->ueCb[ueId-1];
}
}
+ memset(&pdcchAllocInfo,0,sizeof(SchPdcchAllocInfo));
if(findValidK0K1Value(cell, currTime, ueId, ueCb->k0K1TblPrsnt,\
- &pdschStartSymbol, &pdschNumSymbols, &pdcchTime, &pdschTime, &pucchTime, isRetx, *hqP) != true )
+ &pdschStartSymbol, &pdschNumSymbols, &pdcchTime, &pdschTime, \
+ &pucchTime, isRetx, *hqP, &pdcchAllocInfo) != true )
{
/* If a valid combination of slots to scheduled PDCCH, PDSCH and PUCCH is
* not found, do not perform resource allocation. Return from here. */
return false;
/*[Step6]: pdcch and pdsch data is filled */
- if((schDlRsrcAllocDlMsg(cell, pdschTime, crnti, accumalatedSize, dciSlotAlloc, startPrb, pdschStartSymbol, pdschNumSymbols, isRetx, *hqP)) != ROK)
+ if((schDlRsrcAllocDlMsg(cell, pdschTime, crnti, accumalatedSize, dciSlotAlloc, startPrb,\
+ pdschStartSymbol, pdschNumSymbols, isRetx, *hqP, pdcchAllocInfo)) != ROK)
{
DU_LOG("\nERROR --> SCH : Scheduling of DL dedicated message failed");
cell->schDlSlotInfo[pdcchTime.slot]->dlMsgAlloc[ueId-1] = NULLP;
return false;
}
- memcpy(dciSlotAlloc->dlMsgPdschCfg, &dciSlotAlloc->dlMsgPdcchCfg->dci.pdschCfg, sizeof(PdschCfg));
+ memcpy(dciSlotAlloc->dlMsgPdschCfg,\
+ &dciSlotAlloc->dlMsgPdcchCfg->dci[dciSlotAlloc->dlMsgPdcchCfg->numDlDci - 1].pdschCfg, sizeof(PdschCfg));
}
else
{
SCH_ALLOC(dlMsgAlloc->dlMsgPdschCfg, sizeof(PdschCfg));
if(dlMsgAlloc->dlMsgPdschCfg)
{
- memcpy(dlMsgAlloc->dlMsgPdschCfg, &dciSlotAlloc->dlMsgPdcchCfg->dci.pdschCfg, sizeof(PdschCfg));
+ memcpy(dlMsgAlloc->dlMsgPdschCfg,\
+ &dciSlotAlloc->dlMsgPdcchCfg->dci[dciSlotAlloc->dlMsgPdcchCfg->numDlDci - 1].pdschCfg, sizeof(PdschCfg));
}
else
{
*******************************************************************/
bool findValidK0K1Value(SchCellCb *cell, SlotTimingInfo currTime, uint8_t ueId, bool dedMsg,
uint8_t *pdschStartSymbol, uint8_t *pdschSymblLen, SlotTimingInfo *pdcchTime,
- SlotTimingInfo *pdschTime, SlotTimingInfo *pucchTime, bool isRetx, SchDlHqProcCb *hqP)
+ SlotTimingInfo *pdschTime, SlotTimingInfo *pucchTime, bool isRetx, SchDlHqProcCb *hqP,
+ SchPdcchAllocInfo *pdcchAllocInfo)
{
uint8_t numK0 = 0, k0TblIdx = 0, k0Val = 0, k0Index =0 ;
uint8_t k1TblIdx = 0, k1Index = 0, k1Val = 0, numK1 = 0;
{
ueCb = &cell->ueCb[ueId-1];
k0K1InfoTbl = &ueCb->k0K1InfoTbl;
- if(schDlCandidateSelection(ueCb, *pdcchTime) == false)
+ if(schDlCandidateSelection(ueCb, *pdcchTime, pdcchAllocInfo) == false)
{
DU_LOG("\nDEBUG --> SCH: DL candidate Selection failed bcz PDCCH is unavailable for this slot");
return false;
dlPageAlloc.pageDlDci.cceReg.interleaved.interleaverSize = cell->sib1SchCfg.sib1PdcchCfg.coresetCfg.interleaverSize;
dlPageAlloc.pageDlDci.cceReg.interleaved.shiftIndex = cell->sib1SchCfg.sib1PdcchCfg.coresetCfg.shiftIndex;
dlPageAlloc.pageDlDci.ssStartSymbolIndex = cell->sib1SchCfg.sib1PdcchCfg.coresetCfg.startSymbolIndex;
- dlPageAlloc.pageDlDci.cceIndex = cell->sib1SchCfg.sib1PdcchCfg.dci.cceIndex;
- dlPageAlloc.pageDlDci.aggregLevel = cell->sib1SchCfg.sib1PdcchCfg.dci.aggregLevel;
+ dlPageAlloc.pageDlDci.cceIndex = cell->sib1SchCfg.sib1PdcchCfg.dci[0].cceIndex;
+ dlPageAlloc.pageDlDci.aggregLevel = cell->sib1SchCfg.sib1PdcchCfg.dci[0].aggregLevel;
dlPageAlloc.pageDlDci.precoderGranularity = cell->sib1SchCfg.sib1PdcchCfg.coresetCfg.precoderGranularity;
dlPageAlloc.pageDlDci.coreSetSize = cell->sib1SchCfg.sib1PdcchCfg.coresetCfg.coreSetSize;
/*Fill BWP*/