[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] WG8 Alignment | Ue reset req and rsp
[o-du/l2.git] / src / cm / du_app_mac_inf.c
index e0e75c5..c2165da 100644 (file)
@@ -192,7 +192,7 @@ uint8_t unpackMacCellCfgCfm(DuMacCellCfgCfm func, Pst *pst, Buffer *mBuf)
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packMacCellStart(Pst *pst, OduCellId *cellId)
+uint8_t packMacCellStart(Pst *pst, CellStartInfo *cellStart)
 {
    Buffer *mBuf = NULLP;
 
@@ -211,7 +211,7 @@ uint8_t packMacCellStart(Pst *pst, OduCellId *cellId)
       }
 
       /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)cellId, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)cellStart, mBuf);
 
    }
    return ODU_POST_TASK(pst,mBuf);
@@ -237,14 +237,14 @@ uint8_t packMacCellStart(Pst *pst, OduCellId *cellId)
  * ****************************************************************/
 uint8_t unpackMacCellStart(DuMacCellStart func, Pst *pst, Buffer *mBuf)
 {
-   OduCellId  *cellId;
+   CellStartInfo  *cellStart;
 
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellId, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellStart, mBuf);
       ODU_PUT_MSG_BUF(mBuf); 
-      return (*func)(pst, cellId);
+      return (*func)(pst, cellStart);
    }
    else
    {
@@ -271,7 +271,7 @@ uint8_t unpackMacCellStart(DuMacCellStart func, Pst *pst, Buffer *mBuf)
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packMacCellStop(Pst *pst, OduCellId  *cellId)
+uint8_t packMacCellStop(Pst *pst, CellStopInfo *cellStop)
 {
    if(pst->selector == ODU_SELECTOR_LC)
    {
@@ -284,12 +284,12 @@ uint8_t packMacCellStop(Pst *pst, OduCellId  *cellId)
 
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-        DU_LOG("\nERROR  --> DU APP : Memory allocation failed for cell stop req pack");
-        return RFAILED;
+         DU_LOG("\nERROR  --> DU APP : Memory allocation failed for cell stop req pack");
+         return RFAILED;
       }
 
       /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)cellId, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)cellStop, mBuf);
 
       return ODU_POST_TASK(pst,mBuf);
    }
@@ -316,14 +316,14 @@ uint8_t packMacCellStop(Pst *pst, OduCellId  *cellId)
  * ****************************************************************/
 uint8_t unpackMacCellStop(DuMacCellStop func, Pst *pst, Buffer *mBuf)
 {
-   OduCellId *cellId;
+   CellStopInfo *cellStop;
    
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellId, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellStop, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, cellId);
+      return (*func)(pst, cellStop);
    }
    else
    {
@@ -841,7 +841,7 @@ uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf)
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeCfg *ueCfg)
+uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeRecfg *ueCfg)
 {
    Buffer *mBuf = NULLP;
 
@@ -863,6 +863,7 @@ uint8_t packDuMacUeReconfigReq(Pst *pst, MacUeCfg *ueCfg)
 
    return ODU_POST_TASK(pst,mBuf);
 }
