X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Frg_sch_drx.c;h=2e7107c3a0036221162baa309f572bca0a8d58dd;hb=refs%2Fchanges%2F77%2F4377%2F11;hp=3b40582521efc68931721ebfed0982b07cfad014;hpb=3235ecfc7414aa0b72d0ad50db63ae8b5626045b;p=o-du%2Fl2.git diff --git a/src/5gnrsch/rg_sch_drx.c b/src/5gnrsch/rg_sch_drx.c index 3b4058252..2e7107c3a 100755 --- a/src/5gnrsch/rg_sch_drx.c +++ b/src/5gnrsch/rg_sch_drx.c @@ -37,15 +37,7 @@ static int RLOG_MODULE_ID=4096; static int RLOG_FILE_ID=163; /* header include files -- defines (.h) */ -#include "envopt.h" /* environment options */ -#include "envdep.h" /* environment dependent */ -#include "envind.h" /* environment independent */ -#include "gen.h" /* general layer */ -#include "ssi.h" /* system service interface */ -#include "cm_hash.h" /* common hash list */ -#include "cm_llist.h" /* common linked list library */ -#include "cm_err.h" /* common error */ -#include "cm_lte.h" /* common LTE */ +#include "common_def.h" #include "lrg.h" #include "rgr.h" #include "rgm.h" @@ -62,15 +54,6 @@ static int RLOG_FILE_ID=163; #include "rl_common.h" /* header/extern include files (.x) */ -#include "gen.x" /* general layer typedefs */ -#include "ssi.x" /* system services typedefs */ -#include "cm5.x" /* common timers */ -#include "cm_hash.x" /* common hash list */ -#include "cm_lib.x" /* common library */ -#include "cm_llist.x" /* common linked list */ -#include "cm_mblk.x" /* memory management */ -#include "cm_tkns.x" /* common tokens */ -#include "cm_lte.x" /* common tokens */ #include "tfu.x" /* TFU types */ #include "lrg.x" /* layer management typedefs for MAC */ #include "rgr.x" /* layer management typedefs for MAC */ @@ -294,10 +277,10 @@ RgUeUlHqCb *hqE * - Processing is divided into respective timer handling. * - Calculate the DL and UL indices as follows * @code - * dlIndex = (cell->crntTime.sfn * 10 + cell->crntTime.subframe + + * dlIndex = (cell->crntTime.sfn * 10 + cell->crntTime.slot + * RG_SCH_DRX_DL_DELTA) % RG_SCH_MAX_DRXQ_SIZE; * - * ulIndex = (cell->crntTime.sfn * 10 + cell->crntTime.subframe + + * ulIndex = (cell->crntTime.sfn * 10 + cell->crntTime.slot + * RG_SCH_DRX_UL_DELTA) % RG_SCH_MAX_DRXQ_SIZE; * @endcode * - Call rgSCHDrxTtiHdlOnDur to handle onDurationTimer handling @@ -335,10 +318,10 @@ RgSchCellCb *cell; TRC2(rgSCHDrxTtiInd ); - dlIndex = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G + cell->crntTime.subframe + + dlIndex = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G + cell->crntTime.slot + RG_SCH_DRX_DL_DELTA) % RG_SCH_MAX_DRXQ_SIZE; - ulIndex = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G + cell->crntTime.subframe + + ulIndex = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G + cell->crntTime.slot + RG_SCH_DRX_UL_DELTA) % RG_SCH_MAX_DRXQ_SIZE; #ifdef LTEMAC_R9 @@ -886,7 +869,7 @@ U8 direction; { #ifndef LTE_TDD curTimeInSf = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - (cell->crntTime.subframe) +RG_SCH_DRX_UL_DELTA; + (cell->crntTime.slot) +RG_SCH_DRX_UL_DELTA; #endif #ifdef LTE_TDD @@ -897,7 +880,7 @@ U8 direction; { #ifndef LTE_TDD curTimeInSf = (cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - (cell->crntTime.subframe) + RG_SCH_DRX_DL_DELTA; + (cell->crntTime.slot) + RG_SCH_DRX_DL_DELTA; #endif #ifdef LTE_TDD @@ -1089,7 +1072,7 @@ U8 tbCnt; * so that UE is scheduled for retransmission in the next subframe*/ /* ccpu00134196-[Add]-DRX retx timer changes */ harqRTTExpIndx = ((hqP->tbInfo[tbCnt].timingInfo.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - hqP->tbInfo[tbCnt].timingInfo.subframe + RG_SCH_MIN_HARQ_RTT) + hqP->tbInfo[tbCnt].timingInfo.slot + RG_SCH_MIN_HARQ_RTT) % RG_SCH_MAX_DRXQ_SIZE; fdbkDelta = RGSCH_CALC_SF_DIFF(cell->crntTime, hqP->tbInfo[tbCnt].timingInfo); @@ -1276,9 +1259,9 @@ PUBLIC S16 rgSCHDrxUeCfg (cell, ue, ueCfg) rgSCHDrxGetNxtOnDur (cell, ueDrxCb, &nxtOnDur,RG_SCH_NO_DELTA); - nxtOnDurTime = ((nxtOnDur.sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur.subframe); + nxtOnDurTime = ((nxtOnDur.sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur.slot); curTime = ((cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - cell->crntTime.subframe); + cell->crntTime.slot); onDurIndx = nxtOnDurTime % RG_SCH_MAX_DRXQ_SIZE; @@ -1388,7 +1371,7 @@ PRIVATE S16 rgSCHDrxGetNxtOnDur (cell, drxCb, nxtOnDur, delta) cycleLen = drxCb->shortDrxCycle; } - curTime = ((cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + cell->crntTime.subframe); + curTime = ((cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + cell->crntTime.slot); curTime += delta; /*TODO: see if we need to take care of wrap arounds */ @@ -1396,8 +1379,8 @@ PRIVATE S16 rgSCHDrxGetNxtOnDur (cell, drxCb, nxtOnDur, delta) { /* offset is the nextOnDur */ nxtOnDur->sfn = drxCb->drxStartOffset / RGSCH_NUM_SUB_FRAMES_5G; - nxtOnDur->subframe = (U8)(drxCb->drxStartOffset % RGSCH_NUM_SUB_FRAMES_5G); - nxtDist = ((nxtOnDur->sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur->subframe); + nxtOnDur->slot = (U8)(drxCb->drxStartOffset % RGSCH_NUM_SUB_FRAMES_5G); + nxtDist = ((nxtOnDur->sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur->slot); } else { @@ -1410,8 +1393,8 @@ PRIVATE S16 rgSCHDrxGetNxtOnDur (cell, drxCb, nxtOnDur, delta) /* Perfect match pick up the current time */ /*nxtOnDur should be set to equal to currentTime + DELTA */ nxtOnDur->sfn = (U16)curTime / RGSCH_NUM_SUB_FRAMES_5G; - nxtOnDur->subframe = (U16)curTime % RGSCH_NUM_SUB_FRAMES_5G; - nxtDist = ((nxtOnDur->sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur->subframe); + nxtOnDur->slot = (U16)curTime % RGSCH_NUM_SUB_FRAMES_5G; + nxtDist = ((nxtOnDur->sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur->slot); } else @@ -1419,7 +1402,7 @@ PRIVATE S16 rgSCHDrxGetNxtOnDur (cell, drxCb, nxtOnDur, delta) nxtDist = drxCb->drxStartOffset + (numOfCycles + 1) * cycleLen; nxtOnDur->sfn = (U16)nxtDist / RGSCH_NUM_SUB_FRAMES_5G; - nxtOnDur->subframe = (U16)nxtDist % RGSCH_NUM_SUB_FRAMES_5G; + nxtOnDur->slot = (U16)nxtDist % RGSCH_NUM_SUB_FRAMES_5G; } } @@ -1430,7 +1413,7 @@ PRIVATE S16 rgSCHDrxGetNxtOnDur (cell, drxCb, nxtOnDur, delta) { nxtDist = nxtDist + cycleLen; nxtOnDur->sfn = (U16)nxtDist / RGSCH_NUM_SUB_FRAMES_5G; - nxtOnDur->subframe = (U16)nxtDist % RGSCH_NUM_SUB_FRAMES_5G; + nxtOnDur->slot = (U16)nxtDist % RGSCH_NUM_SUB_FRAMES_5G; } RETVALUE(ROK); } /* end of rgSCHDrxGetNxtOnDur */ @@ -1667,9 +1650,9 @@ PUBLIC S16 rgSCHDrxUeReCfg (cell, ue, ueReCfg) } - nxtOnDurTime = (nxtOnDur.sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur.subframe; + nxtOnDurTime = (nxtOnDur.sfn * RGSCH_NUM_SUB_FRAMES_5G) + nxtOnDur.slot; curTime = ((cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - cell->crntTime.subframe); + cell->crntTime.slot); /* If Onduration timer of old configuration is already running then waiting till it expires */ if((ueDrxCb->onDurExpIndx != DRX_INVALID) && (ueDrxCb->onDurExpDistance != DRX_TMR_EXPRD)) @@ -2232,10 +2215,10 @@ Bool calcFrmOffst; rgSCHDrxGetNxtOnDur(cell,drxUe,&nxtOnDur,(U8)idx); nxtOnDurInSf = ((nxtOnDur.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - nxtOnDur.subframe); + nxtOnDur.slot); curTime = ((cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G) + - cell->crntTime.subframe); + cell->crntTime.slot); nxtOnDurIndex = nxtOnDurInSf % RG_SCH_MAX_DRXQ_SIZE; drxUe->distance = (nxtOnDurInSf-curTime) / RG_SCH_MAX_DRXQ_SIZE; @@ -2339,14 +2322,14 @@ PRIVATE S16 rgSCHDrxGetNxtTmrExpry (cell,curTime,duration,tmrExpryIdx) tddCfgMode = cell->ulDlCfgIdx; crntTime.sfn = curTime / RGSCH_NUM_SUB_FRAMES_5G; - crntTime.subframe = curTime % RGSCH_NUM_SUB_FRAMES_5G; + crntTime.slot = curTime % RGSCH_NUM_SUB_FRAMES_5G; /* First calculate the number of DL subframes till next SFN */ dlSfTillNxtSFN = rgSchDrxDLSfTillNxtSFN[isDwPtsCnted][tddCfgMode] - [(crntTime.subframe % RGSCH_NUM_SUB_FRAMES)]; + [(crntTime.slot % RGSCH_NUM_SUB_FRAMES)]; if ( dlSfTillNxtSFN >= duration ) @@ -2476,7 +2459,7 @@ PRIVATE Void rgSCHDrxCalcNxtTmrExpry (cell,ue,delta,tmrLen,distance,idx) TRC2(rgSCHDrxCalcNxtTmrExpry) curTimeInSf = cell->crntTime.sfn * RGSCH_NUM_SUB_FRAMES_5G + - cell->crntTime.subframe; + cell->crntTime.slot; /* add delta to curTime */ curTimeInSf += delta; @@ -2779,7 +2762,7 @@ U16 dlIndex; drxCell = (cell->drxCb); delInUlScan = drxCell->delInUlScan; - //printf("CELL Timer [SFN : %d],[SF : %d]\n",cell->crntTime.sfn,cell->crntTime.subframe); + //printf("CELL Timer [SFN : %d],[SF : %d]\n",cell->crntTime.sfn,cell->crntTime.slot); node = drxCell->drxQ[dlIndex].onDurationQ.first; @@ -2843,11 +2826,11 @@ U16 dlIndex; cmLListAdd2Tail(&(drxCell->drxQ[expiryIndex].onDurationExpQ), &(drxUe->onDurationExpEnt)); - //printf("DRXOnDuration Timer Started at [SFN : %d],[SF : %d]\n",cell->crntTime.sfn,cell->crntTime.subframe); + //printf("DRXOnDuration Timer Started at [SFN : %d],[SF : %d]\n",cell->crntTime.sfn,cell->crntTime.slot); drxUe->onDurationExpEnt.node = (PTR)ue; drxUe->onDurExpIndx = expiryIndex; - //printf("DRxOnDuration will Expire = [%d]\n",(cell->crntTime.sfn*10+cell->crntTime.subframe+drxUe->onDurTmrLen)); + //printf("DRxOnDuration will Expire = [%d]\n",(cell->crntTime.sfn*10+cell->crntTime.slot+drxUe->onDurTmrLen)); if ( delInUlScan == FALSE ) {