MAC Clean-up [Issue-ID: ODUHIGH-212]
[o-du/l2.git] / src / 5gnrmac / rg_tom.c
index af55609..13cb722 100755 (executable)
@@ -36,17 +36,7 @@ static int RLOG_MODULE_ID=4096;
 invoked by PHY towards MAC
 */
 /* 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 services */
-#include "cm5.h"           /* common timers defines */
-#include "cm_hash.h"       /* common hash list defines */
-#include "cm_llist.h"      /* common linked list defines */
-#include "cm_mblk.h"       /* memory management */
-#include "cm_tkns.h"       /* common tokens */
-#include "cm_lte.h"       /* common tokens */
+#include "common_def.h"
 #include "rgu.h"           /* RGU defines */
 #include "tfu.h"           /* RGU defines */
 #include "lrg.h"           /* layer management defines for LTE-MAC */
@@ -55,28 +45,17 @@ invoked by PHY towards MAC
 #include "rg.h"            /* defines and macros for MAC */
 #include "rg_env.h"            /* defines and macros for MAC */
 #include "rg_err.h"            /* defines and macros for MAC */
-
+#include "rgm.h"           /* layer management typedefs for MAC */
 
 /* 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 "crg.x"           /* CRG interface typedefs */
 #include "rgu.x"           /* RGU types */
 #include "tfu.x"           /* RGU types */
 #include "lrg.x"           /* layer management typedefs for MAC */
-#include "crg.x"           /* CRG interface typedefs */
 #include "rg_sch_inf.x"    /* SCH interface typedefs */
 #include "rg_prg.x"        /* PRG interface typedefs */
 #include "rgm.x"           /* layer management typedefs for MAC */
-#include "rgm.h"           /* layer management typedefs for MAC */
 #include "rg.x"            /* typedefs for MAC */
-
 #ifdef MAC_RLC_UL_RBUF
 #include "ss_rbuf.h"
 #include "ss_rbuf.x"
@@ -96,7 +75,7 @@ RgUeCb            *prevUeCb,
 RgCellCb          *cellCb,
 TfuDatInfo        *datInfo,
 RgInfCeInfo       *ceInfo,
-U8                subframe
+U16               slot
 ));
 
 PRIVATE S16 rgTOMProcCCCHSduInDatInd ARGS((
@@ -105,7 +84,7 @@ RgUeCb            *prevUeCb,
 RgCellCb          *cellCb,
 TfuDatInfo        *datInfo,
 RgInfCeInfo       *ceInfo,
-U8                subframe
+U16               slot
 ));
 
 PUBLIC S16 rgHndlFlowCntrl
@@ -444,9 +423,9 @@ PUBLIC S16 rgTOMUtlProcDlSf (dlSf, cellCb, err)
       RGADDTOCRNTTIME(dlSf->schdTime, datInfo->timingInfo, TFU_DLDATA_DLDELTA);
 #endif
       datInfo->cellId = cellCb->cellId;
-      if((0 == (datInfo->timingInfo.sfn % 30)) && (0 == datInfo->timingInfo.subframe))
+      if((0 == (datInfo->timingInfo.sfn % 30)) && (0 == datInfo->timingInfo.slot))
       {
-        //printf("5GTF_CHECK rgTOMUtlProcDlSf dat (%d : %d)\n", datInfo->timingInfo.sfn, datInfo->timingInfo.subframe);
+        //printf("5GTF_CHECK rgTOMUtlProcDlSf dat (%d : %d)\n", datInfo->timingInfo.sfn, datInfo->timingInfo.slot);
       }
 #ifdef TFU_ALLOC_EVENT_NO_INIT
       datInfo->bchDat.pres = 0;
@@ -493,224 +472,6 @@ PUBLIC S16 rgTOMUtlProcDlSf (dlSf, cellCb, err)
 
 U32  rgMacGT;
 
