Slot indication from MAC to DU APP : LWLC fix and LC
[o-du/l2.git] / src / 5gnrmac / rg_lim.c
index ecfb951..6c7582e 100755 (executable)
@@ -601,9 +601,55 @@ 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 conig response from PHY */
+   /* TODO : Processing of config response from PHY */
 
    /* Send cell config cfm to DU APP */
    MacSendCellCfgCfm(RSP_OK);
@@ -625,19 +671,11 @@ void fapiMacConfigRsp()
  **/
 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);
 }
@@ -662,10 +700,11 @@ 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");
@@ -691,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;
 }
 
 /**