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 "du_app_mac_inf.h"
#include "rgu.h" /* RGU defines */
#include "tfu.h" /* RGU defines */
#include "lrg.h" /* layer management defines for LTE-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 */
-
+#include "mac.h"
+#include "lwr_mac_fsm.h"
#ifdef MAC_RLC_UL_RBUF
#include "ss_rbuf.h"
#include "ss_rbuf.x"
#endif
+uint16_t handleDlTtiReq(SlotIndInfo currTimingInfo);
+uint16_t handleUlTtiReq(SlotIndInfo currTimingInfo);
+
/* ADD Changes for Downlink UE Timing Optimization */
#ifndef LTEMAC_DLUE_TMGOPTMZ
PRIVATE S16 rgTOMUtlProcDlSf ARGS(( RgDlSf *dlSf, RgCellCb *cellCb,
RgCellCb *cellCb,
TfuDatInfo *datInfo,
RgInfCeInfo *ceInfo,
-U8 subframe
+U16 slot
));
PRIVATE S16 rgTOMProcCCCHSduInDatInd ARGS((
RgCellCb *cellCb,
TfuDatInfo *datInfo,
RgInfCeInfo *ceInfo,
-U8 subframe
+U16 slot
));
PUBLIC S16 rgHndlFlowCntrl
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;
*
* @details
*
- * Function: rgTOMTtiInd
+ * Function: macProcessSlotInd
*
- * Handler for processing TTI indication recieved from PHY
+ * Handler for processing slot indication recieved from PHY
* for a cell.
*
- * Invoked by: RgLiTfuTtiInd
+ * Invoked by: macProcessSlotInd
*
* Processing Steps:
* - Get cell and update the cell's current time with the timing value given
* - Invoke COM's TTI handler rgCOMTtiHndlr
*
* @param[in] Inst inst
- * @param[in] TfuTtiIndInfo *ttiInd
+ * @param[in] SlotIndInfo slotInd
* @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
+PUBLIC S16 macProcessSlotInd
(
Inst inst,
-TfuTtiIndInfo *ttiInfo
+SlotIndInfo slotInd
)
-#else
-PUBLIC S16 rgTOMTtiInd(inst, ttiInfo)
-Inst inst;
-TfuTtiIndInfo *ttiInfo;
-#endif
{
RgCellCb *cellCb;
RgErrInfo err;
RgDlSf *prevDlSf;
CmLteTimingInfo prevTmInfo;
#endif
- TfuTtiCellInfo *ttiInd = &ttiInfo->cells[0];
+ //SlotIndInfo *slotInd = &ttiInfo->cells[0];
- TRC2(rgTOMTtiInd);
+ TRC2(macProcessSlotInd);
#ifdef MAC_FREE_RING_BUF
gMacTId = pthread_self();
#endif
+
cellCb = rgCb[inst].cell;
- if ((cellCb == NULLP)
- ||(cellCb->cellId != ttiInd->cellId))
+ if (cellCb == NULLP)
{
-
- 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;
+
+ RGCPYTIMEINFO(slotInd, cellCb->crntTime);
+
+ rgMacGT = (slotInd.sfn * RG_NUM_SUB_FRAMES_5G) + slotInd.slot;
#ifdef LTE_L2_MEAS
rgL2Meas(cellCb);
/*Included to track the number of 10240 cycles completed */
- if((cellCb->crntTime.sfn == 0) && (cellCb->crntTime.subframe==0))
+ if((cellCb->crntTime.sfn == 0) && (cellCb->crntTime.slot==0))
{
cellCb->ttiCycle += 1;
}
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)];
+ RGSUBFRMCRNTTIME(slotInd, prevTmInfo, 1);
+ prevDlSf = &cellCb->subFrms[(prevTmInfo.slot % RG_NUM_SUB_FRAMES)];
if(FALSE == prevDlSf->txDone)
{
if (ROK != rgTOMUtlProcDlSf (prevDlSf, cellCb, &err))
}
}
#endif
- dlSf = &cellCb->subFrms[(ttiInd->timingInfo.subframe % RG_NUM_SUB_FRAMES)];
+
+ /* Mux Pdu for Msg4 */
+ SlotIndInfo muxTimingInfo;
+ memset(&muxTimingInfo, 0, sizeof(SlotIndInfo));
+ MacDlSlot *currDlSlot = NULLP;
+ ADD_DELTA_TO_TIME(slotInd, muxTimingInfo, PHY_DELTA);
+ currDlSlot = &macCb.macCell->dlSlot[muxTimingInfo.slot];
+ if(currDlSlot->dlInfo.msg4Alloc)
+ {
+ BuildAndSendMsg4MuxPdu(currDlSlot->dlInfo.msg4Alloc);
+ currDlSlot = NULLP;
+ }
+
+ /* Trigger for DL TTI REQ */
+ handleDlTtiReq(slotInd);
+
+ /* Trigger for UL TTI REQ */
+ handleUlTtiReq(slotInd);
+
+ dlSf = &cellCb->subFrms[(slotInd.slot % RG_NUM_SUB_FRAMES)];
if((dlSf->txDone == TRUE) ||
- (!RG_TIMEINFO_SAME(ttiInd->timingInfo,dlSf->schdTime)))
+ (!RG_TIMEINFO_SAME(slotInd,dlSf->schdTime)))
{
/* MS_WORKAROUND */
#ifndef LTEMAC_DLUE_TMGOPTMZ
RGADDTOCRNTTIME(cellCb->crntTime, timingInfo, TFU_DELTA);
#endif
/* Fill Data Request from MAC for BCH */
- if ((timingInfo.sfn % 4 == 0) && (timingInfo.subframe == 0))
+ if ((timingInfo.sfn % 4 == 0) && (timingInfo.slot == 0))
{
if (ROK != rgAllocEventMem(inst,(Ptr *)&datInfo,
sizeof(TfuDatReqInfo)))
#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);
+ CM_MEAS_TIME((slotInd.slot % 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");
+ //RLOG_ARG0(L_ERROR,DBG_CELLID,slotInd->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);
+ CM_MEAS_TIME((slotInd->slot % RG_NUM_SUB_FRAMES), CM_DBG_MAC_TTI_IND, CM_DBG_MAC_DL_AFTER_PRC);
#endif
/* Mark this frame as sent */
rgDHMFreeTbBufs(inst);
#endif
RETVALUE(ROK);
-} /* rgTOMTtiInd */
+} /* macProcessSlotInd */
/** @brief This function allocates the RgMacPdu that will be populated by DEMUX
* with the SubHeaders list and the values of the Control elements.
}
RETVALUE(ROK);
-} /* rgTOMTtiInd */
+}
#endif
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 */
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
TRC2(rgTOMUtlProcMsg)
#ifndef LTE_L2_MEAS
- UNUSED(subframe);
+ UNUSED(slot);
#endif
if(pdu->sduLst.first)
&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);
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++)
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];
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)
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);
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);
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
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);
}
/* 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 */
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)
{
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++;
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++;
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++;
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)
}
}
#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)
{
{
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;
}
}
}
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;
#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);
}
#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 */
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;
TRC2(rgTOMProcCrntiCEInDatInd)
#ifndef LTE_L2_MEAS
- UNUSED(subframe);
+ UNUSED(slot);
#endif
ueCb = rgDBMGetUeCbFromRachLst (cellCb, datInfo->rnti);
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,
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;
TRC2(rgTOMProcCCCHSduInDatInd)
#ifndef LTE_L2_MEAS
- UNUSED(subframe);
+ UNUSED(slot);
#endif
if (ceInfo->bitMask & RG_CRNTI_CE_PRSNT)
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",