Merge "[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] Ue Create and Rsp correction...
[o-du/l2.git] / src / cm / du_app_mac_inf.c
index 21f2dfa..3ea1b0c 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
    {
@@ -687,12 +687,12 @@ uint8_t unpackMacDlCcchInd(DuMacDlCcchInd func, Pst *pst, Buffer *mBuf)
  *
  *
  * @params[in] Post structure pointer
- *             MacUeCfg pointer              
+ *             MacUeCreateReq pointer              
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCfg *ueCfg)
+uint8_t packDuMacUeCreateReq(Pst *pst, MacUeCreateReq *ueCfg)
 {
    Buffer *mBuf = NULLP;
 
@@ -737,7 +737,7 @@ uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacUeCfg *ueCfg;
+      MacUeCreateReq *ueCfg;
 
       /* unpack the address of the structure */
       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueCfg, mBuf);
@@ -756,21 +756,21 @@ uint8_t unpackMacUeCreateReq(DuMacUeCreateReq func, Pst *pst, Buffer *mBuf)
 
 /*******************************************************************
  *
- * @brief Pack and send UE config response from MAC to DU APP
+ * @brief Pack and send UE create response from MAC to DU APP
  *
  * @details
  *
- *    Function : packDuMacUeCfgRsp
+ *    Function : packDuMacUeCreateRsp
  *
  *    Functionality:
- *       Pack and send UE config response from MAC to DU APP
+ *       Pack and send UE create response from MAC to DU APP
  *
  * @params[in] 
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp)
+uint8_t packDuMacUeCreateRsp(Pst *pst, MacUeCreateRsp *cfgRsp)
 {
    Buffer *mBuf = NULLP;
 
@@ -778,7 +778,7 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-        DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeCfgRsp");
+        DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeCreateRsp");
         return RFAILED;
       }
       /* pack the address of the structure */
@@ -786,7 +786,7 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp)
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeCfgRsp");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeCreateRsp");
       return RFAILED;
    }
 
@@ -794,24 +794,24 @@ uint8_t packDuMacUeCfgRsp(Pst *pst, MacUeCfgRsp *cfgRsp)
 }
 /*******************************************************************
  *
- * @brief Unpack UE Config Response from MAC to DU APP
+ * @brief Unpack UE Create Response from MAC to DU APP
  *
  * @details
  *
- *    Function :unpackDuMacUeCfgRsp 
+ *    Function :unpackDuMacUeCreateRsp 
  *
- *    Functionality: Unpack UE Config Response from MAC to DU APP
+ *    Functionality: Unpack UE Create Response from MAC to DU APP
  *
  * @params[in] 
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf)
+uint8_t unpackDuMacUeCreateRsp(MacDuUeCreateRspFunc func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacUeCfgRsp *cfgRsp = NULLP;
+      MacUeCreateRsp *cfgRsp = NULLP;
 
       /* unpack the address of the structure */
       CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf);
@@ -836,12 +836,12 @@ uint8_t unpackDuMacUeCfgRsp(MacDuUeCfgRspFunc func, Pst *pst, Buffer *mBuf)
  *
  *
  * @params[in] Post structure pointer
- *             MacUeCfg pointer              
+ *             MacUeRecfg pointer              
  * @return ROK     - success
  *         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,215 +902,96 @@ uint8_t unpackMacUeReconfigReq(DuMacUeReconfigReq func, Pst *pst, Buffer *mBuf)
 
    return RFAILED;
 }
-/*******************************************************************
-*
-* @brief Packs and Sends UE Delete Request from DUAPP to MAC
-*
-* @details
-*
-*    Function : packDuMacUeDeleteReq
-*
-*    Functionality:
-*       Packs and Sends UE Delete Request from DUAPP to MAC
-*
-*
-* @params[in] Post structure pointer
-*             MacUeDelete pointer
-* @return ROK     - success
-*         RFAILED - failure
-*
-* ****************************************************************/
-uint8_t packDuMacUeDeleteReq(Pst *pst, MacUeDelete *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 packDuMacUeDeleteReq");
-          return RFAILED;
-       }
-       /* pack the address of the structure */
-       CMCHKPK(oduPackPointer,(PTR)ueDel, mBuf);
-    }
-    else
-    {
-       DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeDeleteReq");
-       return RFAILED;
-    }
-
-    return ODU_POST_TASK(pst,mBuf);
-}
-/*******************************************************************
-*
-* @brief Unpacks UE Delete Request received from DU APP
-*
-* @details
-*
-*    Function : unpackMacUeDeleteReq 
-*
-*    Functionality:
-*         Unpacks UE Delete Request received from DU APP
-*
-* @params[in] Pointer to Handler
-*             Post structure pointer
-*             Message Buffer
-* @return ROK     - success
-*         RFAILED - failure
-*
-* ****************************************************************/
-uint8_t unpackMacUeDeleteReq(DuMacUeDeleteReq func, Pst *pst, Buffer *mBuf)
-{
-    if(pst->selector == ODU_SELECTOR_LWLC)
-    {
-       MacUeDelete *ueDelete;
-
-       /* unpack the address of the structure */
-       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueDelete, mBuf);
-       ODU_PUT_MSG_BUF(mBuf);
-       return (*func)(pst, ueDelete);
-    }
-    else
-    {
-       /* Nothing to do for other selectors */
-       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for UE Delete Request ");
-       ODU_PUT_MSG_BUF(mBuf);
-    }
 
