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 */
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 */
-};
-
/**
* @brief Layer Manager Configuration request handler for Scheduler
*
{
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 */
{
Pst schPst;
FILL_PST_MAC_TO_SCH(schPst, EVENT_CELL_DELETE_REQ_TO_SCH);
- return(*macSchCellDeleteReqOpts[schPst.selector])(&schPst, schCellDelReq);
+ return(SchMessageRouter(&schPst, (void *)schCellDelReq));
}
/*******************************************************************
**/
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
memcpy(schPageInd->pagePdu, pcchInd->pcchPdu, pcchInd->pduLen);
FILL_PST_MAC_TO_SCH(schPst, EVENT_PAGING_IND_TO_SCH);
- ret = (*macSchPagingIndOpts[schPst.selector])(&schPst, schPageInd);
+ ret = SchMessageRouter(&schPst, (void *)schPageInd);
}
}
}