static int RLOG_MODULE_ID=4096;
/* header include files (.h) */
-#include "stdbool.h"
-#include "envopt.h" /* environment options */
-#include "envdep.h" /* environment dependent */
-#include "envind.h" /* environment independent */
-#include "gen.h" /* general */
-#include "ssi.h" /* system services */
-#include "cm_tkns.h" /* Common Token Defines */
-#include "cm_llist.h" /* Common Link List Defines */
-#include "cm_hash.h" /* Common Hash List Defines */
-#include "cm_mblk.h" /* common memory link list library */
-#include "cm_lte.h" /* Common LTE Defines */
+#include "common_def.h"
#include "rg_env.h" /* MAC Environment Defines */
#include "crg.h" /* CRG Interface defines */
#include "rgu.h" /* RGU Interface defines */
#include "rgr.h" /* LRG Interface defines */
#include "rg.h" /* MAC defines */
#include "rg_err.h" /* MAC error defines */
-#include "du_log.h"
/* header/extern include files (.x) */
-#include "gen.x" /* general */
-#include "ssi.x" /* system services */
-#include "cm5.x" /* system services */
-#include "cm_tkns.x" /* Common Token Definitions */
-#include "cm_llist.x" /* Common Link List Definitions */
-#include "cm_lib.x" /* Common Library Definitions */
-#include "cm_hash.x" /* Common Hash List Definitions */
-#include "cm_mblk.x" /* common memory link list library */
-#include "cm_lte.x" /* Common LTE Defines */
#include "crg.x" /* CRG Interface includes */
#include "rgu.x" /* RGU Interface includes */
#include "tfu.x" /* RGU Interface includes */
#include "ss_rbuf.h"
#include "ss_rbuf.x"
#include "lwr_mac.h" /* MAC CL defines */
+#include "mac_sch_interface.h"
+#include "lwr_mac_upr_inf.h"
#include "mac.h"
#include "lwr_mac_phy.h"
#include "lwr_mac_fsm.h"
#endif /* __cplusplus */
/* Public variable declaration */
-ClCb clGlobalCp;
+LwrMacCb lwrMacCb;
extern MacCb macCb;
-int MacSchCellCfgReq(Pst *pst,MacCellCfg *macCellCfg);
-
/* forward references */
PRIVATE U16 rgLMMGenCfg ARGS((
Inst inst,
Pst *cfmPst
));
-extern int packMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm);
-
-packMacCellCfgConfirm packMacCellCfmOpts[] =
-{
- packMacCellCfgCfm, /* packing for loosely coupled */
- duHandleMacCellCfgCfm, /* packing for tightly coupled */
- 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 */
-};
-
\f
/**
* @brief Task Initiation callback function.
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 rgActvInit
+S16 rgActvInit
(
Ent entity, /* entity */
Inst inst, /* instance */
Reason reason /* reason */
)
#else
-PUBLIC S16 rgActvInit(entity, inst, region, reason)
+S16 rgActvInit(entity, inst, region, reason)
Ent entity; /* entity */
Inst inst; /* instance */
Region region; /* region */
#endif
/* Initializing CL control block */
- clGlobalCp.region = region;
- clGlobalCp.pool = 0;
- clGlobalCp.clCfgDone = FALSE;
- clGlobalCp.numOfCells = 0;
- clGlobalCp.phyState = PHY_STATE_IDLE;
-
- if( cmHashListInit(&clGlobalCp.cellCbLst, MAX_NUM_CELL_SUPP, 0x0, FALSE,
- CM_HASH_KEYTYPE_DEF, clGlobalCp.region, clGlobalCp.pool ) != ROK )
- {
- printf("\n Cellcb hash list initialization failed for MAC CL");
- RETVALUE(RFAILED);
- }
+ memset(&lwrMacCb, 0, sizeof(LwrMacCb));
+ lwrMacCb.region = region;
+ lwrMacCb.pool = 0;
+ lwrMacCb.clCfgDone = TRUE;
+ lwrMacCb.numCell = 0;
+ lwrMacCb.phyState = PHY_STATE_IDLE;
/* Initialize Scheduler as well */
- schActvInit(ENTRG, (DEFAULT_CELLS + SCH_INST_START), DFLT_REGION, PWR_UP);
+ schActvInit(ENTMAC, (DEFAULT_CELLS + SCH_INST_START), DFLT_REGION, PWR_UP);
/* Initialize lower mac */
lwrMacInit();
- RETVALUE(ROK);
+ return ROK;
} /* rgActvInit */
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 RgMiLrgCfgReq
+S16 RgMiLrgCfgReq
(
Pst *pst, /* post structure */
RgMngmt *cfg /* config structure */
)
#else
-PUBLIC S16 RgMiLrgCfgReq(pst, cfg)
+S16 RgMiLrgCfgReq(pst, cfg)
Pst *pst; /* post structure */
RgMngmt *cfg; /* config structure */
#endif
RgMiLrgCfgCfm(&cfmPst, &cfm);
- RETVALUE(ROK);
+ return ROK;
}/*-- RgMiLrgCfgReq --*/
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 RgMiLrgStsReq
+S16 RgMiLrgStsReq
(
Pst *pst, /* post structure */
RgMngmt *sts /* statistics structure */
)
#else
-PUBLIC S16 RgMiLrgStsReq(pst, sts)
+S16 RgMiLrgStsReq(pst, sts)
Pst *pst; /* post structure */
RgMngmt *sts; /* statistics structure */
#endif
cfm.cfm.reason = LCM_REASON_GENCFG_NOT_DONE;
RgMiLrgStsCfm(&cfmPst,&cfm);
RLOG0(L_ERROR, "Gen Cfg not done");
- RETVALUE(ROK);
+ return ROK;
}
switch(sts->hdr.elmId.elmnt)
break;
}
RgMiLrgStsCfm(&cfmPst,&cfm);
- RETVALUE(ROK);
+ return ROK;
}/*-- RgMiLrgStsReq --*/
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 RgMiLrgStaReq
+S16 RgMiLrgStaReq
(
Pst *pst, /* post structure */
RgMngmt *sta /* status structure */
)
#else
-PUBLIC S16 RgMiLrgStaReq(pst, sta)
+S16 RgMiLrgStaReq(pst, sta)
Pst *pst; /* post structure */
RgMngmt *sta; /* status structure */
#endif
!= ROK)
{
RLOG0(L_ERROR, "Memory Unavailable for Confirmation");
- RETVALUE(ROK);
+ return ROK;
}
cmMemset((U8 *)(cfm.t.ssta.s.sysId.ptNmb), 0, LRG_MAX_PT_NUM_SIZE);
rgGetSId(&cfm.t.ssta.s.sysId);
cfm.hdr.elmId.elmnt = sta->hdr.elmId.elmnt;
RgMiLrgStaCfm(&cfmPst, &cfm);
RLOG0(L_ERROR, "Gen Cfg not done");
- RETVALUE(ROK);
+ return ROK;
}
switch(sta->hdr.elmId.elmnt)
!= ROK)
{
RLOG0(L_ERROR, "Memory Unavailable for Confirmation");
- RETVALUE(ROK);
+ return ROK;
}
cmMemset((U8 *)(cfm.t.ssta.s.sysId.ptNmb), 0, LRG_MAX_PT_NUM_SIZE);
rgGetSId(&cfm.t.ssta.s.sysId);
RLOG1(L_ERROR, "Invalid elmnt=%d",sta->hdr.elmId.elmnt);
break;
}
- RETVALUE(ROK);
+ return ROK;
}/*-- RgMiLrgStaReq --*/
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 RgMiLrgCntrlReq
+S16 RgMiLrgCntrlReq
(
Pst *pst, /* post structure */
RgMngmt *cntrl /* control structure */
)
#else
-PUBLIC S16 RgMiLrgCntrlReq(pst, cntrl)
+S16 RgMiLrgCntrlReq(pst, cntrl)
Pst *pst; /* post structure */
RgMngmt *cntrl; /* control structure */
#endif
cfm.hdr.elmId.elmnt = cntrl->hdr.elmId.elmnt;
RgMiLrgCntrlCfm(&cfmPst, &cfm);
RLOG0(L_ERROR, "Gen Cfg not done");
- RETVALUE(ROK);
+ return ROK;
}
/* General Config done, process the Control request */
RLOG1(L_ERROR, "invalid elmnt=%d",cntrl->hdr.elmId.elmnt);
break;
}
- RETVALUE(ret);
+ return (ret);
}/*-- RgMiLrgCntrlReq --*/
\f
/* Check if Gen Config has been done */
if(rgCb[inst].rgInit.cfgDone != TRUE)
- RETVALUE(LCM_REASON_GENCFG_NOT_DONE);
+ return (LCM_REASON_GENCFG_NOT_DONE);
switch(sapType)
{
case STRGUSAP:
if ((cfg->s.rguSap.spId > LRG_MAX_RGU_SAPS) &&
- (cfg->s.rguSap.selector != RGU_SEL_TC) &&
- (cfg->s.rguSap.selector != RGU_SEL_LC))
+ (cfg->s.rguSap.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.rguSap.selector != ODU_SELECTOR_LC))
{
ret = LCM_REASON_INVALID_PAR_VAL;
RLOG0(L_ERROR, "unsupported Selector value for RGU");
* there is cfg request with sap is 1*/
break;
case STCRGSAP:
- if ((cfg->s.crgSap.selector != CRG_SEL_TC) &&
- (cfg->s.crgSap.selector != CRG_SEL_LC))
+ if ((cfg->s.crgSap.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.crgSap.selector != ODU_SELECTOR_LC))
{
ret = LCM_REASON_INVALID_PAR_VAL;
RLOG0(L_ERROR, "unsupported Selector value for CRG");
break;
case STTFUSAP:
#ifndef CL_MAC_LWLC
- if ((cfg->s.tfuSap.selector != TFU_SEL_TC) &&
- (cfg->s.tfuSap.selector != TFU_SEL_LC))
+ if ((cfg->s.tfuSap.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.tfuSap.selector != ODU_SELECTOR_LC))
{
ret = LCM_REASON_INVALID_PAR_VAL;
RLOG0(L_ERROR, "unsupported Selector value for TFU");
/* would never reach here */
break;
}
- RETVALUE(ret);
+ return (ret);
}
\f
/* Check if General Configuration is done already */
if (rgCb[inst].rgInit.cfgDone == TRUE)
{
- RETVALUE(LCM_REASON_INVALID_MSGTYPE);
+ return (LCM_REASON_INVALID_MSGTYPE);
}
- if ((cfg->s.genCfg.lmPst.selector != LRG_SEL_TC) &&
- (cfg->s.genCfg.lmPst.selector != LRG_SEL_LC))
+ if ((cfg->s.genCfg.lmPst.selector != ODU_SELECTOR_TC) &&
+ (cfg->s.genCfg.lmPst.selector != ODU_SELECTOR_LC))
{
RLOG0(L_ERROR, "unsupported Selector value for RGU");
- RETVALUE(LCM_REASON_INVALID_PAR_VAL);
+ return (LCM_REASON_INVALID_PAR_VAL);
}
/* Update the Pst structure for LM interface */
cmMemcpy((U8 *)&rgCb[inst].rgInit.lmPst, (U8 *)&cfg->s.genCfg.lmPst,
rgCb[inst].genCfg.tmrRes = cfg->s.genCfg.tmrRes;
macCb.macInst = rgCb[inst].rgInit.inst;
+ macCb.procId = rgCb[inst].rgInit.procId;
/* Initialize SAP States */
rgCb[inst].crgSap.sapSta.sapState = LRG_NOT_CFG;
if(cfg->s.genCfg.numRguSaps == 0)
{
RGDBGERRNEW(inst,(rgPBuf(inst), "\nrgGenCfg(): Invalid numRguSap.\n"));
- RETVALUE(RFAILED);
+ return RFAILED;
}
/* allocate RGR saps */
(sizeof(RgUpSapCb) * cfg->s.genCfg.numRguSaps)) != ROK)
{
RGDBGERRNEW(inst,(rgPBuf(inst), "\nrgGenCfg(): Failed to allocate mem for RGU SAP's.\n"));
- RETVALUE(RFAILED);
+ return RFAILED;
}
rgCb[inst].numRguSaps = cfg->s.genCfg.numRguSaps;
(Data *)rgCb[inst].rguSap,
(sizeof(RgUpSapCb) * cfg->s.genCfg.numRguSaps));
- RETVALUE(LCM_REASON_MEM_NOAVAIL);
+ return (LCM_REASON_MEM_NOAVAIL);
}
#endif
/* Set Config done in TskInit */
rgCb[inst].rgInit.cfgDone = TRUE;
- RETVALUE(ret);
+ return (ret);
}
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 rgLMMStartTmr
+S16 rgLMMStartTmr
(
Inst inst,
S16 tmrEvnt, /* Timer Event */
PTR cb /* Entry for which Timer Expired */
)
#else
-PUBLIC S16 rgLMMStartTmr(tmrEvnt, tmrVal, cb)
+S16 rgLMMStartTmr(tmrEvnt, tmrVal, cb)
Inst inst;
S16 tmrEvnt; /* Timer Event */
U32 tmrVal; /* Wait Time */
arg.wait = tmrVal;
cmPlcCbTq(&arg);
- RETVALUE(ROK);
+ return ROK;
}
\f
* -# RFAILED
**/
#ifdef ANSI
-PUBLIC S16 rgLMMStopTmr
+S16 rgLMMStopTmr
(
Inst inst, /* Scheduler instance */
S16 tmrEvnt, /* Timer Event */
PTR cb /* Entry for which Timer Expired */
)
#else
-PUBLIC S16 rgLMMStopTmr(inst,tmrEvnt, cb)
+S16 rgLMMStopTmr(inst,tmrEvnt, cb)
Inst inst; /* Scheduler instance */
S16 tmrEvnt; /* Timer Event */
PTR cb; /* Entry for which Timer Expired */
}
- RETVALUE(ret);
+ return (ret);
}
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 rgLMMTmrExpiry
+S16 rgLMMTmrExpiry
(
PTR cb, /* Pointer to timer control block */
S16 tmrEvnt /* Timer Event */
)
#else
-PUBLIC S16 rgLMMTmrExpiry(cb,tmrEvnt)
+S16 rgLMMTmrExpiry(cb,tmrEvnt)
PTR cb; /* Pointer to timer control block */
S16 tmrEvnt; /* Timer Event */
#endif
ret = RFAILED;
break;
}
- RETVALUE(ret);
+ return (ret);
}
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 rgLMMStaInd
+S16 rgLMMStaInd
(
Inst inst,
U16 category,
RgUstaDgn *dgn
)
#else
-PUBLIC S16 rgLMMStaInd(inst,category, event, cause, dgn)
+S16 rgLMMStaInd(inst,category, event, cause, dgn)
Inst inst;
U16 category;
U16 event;
if(rgCb[inst].rgInit.usta == FALSE)
{
- RETVALUE(ROK);
+ return ROK;
}
cmMemset((U8 *)&usta, 0, sizeof(RgMngmt));
rgCb[inst].rgInit.lmPst.pool = rgCb[inst].genCfg.ustaResp.response.mem.pool;
usta.hdr.transId = rgCb[inst].genCfg.ustaResp.transId;
- RETVALUE(RgMiLrgStaInd(&rgCb[inst].rgInit.lmPst, &usta));
+ return (RgMiLrgStaInd(&rgCb[inst].rgInit.lmPst, &usta));
}
\f
* @return Void
**/
#ifdef ANSI
-PUBLIC Void rgLMMTrcInd
+Void rgLMMTrcInd
(
Inst inst,
Buffer *srcMbuf, /* Message Buffer */
U8 event /* event */
)
#else
-PUBLIC Void rgLMMTrcInd(inst,srcMbuf,event)
+Void rgLMMTrcInd(inst,srcMbuf,event)
Inst inst;
Buffer *srcMbuf; /* Message Buffer */
U8 event; /* event */
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 rgLMMBndCfm
+S16 rgLMMBndCfm
(
Pst *pst, /* Post Structure */
SuId suId, /* Service user ID */
U8 status /* Status */
)
#else
-PUBLIC S16 rgLMMBndCfm(pst,suId,status)
+S16 rgLMMBndCfm(pst,suId,status)
Pst *pst; /* Post Structure */
SuId suId; /* Service user ID */
U8 status; /* Status */
if(rgCb[inst].tfuSap.sapCfg.suId != suId)
{
RLOG0(L_ERROR, "Invalid SuId");
- RETVALUE(RFAILED);
+ return RFAILED;
}
/* check the Sap State */
break;
case LRG_BND:
/* SAP is already bound */
- RETVALUE(ROK);
+ return ROK;
default:
- RETVALUE(RFAILED);
+ return RFAILED;
}
cfmPst = rgCb[inst].rgInit.lmPst;
ret = RgMiLrgCntrlCfm(&cfmPst, &cntrlCfm);
- RETVALUE(ret);
+ return (ret);
}
\f
* -# ROK
**/
#ifdef ANSI
-PUBLIC S16 rgActvTmr
+S16 rgActvTmr
(
Ent ent,
Inst inst
)
#else
-PUBLIC S16 rgActvTmr(ent, inst)
+S16 rgActvTmr(ent, inst)
Ent ent;
Inst inst;
#endif
/* Check if any MAC timer has expired */
cmPrcTmr(&rgCb[macInst].tmrTqCp, rgCb[macInst].tmrTq, (PFV) rgLMMTmrExpiry);
- RETVALUE(ROK);
-
-} /* end of rgActvTmr */
-
-/**
- * @brief Layer Manager Configuration request handler for Scheduler
- *
- * @details
- *
- * Function : MacSchGenCfgReq
- *
- * This function receives general configurations for Scheduler
- * from DU APP and forwards to Scheduler.
- *
- * @param[in] Pst *pst, the post structure
- * @param[in] RgMngmt *cfg, the configuration parameter's structure
- * @return S16
- * -# ROK
- **/
-#ifdef ANSI
-PUBLIC int MacSchGenCfgReq
-(
-Pst *pst, /* post structure */
-RgMngmt *cfg /* config structure */
-)
-#else
-PUBLIC int MacSchGenCfgReq(pst, cfg)
-Pst *pst; /* post structure */
-RgMngmt *cfg; /* config structure */
-#endif
-{
- printf("\nReceived Scheduler gen config at MAC");
- pst->dstInst = DEFAULT_CELLS + 1;
- HandleSchGenCfgReq(pst, cfg);
-
return ROK;
-}
-
-/**
- * @brief Layer Manager Configuration response from Scheduler
- *
- * @details
- *
- * Function : SchSendCfgCfm
- *
- * This function sends general configurations response from
- * Scheduler to DU APP.
- *
- * @param[in] Pst *pst, the post structure
- * @param[in] RgMngmt *cfm, the configuration confirm structure
- * @return S16
- * -# ROK
- **/
-#ifdef ANSI
-PUBLIC S16 SchSendCfgCfm
-(
-Pst *pst, /* post structure */
-RgMngmt *cfm /* config confirm structure */
-)
-#else
-PUBLIC S16 SchSendCfgCfm(pst, cfm)
-Pst *pst; /* post structure */
-RgMngmt *cfm; /* config confirm structure */
-#endif
-{
- printf("\nSending Scheduler config confirm to DU APP");
- pst->dstEnt = ENTDUAPP;
- pst->dstInst = 0;
- pst->srcInst = 0;
- pst->selector = MAC_SCH_LC_SELECTOR;
- RgMiLrgSchCfgCfm(pst, cfm);
-
- RETVALUE(ROK);
-}
-
-\f
-/***********************************************************
- *
- * Func : macCellCfgFillCfmPst
- *
- *
- * Desc : Fills the Confirmation Post Structure cfmPst
- *
- * Ret : Void
- *
- * Notes:
- *
- * File : rg_lmm.c
- *
- **********************************************************/
-Void macCellCfgFillCfmPst
-(
-Pst *reqPst,
-Pst *cfmPst
-)
-{
- Inst inst;
- inst = reqPst->dstInst;
-
- cfmPst->srcEnt = rgCb[inst].rgInit.ent;
- cfmPst->srcInst = rgCb[inst].rgInit.inst;
- cfmPst->srcProcId = rgCb[inst].rgInit.procId;
-
- cfmPst->dstEnt = ENTDUAPP;
- cfmPst->dstInst = 0;
- cfmPst->dstProcId = cfmPst->srcProcId;
-
- cfmPst->selector = LRG_SEL_LC;
- cfmPst->prior = reqPst->prior;
- cfmPst->route = reqPst->route;
- cfmPst->region = reqPst->region;
- cfmPst->pool = reqPst->pool;
- cfmPst->event = EVENT_MAC_CELL_CONFIG_CFM;
-
- RETVOID;
-}
-
-/**
- * @brief Layer Manager Configuration request handler.
- *
- * @details
- *
- * Function : MacHdlCellCfgReq
- *
- * This function handles the gNB and cell configuration
- * request received from DU APP.
- * This API unapcks and forwards the config towards SCH
- *
- * @param[in] Pst *pst
- * @param[in] MacCellCfg *macCellCfg
- * @return S16
- * -# ROK
- **/
-int MacHdlCellCfgReq
-(
- Pst *pst,
- MacCellCfg *macCellCfg
-)
-{
- Pst cfmPst;
- uint16_t ret = ROK;
- RgCellCb *cellCb;
- MacCellCb *macCellCb;
- Inst inst = pst->dstInst;
-
- cmMemset((U8 *)&cfmPst, 0, sizeof(Pst));
- MAC_ALLOC(cellCb,sizeof(RgCellCb));
-
- if(cellCb == NULLP)
- {
- DU_LOG("\nMAC : cellCb is NULL at handling of macCellCfg\n");
- return RFAILED;
- }
-
- memcpy(&cellCb->macCellCfg,macCellCfg,sizeof(MacCellCfg));
- rgCb[inst].cell = cellCb;
-
- MAC_ALLOC(macCellCb,sizeof(MacCellCb));
- if(macCellCb == NULLP)
- {
- DU_LOG("\nMAC : macCellCb is NULL at handling of macCellCfg\n");
- return RFAILED;
- }
- macCb.macCell = macCellCb;
- macCb.macCell->cellId = macCellCfg->cellId;
- /* Send cell cfg to scheduler */
- ret = MacSchCellCfgReq(pst, macCellCfg);
- if(ret != ROK)
- {
- MacCellCfgCfm macCellCfgCfm;
- macCellCfgCfm.rsp = RSP_NOK;
- macCellCfgCfm.transId = macCellCfg->transId;
- macCellCfgFillCfmPst(pst,&cfmPst);
- ret = (*packMacCellCfmOpts[cfmPst.selector])(&cfmPst,&macCellCfgCfm);
- }
-#ifdef INTEL_WLS
- LwrMacEnqueueWlsBlock();
-#endif
- return ret;
-} /* end of MacHdlCellCfgReq */
-
-/**
- * @brief Layer Manager Configuration request handler.
- *
- * @details
- *
- * Function : MacSchCellCfgReq
- *
- * This function sends cell configuration to SCH
- *
- * @param[in] Pst *pst
- * @param[in] MacCellCfg *macCellCfg
- * @return S16
- * -# ROK
- **/
-int MacSchCellCfgReq
-(
- Pst *pst,
- MacCellCfg *macCellCfg
-)
-{
- SchCellCfg schCellCfg;
- Pst cfgPst;
- int ret;
-
- cmMemset((U8 *)&cfgPst, 0, sizeof(Pst));
- schCellCfg.cellId = macCellCfg->cellId;
- schCellCfg.phyCellId = macCellCfg->phyCellId;
- schCellCfg.bandwidth = macCellCfg->dlCarrCfg.bw;
- schCellCfg.dupMode = macCellCfg->dupType;
-
- /* fill ssb scheduler parameters */
- schCellCfg.ssbSchCfg.ssbPbchPwr = macCellCfg->ssbCfg.ssbPbchPwr;
- schCellCfg.ssbSchCfg.scsCommon = macCellCfg->ssbCfg.scsCmn;
- schCellCfg.ssbSchCfg.ssbOffsetPointA = macCellCfg->ssbCfg.ssbOffsetPointA;
- schCellCfg.ssbSchCfg.ssbPeriod = macCellCfg->ssbCfg.ssbPeriod;
- schCellCfg.ssbSchCfg.ssbSubcOffset = macCellCfg->ssbCfg.ssbScOffset;
- for(uint8_t idx=0; idx<SSB_MASK_SIZE; idx++)
- {
- schCellCfg.ssbSchCfg.nSSBMask[idx] = macCellCfg->ssbCfg.ssbMask[idx];
- }
-
- /* fill SIB1 scheduler parameters */
- schCellCfg.sib1SchCfg.sib1PduLen = macCellCfg->sib1Cfg.sib1PduLen;
- schCellCfg.sib1SchCfg.sib1NewTxPeriod = macCellCfg->sib1Cfg.sib1NewTxPeriod;
- schCellCfg.sib1SchCfg.sib1RepetitionPeriod = macCellCfg->sib1Cfg.sib1RepetitionPeriod;
- schCellCfg.sib1SchCfg.coresetZeroIndex = macCellCfg->sib1Cfg.coresetZeroIndex;
- schCellCfg.sib1SchCfg.searchSpaceZeroIndex = macCellCfg->sib1Cfg.searchSpaceZeroIndex;
- schCellCfg.sib1SchCfg.sib1Mcs = macCellCfg->sib1Cfg.sib1Mcs;
-
- /* fill RACH config params */
- schCellCfg.schRachCfg.prachCfgIdx = macCellCfg->prachCfg.prachCfgIdx;
- schCellCfg.schRachCfg.prachSubcSpacing = \
- macCellCfg->prachCfg.prachSubcSpacing;
- schCellCfg.schRachCfg.msg1FreqStart = macCellCfg->prachCfg.msg1FreqStart;
- schCellCfg.schRachCfg.msg1Fdm = macCellCfg->prachCfg.msg1Fdm;
- schCellCfg.schRachCfg.rootSeqLen = macCellCfg->prachCfg.rootSeqLen;
- 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.ssbPerRach = macCellCfg->prachCfg.ssbPerRach;
- schCellCfg.schRachCfg.prachMultCarrBand = \
- macCellCfg->prachCfg.prachMultCarrBand;
- schCellCfg.schRachCfg.raContResTmr = macCellCfg->prachCfg.raContResTmr;
- schCellCfg.schRachCfg.rsrpThreshSsb = macCellCfg->prachCfg.rsrpThreshSsb;
- schCellCfg.schRachCfg.raRspWindow = macCellCfg->prachCfg.raRspWindow;
-
- /* fill initial DL BWP */
- schCellCfg.schInitialDlBwp.bwp.freqAlloc.startPrb = macCellCfg->initialDlBwp.bwp.firstPrb;
- schCellCfg.schInitialDlBwp.bwp.freqAlloc.numPrb = macCellCfg->initialDlBwp.bwp.numPrb;
- schCellCfg.schInitialDlBwp.bwp.scs = macCellCfg->initialDlBwp.bwp.scs;
- schCellCfg.schInitialDlBwp.bwp.cyclicPrefix = macCellCfg->initialDlBwp.bwp.cyclicPrefix;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.searchSpaceId =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.searchSpaceId;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.coresetId =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.coresetId;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.monitoringSlot =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.monitoringSlot;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.duration =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.duration;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.monitoringSymbol =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.monitoringSymbol;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel1 =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel1;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel2 =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel2;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel4 =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel4;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel8 =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel8;
- schCellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel16 =
- macCellCfg->initialDlBwp.pdcchCommon.commonSearchSpace.candidate.aggLevel16;
- schCellCfg.schInitialDlBwp.pdschCommon.k0 = macCellCfg->initialDlBwp.pdschCommon.k0;
- schCellCfg.schInitialDlBwp.pdschCommon.mappingType =
- macCellCfg->initialDlBwp.pdschCommon.mappingType;
- schCellCfg.schInitialDlBwp.pdschCommon.startSymbol =
- macCellCfg->initialDlBwp.pdschCommon.startSymbol;
- schCellCfg.schInitialDlBwp.pdschCommon.lengthSymbol =
- macCellCfg->initialDlBwp.pdschCommon.lengthSymbol;
-
- /* fill initial UL BWP */
- schCellCfg.schInitialUlBwp.bwp.freqAlloc.startPrb = macCellCfg->initialUlBwp.bwp.firstPrb;
- schCellCfg.schInitialUlBwp.bwp.freqAlloc.numPrb = macCellCfg->initialUlBwp.bwp.numPrb;
- schCellCfg.schInitialUlBwp.bwp.scs = macCellCfg->initialUlBwp.bwp.scs;
- schCellCfg.schInitialUlBwp.bwp.cyclicPrefix = macCellCfg->initialUlBwp.bwp.cyclicPrefix;
- schCellCfg.schInitialUlBwp.puschCommon.k2 = macCellCfg->initialUlBwp.puschCommon.k2;
- schCellCfg.schInitialUlBwp.puschCommon.mappingType =
- macCellCfg->initialUlBwp.puschCommon.mappingType;
- schCellCfg.schInitialUlBwp.puschCommon.startSymbol =
- macCellCfg->initialUlBwp.puschCommon.startSymbol;
- schCellCfg.schInitialUlBwp.puschCommon.lengthSymbol =
- macCellCfg->initialUlBwp.puschCommon.lengthSymbol;
-
-
- cfgPst.srcProcId = pst->dstProcId;
- cfgPst.dstProcId = pst->srcProcId;
- cfgPst.srcEnt = ENTRG;
- cfgPst.srcInst = 0;
- cfgPst.dstEnt = ENTRG;
- cfgPst.dstInst = 1;
- cfgPst.selector = MAC_SCH_TC_SELECTOR;
- cfgPst.event = EVENT_SCH_CELL_CFG;
-
- ret = (*SchCellCfgOpts[cfgPst.selector])(&cfgPst, &schCellCfg);
- return ret;
-} /* end of MacSchCellCfgReq */
-
-
-/*******************************************************************
- *
- * @brief Sends Cell config confirm to DU APP
- *
- * @details
- *
- * Function : MacSendCellCfgCfm
- *
- * Functionality:
- * Sends Cell config confirm to DU APP
- *
- * @params[in] Response status
- * @return void
- *
- * ****************************************************************/
-void MacSendCellCfgCfm(uint8_t response)
-{
- Pst pst;
- RgCellCb *cellCb;
- MacCellCfgCfm macCellCfgCfm;
-
- cmMemset((U8 *)&pst, 0, sizeof(Pst));
- cellCb = rgCb[macCb.macInst].cell;
- macCellCfgCfm.transId = cellCb->macCellCfg.transId;
- macCellCfgCfm.rsp = response;
-
- memcpy((void *)&pst, (void *)&rgCb[macCb.macInst].rgInit.lmPst, sizeof(Pst));
- pst.event = EVENT_MAC_CELL_CONFIG_CFM;
- (*packMacCellCfmOpts[pst.selector])(&pst,&macCellCfgCfm);
-}
-
-
-/**
- * @brief Layer Manager Configuration response handler.
- *
- * @details
- *
- * Function : MacProcSchCellCfgCfm
- *
- * This function processes cell configuration to SCH
- *
- * @param[in] Pst *pst
- * @param[in] SchCellCfgCfm *schCellCfgCfm
- * @return int
- * -# ROK
- **/
-int MacProcSchCellCfgCfm
-(
- Pst *pst,
- SchCellCfgCfm *schCellCfgCfm
-)
-{
- if(schCellCfgCfm->rsp == RSP_OK)
- {
- sendToLowerMac(CONFIG_REQUEST, 0, (void *)NULL);
- }
- else
- {
- MacSendCellCfgCfm(RSP_NOK);
- }
- return ROK;
-}
+} /* end of rgActvTmr */
/**********************************************************************