@brief This module handles the Periodic CQI/PMI/RI, SRS, SR and Half Duplex
functionality
*/
-#ifdef LTEMAC_HDFDD
-static const char* RLOG_MODULE_NAME="MAC";
-static int RLOG_MODULE_ID=4096;
-static int RLOG_FILE_ID=165;
-#endif
/* header include files -- defines (.h) */
#include "common_def.h"
* -# RFAILED
*/
-#ifdef ANSI
-PUBLIC S16 rgSCHHdFddUeCfg
-(
-RgSchCellCb *cellCb,
-RgSchUeCb *ueCb,
-Bool hdFddEnbl
-)
-#else /* ANSI */
-PUBLIC S16 rgSCHHdFddUeCfg (cellCb, ueCb, hdFddEnbl)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-Bool hdFddEnbl;
-#endif /* ANSI */
+S16 rgSCHHdFddUeCfg(RgSchCellCb *cellCb,RgSchUeCb *ueCb,Bool hdFddEnbl)
{
- U8 sfi;
- TRC3(rgSCHHdFddUeCfg)
+ uint8_t sfi;
- RLOG_ARG2(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHHdFddUeCfg(): UeId =%d hdFddEnbl=%d",
+ DU_LOG("\nDEBUG --> SCH : rgSCHHdFddUeCfg(): UeId =%d hdFddEnbl=%d",
ueCb->ueId, hdFddEnbl);
if(ueCb->hdFddEnbld == TRUE)
{
if (hdFddEnbl == FALSE)
{
/* Do not allow switch from HD-FDD to FD-FDD configuration */
- RLOG_ARG1(L_ERROR,DBG_CELLID,cellCb->cellId,
- "rgSCHHdFddUeCfg(): HD-FDD to FD-FDD Configuration is not allowed"
+ DU_LOG("\nERROR --> SCH : rgSCHHdFddUeCfg(): HD-FDD to FD-FDD Configuration is not allowed"
"CRNTI:%d",ueCb->ueId);
}
else
{
/* If already enabled then it can be second reconfiguration */
- RLOG_ARG1(L_ERROR,DBG_CELLID,cellCb->cellId,
- "rgSCHHdFddUeCfg(): HD-FDD already enabled for this UE"
+ DU_LOG("\nERROR --> SCH : rgSCHHdFddUeCfg(): HD-FDD already enabled for this UE"
"CRNTI:%d",ueCb->ueId);
}
return RFAILED;
(ueCb->ul.ulSpsCfg.isUlSpsEnabled == TRUE ||
ueCb->dl.dlSpsCfg.isDlSpsEnabled == TRUE))
{
- RLOG_ARG1(L_ERROR,DBG_CELLID,cellCb->cellId,
- "rgSCHHdFddUeCfg(): Could'nt do HDFDD cfg, SPS already configured"
+ DU_LOG("\nERROR --> SCH : rgSCHHdFddUeCfg(): Could'nt do HDFDD cfg, SPS already configured"
"CRNTI:%d",ueCb->ueId);
return RFAILED;
}
}
else
{
- RLOG_ARG1(L_ERROR,DBG_CELLID,cellCb->cellId,
- "rgSCHHdFddUeCfg(): Could not allocate memory for hd-fdd ueCb"
+ DU_LOG("\nERROR --> SCH : rgSCHHdFddUeCfg(): Could not allocate memory for hd-fdd ueCb"
"CRNTI:%d",ueCb->ueId);
return RFAILED;
}
* -# ROK
*
*/
-#ifdef ANSI
-PUBLIC S16 rgSCHHdFddUeDel
-(
-RgSchCellCb *cellCb,
-RgSchUeCb *ueCb
-)
-#else /* ANSI */
-PUBLIC S16 rgSCHHdFddUeDel(cellCb, ueCb)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-#endif /* ANSI */
+S16 rgSCHHdFddUeDel(RgSchCellCb *cellCb,RgSchUeCb *ueCb)
{
- TRC3(rgSCHHdFddUeDel)
- RLOG_ARG2(L_DEBUG,DBG_CELLID,cellCb->cellId,
- " rgSCHHdFddUeDel(): UeId =%d hdFdd=%x",
+ DU_LOG("\nDEBUG --> SCH : rgSCHHdFddUeDel(): UeId =%d hdFdd=%x",
ueCb->ueId, ueCb->hdFddEnbld);
* @return None
*/
-#ifdef ANSI
-PUBLIC Void rgSCHCmnHdFddPtUlMrk
-(
-RgSchCellCb *cellCb
-)
-#else /* ANSI */
-PUBLIC Void rgSCHCmnHdFddPtUlMrk (cellCb)
-RgSchCellCb *cellCb;
-#endif /* ANSI */
+Void rgSCHCmnHdFddPtUlMrk(RgSchCellCb *cellCb)
{
- U16 sfn; /* System Frame Number */
- U32 pti; /* Index into Periodic table */
- U16 sfi; /* Index into HDFDD state table */
- CmLListCp *cqiLst;
- CmLListCp *srsLst;
- CmLListCp *srLst;
- CmLListCp *riLst;
- CmLList *cqiNode;
- CmLList *srsNode;
- CmLList *srNode;
- CmLList *riNode;
- CmLteTimingInfo timeInfo;
- RgSchUePCqiCb *cqiCb = NULLP;
- RgSchUePCqiCb *riCb = NULLP;
-
- TRC3(rgSCHCmnHdFddPtUlMrk)
+ uint16_t sfn; /* System Frame Number */
+ uint32_t pti; /* Index into Periodic table */
+ uint16_t sfi; /* Index into HDFDD state table */
+ CmLListCp *cqiLst;
+ CmLListCp *srsLst;
+ CmLListCp *srLst;
+ CmLListCp *riLst;
+ CmLList *cqiNode;
+ CmLList *srsNode;
+ CmLList *srNode;
+ CmLList *riNode;
+ CmLteTimingInfo timeInfo;
+ RgSchUePCqiCb *cqiCb = NULLP;
+ RgSchUePCqiCb *riCb = NULLP;
+
timeInfo = cellCb->crntTime;
CM_LLIST_NEXT_NODE(riLst, riNode);
}
- RETVOID;
+ return;
} /* rgSCHCmnHdFddPtUlMrk */
#endif /* ifdef TFU_UPGRADE */
* @return None
*
*/
-#ifdef ANSI
-PUBLIC Void rgSCHCmnHdFddChkUlAllow
-(
- RgSchCellCb *cellCb,
- RgSchUeCb *ueCb,
- U8 *allow
-)
-#else /* ANSI */
-PUBLIC Void rgSCHCmnHdFddChkUlAllow ( cellCb, ueCb, allow)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-U8 *allow;
-#endif /* ANSI */
+Void rgSCHCmnHdFddChkUlAllow(RgSchCellCb *cellCb,RgSchUeCb *ueCb,uint8_t *allow)
{
- U16 sfn;
- U16 sfi;
+ uint16_t sfn;
+ uint16_t sfi;
CmLteTimingInfo timeInfo;
RgSchDlSf *sf = NULLP; /* Dl subframe info */
- U8 ulOffset
+ uint8_t ulOffset
- TRC3(rgSCHCmnHdFddChkUlAllow)
-
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- " rgSCHCmnHdFddChkUlAllow: ueId=%d ", ueCb->ueId);
+ DU_LOG("\nDEBUG --> SCH : rgSCHCmnHdFddChkUlAllow: ueId=%d ", ueCb->ueId);
*allow = FALSE;
/* Common channel scheduled */
/* Mark the BCCH/PCCH occasion */
RG_SCH_HDFDD_MARKSTATE(ueCb, RG_SCH_HDFDD_DLDATA, sfn, sfi);
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkUlAllow: Already marked for Cmn DL, ueId = %d ",
+ DU_LOG("\nDEBUG --> SCH : rgSCHCmnHdFddChkUlAllow: Already marked for Cmn DL, ueId = %d ",
ueCb->ueId);
}
if ((ueCb->hdFddCb->subfrm[sfi].sfn == sfn) &&
{
/* Downlink scheduled */
*allow = FALSE;
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkUlAllow: Already marked for DL, ueId = %d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkUlAllow: Already marked for DL, ueId = %d ",
ueCb->ueId);
- RETVOID;
+ return;
}
/* Validate condition 3 */
{
/* No place for HARQ feedback */
*allow = FALSE;
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkUlAllow: No Place for HARQ, ueId = %d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkUlAllow: No Place for HARQ, ueId = %d ",
ueCb->ueId);
- RETVOID;
+ return;
}
/* Validate condition 4 */
ueCb->hdFddCb->subfrm[sfi].subFrmDir == RG_SCH_HDFDD_UL)
{
*allow = FALSE;
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- " rgSCHCmnHdFddChkUlAllow: No Place for UL grant, ueId = %d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkUlAllow: No Place for UL grant, ueId = %d ",
ueCb->ueId);
- RETVOID;
+ return;
}
/* Validate condition 5 */
{
/* This subframe may be a switching gaurd time */
*allow = FALSE;
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- " rgSCHCmnHdFddChkUlAllow: No Place for Guard time, ueId = %d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkUlAllow: No Place for Guard time, ueId = %d ",
ueCb->ueId);
- RETVOID;
+ return;
}
/* Adition guard time rule check: Above check is only for PDSCH, lets check
/* Mark the BCCH/PCCH occasion */
RG_SCH_HDFDD_MARKSTATE(ueCb, RG_SCH_HDFDD_DLDATA, timeInfo.sfn, sfi);
*allow = FALSE;
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkUlAllow: Already marked for Cmn DL, ueId = %d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkUlAllow: Already marked for Cmn DL, ueId = %d ",
ueCb->ueId);
- RETVOID;
+ return;
}
/* All validation done. Safe to for UL */
*allow = TRUE;
- RETVOID;
+ return;
} /* rgSCHCmnHdFddChkUlAllow */
* @param[in] RgSchCellCb *cellCb
* @param[in] RgSchUeCb *ueCb
* @param[in] CmLteTimingInfo *timeInfo
- * @param[out] U8 *allow -- TRUE is allowed or FALSE if no allowedi.
+ * @param[out] uint8_t *allow -- TRUE is allowed or FALSE if no allowedi.
* Valdity of this pointer is not done in this function
*
*/
-#ifdef ANSI
-PUBLIC Void rgSCHCmnHdFddChkDlAllow
+Void rgSCHCmnHdFddChkDlAllow
(
RgSchCellCb *cellCb,
RgSchUeCb *ueCb,
Bool *allow /* Valdity of this pointer is not done in this function */
)
-#else /* ANSI */
-PUBLIC Void rgSCHCmnHdFddChkDlAllow ( cellCb, ueCb, allow)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-Bool *allow; /* Valdity of this pointer is not done in this function */
-#endif /* ANSI */
{
- U16 sfn;
- U16 sfi;
+ uint16_t sfn;
+ uint16_t sfi;
RgSchDlSf *sf = NULLP; /* Dl subframe info */
CmLteTimingInfo timeInfo;
CmLteTimingInfo tempTimeInfo;
- TRC3(rgSCHCmnHdFddChkDlAllow)
-
*allow = FALSE;
timeInfo = cellCb->crntTime;
RGSCH_INCR_SUB_FRAME(timeInfo, RG_SCH_CMN_DL_DELTA);
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddDlSchAll (): ueId=%d ", ueCb->ueId);
+ DU_LOG("\nDEBUG --> SCH : rgSCHCmnHdFddDlSchAll (): ueId=%d ", ueCb->ueId);
/* Also get subframe pointer to fetch Common Ch allocation */
sf = rgSCHUtlSubFrmGet(cellCb, timeInfo);
(ueCb->hdFddCb->subfrm[sfi].subFrmDir == RG_SCH_HDFDD_UL))
{
/* Uplink scheduled */
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkDlAllow: sf is UL, ueId=%d ", ueCb->ueId);
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkDlAllow: sf is UL, ueId=%d ", ueCb->ueId);
*allow = FALSE;
- RETVOID;
+ return;
}
/* It is not validation, but BCCH/PCCH marking is done here */
(ueCb->hdFddCb->subfrm[sfi].subFrmDir == RG_SCH_HDFDD_UL))
{
/* This subframe may be a switching guard time */
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- " rgSCHCmnHdFddChkDlAllow: Guard time rule not met, ueId=%d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkDlAllow: Guard time rule not met, ueId=%d ",
ueCb->ueId);
*allow = FALSE;
- RETVOID;
+ return;
}
/* Validate condition 3 */
/* Common channel scheduled */
/* Do the marking for this subframe */
RG_SCH_HDFDD_MARKSTATE(ueCb, RG_SCH_HDFDD_DLDATA, tempTimeInfo.sfn, sfi);
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkDlAllow: Possible systemInfo, ueId=%d ",
+ DU_LOG("\nDEBUG --> SCH : rgSCHCmnHdFddChkDlAllow: Possible systemInfo, ueId=%d ",
ueCb->ueId);
}
ueCb->hdFddCb->subfrm[sfi].subFrmDir != RG_SCH_HDFDD_UL)
{
/* No place for HARQ feedback */
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkDlAllow: No place for HARQ feedback, ueId=%d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkDlAllow: No place for HARQ feedback, ueId=%d ",
ueCb->ueId);
*allow = FALSE;
/* Mark this sf as DLCNTRL */
ueCb->hdFddCb->subfrm[sfi].subFrmDir =RG_SCH_HDFDD_DLCNTRL;
- RETVOID;
+ return;
}
/* Common channel scheduled */
/* Do the marking for this subframe */
RG_SCH_HDFDD_MARKSTATE(ueCb, RG_SCH_HDFDD_DLDATA, tempTimeInfo.sfn, sfi);
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkDlAllow: (GT) Possible systemInfo, ueId=%d ",
+ DU_LOG("\nDEBUG --> SCH : rgSCHCmnHdFddChkDlAllow: (GT) Possible systemInfo, ueId=%d ",
ueCb->ueId);
}
ueCb->hdFddCb->subfrm[sfi].subFrmDir == RG_SCH_HDFDD_DLDATA)
{
/* No place for HARQ feedback */
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkDlAllow: (GT) No place for HARQ feedback,"
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkDlAllow: (GT) No place for HARQ feedback,"
"ueId=%d ",ueCb->ueId);
*allow = FALSE;
- RETVOID;
+ return;
}
/* First check for any Common channel info is scheduled */
*allow = TRUE;
/* All validation done. Safe to for DL */
- RETVOID;
+ return;
} /* rgSCHCmnHdFddChkDlAllow */
*
*/
-#ifdef ANSI
-PUBLIC Void rgSCHCmnHdFddChkNackAllow
-(
-RgSchCellCb *cellCb,
-RgSchUeCb *ueCb,
-CmLteTimingInfo timeInfo,
-Bool *sndNACK
-)
-#else /* ANSI */
-PUBLIC Void rgSCHCmnHdFddChkNackAllow(cellCb, ueCb, timeInfo, sndNACK)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-CmLteTimingInfo timeInfo;
-Bool *sndNACK;
-#endif /* ANSI */
+Void rgSCHCmnHdFddChkNackAllow(RgSchCellCb *cellCb,RgSchUeCb *ueCb,CmLteTimingInfo timeInfo,Bool *sndNACK)
{
RgSchDlSf *sf;
CmLteTimingInfo tempTimeInfo;
- TRC3(rgSCHCmnHdFddChkNackAllow)
-
/* Information in timeInfo contains (n+DL_DELTA) th subframe info*/
*sndNACK = FALSE;
if(RG_SCH_HDFDD_ISCMN_SCHED(sf))
{
/* Yes, Cannot send NACK */
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkNackAllow: Cannot send NACK, ueId = %d ",
+ DU_LOG("\nERROR --> SCH : rgSCHCmnHdFddChkNackAllow: Cannot send NACK, ueId = %d ",
ueCb->ueId);
*sndNACK = FALSE;
}
else
{
/* safe, Send NACK */
- RLOG_ARG1(L_DEBUG,DBG_CELLID,cellCb->cellId,
- "rgSCHCmnHdFddChkNackAllow: NACk can be sent, ueId = %d ",
+ DU_LOG("\nDEBUG --> SCH : rgSCHCmnHdFddChkNackAllow: NACk can be sent, ueId = %d ",
ueCb->ueId);
*sndNACK = TRUE;
}
- RETVOID;
+ return;
} /* rgSCHCmnHdFddChkNackAllow */
* @param[in] RgSchCellCb *cellCb
* @param[in] RgSchUeCb *ueCb
* @param[in] CmLteTimingInfo *timeInfo
- * @param[out] U8 *allow -- TRUE is allowed or FALSE if no allowedi.
+ * @param[out] uint8_t *allow -- TRUE is allowed or FALSE if no allowedi.
* Valdity of this pointer is not done in this function.
*
* @return None
*/
-#ifdef ANSI
-PUBLIC Void rgSCHCmnHdFddUpdULMark
-(
-RgSchCellCb *cellCb,
-RgSchUeCb *ueCb
-)
-#else /* ANSI */
-PUBLIC Void rgSCHCmnHdFddUpdULMark ( cellCb, ueCb)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-#endif /* ANSI */
+Void rgSCHCmnHdFddUpdULMark(RgSchCellCb *cellCb,RgSchUeCb *ueCb)
{
- U16 sfn;
- U16 sfi;
+ uint16_t sfn;
+ uint16_t sfi;
CmLteTimingInfo timeInfo;
- U8 ulOffset;
-
- TRC3(rgSCHCmnHdFddUpdULMark)
-
+ uint8_t ulOffset;
ulOffset = RGSCH_PDCCH_PUSCH_DELTA -
TFU_CRCIND_ULDELTA + RGSCH_PDCCH_PUSCH_DELTA;
RG_SCH_HDFDD_GETSFI(sfi, timeInfo, (ulOffset * -1));
RG_SCH_HDFDD_MARKSTATE(ueCb, RG_SCH_HDFDD_NOSCHD, RG_SCH_HDFDD_INVSFN, sfi);
- RETVOID;
+ return;
} /* rgSCHCmnHdFddUpdULMark */
* @param[in] RgSchCellCb *cellCb
* @param[in] RgSchUeCb *ueCb
* @param[in] CmLteTimingInfo *timeInfo
- * @param[out] U8 *allow -- TRUE is allowed or FALSE if no allowed.
+ * @param[out] uint8_t *allow -- TRUE is allowed or FALSE if no allowed.
* Valdity of this pointer is not done in this function
*
* @return None
*/
-#ifdef ANSI
-PUBLIC Void rgSCHCmnHdFddUpdDLMark
-(
-RgSchCellCb *cellCb,
-RgSchUeCb *ueCb
-)
-#else /* ANSI */
-PUBLIC Void rgSCHCmnHdFddUpdDLMark (cellCb, ueCb)
-RgSchCellCb *cellCb;
-RgSchUeCb *ueCb;
-#endif /* ANSI */
+Void rgSCHCmnHdFddUpdDLMark(RgSchCellCb *cellCb,RgSchUeCb *ueCb)
{
- U16 sfn;
- U16 sfi;
+ uint16_t sfn;
+ uint16_t sfi;
CmLteTimingInfo timeInfo;
- TRC3(rgSCHCmnHdFddUpdDLMark)
-
timeInfo = cellCb->crntTime;
RGSCH_INCR_SUB_FRAME(timeInfo, RG_SCH_CMN_DL_DELTA);
RG_SCH_HDFDD_MARKSTATE(ueCb, RG_SCH_HDFDD_DLCNTRL, sfn, sfi);
}
- RETVOID;
+ return;
} /* rgSCHCmnHdFddUpdDLMark */
*
* Processing Steps:
*
- * @param[out] *sfn U32
+ * @param[out] *sfn uint32_t
* @param[in] timeInfo timing information subframe of interest
* @param[in] offsest Offest with w.r.t which SFN has to be determined
*
* @return None
*/
-#ifdef ANSI
-PUBLIC Void rgSCHHdFddGetSfn
-(
- U16 *sfn,
- CmLteTimingInfo timeInfo,
- S16 offset
-)
-#else /* ANSI */
-PUBLIC Void rgSCHHdFddGetSfn (sfn, timeInfo, offset)
- U16 *sfn;
- CmLteTimingInfo timeInfo;
- S16 offset;
-#endif /* ANSI */
+Void rgSCHHdFddGetSfn(uint16_t *sfn,CmLteTimingInfo timeInfo,S16 offset)
{
- U16 tempSfn;
+ uint16_t tempSfn;
S16 tempSfCount;
- TRC3(rgSCHHdFddGetSfn)
if(((S16)(timeInfo.subframe) + offset) >= RGSCH_NUM_SUB_FRAMES)
{
/* Increament to number of times of SFNs that can be possible
}
*sfn = tempSfn;
- RETVOID;
+ return;
} /* End of rgSCHHdFddGetSfn */