X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lim.c;h=6c7582e470d49f5e32ed60d47c1a7df392766cfd;hb=069ae37558afd5aee2d1072bbf5b517cf665bdd8;hp=def7ae811079643c886c9d0c657e251cf29ccbe2;hpb=e550b2091fb29289d12a5722b189acbede7862f0;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lim.c b/src/5gnrmac/rg_lim.c index def7ae811..6c7582e47 100755 --- a/src/5gnrmac/rg_lim.c +++ b/src/5gnrmac/rg_lim.c @@ -75,11 +75,13 @@ static int RLOG_MODULE_ID=4096; #include "du_app_mac_inf.h" #include "rg.x" /* typedefs for MAC */ -#include "mac_sch_interface.h" #include "mac_upr_inf_api.h" +#include "mac.h" /* local externs */ +#ifdef UNUSED_FUNC PRIVATE S16 rgLIMValidateSap ARGS((Inst inst,SuId suId)); +#endif PRIVATE Void rgLIMUtlFreeDatIndEvnt ARGS((TfuDatIndInfo *datInd, Bool error)); @@ -262,6 +264,7 @@ U8 status; * -# ROK * -# RFAILED */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgLIMValidateSap ( @@ -295,7 +298,7 @@ PRIVATE S16 rgLIMValidateSap(inst,suId) } RETVALUE(ROK); } /* end of rgLIMValidateSap */ - +#endif /** @brief This function frees up the TfuDatIndInfo structure * * @details @@ -598,6 +601,60 @@ TfuDelDatReqInfo *delDatReq; } /* rgLIMTfuDatReq*/ #endif /*L2_OPTMZ */ +/******************************************************************* + * + * @brief Fills post structure + * + * @details + * + * 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) +{ + 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 = MAC_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 */ + + /* Send cell config cfm to DU APP */ + MacSendCellCfgCfm(RSP_OK); +} + /** * @brief Transmission time interval indication from PHY. * @@ -614,19 +671,11 @@ TfuDelDatReqInfo *delDatReq; **/ int sendSlotIndMacToSch(SlotIndInfo *slotInd) { - int ret = ROK; /* fill Pst structure to send to lwr_mac to MAC */ Pst pst; - pst.srcProcId = 0; - pst.dstProcId = 0; - pst.srcEnt = ENTRG; - pst.dstEnt = ENTRG; - pst.srcInst = 0; - pst.dstInst = 1; + + fillMacToSchPst(&pst); pst.event = EVENT_SLOT_IND_TO_SCH; - pst.region = 0; - pst.pool = 0; - pst.selector = MAC_SELECTOR_TC; return(*macSchSlotIndOpts[pst.selector])(&pst,slotInd); } @@ -651,22 +700,27 @@ int sendSlotIndMacToSch(SlotIndInfo *slotInd) int sendSlotIndMacToDuApp(SlotIndInfo *slotInd) { Pst pst; + uint16_t ret; SlotInfo *slotInfo; - - /* Send Slot Indication to DU APP */ - MAC_ALLOC(slotInfo, sizeof(SlotInfo)); + + /* Allocate sharable memory */ + MAC_ALLOC_SHRABL_BUF(slotInfo, sizeof(SlotInfo)); if(!slotInfo) { DU_LOG("\nMAC : Slot Indication memory allocation failed"); return RFAILED; } + slotInfo->cellId = macCb.macCell->cellId; + slotInfo->sfn = slotInd->sfn; + slotInfo->slot = slotInd->slot; + /* Fill Pst */ pst.selector = DU_MAC_LWLC; pst.srcEnt = ENTRG; pst.dstEnt = ENTDUAPP; pst.dstInst = 0; - pst.srcInst = 0; + pst.srcInst = macCb.macInst; pst.dstProcId = rgCb[pst.srcInst].rgInit.procId; pst.srcProcId = rgCb[pst.srcInst].rgInit.procId; pst.region = MAC_MEM_REGION; @@ -676,8 +730,14 @@ int sendSlotIndMacToDuApp(SlotIndInfo *slotInd) pst.prior = 0; pst.intfVer = 0; - return MacDuAppSlotInd(&pst, slotInfo); - + ret = MacDuAppSlotInd(&pst, slotInfo); + if(ret != ROK) + { + DU_LOG("\nMAC: Failed to send slot indication to DU APP"); + MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, slotInfo, sizeof(SlotInfo)); + } + + return ret; } /**