+
 /*******************************************************************
  *
  * @brief Unpacks UE Reconfig Request received from DU APP
@@ -885,12 +886,12 @@ uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacUeCfg *ueCfg;
+      MacUeRecfg *ueRecfg;
 
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&ueCfg, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&ueRecfg, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, ueCfg);
+      return (*func)(pst, ueRecfg);
    }
    else
    {
@@ -901,6 +902,316 @@ uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf)
 
    return RFAILED;
 }
+
+/*******************************************************************
+ *
+ * @brief Pack and send UE Reconfig response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacUeRecfgRsp
+ *
+ *    Functionality:
+ *       Pack and send UE Reconfig response from MAC to DU APP
+ *
+ * @params[in] 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacUeRecfgRsp(Pst *pst, MacUeRecfgRsp *recfgRsp)
+{
+   Buffer *mBuf = NULLP;
+
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+      {
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeRecfgRsp");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer,(PTR)recfgRsp, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeRecfgRsp");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpack UE ReConfig Response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function :unpackDuMacUeRecfgRsp 
+ *
+ *    Functionality: Unpack UE ReConfig Response from MAC to DU APP
+ *
+ * @params[in] 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t unpackDuMacUeRecfgRsp(MacDuUeRecfgRspFunc func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      MacUeRecfgRsp *recfgRsp = NULLP;
+
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&recfgRsp, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, recfgRsp);
+   }
+
+   ODU_PUT_MSG_BUF(mBuf);
+   return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Packs and Sends RACH Resource request from DUAPP to MAC
+ *
+ * @details
+ *
+ *    Function : packDuMacRachRsrcReq
+ *
+ *    Functionality:
+ *       Packs and Sends RACH Resource request from DU APP to MAC
+ *
+ *
+ * @params[in] Post structure pointer
+ *             MacRachRsrcReq pointer              
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacRachRsrcReq(Pst *pst, MacRachRsrcReq *rachRsrcReq)
+{
+   Buffer *mBuf = NULLP;
+
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+      {
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacRachRsrcReq,");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer, (PTR)rachRsrcReq, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacRachRsrcReq");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpacks RACH resource Request received from DU APP
+ *
+ * @details
+ *
+ *    Function : unpackMacRachRsrcReq
+ *
+ *    Functionality:
+ *         Unpacks RACH resource Request received from DU APP
+ *
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t unpackMacRachRsrcReq(DuMacRachRsrcReq func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      MacRachRsrcReq *rachRsrcReq;
+
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcReq, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, rachRsrcReq);
+   }
+   else
+   {
+      /* Nothing to do for other selectors */
+      DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for RACH resource Request ");
+      ODU_PUT_MSG_BUF(mBuf);
+   }
+
+   return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Packs and Sends RACH Resource release from DUAPP to MAC
+ *
+ * @details
+ *
+ *    Function : packDuMacRachRsrcRel
+ *
+ *    Functionality:
+ *       Packs and Sends RACH Resource release from DU APP to MAC
+ *
+ *
+ * @params[in] Post structure pointer
+ *             MacRachRsrcRel pointer              
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacRachRsrcRel(Pst *pst, MacRachRsrcRel *rachRsrcRel)
+{
+   Buffer *mBuf = NULLP;
+
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+      {
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacRachRsrcRel");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer, (PTR)rachRsrcRel, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacRachRsrcRel");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpacks RACH Resource Release received from DU APP
+ *
+ * @details
+ *
+ *    Function : unpackMacRachRsrcRel
+ *
+ *    Functionality:
+ *         Unpacks RACH Resource Release received from DU APP
+ *
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t unpackMacRachRsrcRel(DuMacRachRsrcRel func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      MacRachRsrcRel *rachRsrcRel;
+
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcRel, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, rachRsrcRel);
+   }
+   else
+   {
+      /* Nothing to do for other selectors */
+      DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for RACH Resource Release ");
+      ODU_PUT_MSG_BUF(mBuf);
+   }
+
+   return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Packs and Sends RACH Resource response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacRachRsrcRsp
+ *
+ *    Functionality:
+ *       Packs and Sends RACH Resource response from MAC to DU APP
+ *
+ *
+ * @params[in] Post structure pointer
+ *             MacRachRsrcRsp pointer              
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacRachRsrcRsp(Pst *pst, MacRachRsrcRsp *rachRsrcRsp)
+{
+   Buffer *mBuf = NULLP;
+
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+      {
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacRachRsrcRsp");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer, (PTR)rachRsrcRsp, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacRachRsrcRsp");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpacks RACH resource Response received from MAC
+ *
+ * @details
+ *
+ *    Function : unpackDuMacRachRsrcRsp
+ *
+ *    Functionality:
+ *         Unpacks RACH resource Response received from MAC
+ *
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t unpackDuMacRachRsrcRsp(MacDuRachRsrcRspFunc func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      MacRachRsrcRsp *rachRsrcRsp;
+
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcRsp, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, rachRsrcRsp);
+   }
+   else
+   {
+      /* Nothing to do for other selectors */
+      DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for RACH resource Response ");
+      ODU_PUT_MSG_BUF(mBuf);
+   }
+
+   return RFAILED;
+}
 /*******************************************************************
 *
 * @brief Packs and Sends UE Delete Request from DUAPP to MAC
@@ -1073,7 +1384,7 @@ uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacCellDelete *cellDelete=NULLP;
+      MacCellDeleteReq *cellDelete=NULLP;
 
       /* unpack the address of the structure */
       CMCHKUNPK(oduUnpackPointer, (PTR *)&cellDelete, mBuf);
