Added missing triggers and state params for cell up
[o-du/l2.git] / src / 5gnrmac / rg_lim.c
index b5c96f5..ecfb951 100755 (executable)
@@ -75,13 +75,11 @@ 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 UNUSE_FUN
+#ifdef UNUSED_FUNC
 PRIVATE S16  rgLIMValidateSap ARGS((Inst inst,SuId suId));
 #endif
 PRIVATE Void rgLIMUtlFreeDatIndEvnt ARGS((TfuDatIndInfo *datInd,
@@ -266,7 +264,7 @@ U8      status;
   *   -# ROK
   *   -# RFAILED
   */
-#ifdef UNUSE_FUN
+#ifdef UNUSED_FUNC
 #ifdef ANSI
 PRIVATE S16 rgLIMValidateSap
 (
@@ -603,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.
  *
@@ -636,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.
  *
@@ -662,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*/
@@ -671,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);
    }
 
@@ -679,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);