-/**
- * @brief Handler for processing TTI indication recieved from 
- * PHY for a cell.
- *
- * @details
- *
- *     Function: rgTOMTtiInd
- *
- *     Handler for processing TTI indication recieved from PHY
- *     for a cell.
- *
- *     Invoked by: RgLiTfuTtiInd
- *
- *     Processing Steps:
- *     - Get cell and update the cell's current time with the timing value given
- *     by PHY
- *     - Invoke the cmPrcTmr to process the timing queue.
- *     - Append the PHICH information to the downlink subframe that needs to go
- *       out to PHY in this subframe.
- *     - Invoke DHM to release the downlink subframe that occured earlier
- *     rgDHMRlsDlsfHqProc.
- *     - Invoke the TTI handler of scheduler. 
- *     - Invoke the TTI handler of RAM module. 
- *     - Get the downlink subframe that has to go out to PHY in this subframe
- *     rgSCHSubFrmGet.
- *     - Invoke rgTOMUtlProcTA to perform and timing advance processing. 
- *     - Invoke rgTOMUtlProcDlSf to do further processing on the downlink
- *     subframe.
- *     - Get the downlink subframe that would occur after RG_DL_DELTA and 
- *     invoke rgTOMUtlProcDlSfStaInd to send status indications to the higher
- *     layer.
- *     - Invoke GOM's TTI handler rgGOMTtiHndlr
- *     - Invoke COM's TTI handler rgCOMTtiHndlr
- *           
- *  @param[in]  Inst        inst
- *  @param[in] TfuTtiIndInfo *ttiInd
- *  @return  S16
- *      -# ROK 
- *      -# RFAILED 
- **/
-#if (defined (MAC_FREE_RING_BUF) || defined (RLC_FREE_RING_BUF))
-pthread_t gMacTId = 0;
-#endif
-#ifdef ANSI
-PUBLIC S16 rgTOMTtiInd
-(
-Inst          inst,
-TfuTtiIndInfo *ttiInfo
-)
-#else
-PUBLIC S16 rgTOMTtiInd(inst, ttiInfo)
-Inst               inst;
-TfuTtiIndInfo      *ttiInfo;
-#endif
-{
-   RgCellCb             *cellCb;
-   RgErrInfo            err;
-   RgDlSf               *dlSf;
-/* ADD Changes for Downlink UE Timing Optimization */
-#ifdef LTEMAC_DLUE_TMGOPTMZ
-   RgDlSf               *prevDlSf;
-   CmLteTimingInfo       prevTmInfo;  
-#endif
-   TfuTtiCellInfo       *ttiInd = &ttiInfo->cells[0];
-
-   TRC2(rgTOMTtiInd);
-
-#ifdef MAC_FREE_RING_BUF
-   gMacTId = pthread_self();
-#endif
-   cellCb = rgCb[inst].cell;
-   if ((cellCb == NULLP)
-      ||(cellCb->cellId != ttiInd->cellId))
-   {
-      
-      RLOG_ARG0(L_ERROR,DBG_CELLID,ttiInd->cellId, 
-               "Unable to get the cellCb for cell");
-      err.errType = RGERR_TOM_TTIIND;
-      err.errCause = RGERR_TOM_INV_CELL_ID;
-      RETVALUE(RFAILED);
-   }
-   RGCPYTIMEINFO(ttiInd->timingInfo, cellCb->crntTime);
-   if((0 == (ttiInd->timingInfo.sfn % 30)) && (0 == ttiInd->timingInfo.sfn))
-   {
-      //printf("5GTF_CHECK rgTOMTtiInd (%d : %d)\n", ttiInd->timingInfo.sfn, ttiInd->timingInfo.subframe);
-   }
-   rgMacGT = (ttiInd->timingInfo.sfn * RG_NUM_SUB_FRAMES_5G) + ttiInd->timingInfo.subframe;
-#ifdef LTE_L2_MEAS
-   rgL2Meas(cellCb);
-   /*Included to track the number of 10240 cycles completed */
-
-  if((cellCb->crntTime.sfn == 0) && (cellCb->crntTime.subframe==0))
-  {
-     cellCb->ttiCycle += 1;
-  }
-
-#endif
-
-   /*Check if we have transmitted the previous DL SF, it could be the
-     case that we haven't received all the DATA from RLC as yet
-     and thus we would not have transmitted previous DL SF yet.*/
-/* ADD Changes for Downlink UE Timing Optimization */
-#ifdef LTEMAC_DLUE_TMGOPTMZ
-   RGSUBFRMCRNTTIME(ttiInd->timingInfo, prevTmInfo, 1);
-   prevDlSf = &cellCb->subFrms[(prevTmInfo.subframe % RG_NUM_SUB_FRAMES)];
-   if(FALSE == prevDlSf->txDone)
-   {
-      if (ROK != rgTOMUtlProcDlSf (prevDlSf, cellCb, &err))
-      {
-         RLOG_ARG0(L_ERROR,DBG_CELLID,cellCb->cellId,"Unable to process "
-               "previous downlink subframe for cell");
-         err.errType = RGERR_TOM_TTIIND;
-      }
-
-      /* Mark this frame as sent */
-      prevDlSf->txDone = TRUE;
-
-      if(prevDlSf->remDatReqCnt)
-      {
-         /*We have not received 1 or more data requests from RLC, this is
-           error scenario. MAC & SCH need to discard the allocations for
-           which data request hasn't been received as yet. And MAC
-           needs to inform SCH about the list of UEs for which 
-           allocation need to be discarded. */
-         prevDlSf->remDatReqCnt = 0;
-      }
-   }
-#endif
-   dlSf = &cellCb->subFrms[(ttiInd->timingInfo.subframe % RG_NUM_SUB_FRAMES)];
-
-   if((dlSf->txDone == TRUE) ||
-      (!RG_TIMEINFO_SAME(ttiInd->timingInfo,dlSf->schdTime)))
-   {
-   /* MS_WORKAROUND */
-#ifndef LTEMAC_DLUE_TMGOPTMZ
-      TfuDatReqInfo     *datInfo;
-     CmLteTimingInfo   timingInfo;
-#ifdef TFU_DL_DELTA_CHANGE
-         RGADDTOCRNTTIME(cellCb->crntTime, timingInfo, TFU_DLDATA_DLDELTA);
-#else
-         RGADDTOCRNTTIME(cellCb->crntTime, timingInfo, TFU_DELTA);
-#endif
-     /* Fill Data Request from MAC for BCH  */
-     if ((timingInfo.sfn % 4 == 0) && (timingInfo.subframe == 0))
-     {
-         if (ROK != rgAllocEventMem(inst,(Ptr *)&datInfo, 
-                            sizeof(TfuDatReqInfo)))
-         {
-            RLOG_ARG0(L_ERROR,DBG_CELLID,cellCb->cellId,
-               "rgTOMUtlProcDlSf() Unable to Allocate TfuDatReqInfo for cell");
-            RETVALUE(RFAILED);
-         }
-         else
-         {
-            cmLListInit(&datInfo->pdus);
-            datInfo->cellId = cellCb->cellId;
-            datInfo->bchDat.pres = NOTPRSNT;
-            datInfo->timingInfo = timingInfo;
-            
-                                  
-          /* sending the dummy data req to Phy */
-            if (rgLIMTfuDatReq(inst,datInfo) != ROK)
-            {
-               RLOG_ARG0(L_ERROR,DBG_CELLID,cellCb->cellId,
-                        "rgTOMUtlProcDlSf() Unable to send data info for cell");
-            }
-         
-         }
-     }      
-#endif
-      /* Freeing as the part of CL Non RT Indication */
-      /* TDOD : Generalize for all SOCs */
-#if !(defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD))
-      rgDHMFreeTbBufs(inst);
-#endif
-      RETVALUE(ROK);
-   }
-
-   /*Return if there is still some data to be received
-     from RLC for this DL SF. */
-/* ADD Changes for Downlink UE Timing Optimization */
-#ifdef LTEMAC_DLUE_TMGOPTMZ
-   if(0 != dlSf->remDatReqCnt) 
-   {
-      /* Freeing as the part of CL Non RT Indication */
-      /* TODO : Generalize for all SOCs and remove this flag */
-#if !(defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD))
-      rgDHMFreeTbBufs(inst);
-#endif
-      RETVALUE(ROK);
-   }
-#endif
-
-#ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((ttiInd->timingInfo.subframe % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_DL_BR_PRC);
-#endif
-
-   if (ROK != rgTOMUtlProcDlSf (dlSf, cellCb, &err))
-   {
-      RLOG_ARG0(L_ERROR,DBG_CELLID,ttiInd->cellId,
-                     "Unable to process downlink subframe for cell");
-      err.errType = RGERR_TOM_TTIIND;
-   }
-#ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((ttiInd->timingInfo.subframe % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_DL_AFTER_PRC);
-#endif
-
-   /* Mark this frame as sent */
-   dlSf->txDone = TRUE;
-
-   /* Freeing as the part of CL Non RT Indication */
-   /* TODO : Generalize for all SOCs and remove this flag */
-#if !(defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD))
-   rgDHMFreeTbBufs(inst);
-#endif 
-   RETVALUE(ROK);
-}  /* rgTOMTtiInd */
-
 /** @brief This function allocates the RgMacPdu that will be populated by DEMUX
  * with the SubHeaders list and the values of the Control elements.
  *
@@ -961,7 +722,7 @@ PRIVATE S16 rgTomUtlPrepareL2MUlThrpInfo(cellCb,ueCb,dDatInd)
    }
 
    RETVALUE(ROK);
-}  /* rgTOMTtiInd */
+}
 
 #endif
 