-    return RFAILED;
-}
 /*******************************************************************
  *
- * @brief Pack and send UE delete response from MAC to DU APP
+ * @brief Pack and send UE Reconfig response from MAC to DU APP
  *
  * @details
  *
- *    Function : packDuMacUeDeleteRsp
+ *    Function : packDuMacUeRecfgRsp
  *
  *    Functionality:
- *       Pack and send UE  delete response from MAC to DU APP
+ *       Pack and send UE Reconfig response from MAC to DU APP
  *
- * @params[in]
+ * @params[in] 
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacUeDeleteRsp(Pst *pst, MacUeDeleteRsp *deleteRsp)
+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 packDuMacUeDeleteRsp");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeRecfgRsp");
          return RFAILED;
       }
       /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)deleteRsp, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)recfgRsp, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeDeleteRsp");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeRecfgRsp");
       return RFAILED;
    }
-   
-   return ODU_POST_TASK(pst,mBuf);
-   
-}
-
-/*******************************************************************
-*
-* @brief Unpack UE Config Response from MAC to DU APP
-*
-* @details
-*
-*    Function :unpackDuMacUeDeleteRsp 
-*
-*    Functionality: Unpack UE Config Response from MAC to DU APP
-*
-* @params[in]
-* @return ROK     - success
-*         RFAILED - failure
-*
-* ****************************************************************/
-uint8_t unpackDuMacUeDeleteRsp(MacDuUeDeleteRspFunc func, Pst *pst, Buffer *mBuf)
-{
-    if(pst->selector == ODU_SELECTOR_LWLC)
-    {
-       MacUeDeleteRsp *ueDeleteRsp = NULLP;
-
-       /* unpack the address of the structure */
-       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueDeleteRsp, mBuf);
-       ODU_PUT_MSG_BUF(mBuf);
-       return (*func)(pst, ueDeleteRsp);
-    }
 
-    ODU_PUT_MSG_BUF(mBuf);
-    return RFAILED;
+   return ODU_POST_TASK(pst,mBuf);
 }
 
 /*******************************************************************
  *
- * @brief Unpacks Cell Delete Request received from DU APP
+ * @brief Unpack UE ReConfig Response from MAC to DU APP
  *
  * @details
  *
- *    Function : unpackMacCellDeleteReq
+ *    Function :unpackDuMacUeRecfgRsp 
  *
- *    Functionality:
- *         Unpacks Cell Delete Request received from DU APP
+ *    Functionality: Unpack UE ReConfig Response from MAC to DU APP
  *
- * @params[in] Pointer to Handler
- *             Post structure pointer
- *             Message Buffer
+ * @params[in] 
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-
-uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf)
+uint8_t unpackDuMacUeRecfgRsp(MacDuUeRecfgRspFunc func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacCellDelete *cellDelete=NULLP;
+      MacUeRecfgRsp *recfgRsp = NULLP;
 
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellDelete, mBuf);
-      ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, cellDelete);
-   }
-   else
-   {
-      /* Nothing to do for other
-       * selectors */
-      DU_LOG("\nERROR  -->  DU APP : unpackMacCellDeleteReq(): Only LWLC supported for CELL Delete Request ");
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&recfgRsp, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, recfgRsp);
    }
 
