static int RLOG_MODULE_ID=4096;
/* header include files (.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 "rg_err.h" /* MAC error defines */
/* 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 "rg_prg.x" /* PRG Interface includes */
#include "lrg.x" /* LRG Interface includes */
#include "rgr.x" /* LRG Interface includes */
-#include "du_mgr_mac_inf.h"
+#include "du_app_mac_inf.h"
#include "rg.x" /* MAC includes */
#ifdef SS_DIAG
#include "ss_diag.h" /* Common log file */
#endif
#include "ss_rbuf.h"
#include "ss_rbuf.x"
-
-#include "rg_cl.h" /* MAC CL defines */
+#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"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Public variable declaration */
-ClCb clGlobalCp;
+LwrMacCb lwrMacCb;
+extern MacCb macCb;
/* forward references */
PRIVATE U16 rgLMMGenCfg ARGS((
Pst *cfmPst
));
-extern U16 cmPackLcMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm);
-extern U16 cmPackLwlcMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm);
-
-packMacCellCfgCfm packMacCellCfmOpts[] =
-{
- cmPackLcMacCellCfgCfm, /* packing for loosely coupled */
- duHandleMacCellCfgCfm, /* packing for tightly coupled */
- cmPackLwlcMacCellCfgCfm, /* packing for light weight loosly coupled */
-};
\f
/**
* @brief Task Initiation callback function.
#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);
+ /* Initialize lower mac */
+ lwrMacInit();
+
RETVALUE(ROK);
} /* rgActvInit */
{
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");
{
RETVALUE(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);
rgCb[inst].rgInit.region = cfg->s.genCfg.mem.region;
rgCb[inst].rgInit.pool = cfg->s.genCfg.mem.pool;
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;
/* Initialize the timer control point */
cmMemset((U8 *)&rgCb[inst].tmrTqCp, 0, sizeof(CmTqCp));
rgCb[inst].tmrTqCp.tmrLen = RG_TQ_SIZE;
+#if 0
/* Timer Registration request to SSI */
if (SRegTmrMt(rgCb[inst].rgInit.ent, rgCb[inst].rgInit.inst,
(S16)rgCb[inst].genCfg.tmrRes, rgActvTmr) != ROK)
RETVALUE(LCM_REASON_MEM_NOAVAIL);
}
+#endif
/* Set Config done in TskInit */
rgCb[inst].rgInit.cfgDone = TRUE;
} /* 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 S16 MacSchGenCfgReq
-(
-Pst *pst, /* post structure */
-RgMngmt *cfg /* config structure */
-)
-#else
-PUBLIC S16 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");
- RgMiLrgSchCfgCfm(pst, cfm);
-
- RETVALUE(ROK);
-}
-
-/**
- * @brief Layer Manager Configuration request handler.
- *
- * @details
- *
- * Function : MacSchCfgReq
- *
- * 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] RgrCfgTransId transId
- * @param[in] RgrCfgReqInfo *cfgReqInfo
- * @return S16
- * -# ROK
- **/
-#ifdef ANSI
-PUBLIC S16 MacSchCfgReq
-(
- Pst *pst,
- RgrCfgTransId transId,
- RgrCfgReqInfo *cfgReqInfo
-)
-#else
-PUBLIC S16 MacSchCfgReq(pst, transId, cfgReqInfo)
- Pst *pst;
- RgrCfgTransId transId;
- RgrCfgReqInfo *cfgReqInfo;
-#endif
-{
- printf("\nReceived Scheduler config at MAC");
- pst->dstInst = DEFAULT_CELLS + 1;
- HandleSchCfgReq(pst, transId, cfgReqInfo);
-
- RETVALUE(ROK);
-
-} /* end of MacSchCfgReq*/
-
-\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->srcEnt = reqPst->dstEnt;
- cfmPst->dstEnt = reqPst->srcEnt;
- cfmPst->srcInst = reqPst->dstInst;
- cfmPst->dstInst = reqPst->srcInst;
- cfmPst->srcProcId = reqPst->dstProcId;
- cfmPst->dstProcId = reqPst->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
- **/
-S16 MacHdlCellCfgReq
-(
- Pst *pst,
- MacCellCfg *macCellCfg
-)
-{
- U16 ret = ROK;
- MacCellCfgCfm macCellCfgCfm;
- RgCellCb *cellCb;
- Pst cnfPst;
- Inst inst = pst->dstInst;
-
- cellCb = rgCb[inst].cell;
- memcpy(&cellCb->macCellCfg,macCellCfg,sizeof(MacCellCfg));
-
- macCellCfgFillCfmPst(pst,&cnfPst);
-
- macCellCfgCfm.transId = macCellCfg->transId;
- //ret = cmPackLcMacCellCfgCfm(&cnfPst,&macCellCfgCfm);
- ret = (*packMacCellCfmOpts[cnfPst.selector])(&cnfPst,&macCellCfgCfm);
- return ret;
-} /* end of MacHdlCellCfgReq */
-
-\f
/**********************************************************************
End of file