@@ -1005,18 +766,18 @@ PRIVATE S16 rgTOMUtlProcMsg
  Bool          isSpsRnti,
  Bool          *spsToBeActvtd,
  U16           *sduSize,
- U8            subframe,
+ U16           slot,
  U32           *lcgBytes
  )
 #else
-PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, isSpsRnti,spsToBeActvtd,sduSize, subframe, lcgBytes)
+PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, isSpsRnti,spsToBeActvtd,sduSize, slot, lcgBytes)
    RgCellCb      *cellCb; 
    RgUeCb        *ueCb;
    RgMacPdu      *pdu;
    Bool          isSpsRnti;
    Bool          *spsToBeActvtd;
    U16           *sduSize;
-   U8            subframe;
+   U16           slot;
    U32           *lcgBytes;
 #endif   
 #else /* LTEMAC_SPS */
@@ -1026,15 +787,15 @@ PRIVATE S16 rgTOMUtlProcMsg
  RgCellCb      *cellCb, 
  RgUeCb        *ueCb,
  RgMacPdu      *pdu,
- U8            subframe,
+ U16           slot,
  U32           *lcgBytes
  )
 #else
-PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, subframe, lcgBytes)
+PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, slot, lcgBytes)
    RgCellCb      *cellCb; 
    RgUeCb        *ueCb;
    RgMacPdu      *pdu;