+   ODU_PUT_MSG_BUF(mBuf);
    return RFAILED;
 }
 
 /*******************************************************************
  *
- * @brief Pack and send Cell delete request to MAC
+ * @brief Packs and Sends RACH Resource request from DUAPP to MAC
  *
  * @details
  *
- *    Function : packDuMacCellDeleteReq
+ *    Function : packDuMacRachRsrcReq
  *
  *    Functionality:
- *       Pack and send Cell delete request to MAC
+ *       Packs and Sends RACH Resource request from DU APP to MAC
  *
- * @params[in] Post structure
- *             MacCellDelete *cellDelete;
+ *
+ * @params[in] Post structure pointer
+ *             MacRachRsrcReq pointer              
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-
-uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDelete *cellDelete)
+uint8_t packDuMacRachRsrcReq(Pst *pst, MacRachRsrcReq *rachRsrcReq)
 {
    Buffer *mBuf = NULLP;
 
@@ -1117,37 +999,79 @@ uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDelete *cellDelete)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-         DU_LOG("\nERROR  --> MAC : packDuMacCellDeleteReq(): Memory allocation failed ");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacRachRsrcReq,");
          return RFAILED;
       }
-      CMCHKPK(oduPackPointer,(PTR)cellDelete, mBuf);
-      return ODU_POST_TASK(pst,mBuf);
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer, (PTR)rachRsrcReq, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: packDuMacCellDeleteReq(): Only LWLC supported ");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacRachRsrcReq");
+      return RFAILED;
    }
-   return RFAILED;
+
+   return ODU_POST_TASK(pst,mBuf);
 }
 
 /*******************************************************************
  *
- * @brief Pack and send CELL delete response from MAC to DU APP
+ * @brief Unpacks RACH resource Request received from DU APP
  *
  * @details
  *
- *    Function : packDuMacCellDeleteRsp
+ *    Function : unpackMacRachRsrcReq
  *
  *    Functionality:
- *       Pack and send CELL  delete response from MAC to DU APP
+ *         Unpacks RACH resource Request received from DU APP
  *
- * @params[in] Pst *pst, MacCellDeleteRsp *deleteRsp
+ * @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;
 
-uint8_t packDuMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp)
+      /* 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;
 
@@ -1155,73 +1079,79 @@ uint8_t packDuMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-         DU_LOG("\nERROR  --> MAC : packDuMacCellDeleteRsp(): Memory allocation failed ");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacRachRsrcRel");
          return RFAILED;
       }
-      CMCHKPK(oduPackPointer,(PTR)cellDeleteRsp, mBuf);
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer, (PTR)rachRsrcRel, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: packDuMacCellDeleteRsp(): Only LWLC supported ");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacRachRsrcRel");
       return RFAILED;
    }
 
    return ODU_POST_TASK(pst,mBuf);
-
 }
 
 /*******************************************************************
  *
- * @brief Unpack cell delete response from MAC to DU APP
+ * @brief Unpacks RACH Resource Release received from DU APP
  *
  * @details
  *
- *    Function : unpackDuMacCellDeleteRsp
+ *    Function : unpackMacRachRsrcRel
  *
- *    Functionality: Unpack cell delete response from MAC to DU APP
+ *    Functionality:
+ *         Unpacks RACH Resource Release received from DU APP
  *
- * @params[in] MacDuCellDeleteRspFunc func, Pst *pst, Buffer *mBuf
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-
-uint8_t unpackDuMacCellDeleteRsp(MacDuCellDeleteRspFunc func, Pst *pst, Buffer *mBuf)
+uint8_t unpackMacRachRsrcRel(DuMacRachRsrcRel func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacCellDeleteRsp *cellDeleteRsp = NULLP;
+      MacRachRsrcRel *rachRsrcRel;
 
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellDeleteRsp, mBuf);
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&rachRsrcRel, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, cellDeleteRsp);
+      return (*func)(pst, rachRsrcRel);
    }
    else
-   {  
-      DU_LOG("\nERROR  -->  DU APP : unpackDuMacCellDeleteRsp(): Only LWLC supported ");
+   {
+      /* 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 Pack and send Slice Cfg request from MAC to DU APP
+ * @brief Packs and Sends RACH Resource response from MAC to DU APP
  *
  * @details
  *
- *    Function : packDuMacSliceCfgReq
+ *    Function : packDuMacRachRsrcRsp
  *
  *    Functionality:
- *       Pack and send Slice Cfg request from MAC to DU APP
+ *       Packs and Sends RACH Resource response from MAC to DU APP
  *
- * @params[in] Pst *pst, MacSliceCfgReq *sliceCfgReq
+ *
+ * @params[in] Post structure pointer
+ *             MacRachRsrcRsp pointer              
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-
-uint8_t packDuMacSliceCfgReq(Pst *pst, MacSliceCfgReq *sliceCfgReq)
+uint8_t packDuMacRachRsrcRsp(Pst *pst, MacRachRsrcRsp *rachRsrcRsp)
 {
    Buffer *mBuf = NULLP;
 
@@ -1229,147 +1159,268 @@ uint8_t packDuMacSliceCfgReq(Pst *pst, MacSliceCfgReq *sliceCfgReq)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-         DU_LOG("\nERROR  --> MAC : Memory allocation failed in packDuMacSliceCfgReq");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacRachRsrcRsp");
          return RFAILED;
       }
-      CMCHKPK(oduPackPointer,(PTR)sliceCfgReq, mBuf);
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer, (PTR)rachRsrcRsp, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported in packDuMacSliceCfgReq");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacRachRsrcRsp");
       return RFAILED;
    }
 
    return ODU_POST_TASK(pst,mBuf);
-
 }
+
 /*******************************************************************
-*
-* @brief Unpacks Slice Cfg request received from DU APP
-*
-* @details
-*
-*    Function : unpackMacSliceCfgReq 
-*
-*    Functionality:
-*         Unpacks Slice Cfg Request received from DU APP
-*
-* @params[in] Pointer to Handler
+ *
+ * @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
+*
+* @details
+*
+*    Function : packDuMacUeDeleteReq
+*
+*    Functionality:
+*       Packs and Sends UE Delete Request from DUAPP to MAC
+*
+*
+* @params[in] Post structure pointer
+*             MacUeDelete pointer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t packDuMacUeDeleteReq(Pst *pst, MacUeDelete *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 packDuMacUeDeleteReq");
+          return RFAILED;
+       }
+       /* pack the address of the structure */
+       CMCHKPK(oduPackPointer,(PTR)ueDel, mBuf);
+    }
+    else
+    {
+       DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeDeleteReq");
+       return RFAILED;
+    }
+
+    return ODU_POST_TASK(pst,mBuf);
+}
+/*******************************************************************
+*
+* @brief Unpacks UE Delete Request received from DU APP
+*
+* @details
+*
+*    Function : unpackMacUeDeleteReq 
+*
+*    Functionality:
+*         Unpacks UE Delete Request received from DU APP
+*
+* @params[in] Pointer to Handler
 *             Post structure pointer
 *             Message Buffer
 * @return ROK     - success
 *         RFAILED - failure
 *
 * ****************************************************************/
