uint8_t sendSchedRptToRlc(DlSchedInfo dlInfo, SlotTimingInfo slotInfo, uint8_t ueIdx, uint8_t schInfoIdx);
uint8_t macProcLongBsr(uint16_t cellId, uint16_t crnti,uint8_t numLcg,\
DataVolInfo dataVolInfo[MAX_NUM_LOGICAL_CHANNEL_GROUPS]);
+void freeMacSliceCfgReq(MacSliceCfgReq *cfgReq,Pst *pst);
#endif
/**********************************************************************
End of file
/* Filling UE Config response */
memset(cfgRsp, 0, sizeof(MacUeCfgRsp));
cfgRsp->cellId = schCfgRsp->cellId;
- cfgRsp->ueIdx = schCfgRsp->ueIdx;
+ cfgRsp->ueIdx = schCfgRsp->ueId;
cfgRsp->result = result;
/* Fill Post structure and send UE Create response*/
/* Filling UE Config response */
memset(cfgRsp, 0, sizeof(MacUeCfgRsp));
cfgRsp->cellId = schCfgRsp->cellId;
- cfgRsp->ueIdx = schCfgRsp->ueIdx;
+ cfgRsp->ueIdx = schCfgRsp->ueId;
cfgRsp->result = result;
/* Fill Post structure and send UE Create response*/
#endif
GET_CELL_IDX(schCfgRsp->cellId, cellIdx);
- ueCfg = getMacUeCfg(cellIdx, schCfgRsp->ueIdx);
+ ueCfg = getMacUeCfg(cellIdx, schCfgRsp->ueId);
if(ueCfg == NULLP)
{
DU_LOG("\nERROR --> MAC : Failed to find the Mac Ue Cfg for event [%d] in MacProcSchUeCfgRsp()", pst->event);
return RFAILED;
}
- GET_UE_IDX(dlBoInfo->crnti, ueId);
+ GET_UE_ID(dlBoInfo->crnti, ueId);
ueCb = &cell->ueCb[ueId-1];
lcId = dlBoInfo->lcId;
CHECK_LCID(lcId, isLcIdValid);
}
/* Adding UE Id to list of pending UEs to be scheduled */
- addUeToBeScheduled(cellCb, ueCb->ueIdx);
+ addUeToBeScheduled(cellCb, ueCb->ueId);
return ROK;
}
ueCb->srRcvd = true;
/* Adding UE Id to list of pending UEs to be scheduled */
- addUeToBeScheduled(cellCb, ueCb->ueIdx);
+ addUeToBeScheduled(cellCb, ueCb->ueId);
}
return ROK;
}
*/
typedef struct schUeCb
{
- uint16_t ueIdx;
+ uint16_t ueId;
uint16_t crnti;
SchUeCfgCb ueCfg;
SchUeState state;
uint8_t schBroadcastSib1Alloc(SchCellCb *cell, SlotTimingInfo slotTime, DlBrdcstAlloc *dlBrdcstAlloc);
bool schProcessRaReq(SchCellCb *cellCb, SlotTimingInfo currTime, uint8_t ueId);
bool schProcessMsg4Req(SchCellCb *cell, SlotTimingInfo currTime, uint8_t ueId);
-uint8_t schFillRar(SchCellCb *cell, SlotTimingInfo rarTime, uint16_t ueIdx, RarAlloc *rarAlloc, uint8_t k0Index);
+uint8_t schFillRar(SchCellCb *cell, SlotTimingInfo rarTime, uint16_t ueId, RarAlloc *rarAlloc, uint8_t k0Index);
uint8_t schDlRsrcAllocDlMsg(SchCellCb *cell, SlotTimingInfo slotTime, uint16_t crnti,
uint32_t tbSize, DlMsgAlloc *dlMsgAlloc, uint16_t startPRB, uint8_t pdschStartSymbol, uint8_t pdschNumSymbols);
uint8_t schDlRsrcAllocMsg4(SchCellCb *cell, SlotTimingInfo msg4Time, uint8_t ueId, DlMsgAlloc *msg4Alloc,\
uint8_t pdschStartSymbol, uint8_t pdschNumSymbols);
-uint16_t schAccumalateLcBoSize(SchCellCb *cell, uint16_t ueIdx);
uint8_t allocatePrbDl(SchCellCb *cell, SlotTimingInfo slotTime, uint8_t startSymbol, uint8_t symbolLength, \
uint16_t *startPrb, uint16_t numPrb);
void fillDlMsgInfo(DlMsgInfo *dlMsgInfo, uint8_t crnti);
uint16_t fillPucchResourceInfo(SchPucchInfo *schPucchInfo, Inst inst, SlotTimingInfo slotInfo)
{
- uint8_t ret = ROK, ueIdx = 0, pucchIdx = 0;
+ uint8_t ret = ROK, ueId = 0, ueIdx = 0, pucchIdx = 0;
SchCellCb *cell = schCb[inst].cells[inst];
SchPucchCfgCmn *pucchCfg = NULLP;
SchBwpParams *ulBwp = NULLP;
uint16_t startPrb;
- GET_UE_IDX(schPucchInfo->rnti, ueIdx);
- ueIdx--;
+ GET_UE_ID(schPucchInfo->rnti, ueId);
+ ueIdx = ueId -1;
if(cell->ueCb[ueIdx].ueCfg.spCellCfg.servCellCfg.initUlBwp.pucchCfgPres)
{
/* fill pucch dedicated cfg */
uint8_t schDlRsrcAllocDlMsg(SchCellCb *cell, SlotTimingInfo slotTime, uint16_t crnti,
uint32_t tbSize, DlMsgAlloc *dlMsgAlloc, uint16_t startPRB, uint8_t pdschStartSymbol, uint8_t pdschNumSymbols)
{
- uint8_t ueIdx;
+ uint8_t ueId=0;
PdcchCfg *pdcch = NULLP;
PdschCfg *pdsch = NULLP;
BwpCfg *bwp = NULLP;
pdsch = &dlMsgAlloc->dlMsgSchedInfo[dlMsgAlloc->numSchedInfo].dlMsgPdschCfg;
bwp = &dlMsgAlloc->dlMsgSchedInfo[dlMsgAlloc->numSchedInfo].bwp;
- GET_UE_IDX(crnti, ueIdx);
- ueCb = cell->ueCb[ueIdx-1];
+ GET_UE_ID(crnti, ueId);
+ ueCb = cell->ueCb[ueId-1];
coreset1 = ueCb.ueCfg.spCellCfg.servCellCfg.initDlBwp.pdcchCfg.cRSetToAddModList[0];
pdschCfg = ueCb.ueCfg.spCellCfg.servCellCfg.initDlBwp.pdschCfg;
**/
void createSchRaCb(uint16_t tcrnti, Inst schInst)
{
- uint8_t ueIdx = 0;
+ uint8_t ueId = 0;
- GET_UE_IDX(tcrnti, ueIdx);
- schCb[schInst].cells[schInst]->raCb[ueIdx -1].tcrnti = tcrnti;
- schCb[schInst].cells[schInst]->raCb[ueIdx -1].msg4recvd = FALSE;
+ GET_UE_ID(tcrnti, ueId);
+ schCb[schInst].cells[schInst]->raCb[ueId -1].tcrnti = tcrnti;
+ schCb[schInst].cells[schInst]->raCb[ueId -1].msg4recvd = FALSE;
}
/**
SchRaReq *raReq = NULLP;
float slotDuration;
uint8_t winNumSlots;
- uint8_t ueIdx;
+ uint8_t ueId;
if(cell == NULLP)
{
}
/* Storing RA request in cellCb */
- GET_UE_IDX(rachInd->crnti, ueIdx);
- if(ueIdx <= 0)
+ GET_UE_ID(rachInd->crnti, ueId);
+ if(ueId <= 0)
{
DU_LOG("\nERROR --> SCH: Invalid CRNTI [%d]", rachInd->crnti);
return RFAILED;
/* Adding window size to window start time to get window end time */
ADD_DELTA_TO_TIME(raReq->winStartTime, raReq->winEndTime, winNumSlots);
- cell->raReq[ueIdx -1] = raReq;
+ cell->raReq[ueId -1] = raReq;
/* Adding UE Id to list of pending UEs to be scheduled */
- addUeToBeScheduled(cell, ueIdx);
+ addUeToBeScheduled(cell, ueId);
return ROK;
}
cfgRsp->cellId = ueCfg->cellId;
cfgRsp->crnti = ueCfg->crnti;
- GET_UE_IDX(ueCfg->crnti, cfgRsp->ueIdx);
+ GET_UE_ID(ueCfg->crnti, cfgRsp->ueId);
cfgRsp->rsp = result;
/* Filling response post */
* ****************************************************************/
uint8_t MacSchAddUeConfigReq(Pst *pst, SchUeCfg *ueCfg)
{
- uint8_t ueIdx, lcIdx, ret = ROK;
+ uint8_t ueId, lcIdx, ret = ROK;
SchCellCb *cellCb = NULLP;
SchUeCb *ueCb = NULLP;
SchUeCfgRsp cfgRsp;
cellCb = getSchCellCb(pst->event, inst, ueCfg);
/* Search if UE already configured */
- GET_UE_IDX(ueCfg->crnti, ueIdx);
- ueCb = &cellCb->ueCb[ueIdx -1];
+ GET_UE_ID(ueCfg->crnti, ueId);
+ ueCb = &cellCb->ueCb[ueId -1];
if(ueCb)
{
if((ueCb->crnti == ueCfg->crnti) && (ueCb->state == SCH_UE_STATE_ACTIVE))
{
- DU_LOG("\nDEBUG --> SCH : CRNTI %d already configured ", ueCfg->crnti);
- SchSendUeCfgRspToMac(pst->event, ueCfg, inst, RSP_OK, &cfgRsp);
- return ROK;
+ DU_LOG("\nDEBUG --> SCH : CRNTI %d already configured ", ueCfg->crnti);
+ SchSendUeCfgRspToMac(pst->event, ueCfg, inst, RSP_OK, &cfgRsp);
+ return ROK;
}
}
else
/* Fill received Ue Configuration in UeCb */
memset(ueCb, 0, sizeof(SchUeCb));
- GET_UE_IDX(ueCfg->crnti, ueIdx);
- ueCb->ueIdx = ueIdx;
+ ueCb->ueId = ueId;
ueCb->crnti = ueCfg->crnti;
ueCb->state = SCH_UE_STATE_ACTIVE;
ret = fillSchUeCb(ueCb, ueCfg);
if(ret == ROK)
{
cellCb->numActvUe++;
- SET_ONE_BIT(ueCb->ueIdx, cellCb->actvUeBitMap);
+ SET_ONE_BIT(ueCb->ueId, cellCb->actvUeBitMap);
ueCb->cellCb = cellCb;
ueCb->srRcvd = false;
ueCb->bsrRcvd = false;
* ****************************************************************/
uint8_t MacSchModUeConfigReq(Pst *pst, SchUeCfg *ueCfg)
{
- uint8_t ueIdx, lcIdx, ret = ROK;
+ uint8_t ueId, lcIdx, ret = ROK;
SchCellCb *cellCb = NULLP;
SchUeCb *ueCb = NULLP;
SchUeCfgRsp cfgRsp;
cellCb = getSchCellCb(pst->event, inst, ueCfg);
/* Search if UE already configured */
- GET_UE_IDX(ueCfg->crnti, ueIdx);
- ueCb = &cellCb->ueCb[ueIdx -1];
+ GET_UE_ID(ueCfg->crnti, ueId);
+ ueCb = &cellCb->ueCb[ueId -1];
if(!ueCb)
{
}
else
{
- GET_UE_IDX(ueDelete->crnti, ueId);
+ GET_UE_ID(ueDelete->crnti, ueId);
if(( cellCb->ueCb[ueId-1].crnti == ueDelete->crnti) && ( cellCb->ueCb[ueId-1].state == SCH_UE_STATE_ACTIVE))
{
deleteSchUeCb(&cellCb->ueCb[ueId-1]);
**/
SchUeCb* schGetUeCb(SchCellCb *cellCb, uint16_t crnti)
{
- uint16_t ueIdx;
- GET_UE_IDX(crnti, ueIdx);
- return &(cellCb->ueCb[ueIdx -1]);
+ uint16_t ueId;
+ GET_UE_ID(crnti, ueId);
+ return &(cellCb->ueCb[ueId -1]);
}
/**
typedef struct schUeCfgRsp
{
- uint16_t ueIdx;
+ uint16_t ueId;
uint16_t cellId;
uint16_t crnti;
SchMacRsp rsp;