-   U8            subframe;
+   U16           slot;
    U32           *lcgByes;
 #endif  
 #endif
@@ -1087,7 +848,7 @@ PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, subframe, lcgBytes)
    TRC2(rgTOMUtlProcMsg)
 
 #ifndef LTE_L2_MEAS      
-      UNUSED(subframe);
+      UNUSED(slot);
 #endif
 
    if(pdu->sduLst.first)
@@ -1117,7 +878,7 @@ PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, subframe, lcgBytes)
                         &cpySz);
          }
 #ifdef XEON_SPECIFIC_CHANGES
-         CM_LOG_DEBUG(CM_LOG_ID_MAC, "CCCH SDU of size(%d) received for UE(%d) CRES[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x] Time[%d %d]\n",  ((S16)ccchSz), ueCb->ueId,ueCb->contResId.resId[0], ueCb->contResId.resId[1], ueCb->contResId.resId[2], ueCb->contResId.resId[3], ueCb->contResId.resId[4], ueCb->contResId.resId[5], cellCb->crntTime.sfn,  cellCb->crntTime.subframe);
+         CM_LOG_DEBUG(CM_LOG_ID_MAC, "CCCH SDU of size(%d) received for UE(%d) CRES[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x] Time[%d %d]\n",  ((S16)ccchSz), ueCb->ueId,ueCb->contResId.resId[0], ueCb->contResId.resId[1], ueCb->contResId.resId[2], ueCb->contResId.resId[3], ueCb->contResId.resId[4], ueCb->contResId.resId[5], cellCb->crntTime.sfn,  cellCb->crntTime.slot);
 #endif
          sdu->mBuf = NULLP;
          rgUIMSndCmnDatInd(inst,cellCb->rguUlSap,cDatInd);
@@ -1143,7 +904,7 @@ PRIVATE S16 rgTOMUtlProcMsg(cellCb, ueCb, pdu, subframe, lcgBytes)
       dDatInd->numLch   = 0;
    }
 #ifdef LTE_L2_MEAS