-uint8_t unpackMacSliceCfgReq(DuMacSliceCfgReq func, Pst *pst, Buffer *mBuf)
+uint8_t unpackMacUeDeleteReq(DuMacUeDeleteReq func, Pst *pst, Buffer *mBuf)
 {
     if(pst->selector == ODU_SELECTOR_LWLC)
     {
-       MacSliceCfgReq *sliceCfgReq;
+       MacUeDelete *ueDelete;
+
        /* unpack the address of the structure */
-       CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceCfgReq, mBuf);
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueDelete, mBuf);
        ODU_PUT_MSG_BUF(mBuf);
-       return (*func)(pst, sliceCfgReq);
+       return (*func)(pst, ueDelete);
     }
     else
     {
        /* Nothing to do for other selectors */
-       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for Slice Cfg Request ");
+       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for UE Delete Request ");
        ODU_PUT_MSG_BUF(mBuf);
     }
 
     return RFAILED;
 }
-
 /*******************************************************************
  *
- * @brief Pack and send Slice config response from MAC to DU APP
+ * @brief Pack and send UE delete response from MAC to DU APP
  *
  * @details
  *
- *    Function : packDuMacSliceCfgRsp
+ *    Function : packDuMacUeDeleteRsp
  *
  *    Functionality:
- *       Pack and send Slice config response from MAC to DU APP
+ *       Pack and send UE  delete response from MAC to DU APP
  *
- * @params[in] 
+ * @params[in]
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacSliceCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
+uint8_t packDuMacUeDeleteRsp(Pst *pst, MacUeDeleteRsp *deleteRsp)
 {
    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 packDuMacSliceCfgRsp");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packDuMacUeDeleteRsp");
          return RFAILED;
       }
       /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)cfgRsp, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)deleteRsp, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacSliceCfgRsp");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeDeleteRsp");
       return RFAILED;
    }
-
+   
    return ODU_POST_TASK(pst,mBuf);
+   
+}
+
+/*******************************************************************
+*
+* @brief Unpack UE Config Response from MAC to DU APP
+*
+* @details
+*
+*    Function :unpackDuMacUeDeleteRsp 
+*
+*    Functionality: Unpack UE Config Response from MAC to DU APP
+*
+* @params[in]
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackDuMacUeDeleteRsp(MacDuUeDeleteRspFunc func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacUeDeleteRsp *ueDeleteRsp = NULLP;
+
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueDeleteRsp, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, ueDeleteRsp);
+    }
+
+    ODU_PUT_MSG_BUF(mBuf);
+    return RFAILED;
 }
 
 /*******************************************************************
  *
- * @brief Unpack Slice Config Response from MAC to DU APP
+ * @brief Unpacks Cell Delete Request received from DU APP
  *
  * @details
  *
- *    Function :unpackDuMacSliceCfgRsp 
+ *    Function : unpackMacCellDeleteReq
  *
- *    Functionality: Unpack Slice Config Response from MAC to DU APP
+ *    Functionality:
+ *         Unpacks Cell Delete Request received from DU APP
  *
- * @params[in] 
+ * @params[in] Pointer to Handler
+ *             Post structure pointer
+ *             Message Buffer
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t unpackDuMacSliceCfgRsp(MacDuSliceCfgRspFunc func, Pst *pst, Buffer *mBuf)
+
+uint8_t unpackMacCellDeleteReq(DuMacCellDeleteReq func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacSliceCfgRsp *cfgRsp = NULLP;
+      MacCellDeleteReq *cellDelete=NULLP;
 
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellDelete, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, cellDelete);
+   }
+   else
+   {
+      /* Nothing to do for other
+       * selectors */
+      DU_LOG("\nERROR  -->  DU APP : unpackMacCellDeleteReq(): Only LWLC supported for CELL Delete Request ");
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, cfgRsp);
    }
 
