X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac_slot_ind.c;h=e502fbb43ba6975203651d384db3d707992cc5f5;hb=18376996c17ece8306c1fe9539a00010bea607d5;hp=51b07f41fb725273f17fe21f7f39c30f8e3314d9;hpb=5ea4c59cb4dd37164953218b0bd355284e11d22c;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac_slot_ind.c b/src/5gnrmac/mac_slot_ind.c index 51b07f41f..e502fbb43 100644 --- a/src/5gnrmac/mac_slot_ind.c +++ b/src/5gnrmac/mac_slot_ind.c @@ -40,14 +40,96 @@ #include "tfu.x" /* RGU Interface includes */ #include "lrg.x" #include "du_app_mac_inf.h" -#include "mac_sch_interface.h" +#include "mac.h" +#include "du_log.h" -int MacProcDlBrdcstAlloc(Pst *pst, DlBrdcstAlloc *dlBrdcstAlloc) +/** + * @brief process DL allocation from scheduler + * + * @details + * + * Function : MacProcDlAlloc + * + * This function copied dl sch info in the mac slot info + * + * @param[in] Pst *pst + * @param[in] DL allocation from scheduler + * @return S16 + * -# ROK + * -# RFAILED + **/ +int MacProcDlAlloc(Pst *pst, DlAlloc *dlAlloc) { - + if(dlAlloc != NULLP) + { + MacDlSlot *currDlSlot = + &macCb.macCell->dlSlot[dlAlloc->slotIndInfo.slot % MAX_SLOT_SUPPORTED]; + memcpy(&currDlSlot->dlInfo, dlAlloc, sizeof(DlAlloc)); + } return ROK; } +/** + * @brief Transmission time interval indication from PHY. + * + * @details + * + * Function : fapiMacSlotInd + * + * 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] SlotIndInfo *slotInd + * @return S16 + * -# ROK + * -# RFAILED + **/ +PUBLIC S16 fapiMacSlotInd +( +Pst *pst, +SlotIndInfo *slotInd +) +{ + S16 ret; + VOLATILE U32 startTime=0; + Inst inst; + + DU_LOG("\nMAC : Slot Indication received"); + + inst = pst->dstInst; + /*starting Task*/ + SStartTask(&startTime, PID_MAC_TTI_IND); + + /* send slot indication to scheduler */ + ret = sendSlotIndMacToSch(slotInd); + if(ret != ROK) + { + DU_LOG("\nMAC : Sending of slot ind msg from MAC to SCH failed"); + RETVALUE(ret); + } + + ret = macProcessSlotInd(inst,*slotInd); + if(ret != ROK) + { + 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); + + RETVALUE(ret); +} /* fapiMacSlotInd */ + /********************************************************************** End of file **********************************************************************/