-   ulSf = &cellCb->ulSf[(subframe % RG_NUM_SUB_FRAMES)];
+   ulSf = &cellCb->ulSf[(slot % RG_NUM_SUB_FRAMES)];
    if(ulSf->ueUlAllocInfo != NULLP)
    {
      for(idx1 = 0; idx1 < ulSf->numUe; idx1++)
@@ -1510,12 +1271,12 @@ Inst             inst;
    CmLList           *node;
    TfuDatInfo        *datInfo;
    RgLowSapCb        *tfuSap;
-   U8                subframe;
+   U16               slot;
 #ifdef LTEMAC_SPS
    Bool              isSpsRnti=FALSE;
    Pst               schPst1;  
-   RgInfSpsRelInfo   relInfo;
-   Bool              spsToBeActvtd = FALSE;
+  // RgInfSpsRelInfo   relInfo;
+       Bool              spsToBeActvtd = FALSE;
    U16               sduSize = 0;
 #endif
    U32               lcgBytes[RGINF_MAX_LCG_PER_UE];
@@ -1565,7 +1326,7 @@ Inst             inst;
    cmLListInit(&sfInfo->ueLst);
    sfInfo->cellId = datInd->cellId;
    sfInfo->timingInfo = datInd->timingInfo;
-   subframe = datInd->timingInfo.subframe;
+   slot = datInd->timingInfo.slot;
 
    node =  datInd->datIndLst.first;
    for (;node; node=node->next)
@@ -1621,7 +1382,7 @@ Inst             inst;
       if (ceInfo.bitMask & RG_CCCH_SDU_PRSNT)
       {
         ret = rgTOMProcCCCHSduInDatInd(pdu, prevUeCb, \
-                cellCb, datInfo, &ceInfo, subframe);
+                cellCb, datInfo, &ceInfo, slot);
         if (ret == RFAILED)
         {
             rgTOMUtlFreePduEvnt (pdu, TRUE);
@@ -1634,7 +1395,7 @@ Inst             inst;
       else if (ceInfo.bitMask & RG_CRNTI_CE_PRSNT)
       {
         ret = rgTOMProcCrntiCEInDatInd(pdu, prevUeCb, \
-                cellCb, datInfo, &ceInfo, subframe);
+                cellCb, datInfo, &ceInfo, slot);
         if (ret == RFAILED)
         {
             rgTOMUtlFreePduEvnt (pdu, TRUE);
@@ -1667,10 +1428,12 @@ Inst             inst;
 
                      ueCb->ul.implRelCntr = 0;
                      ueCb->ul.explRelCntr = 0;
-                     relInfo.cellSapId = cellCb->schInstMap.cellSapId;
+#if 0                     
+                                                       relInfo.cellSapId = cellCb->schInstMap.cellSapId;
                      relInfo.cRnti = ueCb->ueId;
-                     relInfo.isExplRel = FALSE;
+                                                       relInfo.isExplRel= FALSE;
                      //TODO: commented for compilation without SCH RgMacSchSpsRel(&schPst1, &relInfo);
+#endif  
                   }
                }
                else
@@ -1696,9 +1459,9 @@ Inst             inst;
      rgTOML2MCompileActiveLCs (cellCb, ueCb, pdu, &ceInfo);
 #endif
 #ifdef LTEMAC_SPS
-         if ((ret = rgTOMUtlProcMsg(cellCb, ueCb, pdu, isSpsRnti,&spsToBeActvtd,&sduSize, subframe, (U32 *)&lcgBytes)) != ROK)
+         if ((ret = rgTOMUtlProcMsg(cellCb, ueCb, pdu, isSpsRnti,&spsToBeActvtd,&sduSize, slot, (U32 *)&lcgBytes)) != ROK)
 #else
-         if ((ret = rgTOMUtlProcMsg (cellCb, ueCb, pdu, subframe, (U32 *)&lcgBytes)) != ROK)
+         if ((ret = rgTOMUtlProcMsg (cellCb, ueCb, pdu, slot, (U32 *)&lcgBytes)) != ROK)
 #endif /* LTEMAC_SPS */
          {
             rgTOMUtlFreePduEvnt (pdu, TRUE);
@@ -1727,12 +1490,12 @@ Inst             inst;
    }
    /* Free the allocated memory for ueUlAllocInfo here */
 #ifdef LTE_L2_MEAS
-   if(cellCb->ulSf[(subframe % RG_NUM_SUB_FRAMES)].ueUlAllocInfo != NULLP)
+   if(cellCb->ulSf[(slot % RG_NUM_SUB_FRAMES)].ueUlAllocInfo != NULLP)
    {
       /*ccpu00117052 - MOD - Passing double for proper NULLP
                              assignment */
-      rgFreeSBuf(inst,(Data **)&(cellCb->ulSf[(subframe % RG_NUM_SUB_FRAMES)].ueUlAllocInfo), 
-      ((cellCb->ulSf[(subframe % RG_NUM_SUB_FRAMES)].numUe) * sizeof(RgUeUlAlloc)));
+      rgFreeSBuf(inst,(Data **)&(cellCb->ulSf[(slot % RG_NUM_SUB_FRAMES)].ueUlAllocInfo), 
+      ((cellCb->ulSf[(slot % RG_NUM_SUB_FRAMES)].numUe) * sizeof(RgUeUlAlloc)));
    }
 #endif
    /* RRM_RBC_X */
@@ -1810,7 +1573,7 @@ RgErrInfo           *err;
 
    TRC2(rgHndlCmnChnl)
 
-   dlSf = &cell->subFrms[(timingInfo.subframe % RG_NUM_SUB_FRAMES)];
+   dlSf = &cell->subFrms[(timingInfo.slot % RG_NUM_SUB_FRAMES)];
 
    if(cmnLcInfo->bitMask & RGINF_BCH_INFO)
    {
@@ -1834,7 +1597,7 @@ RgErrInfo           *err;
       staInd->cellId = cell->cellId;
       staInd->rnti   = RG_INVALID_RNTI;
       staInd->lcId   = cmnLcInfo->bchInfo.lcId;
-      staInd->transId = (timingInfo.sfn << 8) | (timingInfo.subframe);
+      staInd->transId = (timingInfo.sfn << 8) | (timingInfo.slot);
 /* ADD Changes for Downlink UE Timing Optimization */
 #ifdef LTEMAC_DLUE_TMGOPTMZ
       dlSf->remDatReqCnt++;
@@ -1878,7 +1641,7 @@ RgErrInfo           *err;
       staInd->cellId = cell->cellId;
       staInd->rnti   = RG_INVALID_RNTI;
       staInd->lcId   = cmnLcInfo->pcchInfo.lcId;
-      staInd->transId = (timingInfo.sfn << 8) | (timingInfo.subframe);
+      staInd->transId = (timingInfo.sfn << 8) | (timingInfo.slot);
 /* ADD Changes for Downlink UE Timing Optimization */
 #ifdef LTEMAC_DLUE_TMGOPTMZ
       dlSf->remDatReqCnt++;
@@ -1920,7 +1683,7 @@ RgErrInfo           *err;
          staInd->cellId = cell->cellId;
          staInd->rnti   = RG_INVALID_RNTI;
          staInd->lcId   = cmnLcInfo->bcchInfo.lcId;
-         staInd->transId = (timingInfo.sfn << 8) | (timingInfo.subframe);
+         staInd->transId = (timingInfo.sfn << 8) | (timingInfo.slot);
 /* ADD Changes for Downlink UE Timing Optimization */
 #ifdef LTEMAC_DLUE_TMGOPTMZ
          dlSf->remDatReqCnt++;
@@ -2037,7 +1800,7 @@ RgInfUlUeInfo       *ueInfo;
 
    TRC2(rgHndlUlUeInfo)
    
-   ulSf = &cell->ulSf[(timingInfo.subframe % RGSCH_NUM_SUB_FRAMES)];
+   ulSf = &cell->ulSf[(timingInfo.slot % RGSCH_NUM_SUB_FRAMES)];
 
    /* rg003.301-MOD- Corrected the purifier memory leak */
    if (ulSf->numUe != ueInfo->numUes)
@@ -2049,22 +1812,22 @@ RgInfUlUeInfo       *ueInfo;
       }
    }
 #ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((cell->crntTime.subframe % RGSCH_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MEAS_FREE);