-   ODU_PUT_MSG_BUF(mBuf);
    return RFAILED;
 }
 
-
 /*******************************************************************
  *
- * @brief Pack and send Slice ReCfg request from MAC to DU APP
+ * @brief Pack and send Cell delete request to MAC
  *
  * @details
  *
- *    Function : packDuMacSliceRecfgReq
+ *    Function : packDuMacCellDeleteReq
  *
  *    Functionality:
- *       Pack and send Slice ReCfg request from MAC to DU APP
+ *       Pack and send Cell delete request to MAC
  *
- * @params[in] Pst *pst, MacSliceCfgReq *sliceReCfgReq
+ * @params[in] Post structure
+ *             MacCellDelete *cellDelete;
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
 
-uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq)
+uint8_t packDuMacCellDeleteReq(Pst *pst, MacCellDeleteReq *cellDelete)
 {
    Buffer *mBuf = NULLP;
 
@@ -1377,75 +1428,37 @@ uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceCfgReq *sliceReCfgReq)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-         DU_LOG("\nERROR  --> MAC : Memory allocation failed in packDuMacSliceRecfgReq");
+         DU_LOG("\nERROR  --> MAC : packDuMacCellDeleteReq(): Memory allocation failed ");
          return RFAILED;
       }
-      CMCHKPK(oduPackPointer,(PTR)sliceReCfgReq, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)cellDelete, mBuf);
+      return ODU_POST_TASK(pst,mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported in packDuMacSliceRecfgReq");
-      return RFAILED;
+      DU_LOG("\nERROR  -->  MAC: packDuMacCellDeleteReq(): Only LWLC supported ");
    }
-
-   return ODU_POST_TASK(pst,mBuf);
-
-}
-/*******************************************************************
-*
-* @brief Unpacks Slice ReCfg request received from DU APP
-*
-* @details
-*
-*    Function : unpackMacSliceCfgReq 
-*
-*    Functionality:
-*         Unpacks Slice ReCfg Request received from DU APP
-*
-* @params[in] Pointer to Handler
-*             Post structure pointer
-*             Message Buffer
-* @return ROK     - success
-*         RFAILED - failure
-*
-* ****************************************************************/
-uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf)
-{
-    if(pst->selector == ODU_SELECTOR_LWLC)
-    {
-       MacSliceCfgReq *sliceReCfgReq;
-       /* unpack the address of the structure */
-       CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceReCfgReq, mBuf);
-       ODU_PUT_MSG_BUF(mBuf);
-       return (*func)(pst, sliceReCfgReq);
-    }
-    else
-    {
-       /* Nothing to do for other selectors */
-       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for Slice ReCfg Request ");
-       ODU_PUT_MSG_BUF(mBuf);
-    }
-
-    return RFAILED;
+   return RFAILED;
 }
 
 /*******************************************************************
  *
- * @brief Pack and send Slice config response from MAC to DU APP
+ * @brief Pack and send CELL delete response from MAC to DU APP
  *
  * @details
  *
- *    Function : packDuMacSliceReCfgRsp
+ *    Function : packDuMacCellDeleteRsp
  *
  *    Functionality:
- *       Pack and send Slice config response from MAC to DU APP
+ *       Pack and send CELL  delete response from MAC to DU APP
  *
- * @params[in] 
+ * @params[in] Pst *pst, MacCellDeleteRsp *deleteRsp
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
+
+uint8_t packDuMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *cellDeleteRsp)
 {
    Buffer *mBuf = NULLP;
 
@@ -1453,69 +1466,221 @@ 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 : packDuMacCellDeleteRsp(): Memory allocation failed ");
          return RFAILED;
       }
-      /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)cfgRsp, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)cellDeleteRsp, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacSliceReCfgRsp");
+      DU_LOG("\nERROR  -->  MAC: packDuMacCellDeleteRsp(): Only LWLC supported ");
       return RFAILED;
    }
 
    return ODU_POST_TASK(pst,mBuf);
+
 }
 
 /*******************************************************************
  *
- * @brief Unpack Slice ReConfig Response from MAC to DU APP
+ * @brief Unpack cell delete response from MAC to DU APP
  *
  * @details
  *
- *    Function :unpackDuMacSliceReCfgRsp 
+ *    Function : unpackDuMacCellDeleteRsp
  *
- *    Functionality: Unpack Slice ReConfig Response from MAC to DU APP
+ *    Functionality: Unpack cell delete response from MAC to DU APP
  *
- * @params[in] 
+ * @params[in] MacDuCellDeleteRspFunc func, Pst *pst, Buffer *mBuf
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t unpackDuMacSliceReCfgRsp(MacDuSliceReCfgRspFunc func, Pst *pst, Buffer *mBuf)
+
+uint8_t unpackDuMacCellDeleteRsp(MacDuCellDeleteRspFunc func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      MacSliceCfgRsp *cfgRsp = NULLP;
+      MacCellDeleteRsp *cellDeleteRsp = NULLP;
 
-      /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&cellDeleteRsp, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, cfgRsp);
+      return (*func)(pst, cellDeleteRsp);
+   }
+   else
+   {  
+      DU_LOG("\nERROR  -->  DU APP : unpackDuMacCellDeleteRsp(): Only LWLC supported ");
+      ODU_PUT_MSG_BUF(mBuf);
+   }
+   return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Pack and send Slice Cfg request from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacSliceCfgReq
+ *
+ *    Functionality:
+ *       Pack and send Slice Cfg request from MAC to DU APP
+ *
+ * @params[in] Pst *pst, MacSliceCfgReq *sliceCfgReq
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+
+uint8_t packDuMacSliceCfgReq(Pst *pst, MacSliceCfgReq *sliceCfgReq)
+{
+   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 in packDuMacSliceCfgReq");
+         return RFAILED;
+      }
+      CMCHKPK(oduPackPointer,(PTR)sliceCfgReq, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported in packDuMacSliceCfgReq");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+
+}
+/*******************************************************************
+*
+* @brief Unpacks Slice Cfg request received from DU APP
+*
+* @details
+*
+*    Function : unpackMacSliceCfgReq 
+*
+*    Functionality:
+*         Unpacks Slice Cfg Request received from DU APP
+*
+* @params[in] Pointer to Handler
+*             Post structure pointer
+*             Message Buffer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackMacSliceCfgReq(DuMacSliceCfgReq func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacSliceCfgReq *sliceCfgReq;
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceCfgReq, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, sliceCfgReq);
+    }
+    else
+    {
+       /* Nothing to do for other selectors */
+       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for Slice Cfg Request ");
+       ODU_PUT_MSG_BUF(mBuf);
+    }
+
+    return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Pack and send Slice config response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacSliceCfgRsp
+ *
+ *    Functionality:
+ *       Pack and send Slice config response from MAC to DU APP
+ *
+ * @params[in] 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacSliceCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp)
+{
+   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 packDuMacSliceCfgRsp");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer,(PTR)cfgRsp, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacSliceCfgRsp");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpack Slice Config Response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function :unpackDuMacSliceCfgRsp 
+ *
+ *    Functionality: Unpack Slice Config Response from MAC to DU APP
+ *
+ * @params[in] 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t unpackDuMacSliceCfgRsp(MacDuSliceCfgRspFunc func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      MacSliceCfgRsp *cfgRsp = NULLP;
+
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&cfgRsp, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, cfgRsp);
    }
 
    ODU_PUT_MSG_BUF(mBuf);
    return RFAILED;
 }
 
