packDuMacSliceCfgRsp /* packing for light weight loosly coupled */
};
-MacDuSliceReCfgRspFunc macDuSliceReCfgRspOpts[] =
+MacDuSliceRecfgRspFunc macDuSliceRecfgRspOpts[] =
{
- packDuMacSliceReCfgRsp, /* packing for loosely coupled */
- DuProcMacSliceReCfgRsp, /* packing for tightly coupled */
- packDuMacSliceReCfgRsp /* packing for light weight loosly coupled */
+ packDuMacSliceRecfgRsp, /* packing for loosely coupled */
+ DuProcMacSliceRecfgRsp, /* packing for tightly coupled */
+ packDuMacSliceRecfgRsp /* packing for light weight loosly coupled */
+};
+
+MacSchPagingIndFunc macSchPagingIndOpts[] =
+{
+ packMacSchPagingInd, /* packing for loosely coupled */
+ MacSchPagingInd, /* packing for tightly coupled */
+ packMacSchPagingInd /* packing for light weight loosely coupled */
};
/**
**/
uint8_t MacSchGenCfgReq(Pst *pst, RgMngmt *cfg)
{
+ Pst schPst;
+
printf("\nReceived Scheduler gen config at MAC");
- pst->dstInst = DEFAULT_CELLS + 1;
- SchProcGenCfgReq(pst, cfg);
+ memset(&schPst, 0, sizeof(Pst));
+ FILL_PST_MAC_TO_SCH(schPst, EVENT_SCH_GEN_CFG);
+ SchProcGenCfgReq(&schPst, cfg);
return ROK;
}
schCellCfg.schRachCfg.rootSeqIdx = macCellCfg->prachCfg.fdm[0].rootSeqIdx;
schCellCfg.schRachCfg.numRootSeq = macCellCfg->prachCfg.fdm[0].numRootSeq;
schCellCfg.schRachCfg.k1 = macCellCfg->prachCfg.fdm[0].k1;
+ schCellCfg.schRachCfg.totalNumRaPreamble = macCellCfg->prachCfg.totalNumRaPreamble;
schCellCfg.schRachCfg.ssbPerRach = macCellCfg->prachCfg.ssbPerRach;
- schCellCfg.schRachCfg.prachMultCarrBand = \
- macCellCfg->prachCfg.prachMultCarrBand;
+ schCellCfg.schRachCfg.numCbPreamblePerSsb = macCellCfg->prachCfg.numCbPreamblePerSsb;
+ schCellCfg.schRachCfg.prachMultCarrBand = macCellCfg->prachCfg.prachMultCarrBand;
schCellCfg.schRachCfg.raContResTmr = macCellCfg->prachCfg.raContResTmr;
schCellCfg.schRachCfg.rsrpThreshSsb = macCellCfg->prachCfg.rsrpThreshSsb;
schCellCfg.schRachCfg.raRspWindow = macCellCfg->prachCfg.raRspWindow;
*
* ****************************************************************/
-uint8_t sendCellDelReqToSch(SchCellDelete *schCellDel)
+uint8_t sendCellDelReqToSch(SchCellDeleteReq *schCellDelReq)
{
Pst schPst;
FILL_PST_MAC_TO_SCH(schPst, EVENT_CELL_DELETE_REQ_TO_SCH);
- return(*macSchCellDeleteReqOpts[schPst.selector])(&schPst, schCellDel);
+ return(*macSchCellDeleteReqOpts[schPst.selector])(&schPst, schCellDelReq);
}
/*******************************************************************
*
*
* ****************************************************************/
-uint8_t MacProcCellDeleteReq(Pst *pst, MacCellDelete *cellDelete)
+uint8_t MacProcCellDeleteReq(Pst *pst, MacCellDeleteReq *cellDelete)
{
uint8_t ret = ROK, cellIdx=0;
- SchCellDelete schCellDelete;
+ SchCellDeleteReq schCellDelete;
DU_LOG("\nINFO --> MAC : Cell Delete Request received for cellId[%d]", cellDelete->cellId);
{
if(macCb.macCell[cellIdx]->cellId == cellDelete->cellId)
{
- memset(&schCellDelete, 0, sizeof(SchCellDelete));
+ memset(&schCellDelete, 0, sizeof(SchCellDeleteReq ));
schCellDelete.cellId = cellDelete->cellId;
ret = sendCellDelReqToSch(&schCellDelete);
if(ret != ROK)
}
}
- MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cellDelete, sizeof(MacCellDelete));
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cellDelete, sizeof(MacCellDeleteReq));
}
else
{
*
* sends slice cfg response to duapp
*
-* @param[in] MacSliceCfgRsp macSliceRecfgRsp
+* @param[in] MacSliceRecfgRsp macSliceRecfgRsp
* @return int
* -# ROK
**/
-uint8_t MacSendSliceReconfigRsp(MacSliceCfgRsp *macSliceRecfgRsp)
+uint8_t MacSendSliceReconfigRsp(MacSliceRecfgRsp *macSliceRecfgRsp)
{
Pst rspPst;
memset(&rspPst, 0, sizeof(Pst));
FILL_PST_MAC_TO_DUAPP(rspPst, EVENT_MAC_SLICE_RECFG_RSP);
- return (*macDuSliceReCfgRspOpts[rspPst.selector])(&rspPst, macSliceRecfgRsp);
+ return (*macDuSliceRecfgRspOpts[rspPst.selector])(&rspPst, macSliceRecfgRsp);
}
*
* @details
*
- * Function : MacProcSchSliceReCfgRsp
+ * Function : MacProcSchSliceRecfgRsp
*
* This function process the slice cfg rsp received from sch
*
* @return int
* -# ROK
**/
-uint8_t MacProcSchSliceReCfgRsp(Pst *pst, SchSliceCfgRsp *schSliceRecfgRsp)
+uint8_t MacProcSchSliceRecfgRsp(Pst *pst, SchSliceRecfgRsp *schSliceRecfgRsp)
{
- MacSliceCfgRsp *macSliceReCfgRsp = NULLP;
+ MacSliceRecfgRsp *macSliceRecfgRsp = NULLP;
if(schSliceRecfgRsp)
{
- MAC_ALLOC_SHRABL_BUF(macSliceReCfgRsp, sizeof(MacSliceCfgRsp));
- if(macSliceReCfgRsp == NULLP)
+ MAC_ALLOC_SHRABL_BUF(macSliceRecfgRsp, sizeof(MacSliceRecfgRsp));
+ if(macSliceRecfgRsp == NULLP)
{
- DU_LOG("\nERROR --> MAC : Failed to allocate memory in MacProcSchSliceReCfgRsp");
+ DU_LOG("\nERROR --> MAC : Failed to allocate memory in MacProcSchSliceRecfgRsp");
return RFAILED;
}
if(schSliceRecfgRsp->listOfSliceCfgRsp)
{
- if(fillMacSliceCfgRsp(schSliceRecfgRsp, macSliceReCfgRsp) != ROK)
+ if(fillMacSliceCfgRsp(schSliceRecfgRsp, macSliceRecfgRsp) != ROK)
{
DU_LOG("\nERROR --> MAC : Failed to fill the slice Recfg response");
return RFAILED;
}
- MacSendSliceReconfigRsp(macSliceReCfgRsp);
+ MacSendSliceReconfigRsp(macSliceRecfgRsp);
}
freeSchSliceCfgRsp(schSliceRecfgRsp);
}
return ROK;
}
+
+/**
+ * @brief Mac process the downlink pcch indication received from DUAPP
+ *
+ * @details
+ *
+ * Function : MacProcDlPcchInd
+ *
+ * This function process the downlink pcch indication received from DUAPP
+ *
+ * @param[in] Pst *pst
+ * @param[in] DlPcchInd *pcchInd
+ * @return int
+ * -# ROK
+ **/
+uint8_t MacProcDlPcchInd(Pst *pst, DlPcchInd *pcchInd)
+{
+ uint8_t ret = RFAILED;
+ uint16_t cellIdx = 0;
+ Pst schPst;
+ SchPageInd *schPageInd = NULLP;
+
+ if(pcchInd)
+ {
+ DU_LOG("\nINFO --> MAC : Received DL PCCH IND from DU_APP for cellId[%d]", pcchInd->cellId);
+
+ GET_CELL_IDX(pcchInd->cellId, cellIdx);
+
+ if(macCb.macCell[cellIdx] == NULLP || macCb.macCell[cellIdx]->cellId != pcchInd->cellId)
+ {
+ DU_LOG("\nERROR --> MAC : MacProcDlPcchInd(): CellId[%d] does not exist", pcchInd->cellId);
+ }
+ else
+ {
+ if((pcchInd->pcchPdu == NULLP) || (pcchInd->pduLen <= 0))
+ {
+ DU_LOG("\nERROR --> MAC : MacProcDlPcchInd(): Received Pcch pdu is null");
+ }
+ else
+ {
+ MAC_ALLOC(schPageInd, sizeof(SchPageInd));
+ if(schPageInd == NULLP)
+ {
+ DU_LOG("\nERROR --> MAC : MacProcDlPcchInd(): Failed to allocate memory");
+ }
+ else
+ {
+ schPageInd->cellId = pcchInd->cellId;
+ schPageInd->pf = pcchInd->pf;
+ schPageInd->i_s = pcchInd->i_s;
+ schPageInd->pduLen = pcchInd->pduLen;
+
+ MAC_ALLOC(schPageInd->pagePdu, pcchInd->pduLen);
+ if(schPageInd->pagePdu == NULLP)
+ {
+ DU_LOG("\nERROR --> MAC : MacProcDlPcchInd(): Failed to allocate memory");
+ MAC_FREE(schPageInd, sizeof(SchPageInd));
+ }
+ else
+ {
+ memcpy(schPageInd->pagePdu, pcchInd->pcchPdu, pcchInd->pduLen);
+
+ FILL_PST_MAC_TO_SCH(schPst, EVENT_PAGING_IND_TO_SCH);
+ ret = (*macSchPagingIndOpts[schPst.selector])(&schPst, schPageInd);
+ }
+ }
+ }
+ }
+ if((pcchInd->pcchPdu) && (pcchInd->pduLen > 0))
+ {
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, pcchInd->pcchPdu, pcchInd->pduLen);
+ }
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, pcchInd, sizeof(DlPcchInd));
+ }
+ else
+ {
+ DU_LOG("\nERROR --> MAC : MacProcDlPcchInd(): Received Null pointer");
+ }
+ return ret;
+}
/**********************************************************************
End of file
**********************************************************************/