uint8_t ueIdx, lcIdx;
uint16_t slot;
uint16_t crnti = 0;
- uint16_t accumalatedSize = 0;
+ uint32_t accumalatedSize = 0;
SchUeCb *ueCb = NULLP;
while(cell->boIndBitMap)
/* calculation for BO includse RLC and MAC header size */
dlMsgAlloc->lcSchInfo[dlMsgAlloc->numLc].schBytes = \
- ueCb->dlInfo.dlLcCtxt[lcIdx].bo + RLC_HDR_SIZE + MAC_HDR_SIZE;
+ ueCb->dlInfo.dlLcCtxt[lcIdx].bo + MAC_HDR_SIZE;
accumalatedSize += dlMsgAlloc->lcSchInfo[dlMsgAlloc->numLc].schBytes;
dlMsgAlloc->numLc++;
}
}
/* pdcch and pdsch data is filled */
- schDlRsrcAllocDlMsg(dlMsgAlloc, cell, crnti, accumalatedSize, slot);
+ schDlRsrcAllocDlMsg(dlMsgAlloc, cell, crnti, &accumalatedSize, slot);
+ /* Calculated TB size could be less than the total size requested.
+ * Hence, updated the scheduled bytes report. Following is valid only for
+ * one LC.
+ * TODO : Update the scheduling byte report for multiple LC based on QCI
+ * and Priority */
+ dlMsgAlloc->lcSchInfo[dlMsgAlloc->numLc -1].schBytes = accumalatedSize;
/* PUCCH resource */
schAllocPucchResource(cell, dlMsgAlloc->crnti, slot);
if (sfnSlot % SCH_MIB_TRANS == 0)
{
dlBrdcstAlloc->ssbTrans = SSB_TRANSMISSION;
+ if(!cell->firstSsbTransmitted)
+ cell->firstSsbTransmitted = true;
}
- else if (sfnSlot % ssb_rep == 0)
+ else if (cell->firstSsbTransmitted && (sfnSlot % ssb_rep == 0))
{
dlBrdcstAlloc->ssbTrans = SSB_REPEAT;
}
if(sfnSlot % cell->cellCfg.sib1SchCfg.sib1NewTxPeriod == 0)
{
dlBrdcstAlloc->sib1Trans = SIB1_TRANSMISSION;
+ if(!cell->firstSib1Transmitted)
+ cell->firstSib1Transmitted = true;
}
- else if (sfnSlot % cell->cellCfg.sib1SchCfg.sib1RepetitionPeriod == 0)
+ else if (cell->firstSib1Transmitted && (sfnSlot % cell->cellCfg.sib1SchCfg.sib1RepetitionPeriod == 0))
{
dlBrdcstAlloc->sib1Trans = SIB1_REPITITION;
}