+
 /*******************************************************************
  *
- * @brief Pack and send Slot ind from MAC to DU APP
+ * @brief Pack and send Slice ReCfg request from MAC to DU APP
  *
  * @details
  *
- *    Function : packDuMacSliceReCfgRsp
+ *    Function : packDuMacSliceRecfgReq
  *
  *    Functionality:
- *       Pack and send Slot ind from MAC to DU APP
+ *       Pack and send Slice ReCfg request from MAC to DU APP
  *
- * @params[in] Pst *pst, SlotTimingInfo *slotIndInfo 
+ * @params[in] Pst *pst, MacSliceRecfgReq *sliceRecfgReq
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t packMacSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo)
+
+uint8_t packDuMacSliceRecfgReq(Pst *pst, MacSliceRecfgReq *sliceRecfgReq)
 {
    Buffer *mBuf = NULLP;
 
@@ -1523,15 +1688,91 @@ uint8_t packMacSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo)
    {
       if (ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
       {
-         DU_LOG("\nERROR  --> MAC : Memory allocation failed at packMacSlotInd");
+         DU_LOG("\nERROR  --> MAC : Memory allocation failed in packDuMacSliceRecfgReq");
+         return RFAILED;
+      }
+      CMCHKPK(oduPackPointer,(PTR)sliceRecfgReq, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported in packDuMacSliceRecfgReq");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+
+}
+/*******************************************************************
+*
+* @brief Unpacks Slice ReCfg request received from DU APP
+*
+* @details
+*
+*    Function : unpackMacSliceCfgReq 
+*
+*    Functionality:
+*         Unpacks Slice ReCfg Request received from DU APP
+*
+* @params[in] Pointer to Handler
+*             Post structure pointer
+*             Message Buffer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackMacSliceRecfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacSliceRecfgReq *sliceRecfgReq;
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceRecfgReq, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, sliceRecfgReq);
+    }
+    else
+    {
+       /* Nothing to do for other selectors */
+       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for Slice ReCfg Request ");
+       ODU_PUT_MSG_BUF(mBuf);
+    }
+
+    return RFAILED;
+}
+
+/*******************************************************************
+ *
+ * @brief Pack and send Slice config response from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacSliceRecfgRsp
+ *
+ *    Functionality:
+ *       Pack and send Slice config response from MAC to DU APP
+ *
+ * @params[in] 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacSliceRecfgRsp(Pst *pst, MacSliceRecfgRsp *sliceRecfgRsp)
+{
+   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 packDuMacSliceRecfgRsp");
          return RFAILED;
       }
       /* pack the address of the structure */
