Change tag in the yaml file and console errors
[o-du/l2.git] / src / cm / du_app_mac_inf.c
index 57068bb..2af744d 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "du_cfg.h"
 #include "du_app_mac_inf.h"
+#include "cm.h"
 
 /**************************************************************************
  * @brief Function to pack Loose Coupled 
@@ -376,28 +377,34 @@ uint16_t unpackMacCellStopReq(DuMacCellStopReq func, Pst *pst, Buffer *mBuf)
  * ****************************************************************/
 uint16_t packMacSlotInd(Pst *pst, SlotInfo *slotInfo )
 {
-   if(pst->selector == DU_SELECTOR_LC || pst->selector == DU_SELECTOR_TC)
+   Buffer *mBuf = NULLP;
+   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
    {
-      /* Loose coupling not supported */
-      DU_LOG("\nDU APP : Only LWLC supported");
+      DU_LOG("\nDU APP : Memory allocation failed for cell start req pack");
       return RFAILED;
    }
-   else if(pst->selector == DU_SELECTOR_LWLC)
+   if(pst->selector == DU_SELECTOR_LC)
    {
-      Buffer *mBuf = NULLP;
+      CMCHKPK(SPkU16, slotInfo->cellId, mBuf);
+      CMCHKPK(SPkU16, slotInfo->sfn, mBuf);
+      CMCHKPK(SPkU16, slotInfo->slot, mBuf);
 
-      if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
-      {
-         DU_LOG("\nDU APP : Memory allocation failed for cell start req pack");
-         return RFAILED;
-      }
+      CM_FREE_SHRABL_BUF(pst->region, pst->pool, slotInfo, sizeof(SlotInfo));
+               slotInfo = NULL;
+   }
+   else if(pst->selector == DU_SELECTOR_LWLC)
+   {
       /* pack the address of the structure */
       CMCHKPK(cmPkPtr,(PTR)slotInfo, mBuf);
-
-      return SPstTsk(pst,mBuf);
    }
-   return ROK;
+   else
+   {
+      SPutMsg(mBuf);
+   }
+
+   return SPstTsk(pst,mBuf);
 }
 
 /*******************************************************************
@@ -420,15 +427,27 @@ uint16_t packMacSlotInd(Pst *pst, SlotInfo *slotInfo )
  * ****************************************************************/
 uint16_t unpackMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf)
 {
-   SlotInfo *slotInfo;
-  
    if(pst->selector == DU_SELECTOR_LWLC)
    {
+      SlotInfo *slotInfo;
+
       /* unpack the address of the structure */
       CMCHKUNPK(cmUnpkPtr, (PTR *)&slotInfo, mBuf);
       SPutMsg(mBuf);
       return (*func)(pst, slotInfo);
    }
+   else if(pst->selector == DU_SELECTOR_LC)
+   {
+      SlotInfo slotInfo;
+
+      CMCHKUNPK(SUnpkU16, &(slotInfo.slot), mBuf);
+      CMCHKUNPK(SUnpkU16, &(slotInfo.sfn), mBuf);
+      CMCHKUNPK(SUnpkU16, &(slotInfo.cellId), mBuf);
+
+      SPutMsg(mBuf);
+      return (*func)(pst, &slotInfo);
+
+   }
    else
    {
       /* Nothing to do for loose coupling */
@@ -438,6 +457,98 @@ uint16_t unpackMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf)
    return ROK;
 }
 
+/*******************************************************************
+ *
+ * @brief Packs and Sends stop ind from MAC to DUAPP
+ *
+ * @details
+ *
+ *    Function : packMacStopInd
+ *
+ *    Functionality:
+ *       Packs and Sends stop ind from MAC to DUAPP
+ *
+ * @params[in] Post structure pointer
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint16_t packMacStopInd(Pst *pst, MacCellStopInfo *cellStopId)
+{
+   Buffer *mBuf = NULLP;
+
+   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
+   {
+      DU_LOG("\nDU APP : Memory allocation failed for stop Ind pack");
+      return RFAILED;
+   }
+
+   if(pst->selector == DU_SELECTOR_LC)
+   {
+      /*pack the payload here*/
+      DU_LOG("\nDU APP : Packed CellId");
+      CMCHKPK(SPkU16, cellStopId->cellId, mBuf);
+      CM_FREE_SHRABL_BUF(pst->region, pst->pool, cellStopId, sizeof(MacCellStopInfo));
+      cellStopId = NULL;
+   }
+   else if(pst->selector == DU_SELECTOR_LWLC)
+   {
+      /* pack the address of the structure */
+      CMCHKPK(cmPkPtr,(PTR)cellStopId, mBuf);
+   }
+   else
+   {
+      SPutMsg(mBuf);
+   }
+
+   return SPstTsk(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpacks stop indication from MAC
+ *
+ * @details
+ *
+ *    Function : unpackMacStopInd
+ *
+ *    Functionality:
+ *         Unpacks stop indication from MAC
+ *
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint16_t unpackMacStopInd(DuMacStopInd func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == DU_SELECTOR_LWLC)
+   {
+      MacCellStopInfo *cellStopId;
+      /* unpack the address of the structure */
+      CMCHKUNPK(cmUnpkPtr, (PTR *)&cellStopId, mBuf);
+      SPutMsg(mBuf);
+      return (*func)(pst, cellStopId);
+   }
+   else if(pst->selector == DU_SELECTOR_LC)
+   {
+      MacCellStopInfo cellStopId;
+      CMCHKUNPK(SUnpkU16, &(cellStopId.cellId), mBuf);
+
+      SPutMsg(mBuf);
+      return (*func)(pst, &cellStopId);
+
+   }
+   else
+   {
+      /* Nothing to do for loose coupling */
+      SPutMsg(mBuf);
+      return ROK;
+   }
+   return ROK;
+}
 /**********************************************************************
          End of file
 **********************************************************************/