@@ -1109,7 +1420,7 @@ uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf)
  *
  * ****************************************************************/
 
-uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDelete *cellDelete)
+uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDeleteReq *cellDelete)
 {
    Buffer *mBuf = NULLP;
 
@@ -1363,13 +1674,13 @@ uint8_t unpackDuMacSliceCfgRsp(MacDuSliceCfgRspFunc func, Pst *pst, Buffer *mBuf
  *    Functionality:
  *       Pack and send Slice ReCfg request from MAC to DU APP
  *
- * @params[in] Pst *pst, MacSliceCfgReq *sliceReCfgReq
+ * @params[in] Pst *pst, MacSliceRecfgReq *sliceRecfgReq
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
 
-uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq)
+uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceRecfgReq *sliceRecfgReq)
 {
    Buffer *mBuf = NULLP;
 
@@ -1380,7 +1691,7 @@ uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq)
          DU_LOG("\nERROR  --> MAC : Memory allocation failed in packDuMacSliceRecfgReq");
          return RFAILED;
       }
-      CMCHKPK(oduPackPointer,(PTR)sliceReCfgReq, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)sliceRecfgReq, mBuf);
    }
    else
    {
@@ -1409,15 +1720,15 @@ uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq)
 *         RFAILED - failure
 *
 * ****************************************************************/
-uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf)
+uint8_t unpackMacSliceRecfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf)
 {
     if(pst->selector == ODU_SELECTOR_LWLC)
     {
-       MacSliceCfgReq *sliceReCfgReq;
+       MacSliceRecfgReq *sliceRecfgReq;
        /* unpack the address of the structure */
-       CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceReCfgReq, mBuf);
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceRecfgReq, mBuf);
        ODU_PUT_MSG_BUF(mBuf);
-       return (*func)(pst, sliceReCfgReq);
+       return (*func)(pst, sliceRecfgReq);
     }
     else
     {
@@ -1435,7 +1746,7 @@ uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf)
  *
  * @details
  *
- *    Function : packDuMacSliceReCfgRsp
+ *    Function : packDuMacSliceRecfgRsp
  *
  *    Functionality:
  *       Pack and send Slice config response from MAC to DU APP
@@ -1445,7 +1756,7 @@ uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf)
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
+uint8_t packDuMacSliceRecfgRsp(Pst *pst, MacSliceRecfgRsp *sliceRecfgRsp)
 {
    Buffer *mBuf = NULLP;
 
@@ -1453,15 +1764,15 @@ uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacSliceReCfgRsp");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacSliceRecfgRsp");
          return RFAILED;
       }
       /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)cfgRsp, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)sliceRecfgRsp, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacSliceReCfgRsp");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacSliceRecfgRsp");
       return RFAILED;
    }
 
@@ -1474,7 +1785,7 @@ uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
  *
  * @details
  *
- *    Function :unpackDuMacSliceReCfgRsp 
+ *    Function :unpackDuMacSliceRecfgRsp 
  *
  *    Functionality: Unpack Slice ReConfig Response from MAC to DU APP
  *
@@ -1483,16 +1794,16 @@ uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t unpackDuMacSliceReCfgRsp(MacDuSliceReCfgRspFunc func, Pst *pst, Buffer *mBuf)
+uint8_t unpackDuMacSliceRecfgRsp(MacDuSliceRecfgRspFunc func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacSliceCfgRsp *cfgRsp = NULLP;
+      MacSliceRecfgRsp *sliceRecfgRsp = NULLP;
 
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceRecfgRsp, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, cfgRsp);
+      return (*func)(pst, sliceRecfgRsp);
    }
 
    ODU_PUT_MSG_BUF(mBuf);
@@ -1569,6 +1880,234 @@ uint8_t unpackDuMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf)
    return RFAILED;
 }
 