-      CMCHKPK(oduPackPointer,(PTR)slotIndInfo, mBuf);
+      CMCHKPK(oduPackPointer,(PTR)sliceRecfgRsp, mBuf);
    }
    else
    {
-      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packMacSlotInd");
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacSliceRecfgRsp");
       return RFAILED;
    }
 
@@ -1540,35 +1781,481 @@ uint8_t packMacSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo)
 
 /*******************************************************************
  *
- * @brief Unpack Slot indication from MAC to DU APP
+ * @brief Unpack Slice ReConfig Response from MAC to DU APP
  *
  * @details
  *
- *    Function :unpackDuMacSlotInd 
+ *    Function :unpackDuMacSliceRecfgRsp 
  *
- *    Functionality: Unpack Slot Indication from MAC to DU APP
+ *    Functionality: Unpack Slice ReConfig Response from MAC to DU APP
  *
- * @params[in] DuMacSlotInd func, Pst *pst, Buffer *mBuf 
+ * @params[in] 
  * @return ROK     - success
  *         RFAILED - failure
  *
  * ****************************************************************/
-uint8_t unpackDuMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf)
+uint8_t unpackDuMacSliceRecfgRsp(MacDuSliceRecfgRspFunc func, Pst *pst, Buffer *mBuf)
 {
    if(pst->selector == ODU_SELECTOR_LWLC)
    {
-      SlotTimingInfo *slotIndInfo;
-      
+      MacSliceRecfgRsp *sliceRecfgRsp = NULLP;
+
       /* unpack the address of the structure */
-      CMCHKUNPK(oduUnpackPointer, (PTR *)&slotIndInfo, mBuf);
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&sliceRecfgRsp, mBuf);
       ODU_PUT_MSG_BUF(mBuf);
-      return (*func)(pst, slotIndInfo);
+      return (*func)(pst, sliceRecfgRsp);
    }
 
    ODU_PUT_MSG_BUF(mBuf);
    return RFAILED;
 }
 
