X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lim.c;h=b00335239b54ac104c96f7674a4e1b42bd493623;hb=refs%2Fchanges%2F77%2F4377%2F11;hp=ccead37e86f1a3caeea3175990463f20c87db6a4;hpb=18fbca81feebe0cf45f205c1c580c574741292b0;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lim.c b/src/5gnrmac/rg_lim.c index ccead37e8..b00335239 100755 --- a/src/5gnrmac/rg_lim.c +++ b/src/5gnrmac/rg_lim.c @@ -36,17 +36,7 @@ static const char* RLOG_MODULE_NAME="MAC"; static int RLOG_FILE_ID=182; static int RLOG_MODULE_ID=4096; /* header include files -- defines (.h) */ -#include "envopt.h" /* environment options */ -#include "envdep.h" /* environment dependent */ -#include "envind.h" /* environment independent */ -#include "gen.h" /* general layer */ -#include "ssi.h" /* system services */ -#include "cm5.h" /* common timers defines */ -#include "cm_hash.h" /* common hash list defines */ -#include "cm_llist.h" /* common linked list defines */ -#include "cm_mblk.h" /* memory management */ -#include "cm_tkns.h" /* common tokens */ -#include "cm_lte.h" /* common tokens */ +#include "common_def.h" #include "rgu.h" /* RGU defines */ #include "tfu.h" /* RGU defines */ #include "lrg.h" /* layer management defines for LTE-MAC */ @@ -54,33 +44,25 @@ static int RLOG_MODULE_ID=4096; #include "rg_sch_inf.h" /* layer management defines for LTE-MAC */ #include "rg_env.h" /* customisable defines and macros for MAC */ #include "rg.h" /* defines and macros for MAC */ - +#include "du_log.h" /* header/extern include files (.x) */ -#include "gen.x" /* general layer typedefs */ -#include "ssi.x" /* system services typedefs */ -#include "cm5.x" /* common timers */ -#include "cm_hash.x" /* common hash list */ -#include "cm_lib.x" /* common library */ -#include "cm_llist.x" /* common linked list */ -#include "cm_mblk.x" /* memory management */ -#include "cm_tkns.x" /* common tokens */ -#include "cm_lte.x" /* common tokens */ #include "rgu.x" /* RGU types */ #include "tfu.x" /* RGU types */ #include "lrg.x" /* layer management typedefs for MAC */ #include "crg.x" /* layer management typedefs for MAC */ #include "rg_sch_inf.x" /* SCH interface typedefs */ #include "rg_prg.x" /* PRG interface typedefs */ -#include "du_mgr_mac_inf.h" +#include "du_app_mac_inf.h" #include "rg.x" /* typedefs for MAC */ -/* local defines */ +#include "mac_upr_inf_api.h" +#include "mac.h" -/* local typedefs */ - /* local externs */ +#ifdef UNUSED_FUNC PRIVATE S16 rgLIMValidateSap ARGS((Inst inst,SuId suId)); +#endif PRIVATE Void rgLIMUtlFreeDatIndEvnt ARGS((TfuDatIndInfo *datInd, Bool error)); #ifdef RG_UNUSED @@ -252,6 +234,7 @@ U8 status; * -# ROK * -# RFAILED */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgLIMValidateSap ( @@ -285,7 +268,7 @@ PRIVATE S16 rgLIMValidateSap(inst,suId) } RETVALUE(ROK); } /* end of rgLIMValidateSap */ - +#endif /** @brief This function frees up the TfuDatIndInfo structure * * @details @@ -588,65 +571,115 @@ TfuDelDatReqInfo *delDatReq; } /* rgLIMTfuDatReq*/ #endif /*L2_OPTMZ */ -/** - * @brief Transmission time interval indication from PHY. +/******************************************************************* + * + * @brief Fills post structure * * @details * - * Function : RgLiTfuTtiInd - * - * This API is invoked by PHY to indicate TTI indication to MAC for a cell. - * - * @param[in] Pst *pst - * @param[in] SuId suId - * @param[in] TfuTtiIndInfo *ttiInd - * @return S16 - * -# ROK - * -# RFAILED - **/ -#ifdef ANSI -PUBLIC S16 RgLiTfuTtiInd -( -Pst *pst, -SuId suId, -TfuTtiIndInfo *ttiInd -) -#else -PUBLIC S16 RgLiTfuTtiInd(pst, suId, ttiInd) -Pst *pst; -SuId suId; -TfuTtiIndInfo *ttiInd; -#endif + * Function : fillMacToSchPst + * + * Functionality: + * Fills post structure to be used when sending msg from + * MAC to SCH + * + * @params[in] Post structure pointer + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +void fillMacToSchPst(Pst *pst) { - S16 ret; - VOLATILE U32 startTime=0; - Inst inst; + pst->srcProcId = 0; + pst->dstProcId = 0; + pst->srcEnt = ENTRG; + pst->dstEnt = ENTRG; + pst->srcInst = 0; + pst->dstInst = 1; + pst->region = 0; + pst->pool = 0; + pst->selector = ODU_SELECTOR_TC; +} + +/******************************************************************* + * + * @brief MAC handler for config response from PHY + * + * @details + * + * Function : fapiMacConfigRsp + * + * Functionality: + * Processes config response from PHY and sends cell config + * confirm to DU APP + * + * @params[in] + * @return void + * + * ****************************************************************/ +void fapiMacConfigRsp() +{ + /* TODO : Processing of config response from PHY */ - TRC3(RgLiTfuTtiInd); + /* Send cell config cfm to DU APP */ + MacSendCellCfgCfm(RSP_OK); +} - RG_IS_INST_VALID(pst->dstInst); - inst = pst->dstInst - RG_INST_START; - /*starting Task*/ - SStartTask(&startTime, PID_MAC_TTI_IND); +/******************************************************************* + * + * @brief Send stop indication to DU APP + * + * @details + * + * Function : sendStopIndMacToDuApp + * + * Functionality: + * Send stop indication to DU APP + * + * @params[in] Pst info + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t sendStopIndMacToDuApp() +{ + Pst pst; + uint8_t ret = ROK; -#ifdef NO_ERRCLS - if ((ret = rgLIMValidateSap (pst->dstInst - RG_INST_START,suId)) != ROK) + MacCellStopInfo *cellStopId; + + /* Allocate sharable memory */ + MAC_ALLOC_SHRABL_BUF(cellStopId, sizeof(MacCellStopInfo)); + if(!cellStopId) { - RLOG_ARG0(L_ERROR,DBG_CELLID,ttiInd->cells[0].cellId,"SAP Validation failed"); - RETVALUE(ret); + DU_LOG("\nMAC : Stop Indication memory allocation failed"); + return RFAILED; } -#endif - - /* Now call the TOM (Tfu ownership module) primitive to process further */ - ret = rgTOMTtiInd(inst,ttiInd); - - - /*stoping Task*/ - SStopTask(startTime, PID_MAC_TTI_IND); - - RETVALUE(ret); -} /* RgLiTfuTtiInd */ - + cellStopId->cellId = macCb.macCell->cellId; + + /* Fill Pst */ + pst.selector = ODU_SELECTOR_LWLC; + pst.srcEnt = ENTRG; + pst.dstEnt = ENTDUAPP; + pst.dstInst = 0; + pst.srcInst = macCb.macInst; + pst.dstProcId = rgCb[pst.srcInst].rgInit.procId; + pst.srcProcId = rgCb[pst.srcInst].rgInit.procId; + pst.region = MAC_MEM_REGION; + pst.pool = MAC_POOL; + pst.event = EVENT_MAC_STOP_IND; + pst.route = 0; + pst.prior = 0; + pst.intfVer = 0; + + ret = MacDuAppStopInd(&pst, cellStopId); + if(ret != ROK) + { + DU_LOG("\nMAC: Failed to send stop indication to DU APP"); + MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, cellStopId, sizeof(MacCellStopInfo)); + } + return ROK; +} #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD) /** * @brief Transmission of non-rt indication from CL.