X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_lim.c;h=ecfb9516bd5453b0cc7ccb2fdca14a00d631d9bb;hb=d2d9dcbd92e8f1be15dd5891aaf9ada9bc071e1a;hp=4c177b16fb58664e1b2af5413d030c13fed6e474;hpb=5ea4c59cb4dd37164953218b0bd355284e11d22c;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_lim.c b/src/5gnrmac/rg_lim.c index 4c177b16f..ecfb9516b 100755 --- a/src/5gnrmac/rg_lim.c +++ b/src/5gnrmac/rg_lim.c @@ -75,13 +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" -/* 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)); @@ -264,6 +264,7 @@ U8 status; * -# ROK * -# RFAILED */ +#ifdef UNUSED_FUNC #ifdef ANSI PRIVATE S16 rgLIMValidateSap ( @@ -297,7 +298,7 @@ PRIVATE S16 rgLIMValidateSap(inst,suId) } RETVALUE(ROK); } /* end of rgLIMValidateSap */ - +#endif /** @brief This function frees up the TfuDatIndInfo structure * * @details @@ -600,6 +601,14 @@ TfuDelDatReqInfo *delDatReq; } /* rgLIMTfuDatReq*/ #endif /*L2_OPTMZ */ +void fapiMacConfigRsp() +{ + /* TODO : Processing of conig response from PHY */ + + /* Send cell config cfm to DU APP */ + MacSendCellCfgCfm(RSP_OK); +} + /** * @brief Transmission time interval indication from PHY. * @@ -633,6 +642,59 @@ int sendSlotIndMacToSch(SlotIndInfo *slotInd) return(*macSchSlotIndOpts[pst.selector])(&pst,slotInd); } + +/******************************************************************* + * + * @brief Send slot indication to DU APP + * + * @details + * + * Function : sendSlotIndMacToDuApp + * + * Functionality: + * Send slot indication to DU APP + * + * @params[in] Slot indication info + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +int sendSlotIndMacToDuApp(SlotIndInfo *slotInd) +{ + Pst pst; + SlotInfo *slotInfo; + + /* Send Slot Indication to DU APP */ + MAC_ALLOC(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 = 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_SLOT_IND; + pst.route = 0; + pst.prior = 0; + pst.intfVer = 0; + + return MacDuAppSlotInd(&pst, slotInfo); + +} + /** * @brief Transmission time interval indication from PHY. * @@ -659,6 +721,8 @@ SlotIndInfo *slotInd VOLATILE U32 startTime=0; Inst inst; + DU_LOG("\nMAC : Slot Indication received"); + RG_IS_INST_VALID(pst->dstInst); inst = pst->dstInst - RG_INST_START; /*starting Task*/ @@ -668,7 +732,7 @@ SlotIndInfo *slotInd ret = sendSlotIndMacToSch(slotInd); if(ret != ROK) { - DU_LOG("\nsending of slot ind msg from MAC to SCH failed"); + DU_LOG("\nMAC : Sending of slot ind msg from MAC to SCH failed"); RETVALUE(ret); } @@ -676,10 +740,17 @@ SlotIndInfo *slotInd ret = macProcessSlotInd(inst,*slotInd); if(ret != ROK) { - DU_LOG("\nmacProcessSlotInd failed"); + DU_LOG("\nMAC : macProcessSlotInd failed"); RETVALUE(ret); } + /* send slot indication to du app */ + ret = sendSlotIndMacToDuApp(slotInd); + if(ret != ROK) + { + DU_LOG("\nMAC :Sending of slot ind msg from MAC to DU APP failed"); + RETVALUE(ret); + } /*stoping Task*/ SStopTask(startTime, PID_MAC_TTI_IND);