X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lmm.c;h=0b230e7aa87ce745efb059fc3e83d7728c3bd225;hb=a5530e70a9d414952dadd1688aa9b4280c0dbb5a;hp=4352ce38fca5c45f6568e5270bd7761aa4af2912;hpb=d1ead035ab3b543810f1838b2519904bf84477ec;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lmm.c b/src/5gnrmac/rg_lmm.c index 4352ce38f..0b230e7aa 100755 --- a/src/5gnrmac/rg_lmm.c +++ b/src/5gnrmac/rg_lmm.c @@ -38,16 +38,7 @@ static int RLOG_FILE_ID=220; 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 */ @@ -59,15 +50,6 @@ static int RLOG_MODULE_ID=4096; #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 */ @@ -75,15 +57,19 @@ static int RLOG_MODULE_ID=4096; #include "rg_prg.x" /* PRG Interface includes */ #include "lrg.x" /* LRG Interface includes */ #include "rgr.x" /* LRG Interface includes */ -#include "mac_interface.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" { @@ -94,7 +80,8 @@ EXTERN Void rgGetSId ARGS((SystemId *s)); #endif /* __cplusplus */ /* Public variable declaration */ -ClCb clGlobalCp; +LwrMacCb lwrMacCb; +extern MacCb macCb; /* forward references */ PRIVATE U16 rgLMMGenCfg ARGS(( @@ -130,16 +117,6 @@ RgMngmt *cfm, Pst *cfmPst )); -extern U16 cmPackLcMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); -extern U16 cmPackTcMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); -extern U16 cmPackLwlcMacCellCfgCfm(Pst *pst, MacCellCfgCfm *macCellCfgCfm); - -packMacCellCfgCfm packMacCellCfmMt[] = -{ - cmPackLcMacCellCfgCfm, /* packing for loosely coupled */ - cmPackTcMacCellCfgCfm, /* packing for tightly coupled */ - cmPackLwlcMacCellCfgCfm, /* packing for light weight loosly coupled */ -}; /** * @brief Task Initiation callback function. @@ -222,22 +199,19 @@ Reason reason; /* reason */ #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 */ @@ -771,8 +745,8 @@ Elmnt sapType; /* Sap Type */ { 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"); @@ -802,8 +776,8 @@ Elmnt sapType; /* Sap Type */ * 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"); @@ -832,8 +806,8 @@ Elmnt sapType; /* Sap Type */ 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"); @@ -911,8 +885,8 @@ RgCfg *cfg; /* Configuaration information */ { 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); @@ -929,6 +903,10 @@ RgCfg *cfg; /* Configuaration information */ 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; @@ -962,6 +940,7 @@ RgCfg *cfg; /* Configuaration information */ /* 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) @@ -976,6 +955,7 @@ RgCfg *cfg; /* Configuaration information */ RETVALUE(LCM_REASON_MEM_NOAVAIL); } +#endif /* Set Config done in TskInit */ rgCb[inst].rgInit.cfgDone = TRUE; @@ -1955,195 +1935,6 @@ Inst inst; } /* 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*/ - - -/*********************************************************** - * - * 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 : unpackMacCellCfgReq - * - * 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 unpackMacCellCfgReq -( - Pst *pst, - MacCellCfg *macCellCfg -) -{ - U16 ret = ROK; - MacCellCfgCfm macCellCfgCfm; - Pst cnfPst; - Inst inst = pst->dstInst; - - memcpy(&rgCb[inst].macCellCfg,macCellCfg,sizeof(MacCellCfg)); - - macCellCfgFillCfmPst(pst,&cnfPst); - - macCellCfgCfm.transId = macCellCfg->transId; - //ret = cmPackLcMacCellCfgCfm(&cnfPst,&macCellCfgCfm); - ret = (*packMacCellCfmMt[cnfPst.selector])(&cnfPst,&macCellCfgCfm); - return ret; -} /* end of unpackMacCellCfgReq */ - - /********************************************************************** End of file