X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lmm.c;h=51742fbe216aa27c9285742fa3e6befb2ccdf576;hb=de6a435729e3cad9d4a66329080b8206a64f452c;hp=db579fcf475e0a2105714d952228d9ed2c0a0a1d;hpb=e8126b742c458158da117396d52ace22d59e9d47;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lmm.c b/src/5gnrmac/rg_lmm.c index db579fcf4..51742fbe2 100755 --- a/src/5gnrmac/rg_lmm.c +++ b/src/5gnrmac/rg_lmm.c @@ -33,9 +33,6 @@ The functions for the configuration, control, status and statistics request primitives are defined here. */ -static const char* RLOG_MODULE_NAME="MAC"; -static int RLOG_FILE_ID=220; -static int RLOG_MODULE_ID=4096; /* header include files (.h) */ #include "common_def.h" @@ -48,6 +45,7 @@ static int RLOG_MODULE_ID=4096; #include "rgr.h" /* LRG Interface defines */ #include "rg.h" /* MAC defines */ #include "rg_err.h" /* MAC error defines */ +#include "mac_utils.h" /* header/extern include files (.x) */ #include "crg.x" /* CRG Interface includes */ @@ -64,12 +62,11 @@ static int RLOG_MODULE_ID=4096; #endif #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" +#include "lwr_mac_phy.h" #ifdef __cplusplus extern "C" { @@ -80,7 +77,6 @@ Void rgGetSId ARGS((SystemId *s)); #endif /* __cplusplus */ /* Public variable declaration */ -LwrMacCb lwrMacCb; MacCb macCb; /* forward references */ @@ -189,19 +185,11 @@ Reason reason /* reason */ SAttachSRngBuf(SS_RNG_BUF_ULMAC_TO_ULRLC, SS_RBUF_ENT_ULRLC,SS_RNG_RX); #endif - /* Initializing CL control block */ - 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(ENTMAC, (DEFAULT_CELLS + SCH_INST_START), DFLT_REGION, PWR_UP); + schActvInit(ENTMAC, SCH_INST_START, DFLT_REGION, PWR_UP); /* Initialize lower mac */ - lwrMacLayerInit(); + lwrMacLayerInit(region, 0); return ROK; @@ -239,8 +227,7 @@ RgMngmt *cfg /* config structure */ - RG_DIAG_LVL0(inst,0x0a0b0001, RG_DIAG_NA, SS_DIAG_INV_ARG,\ - "Received CfgReq for MAC layer, Entity = %d, Instance = %d\n", pst->srcEnt, pst->srcInst,0,0); + DU_LOG("\nINFO --> MAC : Received CfgReq for MAC layer, Entity = %d, Instance = %d", pst->srcEnt, pst->srcInst); RG_IS_INST_VALID(pst->dstInst); inst = pst->dstInst - RG_INST_START; @@ -262,8 +249,6 @@ RgMngmt *cfg /* config structure */ #ifdef INTEL_WLS_MEM /* Start WLS message receiver thread */ LwrMacStartWlsRcvr(); - /* Allocate memory for UL transmissions */ - LwrMacEnqueueWlsBlock(); #endif reason = rgLMMGenCfg(inst,&cfg->t.cfg); break; @@ -275,7 +260,7 @@ RgMngmt *cfg /* config structure */ default: ret = LCM_PRIM_NOK; reason = LCM_REASON_INVALID_ELMNT; - RLOG1(L_ERROR, "Invalid Elmnt=%d", + DU_LOG("\nERROR --> MAC : Invalid Elmnt=%d", cfg->hdr.elmId.elmnt); break; } @@ -345,7 +330,7 @@ RgMngmt *sts /* statistics structure */ cfm.cfm.status = LCM_PRIM_NOK; cfm.cfm.reason = LCM_REASON_GENCFG_NOT_DONE; RgMiLrgStsCfm(&cfmPst,&cfm); - RLOG0(L_ERROR, "Gen Cfg not done"); + DU_LOG("\nERROR --> MAC : Gen Cfg not done"); return ROK; } @@ -453,7 +438,7 @@ RgMngmt *sts /* statistics structure */ default: cfm.cfm.status = LCM_PRIM_NOK; cfm.cfm.reason = LCM_REASON_INVALID_ELMNT; - RLOG1(L_ERROR, "Invalid Elmnt = %d",sts->hdr.elmId.elmnt); + DU_LOG("\nERROR --> MAC : Invalid Elmnt = %d",sts->hdr.elmId.elmnt); break; } RgMiLrgStsCfm(&cfmPst,&cfm); @@ -499,7 +484,7 @@ RgMngmt *sta /* status structure */ if (sta->t.ssta.s.sysId.ptNmb != NULLP) { - SPutSBuf(pst->region, pst->pool, (Data *)sta->t.ssta.s.sysId.ptNmb, LRG_MAX_PT_NUM_SIZE); + MAC_FREE(sta->t.ssta.s.sysId.ptNmb, LRG_MAX_PT_NUM_SIZE); } memset(&cfm, 0, sizeof(RgMngmt)); @@ -512,11 +497,10 @@ RgMngmt *sta /* status structure */ if(rgCb[inst].rgInit.cfgDone != TRUE) { SGetDateTime(&cfm.t.ssta.dt); - if (SGetSBuf(cfmPst.region, cfmPst.pool, - (Data **)&(cfm.t.ssta.s.sysId.ptNmb), LRG_MAX_PT_NUM_SIZE) - != ROK) + MAC_ALLOC(cfm.t.ssta.s.sysId.ptNmb, LRG_MAX_PT_NUM_SIZE); + if(cfm.t.ssta.s.sysId.ptNmb == NULLP) { - RLOG0(L_ERROR, "Memory Unavailable for Confirmation"); + DU_LOG("\nERROR --> MAC : Memory Unavailable for Confirmation"); return ROK; } memset((cfm.t.ssta.s.sysId.ptNmb), 0, LRG_MAX_PT_NUM_SIZE); @@ -525,7 +509,7 @@ RgMngmt *sta /* status structure */ cfm.cfm.reason = LCM_REASON_GENCFG_NOT_DONE; cfm.hdr.elmId.elmnt = sta->hdr.elmId.elmnt; RgMiLrgStaCfm(&cfmPst, &cfm); - RLOG0(L_ERROR, "Gen Cfg not done"); + DU_LOG("\nERROR --> MAC : Gen Cfg not done"); return ROK; } @@ -533,11 +517,10 @@ RgMngmt *sta /* status structure */ { case STGEN: SGetDateTime(&cfm.t.ssta.dt); - if (SGetSBuf(cfmPst.region, cfmPst.pool, - (Data **)&(cfm.t.ssta.s.sysId.ptNmb), LRG_MAX_PT_NUM_SIZE) - != ROK) + MAC_ALLOC(cfm.t.ssta.s.sysId.ptNmb, LRG_MAX_PT_NUM_SIZE); + if(cfm.t.ssta.s.sysId.ptNmb == NULLP) { - RLOG0(L_ERROR, "Memory Unavailable for Confirmation"); + DU_LOG("\nERROR --> MAC : Memory Unavailable for Confirmation"); return ROK; } memset((cfm.t.ssta.s.sysId.ptNmb), 0, LRG_MAX_PT_NUM_SIZE); @@ -575,7 +558,7 @@ RgMngmt *sta /* status structure */ cfm.cfm.status = LCM_PRIM_NOK; cfm.cfm.reason = LCM_REASON_INVALID_ELMNT; RgMiLrgStaCfm(&cfmPst, &cfm); - RLOG1(L_ERROR, "Invalid elmnt=%d",sta->hdr.elmId.elmnt); + DU_LOG("\nERROR --> MAC : Invalid elmnt=%d",sta->hdr.elmId.elmnt); break; } return ROK; @@ -634,7 +617,7 @@ RgMngmt *cntrl /* control structure */ cfm.cfm.reason = LCM_REASON_GENCFG_NOT_DONE; cfm.hdr.elmId.elmnt = cntrl->hdr.elmId.elmnt; RgMiLrgCntrlCfm(&cfmPst, &cfm); - RLOG0(L_ERROR, "Gen Cfg not done"); + DU_LOG("\nERROR --> MAC : Gen Cfg not done"); return ROK; } @@ -653,7 +636,7 @@ RgMngmt *cntrl /* control structure */ cfm.cfm.status = LCM_PRIM_NOK; cfm.cfm.reason = LCM_REASON_INVALID_PAR_VAL; RgMiLrgCntrlCfm(&cfmPst, &cfm); - RLOG1(L_ERROR, "invalid elmnt=%d",cntrl->hdr.elmId.elmnt); + DU_LOG("\nERROR --> MAC : invalid elmnt=%d",cntrl->hdr.elmId.elmnt); break; } return (ret); @@ -704,7 +687,7 @@ Elmnt sapType /* Sap Type */ (cfg->s.rguSap.selector != ODU_SELECTOR_LC)) { ret = LCM_REASON_INVALID_PAR_VAL; - RLOG0(L_ERROR, "unsupported Selector value for RGU"); + DU_LOG("\nERROR --> MAC : unsupported Selector value for RGU"); break; } upSapCb = &(rgCb[inst].rguSap[cfg->s.rguSap.spId]); @@ -735,7 +718,7 @@ Elmnt sapType /* Sap Type */ (cfg->s.crgSap.selector != ODU_SELECTOR_LC)) { ret = LCM_REASON_INVALID_PAR_VAL; - RLOG0(L_ERROR, "unsupported Selector value for CRG"); + DU_LOG("\nERROR --> MAC : unsupported Selector value for CRG"); break; } if(rgCb[inst].crgSap.sapSta.sapState == LRG_NOT_CFG) @@ -765,7 +748,7 @@ Elmnt sapType /* Sap Type */ (cfg->s.tfuSap.selector != ODU_SELECTOR_LC)) { ret = LCM_REASON_INVALID_PAR_VAL; - RLOG0(L_ERROR, "unsupported Selector value for TFU"); + DU_LOG("\nERROR --> MAC : unsupported Selector value for TFU"); break; } #endif @@ -836,7 +819,7 @@ RgCfg *cfg /* Configuaration information */ 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"); + DU_LOG("\nERROR --> MAC : unsupported Selector value for RGU"); return (LCM_REASON_INVALID_PAR_VAL); } /* Update the Pst structure for LM interface */ @@ -852,6 +835,7 @@ RgCfg *cfg /* Configuaration information */ rgCb[inst].rgInit.pool = cfg->s.genCfg.mem.pool; rgCb[inst].genCfg.tmrRes = cfg->s.genCfg.tmrRes; + macCb.tmrRes = cfg->s.genCfg.tmrRes; macCb.macInst = rgCb[inst].rgInit.inst; macCb.procId = rgCb[inst].rgInit.procId; @@ -860,17 +844,15 @@ RgCfg *cfg /* Configuaration information */ if(cfg->s.genCfg.numRguSaps == 0) { - RGDBGERRNEW(inst,(rgPBuf(inst), "\nrgGenCfg(): Invalid numRguSap.\n")); + DU_LOG("\nERROR --> MAC : rgGenCfg(): Invalid numRguSap.\n"); return RFAILED; } /* allocate RGR saps */ - if (SGetSBuf(rgCb[inst].rgInit.region, - rgCb[inst].rgInit.pool, - (Data **)&rgCb[inst].rguSap, - (sizeof(RgUpSapCb) * cfg->s.genCfg.numRguSaps)) != ROK) + MAC_ALLOC(rgCb[inst].rguSap, sizeof(RgUpSapCb) * cfg->s.genCfg.numRguSaps); + if(rgCb[inst].rguSap == NULLP) { - RGDBGERRNEW(inst,(rgPBuf(inst), "\nrgGenCfg(): Failed to allocate mem for RGU SAP's.\n")); + DU_LOG("\nERROR --> MAC : rgGenCfg(): Failed to allocate mem for RGU SAP's.\n"); return RFAILED; } rgCb[inst].numRguSaps = cfg->s.genCfg.numRguSaps; @@ -882,28 +864,25 @@ RgCfg *cfg /* Configuaration information */ } rgCb[inst].tfuSap.sapSta.sapState = LRG_NOT_CFG; /* Initialize the timer blocks */ - cmInitTimers(rgCb[inst].tmrBlk, RG_MAX_TIMER); + cmInitTimers(macCb.tmrBlk, MAX_NUM_TIMER); /* Initialzie the timer queue */ - memset(&rgCb[inst].tmrTq, 0, sizeof(CmTqType)*RG_TQ_SIZE); + memset(&macCb.tmrTq, 0, sizeof(CmTqType) * MAC_TQ_SIZE); /* Initialize the timer control point */ - memset(&rgCb[inst].tmrTqCp, 0, sizeof(CmTqCp)); - rgCb[inst].tmrTqCp.tmrLen = RG_TQ_SIZE; -#if 0 + memset(&macCb.tmrTqCp, 0, sizeof(CmTqCp)); + macCb.tmrTqCp.tmrLen = MAC_TQ_SIZE; + /* Timer Registration request to SSI */ - if (SRegTmrMt(rgCb[inst].rgInit.ent, rgCb[inst].rgInit.inst, - (S16)rgCb[inst].genCfg.tmrRes, rgActvTmr) != ROK) + if(ODU_REG_TMR_MT(ENTMAC, macCb.macInst, macCb.tmrRes, macActvTmr) != ROK) { - RLOG0(L_ERROR, "Failed to register timer"); + DU_LOG("\nERROR --> MAC : Failed to register timer"); - SPutSBuf(rgCb[inst].rgInit.region, - rgCb[inst].rgInit.pool, - (Data *)rgCb[inst].rguSap, + MAC_FREE(rgCb[inst].rguSap, (sizeof(RgUpSapCb) * cfg->s.genCfg.numRguSaps)); return (LCM_REASON_MEM_NOAVAIL); } -#endif + /* Set Config done in TskInit */ rgCb[inst].rgInit.cfgDone = TRUE; @@ -961,18 +940,15 @@ static Void rgLMMShutdown(Inst inst) } /* Deleting the RGU SAPs */ - SPutSBuf(rgCb[inst].rgInit.region, - rgCb[inst].rgInit.pool, - (Data *)rgCb[inst].rguSap, + MAC_FREE(rgCb[inst].rguSap, (sizeof(RgUpSapCb) * rgCb[inst].numRguSaps)); - rgCb[inst].rguSap = NULLP; rgCb[inst].inactiveCell = NULLP; rgCb[inst].cell = NULLP; /* De-register the Timer Service */ (Void) SDeregTmrMt(rgCb[inst].rgInit.ent, rgCb[inst].rgInit.inst, - (S16)rgCb[inst].genCfg.tmrRes, rgActvTmr); + (S16)rgCb[inst].genCfg.tmrRes, macActvTmr); /* call back the task initialization function to intialize * the global RgCb Struct */ @@ -1050,7 +1026,7 @@ Pst *cfmPst default: cfm->cfm.status = LCM_PRIM_NOK; cfm->cfm.reason = LCM_REASON_INVALID_PAR_VAL; - RLOG1(L_ERROR, "invalid subaction=%d",cntrl->t.cntrl.subAction); + DU_LOG("\nERROR --> MAC : invalid subaction=%d",cntrl->t.cntrl.subAction); break; } break; @@ -1081,7 +1057,7 @@ Pst *cfmPst default: cfm->cfm.status = LCM_PRIM_NOK; cfm->cfm.reason = LCM_REASON_INVALID_PAR_VAL; - RLOG1(L_ERROR, "invalid subaction=%d",cntrl->t.cntrl.subAction); + DU_LOG("\nERROR --> MAC : invalid subaction=%d",cntrl->t.cntrl.subAction); break; } break; @@ -1092,7 +1068,7 @@ Pst *cfmPst default: cfm->cfm.status = LCM_PRIM_NOK; cfm->cfm.reason = LCM_REASON_INVALID_PAR_VAL; - RLOG1(L_ERROR, "invalid action=%d",cntrl->t.cntrl.action); + DU_LOG("\nERROR --> MAC : invalid action=%d",cntrl->t.cntrl.action); break; } RgMiLrgCntrlCfm(cfmPst, cfm); @@ -1206,8 +1182,8 @@ Pst *cfmPst default: cfm->cfm.status = LCM_PRIM_NOK; cfm->cfm.reason = LCM_REASON_INVALID_PAR_VAL; - RGDBGERRNEW(inst,(rgPBuf(inst), "\nrgLMMSapCntrl(): invalid action=%d", - cntrl->t.cntrl.action)); + DU_LOG("\nERROR --> MAC : rgLMMSapCntrl(): invalid action=%d", + cntrl->t.cntrl.action); break; } break; @@ -1223,8 +1199,8 @@ Pst *cfmPst default: cfm->cfm.status = LCM_PRIM_NOK; cfm->cfm.reason = LCM_REASON_INVALID_PAR_VAL; - RGDBGERRNEW(inst,(rgPBuf(inst), "\nrgLMMSapCntrl(): invalid action=%d", - cntrl->t.cntrl.action)); + DU_LOG("\nERROR --> MAC : rgLMMSapCntrl(): invalid action=%d", + cntrl->t.cntrl.action); break; } break; @@ -1240,7 +1216,7 @@ Pst *cfmPst default: cfm->cfm.status = LCM_PRIM_NOK; cfm->cfm.reason = LCM_REASON_INVALID_PAR_VAL; - RLOG1(L_ERROR, "invalid action=%d",cntrl->t.cntrl.action); + DU_LOG("\nERROR --> MAC : invalid action=%d",cntrl->t.cntrl.action); break; } @@ -1458,7 +1434,7 @@ S16 tmrEvnt /* Timer Event */ } break; default: - RLOG1(L_ERROR, "Invalid tmrEvnt=%d",tmrEvnt); + DU_LOG("\nERROR --> MAC : Invalid tmrEvnt=%d",tmrEvnt); ret = RFAILED; break; } @@ -1555,7 +1531,7 @@ uint8_t event /* event */ if ((rgCb[inst].trcLen == LRG_NO_TRACE) || (srcMbuf == NULLP)) { - RLOG0(L_ERROR, "Trace Disabled."); + DU_LOG("\nERROR --> MAC : Trace Disabled."); return; } @@ -1578,7 +1554,7 @@ uint8_t event /* event */ if (SCpyMsgMsg(srcMbuf, pst.region, pst.pool, &dstMbuf) != ROK) { - RLOG0(L_ERROR, "SCpyMsgMsg Failed."); + DU_LOG("\nERROR --> MAC : SCpyMsgMsg Failed."); return; } trc.cfm.status = LCM_PRIM_OK; @@ -1594,7 +1570,7 @@ uint8_t event /* event */ /* Get the length of the recvd message buffer */ if (SFndLenMsg(srcMbuf, &bufLen) != ROK) { - RLOG0(L_ERROR, "SFndLenMsg Failed."); + DU_LOG("\nERROR --> MAC : SFndLenMsg Failed."); return; } /* Check if the recvd buffer size is less than request trace len */ @@ -1605,7 +1581,7 @@ uint8_t event /* event */ if (SCpyMsgMsg(srcMbuf, pst.region, pst.pool, &dstMbuf) != ROK) { - RLOG0(L_ERROR, "SCpyMsgMsg Failed."); + DU_LOG("\nERROR --> MAC : SCpyMsgMsg Failed."); return; } @@ -1622,26 +1598,26 @@ uint8_t event /* event */ /* Get a temporary buffer to store the msg */ if (rgAllocSBuf(inst,&tempBuf, rgCb[inst].trcLen) != ROK) { - RLOG0(L_ERROR, "rgAllocSBuf Failed."); + DU_LOG("\nERROR --> MAC : rgAllocSBuf Failed."); return; } /* Copy trcLen nos of bytes from the recvd message */ if (SCpyMsgFix(srcMbuf,0,rgCb[inst].trcLen,tempBuf,&tempCnt) != ROK) { - RLOG0(L_ERROR, "SCpyMsgFix Failed."); + DU_LOG("\nERROR --> MAC : SCpyMsgFix Failed."); return; } - if (SGetMsg(pst.region, pst.pool, &dstMbuf) != ROK) + if (ODU_GET_MSG_BUF(pst.region, pst.pool, &dstMbuf) != ROK) { - RLOG0(L_ERROR, "dstMbuf Allocation Failed"); + DU_LOG("\nERROR --> MAC : dstMbuf Allocation Failed"); return; } /* Copy the tempBuf data to dst mBuf */ if (SCpyFixMsg(tempBuf,dstMbuf,0,rgCb[inst].trcLen,&tempCnt) != ROK) { - RLOG0(L_ERROR, "SCpyFixMsg Failed."); + DU_LOG("\nERROR --> MAC : SCpyFixMsg Failed."); return; } @@ -1700,7 +1676,7 @@ uint8_t status /* Status */ /* Check if the suId is valid */ if(rgCb[inst].tfuSap.sapCfg.suId != suId) { - RLOG0(L_ERROR, "Invalid SuId"); + DU_LOG("\nERROR --> MAC : Invalid SuId"); return RFAILED; } @@ -1760,31 +1736,6 @@ uint8_t status /* Status */ return (ret); } - -/** - * @brief LTE MAC timer call back function registered with SSI. - * - * @details - * - * Function : rgActvTmr - * - * This function is invoked by SSI for every timer activation - * period expiry. - * - * @return S16 - * -# ROK - **/ -S16 rgActvTmr(Ent ent,Inst inst) -{ - Inst macInst = (inst - RG_INST_START); - - /* Check if any MAC timer has expired */ - cmPrcTmr(&rgCb[macInst].tmrTqCp, rgCb[macInst].tmrTq, (PFV) rgLMMTmrExpiry); - - return ROK; - -} /* end of rgActvTmr */ - /********************************************************************** End of file