+/*******************************************************************
+ *
+ * @brief Pack and send Dl Pcch indication to MAC
+ *
+ * @details
+ *
+ *    Function : packDuMacDlPcchInd
+ *
+ *    Functionality:
+ *       Pack and send Dl Pcch indication to MAC
+ *
+ * @params[in] Post structure
+ *             DlPcchInd *pcchInd;
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+
+uint8_t packDuMacDlPcchInd(Pst *pst, DlPcchInd *pcchInd)
+{
+   Buffer *mBuf = NULLP;
+
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+      {
+         DU_LOG("\nERROR  --> MAC : packDuMacDlPcchInd(): Memory allocation failed ");
+         return RFAILED;
+      }
+      CMCHKPK(oduPackPointer,(PTR)pcchInd, mBuf);
+      return ODU_POST_TASK(pst,mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: packDuMacDlPcchInd(): Only LWLC supported ");
+   }
+   return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Unpacks downlink pcch indication received from DU APP
+ *
+ * @details
+ *
+ *    Function : unpackMacDlPcchInd
+ *
+ *    Functionality:
+ *         Unpacks downlink pcch indication received from DU APP
+ *
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+
+uint8_t unpackMacDlPcchInd(DuMacDlPcchInd func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      DlPcchInd *pcchInd=NULLP;
+
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&pcchInd, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, pcchInd);
+   }
+   else
+   {
+      /* Nothing to do for other selectors */
+      DU_LOG("\nERROR  -->  DU APP : unpackMacDlPcchInd(): Only LWLC supported");
+      ODU_PUT_MSG_BUF(mBuf);
+   }
+
+   return RFAILED;
+}
+
+/*******************************************************************
+*
+* @brief Packs and Sends UE Reset Request from DUAPP to MAC
+*
+* @details
+*
+*    Function : packDuMacUeResetReq
+*
+*    Functionality:
+*       Packs and Sends UE Reset Request from DUAPP to MAC
+*
+*
+* @params[in] Post structure pointer
+*             MacUeResetReq pointer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t packDuMacUeResetReq(Pst *pst, MacUeResetReq *ueDel)
+{
+    Buffer *mBuf = NULLP;
+
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+       {
+          DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeResetReq");
+          return RFAILED;
+       }
+       /* pack the address of the structure */
+       CMCHKPK(oduPackPointer,(PTR)ueDel, mBuf);
+    }
+    else
+    {
+       DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeResetReq");
+       return RFAILED;
+    }
+    return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+*
+* @brief Unpacks UE Reset Request received from DU APP
+*
+* @details
+*
+*    Function : unpackMacUeResetReq 
+*
+*    Functionality:
+*         Unpacks UE Reset Request received from DU APP
+*
+* @params[in] Pointer to Handler
+*             Post structure pointer
+*             Message Buffer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackMacUeResetReq(DuMacUeResetReq func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacUeResetReq *ueReset;
+
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueReset, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, ueReset);
+    }
+    else
+    {
+       /* Nothing to do for other selectors */
+       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for UE Reset Request ");
+       ODU_PUT_MSG_BUF(mBuf);
+    }
+
+    return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Pack and send UE reset response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacUeResetRsp
+ *
+ *    Functionality:
+ *       Pack and send UE  reset response from MAC to DU APP
+ *
+ * @params[in]
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacUeResetRsp(Pst *pst, MacUeResetRsp *resetRsp)
+{
+   Buffer *mBuf = NULLP;
+   
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+      {
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeResetRsp");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer,(PTR)resetRsp, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeResetRsp");
+      return RFAILED;
+   }
+   
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+*
+* @brief Unpack UE Config Response from MAC to DU APP
+*
+* @details
+*
+*    Function :unpackDuMacUeResetRsp 
+*
+*    Functionality: Unpack UE Config Response from MAC to DU APP
+*
+* @params[in]
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackDuMacUeResetRsp(MacDuUeResetRspFunc func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacUeResetRsp *ueResetRsp = NULLP;
+
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueResetRsp, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, ueResetRsp);
+    }
+
+    ODU_PUT_MSG_BUF(mBuf);
+    return RFAILED;
+}
+
 /*******************************************************************
  *
  * @brief Searches for first unset bit in ueBitMap