+/*******************************************************************
+ *
+ * @brief Pack and send Slot ind from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packMacSlotInd
+ *
+ *    Functionality:
+ *       Pack and send Slot ind from MAC to DU APP
+ *
+ * @params[in] Pst *pst, SlotTimingInfo *slotIndInfo 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packMacSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo)
+{
+   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 packMacSlotInd");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer,(PTR)slotIndInfo, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packMacSlotInd");
+      return RFAILED;
+   }
+
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+ *
+ * @brief Unpack Slot indication from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function :unpackDuMacSlotInd 
+ *
+ *    Functionality: Unpack Slot Indication from MAC to DU APP
+ *
+ * @params[in] DuMacSlotInd func, Pst *pst, Buffer *mBuf 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t unpackDuMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf)
+{
+   if(pst->selector == ODU_SELECTOR_LWLC)
+   {
+      SlotTimingInfo *slotIndInfo;
+      
+      /* unpack the address of the structure */
+      CMCHKUNPK(oduUnpackPointer, (PTR *)&slotIndInfo, mBuf);
+      ODU_PUT_MSG_BUF(mBuf);
+      return (*func)(pst, slotIndInfo);
+   }
+
+   ODU_PUT_MSG_BUF(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 Pack and send UE Sync Status Indication from MAC to DU APP
+ *
+ * @details
+ *
+ *    Function : packDuMacUeSyncStatusInd
+ *
+ *    Functionality:
+ *       Pack and send UE Sync Status Indication from MAC to DU APP
+ *
+ * @params[in]
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packDuMacUeSyncStatusInd(Pst *pst, MacUeSyncStatusInd *SyncStatusInd)
+{
+   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 packDuMacUeSyncStatusInd");
+         return RFAILED;
+      }
+      /* pack the address of the structure */
+      CMCHKPK(oduPackPointer,(PTR)SyncStatusInd, mBuf);
+   }
+   else
+   {
+      DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacUeSyncStatusInd");
+      return RFAILED;
+   }
+   
+   return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+*
+* @brief Unpack UE Config Response from MAC to DU APP
+*
+* @details
+*
+*    Function :unpackDuMacUeSyncStatusInd 
+*
+*    Functionality: Unpack UE Config Response from MAC to DU APP
+*
+* @params[in]
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackDuMacUeSyncStatusInd(MacDuUeSyncStatusIndFunc func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacUeSyncStatusInd *ueSyncStatusInd = NULLP;
+
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&ueSyncStatusInd, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, ueSyncStatusInd);
+    }
+
+    ODU_PUT_MSG_BUF(mBuf);
+    return RFAILED;
+}
+
+/*******************************************************************
+*
+* @brief Packs and Sends Dl Broadcast Request from DUAPP to MAC
+*
+* @details
+*
+*    Function : packDuMacDlBroadcastReq
+*
+*    Functionality:
+*       Packs and Sends Dl Broadcast Request from DUAPP to MAC
+*
+*
+* @params[in] Post structure pointer
+*             MacDlBroadcastReq pointer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t packDuMacDlBroadcastReq(Pst *pst, MacDlBroadcastReq *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 packDuMacDlBroadcastReq");
+          return RFAILED;
+       }
+       /* pack the address of the structure */
+       CMCHKPK(oduPackPointer,(PTR)ueDel, mBuf);
+    }
+    else
+    {
+       DU_LOG("\nERROR  -->  MAC: Only LWLC supported for packDuMacDlBroadcastReq");
+       return RFAILED;
+    }
+    return ODU_POST_TASK(pst,mBuf);
+}
+
+/*******************************************************************
+*
+* @brief Unpacks Dl Broadcast Request received from DU APP
+*
+* @details
+*
+*    Function : unpackMacDlBroadcastReq 
+*
+*    Functionality:
+*         Unpacks Dl Broadcast Request received from DU APP
+*
+* @params[in] Pointer to Handler
+*             Post structure pointer
+*             Message Buffer
+* @return ROK     - success
+*         RFAILED - failure
+*
+* ****************************************************************/
+uint8_t unpackMacDlBroadcastReq(DuMacDlBroadcastReq func, Pst *pst, Buffer *mBuf)
+{
+    if(pst->selector == ODU_SELECTOR_LWLC)
+    {
+       MacDlBroadcastReq *dlBroadcast;
+
+       /* unpack the address of the structure */
+       CMCHKUNPK(oduUnpackPointer, (PTR *)&dlBroadcast, mBuf);
+       ODU_PUT_MSG_BUF(mBuf);
+       return (*func)(pst, dlBroadcast);
+    }
+    else
+    {
+       /* Nothing to do for other selectors */
+       DU_LOG("\nERROR  -->  DU APP : Only LWLC supported for Dl Broadcast Request ");
+       ODU_PUT_MSG_BUF(mBuf);
+    }
+
+    return RFAILED;
+}
 /*******************************************************************
  *
  * @brief Searches for first unset bit in ueBitMap