X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Frg_sch_tom.c;h=afabf281809dfc42f9e3d847ef02e32ea6aa4789;hb=aa016a0a037017083dd793b564b47ed7855069ec;hp=6a076edbea7b148631a8f4794c9afdeeea334f2e;hpb=3235ecfc7414aa0b72d0ad50db63ae8b5626045b;p=o-du%2Fl2.git diff --git a/src/5gnrsch/rg_sch_tom.c b/src/5gnrsch/rg_sch_tom.c index 6a076edbe..afabf2818 100755 --- a/src/5gnrsch/rg_sch_tom.c +++ b/src/5gnrsch/rg_sch_tom.c @@ -263,6 +263,9 @@ PUBLIC S16 rgSCHTomUtlFillDatSrsRecpReq ARGS( Bool hqPres )); +PUBLIC void schFillCrntTime( + SlotIndInfo slotInd, + Inst schInst); #ifdef CA_DBG EXTERN U32 delayedApiCnt; @@ -302,6 +305,52 @@ U32 gUlCrcPassCounter = 0; #ifdef RG_5GTF EXTERN U32 gUl5gtfPdcchSend; +#endif + +#ifdef UNUSED_FUNC +#ifdef TFU_UPGRADE +PRIVATE S16 rgSCHTomUtlFillCqiSrsWithSr ARGS +(( +RgSchCellCb *cell, +RgSchUeCb *ue, +TfuRecpReqInfo *recpReqInfo, +TfuUeRecpReqInfo *pucchRecpInfo, +U16 validIdx +)); +PRIVATE Bool rgSCHTomUtlFillDatHarqRecpReq ARGS +(( +RgSchCellCb *cell, +RgSchUlAlloc *alloc, +TfuUeRecpReqInfo *datRecpInfo, +TfuRecpReqInfo *recpReqInfo +)); +PRIVATE S16 rgSCHTomUtlFillSrRecpReq ARGS(( +TfuRecpReqInfo *recpReq, +RgSchCellCb *cell, +U16 validIdx, +RgSchErrInfo *err)); +PRIVATE S16 rgSCHTomUtlFillRiRecpReq ARGS(( +TfuRecpReqInfo *recpReq, +RgSchCellCb *cell, +U16 validIdx, +RgSchErrInfo *err)); +PRIVATE S16 rgSCHTomUtlFillPcqiRecpReq ARGS(( +TfuRecpReqInfo *recpReq, +RgSchCellCb *cell, +U16 validIdx, +RgSchErrInfo *err)); +PRIVATE S16 rgSCHTomUtlFillSrsRecpReq ARGS(( +TfuRecpReqInfo *recpReq, +RgSchCellCb *cell, +U16 validIdx, +RgSchErrInfo *err)); +PRIVATE S16 rgSCHTomUtlGenIndices ARGS(( +U32 label, +U8 posM, +U8 valN, +U8 valK, +TfuSubbandInfo* sbInfo)); +#endif PRIVATE S16 rgSCHTomUtlFillCqiRiRecpReq ARGS( ( TfuRecpReqInfo *recpReqInfo, @@ -309,9 +358,15 @@ PRIVATE S16 rgSCHTomUtlFillCqiRiRecpReq ARGS( U16 validIdx, RgSchErrInfo *err )); +PRIVATE Void rgSchTomFillCellTtiInfo ARGS +(( +TfuTtiIndInfo *ttiInd, +Inst schInst, +U8 *nCell, +RgSchCellCb *cells[] +)); #endif - /* local typedefs */ PUBLIC U32 rgBwAlloInfo[RGSCH_NUM_SUB_FRAMES]; /* Num of Rbs Allocated in each SF */ PUBLIC U32 rgBwAlcnt[RGSCH_NUM_SUB_FRAMES]; /*Num of times Allocation done in each Subframe */ @@ -386,16 +441,6 @@ PUBLIC S16 rgSCHTomFillOnlySrsRecpReq ARGS RgSchUlAlloc *alloc, TfuUeRecpReqInfo *datRecpInfo )); - -PRIVATE S16 rgSCHTomUtlFillCqiSrsWithSr ARGS -(( - RgSchCellCb *cell, - RgSchUeCb *ue, - TfuRecpReqInfo *recpReqInfo, - TfuUeRecpReqInfo *pucchRecpInfo, - U16 validIdx - )); - PRIVATE S16 rgSCHTomUtlFillCqiSrSrsWithHq ARGS (( RgSchCellCb *cell, @@ -458,50 +503,9 @@ PRIVATE S16 rgSCHTomUtlMoveSrsNxtOccasion ARGS RgSchCellCb *cell, RgSchUeCb *ue )); - -PRIVATE Bool rgSCHTomUtlFillDatHarqRecpReq ARGS -(( - RgSchCellCb *cell, - RgSchUlAlloc *alloc, - TfuUeRecpReqInfo *datRecpInfo, - TfuRecpReqInfo *recpReqInfo - )); - -PRIVATE S16 rgSCHTomUtlFillSrRecpReq ARGS(( - TfuRecpReqInfo *recpReq, - RgSchCellCb *cell, - U16 validIdx, - RgSchErrInfo *err)); - PRIVATE S16 rgSCHTomUtlWillUeRprtCqiRi ARGS(( RgSchUeCb *ue, Bool *willueRprtCqiRii)); - -PRIVATE S16 rgSCHTomUtlFillRiRecpReq ARGS(( - TfuRecpReqInfo *recpReq, - RgSchCellCb *cell, - U16 validIdx, - RgSchErrInfo *err)); - -PRIVATE S16 rgSCHTomUtlFillPcqiRecpReq ARGS(( - TfuRecpReqInfo *recpReq, - RgSchCellCb *cell, - U16 validIdx, - RgSchErrInfo *err)); - -PRIVATE S16 rgSCHTomUtlFillSrsRecpReq ARGS(( - TfuRecpReqInfo *recpReq, - RgSchCellCb *cell, - U16 validIdx, - RgSchErrInfo *err)); - -PRIVATE S16 rgSCHTomUtlGenIndices ARGS(( - U32 label, - U8 posM, - U8 valN, - U8 valK, - TfuSubbandInfo* sbInfo)); - #endif #ifdef TFU_UPGRADE PRIVATE S16 rgSCHTomUtlFillDatRecpReq ARGS(( @@ -588,6 +592,7 @@ PRIVATE S16 rgSCHTomUtlFillSfHqFdbkForOneUe ARGS(( #ifdef LTEMAC_SPS EXTERN PUBLIC Void rgSCHCmnDlSpsSch (RgSchCellCb *cell); #ifndef LTE_TDD +#ifdef UNUSED_FUNC #ifdef TFU_UPGRADE PRIVATE S16 rgSCHTomCnsdrRelPdcch ARGS (( @@ -608,6 +613,7 @@ PRIVATE S16 rgSCHTomCnsdrRelPdcch ARGS #endif #endif #endif +#endif PRIVATE Void rgSchTomTtiMiscFunctions ARGS (( @@ -641,14 +647,6 @@ PRIVATE Void rgSCHTomUtlSendSfnTick ARGS RgSchCellCb *cell )); #endif - -PRIVATE Void rgSchTomFillCellTtiInfo ARGS -(( -TfuTtiIndInfo *ttiInd, -Inst schInst, -U8 *nCell, -RgSchCellCb *cells[] -)); #ifdef LTE_TDD PRIVATE Void rgSchTomUtlTddRlsSfAndHarq ARGS (( @@ -1096,9 +1094,7 @@ TfuHqIndInfo *harqAckInd; CmLList *node; TfuHqInfo *hqInfo; Pst pst; -#ifdef TFU_UPGRADE - U8 tbCnt; -#endif + // U8 tbCnt; RgInfRlsHqInfo *rlsHqBufs = &(cell->rlsHqArr[cell->crntHqIdx]); U32 cellIdx; @@ -1579,7 +1575,7 @@ PRIVATE S16 rgSCHTomUtlMovePriNxtOccasion(cell, ue, riCb) TRC2(rgSCHTomUtlMovePriNxtOccasion); crntTime = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) - +(cell->crntTime.subframe); + +(cell->crntTime.slot); #ifdef XEON_SPECIFIC_CHANGES RGSCHCPYTIMEINFO(cell->crntTime, ue->riRecpTime); #endif @@ -1755,7 +1751,7 @@ PRIVATE S16 rgSCHTomUtlMoveSrsNxtOccasion(cell, ue) TRC2(rgSCHTomUtlMoveSrsNxtOccasion); crntTime = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) - +(cell->crntTime.subframe); + +(cell->crntTime.slot); /* Compute Next Transmission Instance */ tempIdx = ue->srsCb.peri + ue->srsCb.nSrsTrIdx; @@ -1881,7 +1877,7 @@ PUBLIC S16 rgSCHTomRawCqiInd(cell, rawCqiInd) if (rawCqiInfo->numBits >= 5) printf("cellId [%d] crnti [%d] numBits [%d] uciPayload [0x%08x] sfn/sf [%d:%d]\n", cell->cellId, rawCqiInfo->crnti, rawCqiInfo->numBits, rawCqiInfo->uciPayload, - rawCqiInd->timingInfo.sfn, rawCqiInd->timingInfo.subframe); + rawCqiInd->timingInfo.sfn, rawCqiInd->timingInfo.slot); */ if (rawCqiInfo->numBits == 1) { @@ -1939,7 +1935,7 @@ PUBLIC S16 rgSCHTomRawCqiInd(cell, rawCqiInd) } /* printf("rawCqiInfo->numBits [%d] uciPayload [0x%08x] sfn/sf [%d:%d]\n", rawCqiInfo->numBits, - rawCqiInfo->uciPayload, rawCqiInd->timingInfo.sfn, rawCqiInd->timingInfo.subframe); + rawCqiInfo->uciPayload, rawCqiInd->timingInfo.sfn, rawCqiInd->timingInfo.slot); */ } else if (rawCqiInfo->numBits == 5) @@ -1972,7 +1968,7 @@ PUBLIC S16 rgSCHTomRawCqiInd(cell, rawCqiInd) } else if (rawCqiInfo->numBits == 6) { - RgInfRlsHqInfo *rlsHqBufs = &(cell->rlsHqArr[cell->crntHqIdx]); + rlsHqBufs = &(cell->rlsHqArr[cell->crntHqIdx]); TfuHqFdbk fdbk = TFU_HQFDB_NACK; /* Process both HARQ and CQI-RI Ind*/ ri = (rawCqiInfo->uciPayload >> 26) & 0x1; @@ -2156,6 +2152,7 @@ PUBLIC S16 rgSCHTomSrsInd(cell, srsInd) * File: rg_sch_utl.c * */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgSCHTomUtlGenIndices ( @@ -2197,6 +2194,7 @@ PRIVATE S16 rgSCHTomUtlGenIndices(label, posM, valN, valK, sbInfo) } RETVALUE(ROK); } /* end of rgSCHTomUtlGenIndices*/ +#endif #endif /** * @brief Handler for processing decode failure indication recieved from @@ -2275,7 +2273,7 @@ TfuCrcIndInfo *crcInd; /*Removed the WA to drop 2nd CRC*/ RLOG_ARG2(L_ERROR,DBG_CELLID,cell->cellId,"Recieved CRC " "twice per TTI @(%u,%u)", cell->crntTime.sfn, - cell->crntTime.subframe); + cell->crntTime.slot); } lastCrc = crntCrc; } @@ -2329,7 +2327,7 @@ TfuCrcIndInfo *crcInd; #ifdef LTE_TDD /*ccpu00128820 - MOD - Msg3 alloc double delete issue*/ hqProc = &(raCb->msg3HqProc); - RGSCH_UPD_PHICH(cell->ulDlCfgIdx, crcInd->timingInfo.subframe, + RGSCH_UPD_PHICH(cell->ulDlCfgIdx, crcInd->timingInfo.slot, hqProc); #endif raCb = NULLP; @@ -2533,7 +2531,7 @@ TfuTimingAdvIndInfo *timingAdvInd; * * Function: rgSCHTomTtiInd * - * Handler for processing TTI indication recieved from PHY + * Handler for processing slot indication recieved from MAC * for a cell. This is split into the below Steps. * * 1: Complete the Uplink and Common Channel Scheduling for each Cell @@ -2542,19 +2540,19 @@ TfuTimingAdvIndInfo *timingAdvInd; * 4: Fill the Tfu structures for DL and UL Config requests * 5: Handle the RGR Config messages per Cell * - * @param[in] TfuTtiIndInfo *ttiInd + * @param[in] SlotIndInfo *slotInd * @param[in] Inst schInst * @return Void **/ #ifdef ANSI PUBLIC Void rgSCHTomTtiInd ( -TfuTtiIndInfo *ttiInd, +SlotIndInfo *slotInd, Inst schInst ) #else -PUBLIC Void rgSCHTomTtiInd(ttiInd, schInst) -TfuTtiIndInfo *ttiInd; +PUBLIC Void rgSCHTomTtiInd(slotInd, schInst) +SlotIndInfo *slotInd; Inst schInst; #endif { @@ -2572,7 +2570,9 @@ Inst schInst; glblTtiCnt++; #endif - rgSchTomFillCellTtiInfo(ttiInd, schInst, &nCell, &cell[0]); + //rgSchTomFillCellTtiInfo(slotInd, schInst, &nCell, &cell[0]); + + schFillCrntTime(*slotInd,schInst); for (i = 0; i < nCell; i++) { /* Perform UL and DL Common Channel scheduling */ @@ -2975,7 +2975,7 @@ RgSchErrInfo *err; /*ccpu00130768 */ if(cell->srsCfg.isSrsCfgPres && - rgSchTddCellSpSrsSubfrmTbl[cell->srsCfg.srsSubFrameCfg][recpReqInfo->timingInfo.subframe]) + rgSchTddCellSpSrsSubfrmTbl[cell->srsCfg.srsSubFrameCfg][recpReqInfo->timingInfo.slot]) { recpReqInfo->srsPres = TRUE; } @@ -3054,7 +3054,7 @@ RgSchErrInfo *err; cntrlInfo->dlTiming = cell->dlDciTime; cntrlInfo->cellId = cell->cellId; cntrlInfo->ulTiming = cell->hiDci0Time; - if((0 == (cntrlInfo->dlTiming.sfn % 30)) && (0 == cntrlInfo->dlTiming.subframe)) + if((0 == (cntrlInfo->dlTiming.sfn % 30)) && (0 == cntrlInfo->dlTiming.slot)) { //printf("5GTF_CHECK rgSCHTomUtlProcDlSf Cntrl dl (%d : %d) ul (%d : %d)\n", cntrlInfo->dlTiming.sfn, cntrlInfo->dlTiming.subframe, cntrlInfo->ulTiming.sfn, cntrlInfo->ulTiming.subframe); } @@ -4498,6 +4498,7 @@ RgSchErrInfo *err; * -# ROK * -# RFAILED */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgSCHTomUtlFillSrRecpReq ( @@ -4586,8 +4587,8 @@ PRIVATE S16 rgSCHTomUtlFillSrRecpReq (recpReqInfo, cell, validIdx, err) } RETVALUE(ROK); }/* end of rgSCHTomUtlFillSrRecpReq */ - - +#endif +#endif /** @brief This function tells will the UE has a periodic CQI/PMI/RI * reporting * @@ -4665,6 +4666,7 @@ PRIVATE S16 rgSCHTomUtlWillUeRprtCqiRi ( ue, willueRprtCqiRi) * -# ROK * -# RFAILED */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgSCHTomUtlFillRiRecpReq ( @@ -4768,7 +4770,7 @@ PRIVATE S16 rgSCHTomUtlFillRiRecpReq (recpReqInfo, cell, validIdx, err) } RETVALUE(ROK); }/* end of rgSCHTomUtlFillRiRecpReq */ - +#endif #ifdef RG_5GTF /** @brief This function handles filling of 5GTF CQI-RI reception request to * PHY. @@ -4787,6 +4789,8 @@ PRIVATE S16 rgSCHTomUtlFillRiRecpReq (recpReqInfo, cell, validIdx, err) * -# ROK * -# RFAILED */ + +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgSCHTomUtlFillCqiRiRecpReq ( @@ -4840,7 +4844,7 @@ PRIVATE S16 rgSCHTomUtlFillCqiRiRecpReq (recpReqInfo, cell, validIdx, err) RETVALUE(ROK); }/* end of rgSCHTomUtlFillCqiRiRecpReq */ #endif - +#endif /** @brief This function handles filling of PCQI reception request to * PHY. * @@ -4858,6 +4862,7 @@ PRIVATE S16 rgSCHTomUtlFillCqiRiRecpReq (recpReqInfo, cell, validIdx, err) * -# ROK * -# RFAILED */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgSCHTomUtlFillPcqiRecpReq ( @@ -4955,7 +4960,6 @@ PRIVATE S16 rgSCHTomUtlFillPcqiRecpReq (recpReqInfo, cell, validIdx, err) } RETVALUE(ROK); }/* end of rgSCHTomUtlFillPcqiRecpReq */ - /** @brief This function handles filling of SRS reception request to * PHY. * @@ -5212,9 +5216,9 @@ PRIVATE S16 rgSCHTomUtlFillDatRecpReq (recpReqInfo, cell, validIdx, err) TRC2(rgSCHTomUtlFillDatRecpReq); - if((0 == (recpReqInfo->timingInfo.sfn % 30)) && (0 == recpReqInfo->timingInfo.subframe)) + if((0 == (recpReqInfo->timingInfo.sfn % 30)) && (0 == recpReqInfo->timingInfo.slot)) { - //printf("5GTF_CHECK rgSCHTomUtlFillDatRecpReq (%d : %d)\n", recpReqInfo->timingInfo.sfn, recpReqInfo->timingInfo.subframe); + //printf("5GTF_CHECK rgSCHTomUtlFillDatRecpReq (%d : %d)\n", recpReqInfo->timingInfo.sfn, recpReqInfo->timingInfo.slot); } /* processing steps are * - Run through the UL allocations going out in this subframe. @@ -5252,7 +5256,7 @@ PRIVATE S16 rgSCHTomUtlFillDatRecpReq (recpReqInfo, cell, validIdx, err) { RGSCHDECRFRMCRNTTIME(cell->crntTime,dci0Time,(RGSCH_ULCTRL_RECP_DIST)); - idx = (dci0Time.sfn * RGSCH_NUM_SUB_FRAMES_5G + dci0Time.subframe)% + idx = (dci0Time.sfn * RGSCH_NUM_SUB_FRAMES_5G + dci0Time.slot)% RGSCH_ULCTRL_RECP_DIST; UNUSED(idx); datRecpInfo->t.puschRecpReq.rcpInfo = TFU_PUSCH_DATA; @@ -5552,7 +5556,7 @@ PUBLIC S16 rgSCHTomUtlPcqiSbCalcBpIdx(crntTimInfo, ueCb, cqiCb) RgSchUePCqiCb *cqiCb; #endif { - U16 tti = (crntTimInfo.sfn * RGSCH_NUM_SUB_FRAMES_5G + crntTimInfo.subframe); + U16 tti = (crntTimInfo.sfn * RGSCH_NUM_SUB_FRAMES_5G + crntTimInfo.slot); U16 prdNum = tti/cqiCb->cqiPeri; TRC2(rgSCHTomUtlPcqiSbCalcBpIdx); @@ -6651,6 +6655,7 @@ Bool isDatPresOnSecCell; * -# ROK * -# RFAILED **/ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgSCHTomUtlFillCqiSrsWithSr ( @@ -6811,7 +6816,7 @@ U16 validIdx; } /* rgSCHTomUtlFillCqiSrsWithSr */ #endif - +#endif #ifdef LTE_TDD /** @brief This function handles filling of HARQ feedback repetition @@ -8252,7 +8257,7 @@ RgSchCellCb *cell; /* Added support for period = 0 to disable tick to RRM */ if ((cell->rrmTtiIndPrd != 0) && ((cell->crntTime.sfn % cell->rrmTtiIndPrd) == 0) && - (cell->crntTime.subframe == 0)) + (cell->crntTime.slot == 0)) { /* Allocate a TTI indication structure and send to RRM over RGR interface */ if (rgSCHUtlAllocSBuf (cell->instIdx, @@ -8264,7 +8269,7 @@ RgSchCellCb *cell; RETVOID; } rgrTtiInd->cellId = cell->cellId; - rgrTtiInd->hSfn = cell->crntTime.hSfn; + //rgrTtiInd->hSfn = cell->crntTime.hSfn; rgrTtiInd->sfn = cell->crntTime.sfn; if (rgSCHUtlRgrTtiInd (cell, rgrTtiInd) != ROK) @@ -8292,6 +8297,7 @@ RgSchCellCb *cell; * @param[in] Inst schInst * @RETVALUE None */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE Void rgSCHDynTDDMrkCrntSfIdx ( @@ -8315,7 +8321,7 @@ Inst schInst; RETVOID; } - +#endif #endif /** @brief This function fills the TTI timinig info for each cell * @@ -8331,6 +8337,7 @@ Inst schInst; * Returns: Void * */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE Void rgSchTomFillCellTtiInfo ( @@ -8403,9 +8410,9 @@ RgSchCellCb *cells[]; { cell->stopDlSch = TRUE; } - if((0 == (cellInfo->timingInfo.sfn % 30)) && (0 == cellInfo->timingInfo.subframe)) + if((0 == (cellInfo->timingInfo.sfn % 30)) && (0 == cellInfo->timingInfo.slot)) { - //printf("5GTF_CHECK rgSCHTOMTtiInd (%d : %d)\n", cellInfo->timingInfo.sfn, cellInfo->timingInfo.subframe); + //printf("5GTF_CHECK rgSCHTOMTtiInd (%d : %d)\n", cellInfo->timingInfo.sfn, cellInfo->timingInfo.slot); } #ifndef EMTC_ENABLE RGSCHCPYTIMEINFO(cellInfo->timingInfo, cell->crntTime); @@ -8448,13 +8455,13 @@ RgSchCellCb *cells[]; cell->totalTime++; #endif #ifdef LTE_TDD - U8 idx = (cell->crntTime.subframe + RG_SCH_CMN_DL_DELTA) % + U8 idx = (cell->crntTime.slot + RG_SCH_CMN_DL_DELTA) % RGSCH_NUM_SUB_FRAMES_5G; cell->isDlDataAllwd = RG_SCH_CMN_CHK_DL_DATA_ALLOWED(cell, idx); /*ccpu00130639 -ADD - used in UL HARQ proc id calculation*/ - if((cell->crntTime.sfn == 0) && (cell->crntTime.subframe == 0)) + if((cell->crntTime.sfn == 0) && (cell->crntTime.slot == 0)) { /* sfn Cycle used for Tdd UL Harq Proc Determination. This sfn Cycle will have values from 0 to numUl Harq-1. */ @@ -8470,6 +8477,36 @@ RgSchCellCb *cells[]; #endif } } +#endif +void schFillCrntTime( + SlotIndInfo slotInd, + Inst schInst) +{ + U8 cellCount = 0; + for(cellCount = 0; cellCount < CM_LTE_MAX_CELLS; cellCount++) + { + RgSchCellCb *cell; + cell = rgSchCb[schInst].cells[cellCount]; + + RGSCHCPYTIMEINFO(slotInd, cell->crntTime); + + RG_SCH_ADD_TO_CRNT_TIME(cell->crntTime, cell->hiDci0Time, + TFU_ULCNTRL_DLDELTA); + RG_SCH_ADD_TO_CRNT_TIME(cell->crntTime, cell->dlDciTime, + TFU_DLCNTRL_DLDELTA); + RG_SCH_ADD_TO_CRNT_TIME(cell->crntTime, cell->rcpReqTime, + TFU_RECPREQ_DLDELTA); + RGSCHDECRFRMCRNTTIME(cell->crntTime, cell->hqRlsTime, + TFU_HQFBKIND_ULDELTA); + RGSCHDECRFRMCRNTTIME(cell->crntTime, cell->dlSfRlsTime, + RGSCH_RLS_SF_IDX); + + RGSCH_INCR_SUB_FRAME(cell->crntTime, RG_SCH_CMN_DL_DELTA); + + RgSchCmnCell *cellSch = RG_SCH_CMN_GET_CELL(cell); + cellSch->dl.time = cell->crntTime; + } +} /** @brief This function prepares the TTI for scheduling and * invokes the Common channel scheduler. Uplink scheduler