-   CM_ADD_INFO((cell->crntTime.subframe % RGSCH_NUM_SUB_FRAMES),  CM_DBG_MEAS_FREE, ulSf->numUe);
+   CM_MEAS_TIME((cell->crntTime.slot % RGSCH_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MEAS_FREE);
+   CM_ADD_INFO((cell->crntTime.slot % RGSCH_NUM_SUB_FRAMES),  CM_DBG_MEAS_FREE, ulSf->numUe);
 #endif
    ulSf->numUe         = ueInfo->numUes;
    if((ulSf->ueUlAllocInfo == NULLP) && (ueInfo->numUes > 0))
    {
        /* Allocate memory for ulAllocInfo */
-       if((ret = rgAllocSBuf(inst,(Data**)&(cell->ulSf[(timingInfo.subframe % RGSCH_NUM_SUB_FRAMES)].
+       if((ret = rgAllocSBuf(inst,(Data**)&(cell->ulSf[(timingInfo.slot % RGSCH_NUM_SUB_FRAMES)].
                  ueUlAllocInfo), ueInfo->numUes *  sizeof(RgUeUlAlloc))) != ROK)
        {
           RETVALUE(ret);
        }
    }
 #ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((cell->crntTime.subframe % RGSCH_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MEAS_ALLOC);
-   CM_ADD_INFO((cell->crntTime.subframe % RGSCH_NUM_SUB_FRAMES), CM_DBG_MEAS_ALLOC, ueInfo->numUes);
+   CM_MEAS_TIME((cell->crntTime.slot % RGSCH_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MEAS_ALLOC);
+   CM_ADD_INFO((cell->crntTime.slot % RGSCH_NUM_SUB_FRAMES), CM_DBG_MEAS_ALLOC, ueInfo->numUes);
 #endif
    if (ulSf->ueUlAllocInfo != NULLP)
    {
@@ -2161,13 +1924,13 @@ RgDlSf              *dlSf;
           {
                     for(i=0;i< RG_MAX_TB_PER_UE;i++)
                     {
-                                   if (hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf == dlSf)
+                                   if (hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf == dlSf)
                                    {
-                                            cmLListDelFrm(&dlSf->tbs, &(hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk));
-                                            hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk.node = NULLP;
+                                            cmLListDelFrm(&dlSf->tbs, &(hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk));
+                                            hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk.node = NULLP;
                     printf("\n rgTOMRlsSf:: hqP %p \n", (Void *)hqP);
                                    }
-                                   hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf = NULLP;
+                                   hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf = NULLP;
                           }
                        }
         }
@@ -2301,7 +2064,7 @@ RgInfSfAlloc        *sfInfo;
       RETVALUE(RFAILED);
    }
 
-   dlSf = &cell->subFrms[(sfInfo->timingInfo.subframe % RG_NUM_SUB_FRAMES)];
+   dlSf = &cell->subFrms[(sfInfo->timingInfo.slot % RG_NUM_SUB_FRAMES)];
 
    rgTOMRlsSf(inst,dlSf);
    dlSf->schdTime = sfInfo->timingInfo;
@@ -2324,11 +2087,11 @@ RgInfSfAlloc        *sfInfo;
 
 #ifdef LTE_ADV
 #ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((cell->crntTime.subframe % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_B4_UE_SCHD);
+   CM_MEAS_TIME((cell->crntTime.slot % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_B4_UE_SCHD);
 #endif
    rgHndlSchdUe(cell, sfInfo->timingInfo, &sfInfo->ueInfo, &err);
 #ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((cell->crntTime.subframe % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_UE_SCHD);
+   CM_MEAS_TIME((cell->crntTime.slot % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_UE_SCHD);
 #endif
    rgLaaChkAndReqTbs(dlSf,cell, inst);
 
@@ -2344,7 +2107,7 @@ RgInfSfAlloc        *sfInfo;
    }
 #endif
 #ifdef XEON_SPECIFIC_CHANGES
-   CM_MEAS_TIME((cell->crntTime.subframe % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_MEAS);
+   CM_MEAS_TIME((cell->crntTime.slot % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_MEAS);
 #endif
    /* Fix[ccpu00126310]: Tracks Data Requests from RLC for both loosely and tight coupled 
       RLC-MAC */
@@ -2420,16 +2183,16 @@ RgUeCb            *prevUeCb,
 RgCellCb          *cellCb,
 TfuDatInfo        *datInfo,
 RgInfCeInfo       *ceInfo,
-U8                subframe
+U16               slot
 )
 #else
-PRIVATE S16 rgTOMProcCrntiCEInDatInd( pdu, prevUeCb, cellCb, datInfo, ceInfo, subframe)
+PRIVATE S16 rgTOMProcCrntiCEInDatInd( pdu, prevUeCb, cellCb, datInfo, ceInfo, slot)
 RgMacPdu          *pdu;
 RgUeCb            *prevUeCb;
 RgCellCb          *cellCb;
 TfuDatInfo        *datInfo;
 RgInfCeInfo       *ceInfo;
-U8                subframe;
+U16               slot;
 #endif
 {
    RgUeCb *ueCb = NULLP;
@@ -2444,7 +2207,7 @@ U8                subframe;
    TRC2(rgTOMProcCrntiCEInDatInd)
 
 #ifndef LTE_L2_MEAS      
-      UNUSED(subframe);
+      UNUSED(slot);
 #endif
 
    ueCb = rgDBMGetUeCbFromRachLst (cellCb, datInfo->rnti);
@@ -2470,9 +2233,9 @@ U8                subframe;
    rgRAMFreeUeCb(inst,ueCb);
    ueCb = prevUeCb;
 #ifdef LTEMAC_SPS
-   if ((rgTOMUtlProcMsg(cellCb, ueCb, pdu, FALSE,&spsToBeActvtd,&sduSize, subframe, NULLP)) != ROK)
+   if ((rgTOMUtlProcMsg(cellCb, ueCb, pdu, FALSE,&spsToBeActvtd,&sduSize, slot, NULLP)) != ROK)
 #else
-   if ((rgTOMUtlProcMsg (cellCb, ueCb, pdu, subframe, NULLP)) != ROK)
+   if ((rgTOMUtlProcMsg (cellCb, ueCb, pdu, slot, NULLP)) != ROK)
 #endif /* LTEMAC_SPS */
    {
        RLOG_ARG1(L_ERROR,DBG_CELLID,cellCb->cellId,
@@ -2522,16 +2285,16 @@ RgUeCb            *prevUeCb,
 RgCellCb          *cellCb,
 TfuDatInfo        *datInfo,
 RgInfCeInfo       *ceInfo,
-U8                subframe 
+U16               slot 
 )
 #else
-PRIVATE S16 rgTOMProcCCCHSduInDatInd( pdu, prevUeCb, cellCb, datInfo, ceInfo, subframe)
+PRIVATE S16 rgTOMProcCCCHSduInDatInd( pdu, prevUeCb, cellCb, datInfo, ceInfo, slot)
 RgMacPdu          *pdu;
 RgUeCb            *prevUeCb;
 RgCellCb          *cellCb;
 TfuDatInfo        *datInfo;
 RgInfCeInfo       *ceInfo;
-U8                subframe;
+U16               slot;
 #endif
 {
    RgUeCb *ueCb = NULLP;
@@ -2546,7 +2309,7 @@ U8                subframe;
    TRC2(rgTOMProcCCCHSduInDatInd)
 
 #ifndef LTE_L2_MEAS      
-      UNUSED(subframe);
+      UNUSED(slot);
 #endif
 
    if (ceInfo->bitMask & RG_CRNTI_CE_PRSNT)
@@ -2583,9 +2346,9 @@ U8                subframe;
     RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
              "CCCH SDU received through tmpCrnti(%d)",datInfo->rnti);
 #ifdef LTEMAC_SPS
-   if ((rgTOMUtlProcMsg(cellCb, ueCb, pdu, FALSE,&spsToBeActvtd,&sduSize, subframe, NULLP)) != ROK)
+   if ((rgTOMUtlProcMsg(cellCb, ueCb, pdu, FALSE,&spsToBeActvtd,&sduSize, slot, NULLP)) != ROK)
 #else
-   if ((rgTOMUtlProcMsg (cellCb, ueCb, pdu, subframe, NULLP)) != ROK)
+   if ((rgTOMUtlProcMsg (cellCb, ueCb, pdu, slot, NULLP)) != ROK)
 #endif /* LTEMAC_SPS */
    {
        RLOG_ARG1(L_ERROR,DBG_CELLID,cellCb->cellId,"RNTI:%d Processing for MSG3 failed",