packMacCellCfgCfm, /* packing for light weight loosly coupled */
};
-SchCellCfgFunc SchCellCfgOpts[] =
-{
- packSchCellCfg, /* packing for loosely coupled */
- SchHdlCellCfgReq, /* packing for tightly coupled */
- packSchCellCfg /* packing for light weight loosly coupled */
-};
-
-MacSchCellDeleteReqFunc macSchCellDeleteReqOpts[]=
-{
- packMacSchCellDeleteReq, /* packing for loosely coupled */
- MacSchCellDeleteReq, /* packing for tightly coupled */
- packMacSchCellDeleteReq /* packing for light weight loosely coupled */
-};
-
MacDuCellDeleteRspFunc macDuCellDeleteRspOpts[] =
{
packDuMacCellDeleteRsp, /* packing for loosely coupled */
packDuMacSliceCfgRsp /* packing for light weight loosly coupled */
};
-MacDuSliceReCfgRspFunc macDuSliceReCfgRspOpts[] =
-{
- packDuMacSliceReCfgRsp, /* packing for loosely coupled */
- DuProcMacSliceReCfgRsp, /* packing for tightly coupled */
- packDuMacSliceReCfgRsp /* packing for light weight loosly coupled */
-};
-
-MacSchPagingIndFunc macSchPagingIndOpts[] =
+MacDuSliceRecfgRspFunc macDuSliceRecfgRspOpts[] =
{
- packMacSchPagingInd, /* packing for loosely coupled */
- MacSchPagingInd, /* packing for tightly coupled */
- packMacSchPagingInd /* packing for light weight loosely coupled */
+ packDuMacSliceRecfgRsp, /* packing for loosely coupled */
+ DuProcMacSliceRecfgRsp, /* packing for tightly coupled */
+ packDuMacSliceRecfgRsp /* packing for light weight loosly coupled */
};
/**
{
Pst schPst;
- printf("\nReceived Scheduler gen config at MAC");
+ DU_LOG("\nINFO --> MAC : Received Scheduler gen config at MAC");
memset(&schPst, 0, sizeof(Pst));
FILL_PST_MAC_TO_SCH(schPst, EVENT_SCH_GEN_CFG);
- SchProcGenCfgReq(&schPst, cfg);
-
- return ROK;
+
+ return(SchMessageRouter(&schPst, (void *)cfg));
}
/**
**/
uint8_t SchSendCfgCfm(Pst *pst, RgMngmt *cfm)
{
- DU_LOG("\nDEBUG --> Sending Scheduler config confirm to DU APP");
+ DU_LOG("\nDEBUG --> MAC : Sending Scheduler config confirm to DU APP");
pst->dstEnt = ENTDUAPP;
pst->dstInst = 0;
pst->srcInst = 0;
GET_CELL_IDX(macCellCfg->cellId, cellIdx);
macCb.macCell[cellIdx] = macCellCb;
macCb.macCell[cellIdx]->cellId = macCellCfg->cellId;
+ macCb.macCell[cellIdx]->numOfSlots = 10 * (1 << macCellCfg->numerology);
memcpy(&macCb.macCell[cellIdx]->macCellCfg, macCellCfg, sizeof(MacCellCfg));
MAC_ALLOC(macCb.macCell[cellIdx]->macCellCfg.sib1Cfg.sib1Pdu, \
{
SchCellCfg schCellCfg;
Pst cfgPst;
- uint8_t ssbMaskIdx = 0, rsrcListIdx = 0, ret=0, sliceIdx=0;
+ uint8_t ssbMaskIdx = 0, rsrcListIdx = 0, sliceIdx=0;
memset(&cfgPst, 0, sizeof(Pst));
memset(&schCellCfg, 0, sizeof(SchCellCfg));
FILL_PST_MAC_TO_SCH(cfgPst, EVENT_SCH_CELL_CFG);
- ret = (*SchCellCfgOpts[cfgPst.selector])(&cfgPst, &schCellCfg);
- return ret;
+ return(SchMessageRouter(&cfgPst, (void *)&schCellCfg));
} /* end of MacSchCellCfgReq */
*
* ****************************************************************/
-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(SchMessageRouter(&schPst, (void *)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
{
**/
void freeMacSliceCfgReq(MacSliceCfgReq *cfgReq,Pst *pst)
{
- uint8_t cfgIdx = 0;
-
- if(cfgReq)
- {
- if(cfgReq->numOfConfiguredSlice)
- {
- for(cfgIdx = 0; cfgIdx<cfgReq->numOfConfiguredSlice; cfgIdx++)
- {
- if(cfgReq->listOfSliceCfg[cfgIdx])
- {
- MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfSliceCfg[cfgIdx]->rrmPolicyRatio, sizeof(RrmPolicyRatio));
- }
- MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfSliceCfg[cfgIdx], sizeof(MacSliceRrmPolicy));
- }
- MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfSliceCfg, cfgReq->numOfConfiguredSlice * sizeof(MacSliceRrmPolicy*));
- }
- MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq, sizeof(MacSliceCfgReq));
- }
+ uint8_t policyIdx = 0, memberListIdx=0;
+
+ if(cfgReq->numOfRrmPolicy)
+ {
+ if(cfgReq->listOfRrmPolicy)
+ {
+ for(policyIdx = 0; policyIdx<cfgReq->numOfRrmPolicy; policyIdx++)
+ {
+ if(cfgReq->listOfRrmPolicy[policyIdx])
+ {
+ if(cfgReq->listOfRrmPolicy[policyIdx]->numOfRrmPolicyMem)
+ {
+ if(cfgReq->listOfRrmPolicy[policyIdx]->rRMPolicyMemberList)
+ {
+ for(memberListIdx = 0; memberListIdx<cfgReq->listOfRrmPolicy[policyIdx]->numOfRrmPolicyMem; memberListIdx++)
+ {
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfRrmPolicy[policyIdx]->rRMPolicyMemberList[memberListIdx], sizeof(RrmPolicyMemberList));
+ }
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfRrmPolicy[policyIdx]->rRMPolicyMemberList,\
+ cfgReq->listOfRrmPolicy[policyIdx]->numOfRrmPolicyMem * sizeof(RrmPolicyMemberList*));
+ }
+ }
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfRrmPolicy[policyIdx], sizeof(MacSliceRrmPolicy));
+ }
+ }
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, cfgReq->listOfRrmPolicy, cfgReq->numOfRrmPolicy * sizeof(MacSliceRrmPolicy*));
+ }
+ }
+
}
/**
* @brief fill Mac Slice Config Rsp
*
* 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);
}
* This function process the downlink pcch indication received from DUAPP
*
* @param[in] Pst *pst
- * @param[in] MacPcchInd *pcchInd
+ * @param[in] DlPcchInd *pcchInd
* @return int
* -# ROK
**/
-uint8_t MacProcDlPcchInd(Pst *pst, MacPcchInd *pcchInd)
+uint8_t MacProcDlPcchInd(Pst *pst, DlPcchInd *pcchInd)
{
uint8_t ret = RFAILED;
uint16_t cellIdx = 0;
if(pcchInd)
{
- DU_LOG("\nINFO --> MAC : Recived pcch request from DU_APP for cellId[%d]", pcchInd->cellId);
+ DU_LOG("\nINFO --> MAC : Received DL PCCH IND from DU_APP for cellId[%d]", pcchInd->cellId);
GET_CELL_IDX(pcchInd->cellId, cellIdx);
{
memcpy(schPageInd->pagePdu, pcchInd->pcchPdu, pcchInd->pduLen);
- DU_LOG("\nINFO --> MAC : Sending paging indication to SCH");
FILL_PST_MAC_TO_SCH(schPst, EVENT_PAGING_IND_TO_SCH);
- ret = (*macSchPagingIndOpts[schPst.selector])(&schPst, schPageInd);
+ ret = SchMessageRouter(&schPst, (void *)schPageInd);
}
}
}
{
MAC_FREE_SHRABL_BUF(pst->region, pst->pool, pcchInd->pcchPdu, pcchInd->pduLen);
}
- MAC_FREE_SHRABL_BUF(pst->region, pst->pool, pcchInd, sizeof(MacPcchInd));
+ MAC_FREE_SHRABL_BUF(pst->region, pst->pool, pcchInd, sizeof(DlPcchInd));
}
else
{