[Epic-ID: ODUHIGH-461][Task-ID: ODUHIGH-468]Unused files and functions removed/disabled
[o-du/l2.git] / src / cm / rgr.c
index c3c6cd1..070d06b 100755 (executable)
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrBndReq
+*     Func : cmUnpkRgrCfgReq
 *
 *
-*     Desc : Request from RRM to MAC to bind the interface saps
+*     Desc : Configuration Request from RRM to MAC for 
+ * configuring Cell/Ue/Lc
 *
 *
 *     Ret  : S16
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrBndReq
+S16 cmUnpkRgrCfgReq
 (
-Pst* pst,
-SuId suId,
-SpId spId
+RgrCfgReq func,
+Pst *pst,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
-
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
+   RgrCfgTransId transId;
+   RgrCfgReqInfo *cfgReqInfo;
+   
+#if 0
+   if (SUnpkS16(&spId, mBuf) != ROK) {
+      SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR001, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR021, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
-   if (SPkS16(spId, mBuf) != ROK) {
+#endif
+
+   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
+      SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR002, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR022, (ErrVal)0, "Packing failed");
 #endif
-      SPutMsg(mBuf);
       return RFAILED;
    }
-   if (SPkS16(suId, mBuf) != ROK) {
+   if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&cfgReqInfo,sizeof(RgrCfgReqInfo))) != ROK) {
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR003, (ErrVal)0, "Packing failed");
+            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
+            (ErrVal)ERGR023, (ErrVal)0, "Packing failed");
 #endif
       SPutMsg(mBuf);
       return RFAILED;
    }
-   pst->event = (Event) EVTRGRBNDREQ;
-   return (SPstTsk(pst,mBuf));
+   memset(cfgReqInfo, 0, sizeof(RgrCfgReqInfo));
+   if (pst->selector == ODU_SELECTOR_LC) 
+      if (cmUnpkRgrCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
+         SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(RgrCfgReqInfo));
+         SPutMsg(mBuf);
+#if (ERRCLASS & ERRCLS_ADD_RES)
+         SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
+               __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
+               (ErrVal)ERGR024, (ErrVal)0, "Packing failed");
+#endif
+         return RFAILED;
+      }
+   SPutMsg(mBuf);
+   return ((*func)(pst, transId, cfgReqInfo));
 }
 
+/* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrBndReq
+*     Func : cmPkRgrTtiIndInfo
 *
 *
-*     Desc : Request from RRM to MAC to bind the interface saps
+*     Desc : Packs the TTI indication information.
 *
 *
 *     Ret  : S16
@@ -112,47 +131,50 @@ SpId spId
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrBndReq
+S16 cmPkRgrTtiIndInfo
 (
-RgrBndReq func,
-Pst *pst,
+RgrTtiIndInfo *param,
+Buffer        *mBuf
+)
+{
+   CMCHKPK(oduUnpackUInt16, param->sfn, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+   return ROK;
+}
+\f
+/***********************************************************
+*
+*     Func : cmUnpkRgrTtiIndInfo
+*
+*
+*     Desc : Unpacking for RgrTtiIndInfo
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrTtiIndInfo
+(
+RgrTtiIndInfo *param,
 Buffer *mBuf
 )
 {
-   SuId suId;
-   SpId spId;
-   
 
-   if (SUnpkS16(&suId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR004, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (SUnpkS16(&spId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR005, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   SPutMsg(mBuf);
-   return ((*func)(pst, suId, spId));
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->sfn, mBuf);
+   return ROK;
 }
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrBndCfm
+*     Func : cmPkRgrTtiInd
 *
 *
-*     Desc : Confirmation from MAC to RRM for the bind/Unbind 
- * request for the interface saps
+*     Desc : TTI indication  from MAC to RRM
 *
 *
 *     Ret  : S16
@@ -162,11 +184,11 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrBndCfm
+S16 cmPkRgrTtiInd
 (
 Pst* pst,
 SuId suId,
-uint8_t status
+RgrTtiIndInfo *ttiInd
 )
 {
    Buffer *mBuf = NULLP;
@@ -175,16 +197,17 @@ uint8_t status
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR006, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR025, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
-   if (oduUnpackUInt8(status, mBuf) != ROK) {
+   if (cmPkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR007, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR026, (ErrVal)0, "Packing failed");
 #endif
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
    }
@@ -192,23 +215,24 @@ uint8_t status
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR008, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR027, (ErrVal)0, "Packing failed");
 #endif
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
    }
-   pst->event = (Event) EVTRGRBNDCFM;
+   SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
+   pst->event = (Event) EVTRGRTTIIND;
    return (SPstTsk(pst,mBuf));
 }
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrBndCfm
+*     Func : cmUnpkRgrTtiInd
 *
 *
-*     Desc : Confirmation from MAC to RRM for the bind/Unbind 
- * request for the interface saps
+*     Desc : TTI indication from MAC to RRM
 *
 *
 *     Ret  : S16
@@ -218,15 +242,15 @@ uint8_t status
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrBndCfm
+S16 cmUnpkRgrTtiInd
 (
-RgrBndCfm func,
+RgrTtiInd func,
 Pst *pst,
 Buffer *mBuf
 )
 {
    SuId suId;
-   uint8_t status;
+   RgrTtiIndInfo *ttiInd;
    
 
    if (SUnpkS16(&suId, mBuf) != ROK) {
@@ -234,30 +258,45 @@ Buffer *mBuf
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR009, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR028, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
-   if (oduPackUInt8(&status, mBuf) != ROK) {
+   if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ttiInd, sizeof(RgrTtiIndInfo))) != ROK) 
+   {
+#if (ERRCLASS & ERRCLS_ADD_RES)      
+      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
+          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
+          (ErrVal)ERGR029, (ErrVal)0, "UnPacking failed");
+#endif      
+      SPutMsg(mBuf);
+      return RFAILED;
+   }
+   if (cmUnpkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
+      /*ccpu00114888- Memory Leak issue- Start*/
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, 
+            sizeof(RgrTtiIndInfo));
+      /*ccpu00114888- Memory Leak issue- End*/
       SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR010, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR030, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
    SPutMsg(mBuf);
-   return ((*func)(pst, suId, status));
+   return ((*func)(pst, suId, ttiInd));
 }
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUbndReq
+*     Func : cmPkRgrCfgCfm
 *
 *
-*     Desc : Request from RRM to MAC to Unbind the interface saps
+*     Desc : Configuration Confirm from MAC to RRM
 *
 *
 *     Ret  : S16
@@ -267,11 +306,11 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUbndReq
+S16 cmPkRgrCfgCfm
 (
 Pst* pst,
-SpId spId,
-Reason reason
+RgrCfgTransId transId,
+uint8_t status
 )
 {
    Buffer *mBuf = NULLP;
@@ -280,39 +319,39 @@ Reason reason
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR011, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR031, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
-   if (SPkS16(reason, mBuf) != ROK) {
+   if (oduUnpackUInt8(status, mBuf) != ROK) {
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR012, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR032, (ErrVal)0, "Packing failed");
 #endif
       SPutMsg(mBuf);
       return RFAILED;
    }
-   if (SPkS16(spId, mBuf) != ROK) {
+   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR013, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR033, (ErrVal)0, "Packing failed");
 #endif
       SPutMsg(mBuf);
       return RFAILED;
    }
-   pst->event = (Event) EVTRGRUBNDREQ;
+   pst->event = (Event) EVTMACSCHCFGCFM;
    return (SPstTsk(pst,mBuf));
 }
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUbndReq
+*     Func : cmUnpkRgrCfgCfm
 *
 *
-*     Desc : Request from RRM to MAC to Unbind the interface saps
+*     Desc : Configuration Confirm from MAC to RRM
 *
 *
 *     Ret  : S16
@@ -322,47 +361,46 @@ Reason reason
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUbndReq
+S16 cmUnpkRgrCfgCfm
 (
-RgrUbndReq func,
+RgrCfgCfm func,
 Pst *pst,
 Buffer *mBuf
 )
 {
-   SpId spId;
-   Reason reason;
+   RgrCfgTransId transId;
+   uint8_t status;
    
 
-   if (SUnpkS16(&spId, mBuf) != ROK) {
+   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
       SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR014, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR036, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
-   if (SUnpkS16(&reason, mBuf) != ROK) {
+   if (oduPackUInt8(&status, mBuf) != ROK) {
       SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
       SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR015, (ErrVal)0, "Packing failed");
+         (ErrVal)ERGR037, (ErrVal)0, "Packing failed");
 #endif
       return RFAILED;
    }
    SPutMsg(mBuf);
-   return ((*func)(pst, spId, reason));
+   return ((*func)(pst, transId, status));
 }
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCfgReq
+*     Func : cmPkRgrCfgTransId
 *
 *
-*     Desc : Configuration Request from RRM to MAC for 
- * configuring Cell/Ue/Lc
+*     Desc : Transaction ID between MAC and RRM
 *
 *
 *     Ret  : S16
@@ -372,70 +410,29 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCfgReq
+S16 cmPkRgrCfgTransId
 (
-RgrCfgReq func,
-Pst *pst,
+RgrCfgTransId *param,
 Buffer *mBuf
 )
 {
-   RgrCfgTransId transId;
-   RgrCfgReqInfo *cfgReqInfo;
-   
-#if 0
-   if (SUnpkS16(&spId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR021, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-#endif
 
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR022, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo,sizeof(RgrCfgReqInfo))) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR023, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
+   S32 i;
+
+   for (i=RGR_CFG_TRANSID_SIZE-1; i >= 0; i--) {
+      CMCHKPK(oduUnpackUInt8, param->trans[i], mBuf);
    }
-   memset(cfgReqInfo, 0, sizeof(RgrCfgReqInfo));
-   if (pst->selector == ODU_SELECTOR_LC) 
-      if (cmUnpkRgrCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
-         SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(RgrCfgReqInfo));
-         SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-         SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-               __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-               (ErrVal)ERGR024, (ErrVal)0, "Packing failed");
-#endif
-         return RFAILED;
-      }
-   SPutMsg(mBuf);
-   return ((*func)(pst, transId, cfgReqInfo));
+   return ROK;
 }
 
-/* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrTtiIndInfo
+*     Func : cmUnpkRgrCfgTransId
 *
 *
-*     Desc : Packs the TTI indication information.
+*     Desc : Transaction ID between MAC and RRM
 *
 *
 *     Ret  : S16
@@ -445,23 +442,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrTtiIndInfo
+S16 cmUnpkRgrCfgTransId
 (
-RgrTtiIndInfo *param,
-Buffer        *mBuf
+RgrCfgTransId *param,
+Buffer *mBuf
 )
 {
-   CMCHKPK(oduUnpackUInt16, param->sfn, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+
+   S32 i;
+
+   for (i=0; i<RGR_CFG_TRANSID_SIZE; i++) {
+      CMCHKUNPK(oduPackUInt8, &param->trans[i], mBuf);
+   }
    return ROK;
 }
+
+
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrTtiIndInfo
+*     Func : cmPkRgrDlHqCfg
 *
 *
-*     Desc : Unpacking for RgrTtiIndInfo
+*     Desc :  Downlink HARQ configuration per Cell
+*
 *
 *     Ret  : S16
 *
@@ -470,25 +474,27 @@ Buffer        *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrTtiIndInfo
+S16 cmPkRgrDlHqCfg
 (
-RgrTtiIndInfo *param,
+RgrDlHqCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->sfn, mBuf);
+
+   CMCHKPK(oduUnpackUInt8, param->maxMsg4HqTx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxDlHqTx, mBuf);
    return ROK;
 }
 
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrTtiInd
+*     Func : cmUnpkRgrDlHqCfg
 *
 *
-*     Desc : TTI indication  from MAC to RRM
+*     Desc :  Downlink HARQ configuration per Cell
 *
 *
 *     Ret  : S16
@@ -498,55 +504,27 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrTtiInd
+S16 cmUnpkRgrDlHqCfg
 (
-Pst* pst,
-SuId suId,
-RgrTtiIndInfo *ttiInd
+RgrDlHqCfg *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
 
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR025, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (cmPkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR026, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (SPkS16(suId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR027, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
-   pst->event = (Event) EVTRGRTTIIND;
-   return (SPstTsk(pst,mBuf));
+
+   CMCHKUNPK(oduPackUInt8, &param->maxDlHqTx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxMsg4HqTx, mBuf);
+   return ROK;
 }
 
+
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrTtiInd
+*     Func : cmPkRgrRntiCfg
 *
 *
-*     Desc : TTI indication from MAC to RRM
+*     Desc : Range of RNTIs managed by MAC
 *
 *
 *     Ret  : S16
@@ -556,61 +534,26 @@ RgrTtiIndInfo *ttiInd
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrTtiInd
+S16 cmPkRgrRntiCfg
 (
-RgrTtiInd func,
-Pst *pst,
+RgrRntiCfg *param,
 Buffer *mBuf
 )
 {
-   SuId suId;
-   RgrTtiIndInfo *ttiInd;
-   
 
-   if (SUnpkS16(&suId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR028, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&ttiInd, sizeof(RgrTtiIndInfo))) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)      
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-          (ErrVal)ERGR029, (ErrVal)0, "UnPacking failed");
-#endif      
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (cmUnpkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
-      /*ccpu00114888- Memory Leak issue- Start*/
-      SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, 
-            sizeof(RgrTtiIndInfo));
-      /*ccpu00114888- Memory Leak issue- End*/
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR030, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   SPutMsg(mBuf);
-   return ((*func)(pst, suId, ttiInd));
+   CMCHKPK(oduUnpackUInt16, param->size, mBuf);
+   CMCHKPK(cmPkLteRnti, param->startRnti, mBuf);
+   return ROK;
 }
 
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCfgCfm
+*     Func : cmUnpkRgrRntiCfg
 *
 *
-*     Desc : Configuration Confirm from MAC to RRM
+*     Desc : Range of RNTIs managed by MAC
 *
 *
 *     Ret  : S16
@@ -620,52 +563,26 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCfgCfm
+S16 cmUnpkRgrRntiCfg
 (
-Pst* pst,
-RgrCfgTransId transId,
-uint8_t status
+RgrRntiCfg *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
 
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR031, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (oduUnpackUInt8(status, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR032, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR033, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   pst->event = (Event) EVTMACSCHCFGCFM;
-   return (SPstTsk(pst,mBuf));
+
+   CMCHKUNPK(cmUnpkLteRnti, &param->startRnti, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->size, mBuf);
+   return ROK;
 }
 
-\f
+#ifdef EMTC_ENABLE
 /***********************************************************
 *
-*     Func : cmUnpkRgrCfgCfm
+*     Func : cmPkRgrEmtcRntiCfg
 *
 *
-*     Desc : Configuration Confirm from MAC to RRM
+*     Desc : Range of Emtc RNTIs managed by MAC
 *
 *
 *     Ret  : S16
@@ -675,47 +592,30 @@ uint8_t status
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCfgCfm
+S16 cmPkRgrEmtcRntiCfg
 (
-RgrCfgCfm func,
-Pst *pst,
+RgrEmtcRntiCfg *param,
 Buffer *mBuf
 )
 {
-   RgrCfgTransId transId;
-   uint8_t status;
-   
 
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR036, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (oduPackUInt8(&status, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR037, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   SPutMsg(mBuf);
-   return ((*func)(pst, transId, status));
+
+   CMCHKPK(oduUnpackUInt16, param->size, mBuf);
+   CMCHKPK(cmPkLteRnti, param->rntiCeModeBRange, mBuf);
+   CMCHKPK(cmPkLteRnti, param->rntiCeModeBStart, mBuf);
+   CMCHKPK(cmPkLteRnti, param->rntiCeModeARange, mBuf);
+   CMCHKPK(cmPkLteRnti, param->rntiCeModeAStart, mBuf);
+   return ROK;
 }
 
-/* rgr_c_001.main_4: ADD-Added for SI Enhancement. */
-#ifdef RGR_SI_SCH
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrSiCfgCfm
+*     Func : cmUnpkRgrEmtcRntiCfg
 *
 *
-*     Desc : SI Configuration Confirm from MAC to RRM
+*     Desc : Range of Emtc RNTIs managed by MAC
 *
 *
 *     Ret  : S16
@@ -725,64 +625,31 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrSiCfgCfm
+S16 cmUnpkRgrEmtcRntiCfg
 (
-Pst* pst,
-SuId suId,
-RgrCfgTransId transId,
-uint8_t status
+RgrEmtcRntiCfg *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
 
 
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR038, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (oduUnpackUInt8(status, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR039, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR040, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (SPkS16(suId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR041, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
+   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeAStart, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeARange, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeBStart, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeBRange, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->size, mBuf);
 
-   pst->event = (Event) EVTRGRSICFGCFM;
-   return (SPstTsk(pst,mBuf));
+   return ROK;
 }
+#endif
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrSiCfgCfm
+*     Func : cmPkRgrDlCmnCodeRateCfg
 *
 *
-*     Desc : Configuration Confirm from MAC to RRM
+*     Desc : Downlink common channel code rate configuration per cell
 *
 *
 *     Ret  : S16
@@ -792,57 +659,27 @@ uint8_t status
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrSiCfgCfm
+S16 cmPkRgrDlCmnCodeRateCfg
 (
-RgrSiCfgCfm func,
-Pst *pst,
+RgrDlCmnCodeRateCfg *param,
 Buffer *mBuf
 )
 {
-   SuId suId;
-   RgrCfgTransId transId;
-   uint8_t status;
-   
 
-   if (SUnpkS16(&suId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR042, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR043, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (oduPackUInt8(&status, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR044, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   SPutMsg(mBuf);
-   return ((*func)(pst, suId, transId, status));
+   CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->pdcchCodeRate, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->bcchPchRaCodeRate, mBuf);
+   return ROK;
 }
-#endif/*RGR_SI_SCH*/
+
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCfgTransId
+*     Func : cmUnpkRgrDlCmnCodeRateCfg
 *
 *
-*     Desc : Transaction ID between MAC and RRM
+*     Desc : Downlink common channel code rate configuration per cell
 *
 *
 *     Ret  : S16
@@ -852,18 +689,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCfgTransId
+S16 cmUnpkRgrDlCmnCodeRateCfg
 (
-RgrCfgTransId *param,
+RgrDlCmnCodeRateCfg *param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
-
-   for (i=RGR_CFG_TRANSID_SIZE-1; i >= 0; i--) {
-      CMCHKPK(oduUnpackUInt8, param->trans[i], mBuf);
-   }
+   CMCHKUNPK(oduPackUInt16, &param->bcchPchRaCodeRate, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->pdcchCodeRate, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ccchCqi, mBuf);
    return ROK;
 }
 
@@ -871,10 +706,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCfgTransId
+*     Func : cmPkRgrCfiCfg
 *
 *
-*     Desc : Transaction ID between MAC and RRM
+*     Desc : Control Format Indicator (CFI) configuration per cell
 *
 *
 *     Ret  : S16
@@ -884,18 +719,13 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCfgTransId
+S16 cmPkRgrCfiCfg
 (
-RgrCfgTransId *param,
+RgrCfiCfg *param,
 Buffer *mBuf
 )
 {
-
-   S32 i;
-
-   for (i=0; i<RGR_CFG_TRANSID_SIZE; i++) {
-      CMCHKUNPK(oduPackUInt8, &param->trans[i], mBuf);
-   }
+   CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
    return ROK;
 }
 
@@ -903,10 +733,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrDlHqCfg
+*     Func : cmUnpkRgrCfiCfg
 *
 *
-*     Desc :  Downlink HARQ configuration per Cell
+*     Desc : Control Format Indicator (CFI) configuration per cell
 *
 *
 *     Ret  : S16
@@ -916,16 +746,14 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDlHqCfg
+S16 cmUnpkRgrCfiCfg
 (
-RgrDlHqCfg *param,
+RgrCfiCfg *param,
 Buffer *mBuf
 )
 {
 
-
-   CMCHKPK(oduUnpackUInt8, param->maxMsg4HqTx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxDlHqTx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->cfi, mBuf);
    return ROK;
 }
 
@@ -933,10 +761,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDlHqCfg
+*     Func : cmPkRgrPuschSubBandCfg
 *
 *
-*     Desc :  Downlink HARQ configuration per Cell
+*     Desc : PUSCH sub-band configuration per cell
 *
 *
 *     Ret  : S16
@@ -946,16 +774,21 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDlHqCfg
+S16 cmPkRgrPuschSubBandCfg
 (
-RgrDlHqCfg *param,
+RgrPuschSubBandCfg *param,
 Buffer *mBuf
 )
 {
 
+   S32 i;
 
-   CMCHKUNPK(oduPackUInt8, &param->maxDlHqTx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxMsg4HqTx, mBuf);
+   for (i=param->numSubbands-1; i >= 0; i--) {
+      CMCHKPK(oduUnpackUInt8, param->dmrs[i], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->size, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numSubbands, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->subbandStart, mBuf);
    return ROK;
 }
 
@@ -963,10 +796,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrRntiCfg
+*     Func : cmUnpkRgrPuschSubBandCfg
 *
 *
-*     Desc : Range of RNTIs managed by MAC
+*     Desc : PUSCH sub-band configuration per cell
 *
 *
 *     Ret  : S16
@@ -976,15 +809,20 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrRntiCfg
+S16 cmUnpkRgrPuschSubBandCfg
 (
-RgrRntiCfg *param,
+RgrPuschSubBandCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt16, param->size, mBuf);
-   CMCHKPK(cmPkLteRnti, param->startRnti, mBuf);
+   S32 i;
+   CMCHKUNPK(oduPackUInt8, &param->subbandStart, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numSubbands, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->size, mBuf);
+   for (i=0; i<param->numSubbands; i++) {
+      CMCHKUNPK(oduPackUInt8, &param->dmrs[i], mBuf);
+   }
    return ROK;
 }
 
@@ -992,10 +830,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrRntiCfg
+*     Func : cmPkRgrUlCmnCodeRateCfg
 *
 *
-*     Desc : Range of RNTIs managed by MAC
+*     Desc : Uplink common channel code rate configuration per cell
 *
 *
 *     Ret  : S16
@@ -1005,26 +843,24 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrRntiCfg
+S16 cmPkRgrUlCmnCodeRateCfg
 (
-RgrRntiCfg *param,
+RgrUlCmnCodeRateCfg *param,
 Buffer *mBuf
 )
 {
-
-
-   CMCHKUNPK(cmUnpkLteRnti, &param->startRnti, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->size, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
    return ROK;
 }
 
-#ifdef EMTC_ENABLE
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrEmtcRntiCfg
+*     Func : cmUnpkRgrUlCmnCodeRateCfg
 *
 *
-*     Desc : Range of Emtc RNTIs managed by MAC
+*     Desc : Uplink common channel code rate configuration per cell
 *
 *
 *     Ret  : S16
@@ -1034,19 +870,14 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrEmtcRntiCfg
+S16 cmUnpkRgrUlCmnCodeRateCfg
 (
-RgrEmtcRntiCfg *param,
+RgrUlCmnCodeRateCfg *param,
 Buffer *mBuf
 )
 {
 
-
-   CMCHKPK(oduUnpackUInt16, param->size, mBuf);
-   CMCHKPK(cmPkLteRnti, param->rntiCeModeBRange, mBuf);
-   CMCHKPK(cmPkLteRnti, param->rntiCeModeBStart, mBuf);
-   CMCHKPK(cmPkLteRnti, param->rntiCeModeARange, mBuf);
-   CMCHKPK(cmPkLteRnti, param->rntiCeModeAStart, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ccchCqi, mBuf);
    return ROK;
 }
 
@@ -1054,10 +885,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrEmtcRntiCfg
+*     Func : cmPkRgrUlTrgCqiCfg
 *
 *
-*     Desc : Range of Emtc RNTIs managed by MAC
+*     Desc : Target Uplink CQI to achieve through group power control configured per cell
 *
 *
 *     Ret  : S16
@@ -1067,31 +898,24 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrEmtcRntiCfg
+S16 cmPkRgrUlTrgCqiCfg
 (
-RgrEmtcRntiCfg *param,
+RgrUlTrgCqiCfg *param,
 Buffer *mBuf
 )
 {
-
-
-   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeAStart, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeARange, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeBStart, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->rntiCeModeBRange, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->size, mBuf);
-
+   CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
    return ROK;
 }
-#endif
+
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrDlCmnCodeRateCfg
+*     Func : cmUnpkRgrUlTrgCqiCfg
 *
 *
-*     Desc : Downlink common channel code rate configuration per cell
+*     Desc : Target Uplink CQI to achieve through group power control configured per cell
 *
 *
 *     Ret  : S16
@@ -1101,16 +925,14 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDlCmnCodeRateCfg
+S16 cmUnpkRgrUlTrgCqiCfg
 (
-RgrDlCmnCodeRateCfg *param,
+RgrUlTrgCqiCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->pdcchCodeRate, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->bcchPchRaCodeRate, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->trgCqi, mBuf);
    return ROK;
 }
 
@@ -1118,10 +940,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDlCmnCodeRateCfg
+*     Func : cmPkRgrBwCfg
 *
 *
-*     Desc : Downlink common channel code rate configuration per cell
+*     Desc : Bandwidth configuration per cell
 *
 *
 *     Ret  : S16
@@ -1131,479 +953,215 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDlCmnCodeRateCfg
+S16 cmPkRgrBwCfg
 (
-RgrDlCmnCodeRateCfg *param,
+RgrBwCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt16, &param->bcchPchRaCodeRate, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->pdcchCodeRate, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ccchCqi, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ulTotalBw, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->dlTotalBw, mBuf);
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrCfiCfg
-*
-*
-*     Desc : Control Format Indicator (CFI) configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrCfiCfg
+#ifdef EMTC_ENABLE 
+/* EMTC related pack changes start*/
+
+S16 cmPkRgrEmtcSiCfg
 (
-RgrCfiCfg *param,
+RgrEmtcSiCfg *param,
 Buffer *mBuf
 )
 {
-   CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
-   return ROK;
+
+   S32 i;
+       
+   CMCHKPK(oduUnpackUInt8, param->siHoppingEnable, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->modPrd, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->siWinSizeBr, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->sib1Repetition, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->siRepetition, mBuf);
+   
+   CMCHKPK(oduUnpackUInt16, param->startSymbolLc, mBuf);
+   //CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
+   /*Changes by SIMRAN*/
+    if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
+    {
+      CMCHKPK(oduUnpackUInt16, param->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
+    }
+    else
+   {
+      //CMCHKPK(SPkU64,param->fddDLOrTddSfBitmapLC.u.ptn40, mBuf);
+      for (i=0; i<2; i++) {
+         CMCHKPK(oduUnpackUInt32, param->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
+      }
+
+   }
+   CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
+   //CMCHKPK(oduUnpackUInt16, param->fddDlOrTddSfBitmapBR, mBuf);
+   
+     for (i= (param->numSi-1); i >= 0; i--) {
+                CMCHKPK(oduUnpackUInt8, param->schdInfo[i].emtcSiNarrowBand, mBuf);
+                CMCHKPK(oduUnpackUInt16, param->schdInfo[i].emtcSiTbs, mBuf);
+     }
+
+     for (i= (param->numSi-1); i >= 0; i--) {
+         CMCHKPK(oduUnpackUInt32, param->siPeriodicity[i], mBuf);
+       }
+   
+     CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);  
+
+ return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrCfiCfg
-*
-*
-*     Desc : Control Format Indicator (CFI) configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrCfiCfg
+
+
+S16 cmPkRgrEmtcRachCfg
 (
-RgrCfiCfg *param,
+RgrEmtcRachCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt8, &param->cfi, mBuf);
-   return ROK;
-}
-
+   S32 i;
+       
+   CMCHKPK(oduUnpackUInt8, param->emtcCeLvlSupported, mBuf);
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrPuschSubBandCfg
-*
-*
-*     Desc : PUSCH sub-band configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrPuschSubBandCfg
-(
-RgrPuschSubBandCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-
-   for (i=param->numSubbands-1; i >= 0; i--) {
-      CMCHKPK(oduUnpackUInt8, param->dmrs[i], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->size, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numSubbands, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->subbandStart, mBuf);
-   return ROK;
+   for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
+         CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcRarHopping, mBuf);
+         CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcWinSize, mBuf);
+         CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcContResTmr, mBuf);
+         CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].emtcPreambleTransMax, mBuf);
+         CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.firstPreamble, mBuf);
+         CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.lastPreamble, mBuf);
+       }
+   
+ return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrPuschSubBandCfg
-*
-*
-*     Desc : PUSCH sub-band configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrPuschSubBandCfg
+S16 cmPkRgrEmtcPdschCfg
 (
-RgrPuschSubBandCfg *param,
+RgrEmtcPdschCfg*param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
-   CMCHKUNPK(oduPackUInt8, &param->subbandStart, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numSubbands, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->size, mBuf);
-   for (i=0; i<param->numSubbands; i++) {
-      CMCHKUNPK(oduPackUInt8, &param->dmrs[i], mBuf);
-   }
-   return ROK;
+   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
+   
+ return ROK;
 }
 
-
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrUlCmnCodeRateCfg
-*
-*
-*     Desc : Uplink common channel code rate configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrUlCmnCodeRateCfg
+S16 cmPkRgrEmtcPuschCfg
 (
-RgrUlCmnCodeRateCfg *param,
+RgrEmtcPuschCfg*param,
 Buffer *mBuf
 )
 {
-   CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
+   CMCHKPK(oduUnpackUInt8,  param->emtcHoppingOffset, mBuf);
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrUlCmnCodeRateCfg
-*
-*
-*     Desc : Uplink common channel code rate configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUlCmnCodeRateCfg
+
+S16 cmPkRgrEmtcPucchCfg
 (
-RgrUlCmnCodeRateCfg *param,
+RgrEmtcPucchCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt8, &param->ccchCqi, mBuf);
-   return ROK;
+   S32 i;
+   for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) 
+   {
+         CMCHKPK(oduUnpackUInt16, param->emtcN1pucchAnInfoLst[i], mBuf);
+   }
+
+       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl0, mBuf);
+       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
+       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
+       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl3, mBuf);        
+   
+ return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrUlTrgCqiCfg
-*
-*
-*     Desc : Target Uplink CQI to achieve through group power control configured per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrUlTrgCqiCfg
+S16 cmPkRgrEmtcPrachCeParamCfg
 (
-RgrUlTrgCqiCfg *param,
+RgrEmtcPrachCEParamLst *param,
 Buffer *mBuf
 )
 {
-   CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcPrachCfgIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcPrachFreqOffset, mBuf);
+   CMCHKPK(oduUnpackUInt16,  param->emtcPrachStartSubFrame, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcMaxPremAttemptCE, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcNumRepPerPreambleAtt, mBuf);
+   CMCHKPK(oduUnpackUInt8,  param->emtcNumMpdcchNBtoMonitor, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNBtoMonitor[0], mBuf);
+   CMCHKPK(oduUnpackUInt8,  param->emtcMpdcchNBtoMonitor[1], mBuf);
+   CMCHKPK(oduUnpackUInt16, param->emtcMpdcchNumRep, mBuf);
+   CMCHKPK(oduUnpackUInt8,  param->emtcPrachHoppingCfg, mBuf);   
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrUlTrgCqiCfg
-*
-*
-*     Desc : Target Uplink CQI to achieve through group power control configured per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUlTrgCqiCfg
+
+S16 cmPkRgrEmtcPrachCfg
 (
-RgrUlTrgCqiCfg *param,
+RgrEmtcPrachCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt8, &param->trgCqi, mBuf);
-   return ROK;
+   S32 i;
+       CMCHKPK(oduUnpackUInt8, param->emtcMpdcchStartSFCssRaFdd, mBuf);
+       CMCHKPK(oduUnpackUInt8, param->emtcPrachHopingOffset, mBuf);
+       CMCHKPK(oduUnpackUInt8, param->emtcInitialCElevel, mBuf);
+   for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {           
+       CMCHKPK(cmPkRgrEmtcPrachCeParamCfg, &param->emtcPrachCEparmLst[i], mBuf);
+       }
+   
+ return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrBwCfg
-*
-*
-*     Desc : Bandwidth configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrBwCfg
+
+
+S16 cmPkRgrEmtcCfg
 (
-RgrBwCfg *param,
+RgrEmtcCellCfg *param,
 Buffer *mBuf
 )
 {
-
-   CMCHKPK(oduUnpackUInt8, param->ulTotalBw, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->dlTotalBw, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->pci, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->emtcT300Tmr, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->emtcT301Tmr, mBuf);
+   CMCHKPK(cmPkRgrEmtcSiCfg, &param->emtcSiCfg, mBuf);
+   CMCHKPK(cmPkRgrEmtcRachCfg, &param->emtcRachCfg, mBuf);
+   CMCHKPK(cmPkRgrEmtcPdschCfg, &param->emtcPdschCfg, mBuf);
+   CMCHKPK(cmPkRgrEmtcPuschCfg, &param->emtcPuschCfg, mBuf);
+   CMCHKPK(cmPkRgrEmtcPrachCfg, &param->emtcPrachCfg, mBuf);
+   CMCHKPK(cmPkRgrEmtcPucchCfg, &param->emtcPucchCfg, mBuf);
+   CMCHKPK(cmPkRgrEmtcRntiCfg, &param->emtcMacRnti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcPdschNbIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNbIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->emtcPuschNbIdx, mBuf);
+   
    return ROK;
 }
 
+/* EMTC related pack changes end*/
 
-#ifdef EMTC_ENABLE 
-/* EMTC related pack changes start*/
+/* EMTC related unpack changes start*/
 
-S16 cmPkRgrEmtcSiCfg
-(
-RgrEmtcSiCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-       
-   CMCHKPK(oduUnpackUInt8, param->siHoppingEnable, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->modPrd, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->siWinSizeBr, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->sib1Repetition, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->siRepetition, mBuf);
-   
-   CMCHKPK(oduUnpackUInt16, param->startSymbolLc, mBuf);
-   //CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
-   /*Changes by SIMRAN*/
-    if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
-    {
-      CMCHKPK(oduUnpackUInt16, param->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
-    }
-    else
-   {
-      //CMCHKPK(SPkU64,param->fddDLOrTddSfBitmapLC.u.ptn40, mBuf);
-      for (i=0; i<2; i++) {
-         CMCHKPK(oduUnpackUInt32, param->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
-      }
-
-   }
-   CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
-   //CMCHKPK(oduUnpackUInt16, param->fddDlOrTddSfBitmapBR, mBuf);
-   
-     for (i= (param->numSi-1); i >= 0; i--) {
-                CMCHKPK(oduUnpackUInt8, param->schdInfo[i].emtcSiNarrowBand, mBuf);
-                CMCHKPK(oduUnpackUInt16, param->schdInfo[i].emtcSiTbs, mBuf);
-     }
-
-     for (i= (param->numSi-1); i >= 0; i--) {
-         CMCHKPK(oduUnpackUInt32, param->siPeriodicity[i], mBuf);
-       }
-   
-     CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);  
-
- return ROK;
-}
-
-
-
-
-S16 cmPkRgrEmtcRachCfg
-(
-RgrEmtcRachCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-       
-   CMCHKPK(oduUnpackUInt8, param->emtcCeLvlSupported, mBuf);
-
-   for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
-         CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcRarHopping, mBuf);
-         CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcWinSize, mBuf);
-         CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcContResTmr, mBuf);
-         CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].emtcPreambleTransMax, mBuf);
-         CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.firstPreamble, mBuf);
-         CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.lastPreamble, mBuf);
-       }
-   
- return ROK;
-}
-
-
-S16 cmPkRgrEmtcPdschCfg
-(
-RgrEmtcPdschCfg*param,
-Buffer *mBuf
-)
-{
-
-   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
-   
- return ROK;
-}
-
-S16 cmPkRgrEmtcPuschCfg
-(
-RgrEmtcPuschCfg*param,
-Buffer *mBuf
-)
-{
-   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
-   CMCHKPK(oduUnpackUInt8,  param->emtcHoppingOffset, mBuf);
-   return ROK;
-}
-
-
-
-S16 cmPkRgrEmtcPucchCfg
-(
-RgrEmtcPucchCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-   for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) 
-   {
-         CMCHKPK(oduUnpackUInt16, param->emtcN1pucchAnInfoLst[i], mBuf);
-   }
-
-       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl0, mBuf);
-       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
-       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
-       CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl3, mBuf);        
-   
- return ROK;
-}
-
-
-S16 cmPkRgrEmtcPrachCeParamCfg
-(
-RgrEmtcPrachCEParamLst *param,
-Buffer *mBuf
-)
-{
-   CMCHKPK(oduUnpackUInt8, param->emtcPrachCfgIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcPrachFreqOffset, mBuf);
-   CMCHKPK(oduUnpackUInt16,  param->emtcPrachStartSubFrame, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcMaxPremAttemptCE, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcNumRepPerPreambleAtt, mBuf);
-   CMCHKPK(oduUnpackUInt8,  param->emtcNumMpdcchNBtoMonitor, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNBtoMonitor[0], mBuf);
-   CMCHKPK(oduUnpackUInt8,  param->emtcMpdcchNBtoMonitor[1], mBuf);
-   CMCHKPK(oduUnpackUInt16, param->emtcMpdcchNumRep, mBuf);
-   CMCHKPK(oduUnpackUInt8,  param->emtcPrachHoppingCfg, mBuf);   
-   return ROK;
-}
-
-
-
-S16 cmPkRgrEmtcPrachCfg
-(
-RgrEmtcPrachCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-       CMCHKPK(oduUnpackUInt8, param->emtcMpdcchStartSFCssRaFdd, mBuf);
-       CMCHKPK(oduUnpackUInt8, param->emtcPrachHopingOffset, mBuf);
-       CMCHKPK(oduUnpackUInt8, param->emtcInitialCElevel, mBuf);
-   for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {           
-       CMCHKPK(cmPkRgrEmtcPrachCeParamCfg, &param->emtcPrachCEparmLst[i], mBuf);
-       }
-   
- return ROK;
-}
-
-
-
-
-S16 cmPkRgrEmtcCfg
-(
-RgrEmtcCellCfg *param,
-Buffer *mBuf
-)
-{
-   CMCHKPK(oduUnpackUInt16, param->pci, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->emtcT300Tmr, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->emtcT301Tmr, mBuf);
-   CMCHKPK(cmPkRgrEmtcSiCfg, &param->emtcSiCfg, mBuf);
-   CMCHKPK(cmPkRgrEmtcRachCfg, &param->emtcRachCfg, mBuf);
-   CMCHKPK(cmPkRgrEmtcPdschCfg, &param->emtcPdschCfg, mBuf);
-   CMCHKPK(cmPkRgrEmtcPuschCfg, &param->emtcPuschCfg, mBuf);
-   CMCHKPK(cmPkRgrEmtcPrachCfg, &param->emtcPrachCfg, mBuf);
-   CMCHKPK(cmPkRgrEmtcPucchCfg, &param->emtcPucchCfg, mBuf);
-   CMCHKPK(cmPkRgrEmtcRntiCfg, &param->emtcMacRnti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcPdschNbIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNbIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->emtcPuschNbIdx, mBuf);
-   
-   return ROK;
-}
-
-/* EMTC related pack changes end*/
-
-/* EMTC related unpack changes start*/
-
-S16 cmUnpkRgrEmtcSiCfg
+S16 cmUnpkRgrEmtcSiCfg
 (
 RgrEmtcSiCfg *param,
 Buffer *mBuf
@@ -1666,690 +1224,141 @@ Buffer *mBuf
          CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.firstPreamble), mBuf);
          CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].emtcPreambleTransMax), mBuf);
          CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcContResTmr), mBuf);
-         CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcWinSize), mBuf);
-         CMCHKUNPK(oduPackUInt8,&(param->ceLevelInfo[i].emtcRarHopping), mBuf);
-       }
-    CMCHKUNPK(oduPackUInt8, &param->emtcCeLvlSupported, mBuf);   
- return ROK;
-}
-
-
-S16 cmUnpkRgrEmtcPdschCfg
-(
-RgrEmtcPdschCfg*param,
-Buffer *mBuf
-)
-{
-
-   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeB, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeA, mBuf);
- return ROK;
-}
-
-S16 cmUnpkRgrEmtcPuschCfg
-(
-RgrEmtcPuschCfg*param,
-Buffer *mBuf
-)
-{
-   CMCHKUNPK(oduPackUInt8,  &param->emtcHoppingOffset, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeB, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeA, mBuf);
-   return ROK;
-}
-
-
-
-S16 cmUnpkRgrEmtcPucchCfg
-(
-RgrEmtcPucchCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-
-
-       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl3, mBuf);
-       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
-       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
-       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl0, mBuf);       
-   for (i=0; i <  RGR_MAX_CE_LEVEL ; i++) {
-         CMCHKUNPK(oduPackUInt16, &param->emtcN1pucchAnInfoLst[i], mBuf);
-       }   
- return ROK;
-}
-
-
-S16 cmUnpkRgrEmtcPrachCeParamCfg
-(
-RgrEmtcPrachCEParamLst *param,
-Buffer *mBuf
-)
-{
-   CMCHKUNPK(oduPackUInt8,  &param->emtcPrachHoppingCfg, mBuf);  
-   CMCHKUNPK(oduPackUInt16, &param->emtcMpdcchNumRep, mBuf);
-   CMCHKUNPK(oduPackUInt8,  &param->emtcMpdcchNBtoMonitor[1], mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcMpdcchNBtoMonitor[0], mBuf);
-   CMCHKUNPK(oduPackUInt8,  &param->emtcNumMpdcchNBtoMonitor, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcNumRepPerPreambleAtt, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcMaxPremAttemptCE, mBuf);
-   CMCHKUNPK(oduPackUInt16,  &param->emtcPrachStartSubFrame, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcPrachFreqOffset, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcPrachCfgIdx, mBuf); 
-   return ROK;
-}
-
-
-
-S16 cmUnpkRgrEmtcPrachCfg
-(
-RgrEmtcPrachCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-   for (i=0; i < RGR_MAX_CE_LEVEL; i++) {      
-       CMCHKUNPK(cmUnpkRgrEmtcPrachCeParamCfg, &param->emtcPrachCEparmLst[i], mBuf);
-       }
-       CMCHKUNPK(oduPackUInt8, &param->emtcInitialCElevel, mBuf);
-       CMCHKUNPK(oduPackUInt8, &param->emtcPrachHopingOffset, mBuf);
-       CMCHKUNPK(oduPackUInt8, &param->emtcMpdcchStartSFCssRaFdd, mBuf);
-
- return ROK;
-}
-
-S16 cmUnpkRgrEmtcCfg
-(
-RgrEmtcCellCfg *param,
-Buffer *mBuf
-)
-{
-
-   CMCHKUNPK(oduPackUInt8, &param->emtcPuschNbIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcMpdcchNbIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcPdschNbIdx, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcRntiCfg, &param->emtcMacRnti, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcPucchCfg, &param->emtcPucchCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcPrachCfg, &param->emtcPrachCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcPuschCfg, &param->emtcPuschCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcPdschCfg, &param->emtcPdschCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcRachCfg, &param->emtcRachCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrEmtcSiCfg, &param->emtcSiCfg, mBuf);
-   CMCHKUNPK(oduPackUInt32,&param->emtcT301Tmr, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->emtcT300Tmr, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->pci, mBuf);
-
-
-
-
-
-   return ROK;
-}
-
-/* EMTC related unpack changes end*/
-
-
-#endif
-
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrBwCfg
-*
-*
-*     Desc : Bandwidth configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrBwCfg
-(
-RgrBwCfg *param,
-Buffer *mBuf
-)
-{
-
-   CMCHKUNPK(oduPackUInt8, &param->dlTotalBw, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ulTotalBw, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrPhichCfg
-*
-*
-*     Desc : PHICH configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrPhichCfg
-(
-RgrPhichCfg *param,
-Buffer *mBuf
-)
-{
-
-   CMCHKPK(oduUnpackUInt8, param->isDurExtend, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->ngEnum, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrPhichCfg
-*
-*
-*     Desc : PHICH configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrPhichCfg
-(
-RgrPhichCfg *param,
-Buffer *mBuf
-)
-{
-   uint32_t tmpEnum;
-
-
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->ngEnum = (RgrPhichNg) tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->isDurExtend, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrPucchCfg
-*
-*
-*     Desc : PUCCH configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrPucchCfg
-(
-RgrPucchCfg *param,
-Buffer *mBuf
-)
-{
-
-   CMCHKPK(oduUnpackUInt8, param->maxPucchRb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->cyclicShift, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->deltaShift, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->n1PucchAn, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->resourceSize, mBuf);
-
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrPucchCfg
-*
-*
-*     Desc : PUCCH configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrPucchCfg
-(
-RgrPucchCfg *param,
-Buffer *mBuf
-)
-{
-
-   CMCHKUNPK(oduPackUInt8, &param->resourceSize, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->n1PucchAn, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->deltaShift, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->cyclicShift, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxPucchRb, mBuf);
-
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrSrsCfg
-*
-*
-*     Desc : SRS configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrSrsCfg
-(
-RgrSrsCfg *param,
-Buffer *mBuf
-)
-{
-
-
-   CMCHKPK(oduUnpackUInt8, param->srsSubFrameCfg, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->srsBwEnum, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->srsCfgPrdEnum, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isSrsCfgSetup, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrSrsCfg
-*
-*
-*     Desc : SRS configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrSrsCfg
-(
-RgrSrsCfg *param,
-Buffer *mBuf
-)
-{
-   uint32_t tmpEnum;
-
-   CMCHKUNPK(oduPackUInt8, &param->isSrsCfgSetup, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->srsCfgPrdEnum = (RgrSrsCfgPrd) tmpEnum;
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->srsBwEnum = (RgrSrsBwCfg) tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->srsSubFrameCfg, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrRachCfg
-*
-*
-*     Desc : RACH configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrRachCfg
-(
-RgrRachCfg *param,
-Buffer *mBuf
-)
-{
-
-   S32 i;
-
-   CMCHKPK(oduUnpackUInt8, param->prachResource, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->msgSizeGrpA, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->sizeRaPreambleGrpA, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numRaPreamble, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxMsg3Tx, mBuf);
-      for (i=param->raOccasion.size-1; i >= 0; i--) {
-         CMCHKPK(oduUnpackUInt8, param->raOccasion.subFrameNum[i], mBuf);
-      }
-      CMCHKPK(oduUnpackUInt32, param->raOccasion.sfnEnum, mBuf);
-      CMCHKPK(oduUnpackUInt8, param->raOccasion.size, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->raWinSize, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->preambleFormat, mBuf);
-#ifdef RGR_V1
-   /* rgr_c_001.main_5: cccpu00112372: Added contention resolution 
-    * timer configuration */
-   CMCHKPK(oduUnpackUInt8, param->contResTmr, mBuf);
-#endif
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrRachCfg
-*
-*
-*     Desc : RACH configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrRachCfg
-(
-RgrRachCfg *param,
-Buffer *mBuf
-)
-{
-   uint32_t tmpEnum;
-
-   S32 i;
-#ifdef RGR_V1 
-   /* rgr_c_001.main_5: cccpu00112372: Added contention resolution 
-    * timer configuration */
-   CMCHKUNPK(oduPackUInt8, &param->contResTmr, mBuf);
-#endif
-   CMCHKUNPK(oduPackUInt8, &param->preambleFormat, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->raWinSize, mBuf);
-      CMCHKUNPK(oduPackUInt8, &param->raOccasion.size, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->raOccasion.sfnEnum = (RgrRaSfn) tmpEnum;
-      for (i=0; i<param->raOccasion.size; i++) {
-         CMCHKUNPK(oduPackUInt8, &param->raOccasion.subFrameNum[i], mBuf);
-      }
-   CMCHKUNPK(oduPackUInt8, &param->maxMsg3Tx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numRaPreamble, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->sizeRaPreambleGrpA, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->msgSizeGrpA, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->prachResource, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrSiCfg
-*
-*
-*     Desc : SI Configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrSiCfg
-(
-RgrSiCfg *param,
-Buffer *mBuf
-)
-{
-   /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
-#ifdef RGR_SI_SCH
-   S16 idx;
-#endif/*RGR_SI_SCH*/
-
-
-#ifdef RGR_SI_SCH
-   if(param->numSi > sizeof(param->siPeriodicity)/
-                       sizeof(param->siPeriodicity[0]))
-      param->numSi = sizeof(param->siPeriodicity)/
-                       sizeof(param->siPeriodicity[0]);
-
-   for (idx=param->numSi-1; idx >= 0; idx--) {
-   /* Enum to be packed/unpacked as uint32_t instead of S32 */
-      CMCHKPK(oduUnpackUInt32, param->siPeriodicity[idx], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
-   /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
-   CMCHKPK(oduUnpackUInt32, (uint32_t)param->modPrd, mBuf);
-#endif/*RGR_SI_SCH*/
-   CMCHKPK(oduUnpackUInt8, param->retxCnt, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->siWinSize, mBuf);
-   return ROK;
-}
-
-
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrSiCfg
-*
-*
-*     Desc : SI Configuration per cell
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrSiCfg
-(
-RgrSiCfg *param,
-Buffer *mBuf
-)
-{
-   uint32_t tmpEnum;
-   /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
-#ifdef RGR_SI_SCH
-   S16 idx;
-#endif/*RGR_SI_SCH*/
-
-
-   CMCHKUNPK(oduPackUInt8, &param->siWinSize, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->retxCnt, mBuf);
-#ifdef RGR_SI_SCH
-   /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->modPrd = (RgrModPeriodicity) tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->numSi, mBuf);
-
-   if(param->numSi > sizeof(param->siPeriodicity)/
-                       sizeof(param->siPeriodicity[0]))
-      param->numSi = sizeof(param->siPeriodicity)/
-                       sizeof(param->siPeriodicity[0]);
-
-   /* Enum to be packed/unpacked as uint32_t instead of S32 */
-   for (idx=0; idx < param->numSi; idx++) {
-      CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-      param->siPeriodicity[idx] = (RgrSiPeriodicity) tmpEnum;
-   }
-#endif/*RGR_SI_SCH*/
-
-   return ROK;
+         CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcWinSize), mBuf);
+         CMCHKUNPK(oduPackUInt8,&(param->ceLevelInfo[i].emtcRarHopping), mBuf);
+       }
+    CMCHKUNPK(oduPackUInt8, &param->emtcCeLvlSupported, mBuf);   
+ return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrTpcRntiCfg
-*
-*
-*     Desc : TPC RNTI Range
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrTpcRntiCfg
+S16 cmUnpkRgrEmtcPdschCfg
 (
-RgrTpcRntiCfg *param,
+RgrEmtcPdschCfg*param,
 Buffer *mBuf
 )
 {
 
+   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeB, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeA, mBuf);
+ return ROK;
+}
 
-   CMCHKPK(oduUnpackUInt16, param->size, mBuf);
-   CMCHKPK(cmPkLteRnti, param->startTpcRnti, mBuf);
+S16 cmUnpkRgrEmtcPuschCfg
+(
+RgrEmtcPuschCfg*param,
+Buffer *mBuf
+)
+{
+   CMCHKUNPK(oduPackUInt8,  &param->emtcHoppingOffset, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeB, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->emtcMaxRepCeModeA, mBuf);
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrTpcRntiCfg
-*
-*
-*     Desc : TPC RNTI Range
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrTpcRntiCfg
+
+S16 cmUnpkRgrEmtcPucchCfg
 (
-RgrTpcRntiCfg *param,
+RgrEmtcPucchCfg *param,
 Buffer *mBuf
 )
 {
 
+   S32 i;
 
-   CMCHKUNPK(cmUnpkLteRnti, &param->startTpcRnti, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->size, mBuf);
-   return ROK;
+
+       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl3, mBuf);
+       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
+       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
+       CMCHKUNPK(oduPackUInt8, &param->emtcPucchNumRepCEMsg4Lvl0, mBuf);       
+   for (i=0; i <  RGR_MAX_CE_LEVEL ; i++) {
+         CMCHKUNPK(oduPackUInt16, &param->emtcN1pucchAnInfoLst[i], mBuf);
+       }   
+ return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrUlPwrCfg
-*
-*
-*     Desc : Cell specific power configuration
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrUlPwrCfg
+S16 cmUnpkRgrEmtcPrachCeParamCfg
 (
-RgrUlPwrCfg *param,
+RgrEmtcPrachCEParamLst *param,
 Buffer *mBuf
 )
 {
-
-   CMCHKPK(cmPkRgrTpcRntiCfg, &param->puschPwrFmt3a, mBuf);
-   CMCHKPK(cmPkRgrTpcRntiCfg, &param->puschPwrFmt3, mBuf);
-   CMCHKPK(cmPkRgrTpcRntiCfg, &param->pucchPwrFmt3a, mBuf);
-   CMCHKPK(cmPkRgrTpcRntiCfg, &param->pucchPwrFmt3, mBuf);
-   CMCHKPK(SPkS8, param->deltaPreambleMsg3, mBuf);
-   CMCHKPK(SPkS8, param->p0NominalPucch, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->alpha, mBuf);
-   CMCHKPK(SPkS8, param->p0NominalPusch, mBuf);
+   CMCHKUNPK(oduPackUInt8,  &param->emtcPrachHoppingCfg, mBuf);  
+   CMCHKUNPK(oduPackUInt16, &param->emtcMpdcchNumRep, mBuf);
+   CMCHKUNPK(oduPackUInt8,  &param->emtcMpdcchNBtoMonitor[1], mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcMpdcchNBtoMonitor[0], mBuf);
+   CMCHKUNPK(oduPackUInt8,  &param->emtcNumMpdcchNBtoMonitor, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcNumRepPerPreambleAtt, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcMaxPremAttemptCE, mBuf);
+   CMCHKUNPK(oduPackUInt16,  &param->emtcPrachStartSubFrame, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcPrachFreqOffset, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcPrachCfgIdx, mBuf); 
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrUlPwrCfg
-*
-*
-*     Desc : Cell specific power configuration
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUlPwrCfg
+
+S16 cmUnpkRgrEmtcPrachCfg
 (
-RgrUlPwrCfg *param,
+RgrEmtcPrachCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
+
+   S32 i;
+   for (i=0; i < RGR_MAX_CE_LEVEL; i++) {      
+       CMCHKUNPK(cmUnpkRgrEmtcPrachCeParamCfg, &param->emtcPrachCEparmLst[i], mBuf);
+       }
+       CMCHKUNPK(oduPackUInt8, &param->emtcInitialCElevel, mBuf);
+       CMCHKUNPK(oduPackUInt8, &param->emtcPrachHopingOffset, mBuf);
+       CMCHKUNPK(oduPackUInt8, &param->emtcMpdcchStartSFCssRaFdd, mBuf);
+
+ return ROK;
+}
+
+S16 cmUnpkRgrEmtcCfg
+(
+RgrEmtcCellCfg *param,
+Buffer *mBuf
+)
+{
+
+   CMCHKUNPK(oduPackUInt8, &param->emtcPuschNbIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcMpdcchNbIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcPdschNbIdx, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcRntiCfg, &param->emtcMacRnti, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcPucchCfg, &param->emtcPucchCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcPrachCfg, &param->emtcPrachCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcPuschCfg, &param->emtcPuschCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcPdschCfg, &param->emtcPdschCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcRachCfg, &param->emtcRachCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrEmtcSiCfg, &param->emtcSiCfg, mBuf);
+   CMCHKUNPK(oduPackUInt32,&param->emtcT301Tmr, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->emtcT300Tmr, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->pci, mBuf);
+
+
+
 
 
-   CMCHKUNPK(SUnpkS8, &param->p0NominalPusch, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->alpha = (RgrPwrAlpha) tmpEnum;
-   CMCHKUNPK(SUnpkS8, &param->p0NominalPucch, mBuf);
-   CMCHKUNPK(SUnpkS8, &param->deltaPreambleMsg3, mBuf);
-   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->pucchPwrFmt3, mBuf);
-   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->pucchPwrFmt3a, mBuf);
-   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->puschPwrFmt3, mBuf);
-   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->puschPwrFmt3a, mBuf);
    return ROK;
 }
 
+/* EMTC related unpack changes end*/
+
+
+#endif
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrPuschCfg
+*     Func : cmUnpkRgrBwCfg
 *
 *
-*     Desc : brief cell specific hopping configuration
+*     Desc : Bandwidth configuration per cell
 *
 *
 *     Ret  : S16
@@ -2359,17 +1368,15 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrPuschCfg
+S16 cmUnpkRgrBwCfg
 (
-RgrPuschCfg *param,
+RgrBwCfg *param,
 Buffer *mBuf
 )
 {
 
-
-   CMCHKPK(oduUnpackUInt8, param->hopOffst, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isIntraHop, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numSubBands, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->dlTotalBw, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ulTotalBw, mBuf);
    return ROK;
 }
 
@@ -2377,10 +1384,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrPuschCfg
+*     Func : cmPkRgrPhichCfg
 *
 *
-*     Desc : brief cell specific hopping configuration
+*     Desc : PHICH configuration per cell
 *
 *
 *     Ret  : S16
@@ -2390,17 +1397,15 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrPuschCfg
+S16 cmPkRgrPhichCfg
 (
-RgrPuschCfg *param,
+RgrPhichCfg *param,
 Buffer *mBuf
 )
 {
 
-
-   CMCHKUNPK(oduPackUInt8, &param->numSubBands, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isIntraHop, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->hopOffst, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isDurExtend, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->ngEnum, mBuf);
    return ROK;
 }
 
@@ -2408,10 +1413,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCodeBookRstCfg
+*     Func : cmUnpkRgrPhichCfg
 *
 *
-*     Desc : Number of bits in code book for different transmission modes
+*     Desc : PHICH configuration per cell
 *
 *
 *     Ret  : S16
@@ -2421,19 +1426,18 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCodeBookRstCfg
+S16 cmUnpkRgrPhichCfg
 (
-RgrCodeBookRstCfg *param,
+RgrPhichCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
-   S32 i;
 
-   for (i=1-1; i >= 0; i--) {
-      CMCHKPK(oduUnpackUInt32, param->pmiBitMap[i], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->ngEnum = (RgrPhichNg) tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->isDurExtend, mBuf);
    return ROK;
 }
 
@@ -2441,10 +1445,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCodeBookRstCfg
+*     Func : cmPkRgrPucchCfg
 *
 *
-*     Desc : Number of bits in code book for different transmission modes
+*     Desc : PUCCH configuration per cell
 *
 *
 *     Ret  : S16
@@ -2454,19 +1458,19 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCodeBookRstCfg
+S16 cmPkRgrPucchCfg
 (
-RgrCodeBookRstCfg *param,
+RgrPucchCfg *param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
+   CMCHKPK(oduUnpackUInt8, param->maxPucchRb, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->cyclicShift, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->deltaShift, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->n1PucchAn, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->resourceSize, mBuf);
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   for (i=0; i<1; i++) {
-      CMCHKUNPK(oduPackUInt32, &param->pmiBitMap[i], mBuf);
-   }
    return ROK;
 }
 
@@ -2474,10 +1478,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrPreambleSetCfg
+*     Func : cmUnpkRgrPucchCfg
 *
 *
-*     Desc : Range of PDCCH Order Preamble Set managed by MAC
+*     Desc : PUCCH configuration per cell
 *
 *
 *     Ret  : S16
@@ -2487,17 +1491,19 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrPreambleSetCfg
+S16 cmUnpkRgrPucchCfg
 (
-RgrPreambleSetCfg *param,
+RgrPucchCfg *param,
 Buffer *mBuf
 )
 {
 
+   CMCHKUNPK(oduPackUInt8, &param->resourceSize, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->n1PucchAn, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->deltaShift, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->cyclicShift, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxPucchRb, mBuf);
 
-   CMCHKPK(oduUnpackUInt8, param->size, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->start, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
@@ -2505,10 +1511,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrPreambleSetCfg
+*     Func : cmPkRgrSrsCfg
 *
 *
-*     Desc : Range of PDCCH Order Preamble Set managed by MAC
+*     Desc : SRS configuration per cell
 *
 *
 *     Ret  : S16
@@ -2518,17 +1524,18 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrPreambleSetCfg
+S16 cmPkRgrSrsCfg
 (
-RgrPreambleSetCfg *param,
+RgrSrsCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->start, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->size, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->srsSubFrameCfg, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->srsBwEnum, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->srsCfgPrdEnum, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isSrsCfgSetup, mBuf);
    return ROK;
 }
 
@@ -2536,10 +1543,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCmnLchCfg
+*     Func : cmUnpkRgrSrsCfg
 *
 *
-*     Desc : Logical channel configuration info for common channels
+*     Desc : SRS configuration per cell
 *
 *
 *     Ret  : S16
@@ -2549,18 +1556,20 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCmnLchCfg
+S16 cmUnpkRgrSrsCfg
 (
-RgrCmnLchCfg *param,
+RgrSrsCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
-   CMCHKPK(oduUnpackUInt8, param->ulTrchType, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
-   CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
-   CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isSrsCfgSetup, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->srsCfgPrdEnum = (RgrSrsCfgPrd) tmpEnum;
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->srsBwEnum = (RgrSrsBwCfg) tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->srsSubFrameCfg, mBuf);
    return ROK;
 }
 
@@ -2568,10 +1577,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCmnLchCfg
+*     Func : cmPkRgrRachCfg
 *
 *
-*     Desc : Logical channel configuration info for common channels
+*     Desc : RACH configuration per cell
 *
 *
 *     Ret  : S16
@@ -2581,19 +1590,32 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCmnLchCfg
+S16 cmPkRgrRachCfg
 (
-RgrCmnLchCfg *param,
+RgrRachCfg *param,
 Buffer *mBuf
 )
 {
 
+   S32 i;
 
-   CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
-   CMCHKUNPK(cmUnpkLteLcType, &param->lcType, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->dir, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->dlTrchType, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ulTrchType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->prachResource, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->msgSizeGrpA, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->sizeRaPreambleGrpA, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numRaPreamble, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxMsg3Tx, mBuf);
+      for (i=param->raOccasion.size-1; i >= 0; i--) {
+         CMCHKPK(oduUnpackUInt8, param->raOccasion.subFrameNum[i], mBuf);
+      }
+      CMCHKPK(oduUnpackUInt32, param->raOccasion.sfnEnum, mBuf);
+      CMCHKPK(oduUnpackUInt8, param->raOccasion.size, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->raWinSize, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->preambleFormat, mBuf);
+#ifdef RGR_V1
+   /* rgr_c_001.main_5: cccpu00112372: Added contention resolution 
+    * timer configuration */
+   CMCHKPK(oduUnpackUInt8, param->contResTmr, mBuf);
+#endif
    return ROK;
 }
 
@@ -2601,10 +1623,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrDlfsCfg
+*     Func : cmUnpkRgrRachCfg
 *
 *
-*     Desc : RGR configuration for DLFS scheduler
+*     Desc : RACH configuration per cell
 *
 *
 *     Ret  : S16
@@ -2614,16 +1636,33 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDlfsCfg
+S16 cmUnpkRgrRachCfg
 (
-RgrDlfsCfg *param,
+RgrRachCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
-
-   CMCHKPK(oduUnpackUInt8, param->thresholdCqi, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isDlFreqSel, mBuf);
+   S32 i;
+#ifdef RGR_V1 
+   /* rgr_c_001.main_5: cccpu00112372: Added contention resolution 
+    * timer configuration */
+   CMCHKUNPK(oduPackUInt8, &param->contResTmr, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt8, &param->preambleFormat, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->raWinSize, mBuf);
+      CMCHKUNPK(oduPackUInt8, &param->raOccasion.size, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->raOccasion.sfnEnum = (RgrRaSfn) tmpEnum;
+      for (i=0; i<param->raOccasion.size; i++) {
+         CMCHKUNPK(oduPackUInt8, &param->raOccasion.subFrameNum[i], mBuf);
+      }
+   CMCHKUNPK(oduPackUInt8, &param->maxMsg3Tx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numRaPreamble, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->sizeRaPreambleGrpA, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->msgSizeGrpA, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->prachResource, mBuf);
    return ROK;
 }
 
@@ -2631,10 +1670,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDlfsCfg
+*     Func : cmPkRgrSiCfg
 *
 *
-*     Desc : RGR configuration for DLFS scheduler
+*     Desc : SI Configuration per cell
 *
 *
 *     Ret  : S16
@@ -2644,31 +1683,45 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDlfsCfg
+S16 cmPkRgrSiCfg
 (
-RgrDlfsCfg *param,
+RgrSiCfg *param,
 Buffer *mBuf
 )
 {
+   /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
+#ifdef RGR_SI_SCH
+   S16 idx;
+#endif/*RGR_SI_SCH*/
 
 
-   CMCHKUNPK(oduPackUInt8, &param->isDlFreqSel, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->thresholdCqi, mBuf);
+#ifdef RGR_SI_SCH
+   if(param->numSi > sizeof(param->siPeriodicity)/
+                       sizeof(param->siPeriodicity[0]))
+      param->numSi = sizeof(param->siPeriodicity)/
+                       sizeof(param->siPeriodicity[0]);
+
+   for (idx=param->numSi-1; idx >= 0; idx--) {
+   /* Enum to be packed/unpacked as uint32_t instead of S32 */
+      CMCHKPK(oduUnpackUInt32, param->siPeriodicity[idx], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
+   /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
+   CMCHKPK(oduUnpackUInt32, (uint32_t)param->modPrd, mBuf);
+#endif/*RGR_SI_SCH*/
+   CMCHKPK(oduUnpackUInt8, param->retxCnt, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->siWinSize, mBuf);
    return ROK;
 }
 
 
-#ifdef LTE_TDD
-
-#ifdef LTE_TDD
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrTddPrachInfo
+*     Func : cmUnpkRgrSiCfg
 *
 *
-*     Desc : PRACH resource information for TDD
+*     Desc : SI Configuration per cell
 *
 *
 *     Ret  : S16
@@ -2678,18 +1731,39 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrTddPrachInfo
+S16 cmUnpkRgrSiCfg
 (
-RgrTddPrachInfo *param,
+RgrSiCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
+   /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
+#ifdef RGR_SI_SCH
+   S16 idx;
+#endif/*RGR_SI_SCH*/
 
 
-   CMCHKPK(oduUnpackUInt8, param->ulStartSfIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->halfFrm, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->sfn, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->freqIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->siWinSize, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->retxCnt, mBuf);
+#ifdef RGR_SI_SCH
+   /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->modPrd = (RgrModPeriodicity) tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->numSi, mBuf);
+
+   if(param->numSi > sizeof(param->siPeriodicity)/
+                       sizeof(param->siPeriodicity[0]))
+      param->numSi = sizeof(param->siPeriodicity)/
+                       sizeof(param->siPeriodicity[0]);
+
+   /* Enum to be packed/unpacked as uint32_t instead of S32 */
+   for (idx=0; idx < param->numSi; idx++) {
+      CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+      param->siPeriodicity[idx] = (RgrSiPeriodicity) tmpEnum;
+   }
+#endif/*RGR_SI_SCH*/
+
    return ROK;
 }
 
@@ -2697,10 +1771,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrTddPrachInfo
+*     Func : cmPkRgrTpcRntiCfg
 *
 *
-*     Desc : PRACH resource information for TDD
+*     Desc : TPC RNTI Range
 *
 *
 *     Ret  : S16
@@ -2710,20 +1784,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrTddPrachInfo
+S16 cmPkRgrTpcRntiCfg
 (
-RgrTddPrachInfo *param,
+RgrTpcRntiCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
 
-   CMCHKUNPK(oduPackUInt8, &param->freqIdx, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->sfn = tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->halfFrm, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ulStartSfIdx, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->size, mBuf);
+   CMCHKPK(cmPkLteRnti, param->startTpcRnti, mBuf);
    return ROK;
 }
 
@@ -2731,10 +1801,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrTddPrachRscInfo
+*     Func : cmUnpkRgrTpcRntiCfg
 *
 *
-*     Desc : Set of PRACH Information for TDD
+*     Desc : TPC RNTI Range
 *
 *
 *     Ret  : S16
@@ -2744,19 +1814,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrTddPrachRscInfo
+S16 cmUnpkRgrTpcRntiCfg
 (
-RgrTddPrachRscInfo *param,
+RgrTpcRntiCfg *param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
 
-   for (i=param->numRsc-1; i >= 0; i--) {
-      CMCHKPK(cmPkRgrTddPrachInfo, &param->prachInfo[i], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->numRsc, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->startTpcRnti, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->size, mBuf);
    return ROK;
 }
 
@@ -2764,10 +1831,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrTddPrachRscInfo
+*     Func : cmPkRgrUlPwrCfg
 *
 *
-*     Desc : Set of PRACH Information for TDD
+*     Desc : Cell specific power configuration
 *
 *
 *     Ret  : S16
@@ -2777,34 +1844,32 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrTddPrachRscInfo
+S16 cmPkRgrUlPwrCfg
 (
-RgrTddPrachRscInfo *param,
+RgrUlPwrCfg *param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
-
-   CMCHKUNPK(oduPackUInt8, &param->numRsc, mBuf);
-   for (i=0; i<param->numRsc; i++) {
-      CMCHKUNPK(cmUnpkRgrTddPrachInfo, &param->prachInfo[i], mBuf);
-   }
+   CMCHKPK(cmPkRgrTpcRntiCfg, &param->puschPwrFmt3a, mBuf);
+   CMCHKPK(cmPkRgrTpcRntiCfg, &param->puschPwrFmt3, mBuf);
+   CMCHKPK(cmPkRgrTpcRntiCfg, &param->pucchPwrFmt3a, mBuf);
+   CMCHKPK(cmPkRgrTpcRntiCfg, &param->pucchPwrFmt3, mBuf);
+   CMCHKPK(SPkS8, param->deltaPreambleMsg3, mBuf);
+   CMCHKPK(SPkS8, param->p0NominalPucch, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->alpha, mBuf);
+   CMCHKPK(SPkS8, param->p0NominalPusch, mBuf);
    return ROK;
 }
 
 
-#endif
-
-#endif
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrEnbPfs
+*     Func : cmUnpkRgrUlPwrCfg
 *
 *
-*     Desc : PFS Configuration
+*     Desc : Cell specific power configuration
 *
 *
 *     Ret  : S16
@@ -2814,20 +1879,24 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrEnbPfs
+S16 cmUnpkRgrUlPwrCfg
 (
-RgrEnbPfs  *param,
-Buffer    *mBuf
+RgrUlPwrCfg *param,
+Buffer *mBuf
 )
 {
-   S32 idx;
-   for(idx = RGR_MAX_NUM_QCI-1; idx >= 0; idx--)
-   {
-      CMCHKPK(oduUnpackUInt32, param->qciWgt[idx], mBuf);
-   }   
-   CMCHKPK(oduUnpackUInt8, param->fairCoeffi, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->tptCoeffi, mBuf);
+   uint32_t tmpEnum;
 
+
+   CMCHKUNPK(SUnpkS8, &param->p0NominalPusch, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->alpha = (RgrPwrAlpha) tmpEnum;
+   CMCHKUNPK(SUnpkS8, &param->p0NominalPucch, mBuf);
+   CMCHKUNPK(SUnpkS8, &param->deltaPreambleMsg3, mBuf);
+   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->pucchPwrFmt3, mBuf);
+   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->pucchPwrFmt3a, mBuf);
+   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->puschPwrFmt3, mBuf);
+   CMCHKUNPK(cmUnpkRgrTpcRntiCfg, &param->puschPwrFmt3a, mBuf);
    return ROK;
 }
 
@@ -2835,10 +1904,10 @@ Buffer    *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrEnbPfs
+*     Func : cmPkRgrPuschCfg
 *
 *
-*     Desc : PFS Configuration
+*     Desc : brief cell specific hopping configuration
 *
 *
 *     Ret  : S16
@@ -2848,32 +1917,28 @@ Buffer    *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrEnbPfs
+S16 cmPkRgrPuschCfg
 (
-RgrEnbPfs *param,
-Buffer   *mBuf
+RgrPuschCfg *param,
+Buffer *mBuf
 )
 {
-   S32 idx;
 
-   CMCHKUNPK(oduPackUInt8, &param->tptCoeffi, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->fairCoeffi, mBuf);
-   for(idx = 0; idx < RGR_MAX_NUM_QCI; idx++)
-   {
-      CMCHKUNPK(oduPackUInt32, &param->qciWgt[idx], mBuf);
-   }   
+
+   CMCHKPK(oduUnpackUInt8, param->hopOffst, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isIntraHop, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numSubBands, mBuf);
    return ROK;
 }
 
-/*rgr_c_001.main_7 - Added support for SPS*/
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrSpsCellCfg
+*     Func : cmUnpkRgrPuschCfg
 *
 *
-*     Desc : DL SPS configuration parameters per UE 
-TODO: Check if this is to be added to re-configuration as well
+*     Desc : brief cell specific hopping configuration
 *
 *
 *     Ret  : S16
@@ -2883,17 +1948,17 @@ TODO: Check if this is to be added to re-configuration as well
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrSpsCellCfg
+S16 cmUnpkRgrPuschCfg
 (
-RgrSpsCellCfg *param,
+RgrPuschCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt16, param->maxSpsUePerUlSf, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->maxSpsUePerDlSf, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxSpsDlBw, mBuf);
 
+   CMCHKUNPK(oduPackUInt8, &param->numSubBands, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isIntraHop, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->hopOffst, mBuf);
    return ROK;
 }
 
@@ -2901,11 +1966,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrSpsDlCellCfg
+*     Func : cmPkRgrCodeBookRstCfg
 *
 *
-*     Desc : DL SPS configuration parameters per UE 
-TODO: Check if this is to be added to re-configuration as well
+*     Desc : Number of bits in code book for different transmission modes
 *
 *
 *     Ret  : S16
@@ -2915,74 +1979,30 @@ TODO: Check if this is to be added to re-configuration as well
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrSpsDlCellCfg
+S16 cmPkRgrCodeBookRstCfg
 (
-RgrSpsCellCfg *param,
+RgrCodeBookRstCfg *param,
 Buffer *mBuf
 )
 {
 
+   S32 i;
 
-   CMCHKUNPK(oduPackUInt8, &param->maxSpsDlBw, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->maxSpsUePerDlSf, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->maxSpsUePerUlSf, mBuf);
-   
-   return ROK;
-}
-
-#ifdef RG_5GTF
-S16 cmPkRgr5gtfCellCfg
-(
-Rgr5gtfCellCfg   *param,
-Buffer           *mBuf
-)
-{
-   S8 idx = 0;      
-   for (idx = MAX_5GTF_SUBFRAME_INFO - 1; idx >= 0 ;--idx)
-   {
-
-      CMCHKPK(oduUnpackUInt32, param->dynConfig[(uint8_t)idx], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->uePerGrp, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->ueGrpPerTti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numUes, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numOfCC, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->bwPerCC, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
-   return ROK;
-}
-
-S16 cmUnPkRgr5gtfCellCfg
-(
-Rgr5gtfCellCfg   *param,
-Buffer           *mBuf
-)
-{
-   S8 idx = 0;      
-   
-   CMCHKUNPK(oduPackUInt8, &param->cfi, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->bwPerCC, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numOfCC, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numUes, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ueGrpPerTti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->uePerGrp, mBuf);
-   for (idx = 0; idx < MAX_5GTF_SUBFRAME_INFO ; ++idx)
-   {
-
-      CMCHKUNPK(oduPackUInt32, &param->dynConfig[(uint8_t)idx], mBuf);
+   for (i=1-1; i >= 0; i--) {
+      CMCHKPK(oduUnpackUInt32, param->pmiBitMap[i], mBuf);
    }
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
-#endif
 
 
-/*LAA : functions to pack and unpack LAA params*/
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrLteUCellCfg
+*     Func : cmUnpkRgrCodeBookRstCfg
 *
 *
-*     Desc : LAA configuration for the Cell 
+*     Desc : Number of bits in code book for different transmission modes
 *
 *
 *     Ret  : S16
@@ -2992,24 +2012,30 @@ Buffer           *mBuf
 *     File  : 
 *
 **********************************************************/
-static S16 cmPkRgrLteUCellCfg
+S16 cmUnpkRgrCodeBookRstCfg
 (
-RgrLteUCfg *param,
+RgrCodeBookRstCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt8, param->isLaaCell, mBuf);
+   S32 i;
 
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   for (i=0; i<1; i++) {
+      CMCHKUNPK(oduPackUInt32, &param->pmiBitMap[i], mBuf);
+   }
    return ROK;
 }
 
+
+\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrLteUCellCfg
+*     Func : cmPkRgrPreambleSetCfg
 *
 *
-*     Desc : LAA configuration for the cell 
+*     Desc : Range of PDCCH Order Preamble Set managed by MAC
 *
 *
 *     Ret  : S16
@@ -3019,343 +2045,221 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-static S16 cmUnpkRgrLteUCellCfg
-(
-RgrLteUCfg *param,
-Buffer *mBuf
-)
-{
-
-
-   CMCHKUNPK(oduPackUInt8, &param->isLaaCell, mBuf);
-   
-   return ROK;
-}
-
-/* LTE_ADV_FLAG_REMOVED_START */
-/***********************************************************
- *
- *     Func : cmPkRgrLteAdvancedUeConfig
- *
- *
- *     Desc : PAcks LteAdvancedUeConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmPkRgrLteAdvancedUeConfig
+S16 cmPkRgrPreambleSetCfg
 (
-RgrLteAdvancedUeConfig *param,
+RgrPreambleSetCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt8, param->isUeCellEdge, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isAbsUe, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
-   return ROK;
-}
-
-/***********************************************************
- *
- *     Func : cmUnpkRgrLteAdvancedUeConfig
- *
- *
- *     Desc : unpacks LteAdvancedUeConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmUnpkRgrLteAdvancedUeConfig
-(
-RgrLteAdvancedUeConfig *param,
-Buffer *mBuf
-)
-{
 
-   CMCHKUNPK(oduPackUInt32, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isAbsUe, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isUeCellEdge, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->size, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->start, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
-/***********************************************************
- *
- *     Func : cmPkRgrAbsConfig
- *
- *
- *     Desc : Packs RgrAbsConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmPkRgrAbsConfig
-(
-RgrAbsConfig *param,
-Buffer *mBuf
-)
-{
-   S8   indx = 0;
-
-   CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
-   for (indx = RGR_ABS_PATTERN_LEN-1; indx >= 0; indx--) 
-   {
-      CMCHKPK(oduUnpackUInt8, param->absPattern[(uint8_t)indx], mBuf);
-   }
-
-   CMCHKPK(oduUnpackUInt32, param->absPatternType, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->absLoadPeriodicity, mBuf);
-
-   return ROK;
 
-}
+\f
 /***********************************************************
- *
- *     Func : cmPkRgrSfrConfig
- *
- *
- *     Desc : Packs RgrSfrConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmPkRgrSfrConfig
+*
+*     Func : cmUnpkRgrPreambleSetCfg
+*
+*
+*     Desc : Range of PDCCH Order Preamble Set managed by MAC
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrPreambleSetCfg
 (
-RgrSfrConfig *param,
+RgrPreambleSetCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
-#ifdef TFU_UPGRADE   
-   CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pHigh, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pLow, mBuf);
-#endif   
-   CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.endRb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.startRb, mBuf);
 
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->start, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->size, mBuf);
    return ROK;
-
 }
 
 
+\f
 /***********************************************************
- *
- *     Func : cmPkRgrDsfrConfig
- *
- *
- *     Desc : Packs RgrDsfrConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:  AIRSPAN_LTE_ADV_DSFR
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmPkRgrDsfrConfig
+*
+*     Func : cmPkRgrCmnLchCfg
+*
+*
+*     Desc : Logical channel configuration info for common channels
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmPkRgrCmnLchCfg
 (
-RgrDsfrConfig *param,
+RgrCmnLchCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
-
+   CMCHKPK(oduUnpackUInt8, param->ulTrchType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
+   CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
+   CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
    return ROK;
-
 }
 
 
+\f
 /***********************************************************
- *
- *     Func : cmUnpkRgrDsfrConfig
- *
- *
- *     Desc : UnPacks RgrDsfrConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:  AIRSPAN_LTE_ADV_DSFR
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmUnpkRgrDsfrConfig
+*
+*     Func : cmUnpkRgrCmnLchCfg
+*
+*
+*     Desc : Logical channel configuration info for common channels
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrCmnLchCfg
 (
-RgrDsfrConfig *param,
+RgrCmnLchCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->status, mBuf);
-   return ROK;
 
+   CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
+   CMCHKUNPK(cmUnpkLteLcType, &param->lcType, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->dir, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->dlTrchType, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ulTrchType, mBuf);
+   return ROK;
 }
 
 
+\f
 /***********************************************************
- *
- *     Func : cmPkRgrCellLteAdvancedFeatureCfg
- *
- *
- *     Desc : Cell LteAdvancedFeatureCfg
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-
-S16 cmPkRgrCellLteAdvancedFeatureCfg
+*
+*     Func : cmPkRgrDlfsCfg
+*
+*
+*     Desc : RGR configuration for DLFS scheduler
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmPkRgrDlfsCfg
 (
-RgrLteAdvancedCellConfig *param,
+RgrDlfsCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
-   CMCHKPK(cmPkRgrDsfrConfig, &param->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
-   CMCHKPK(cmPkRgrSfrConfig,  &param->sfrCfg, mBuf);
-   CMCHKPK(cmPkRgrAbsConfig,  &param->absCfg, mBuf);
 
+   CMCHKPK(oduUnpackUInt8, param->thresholdCqi, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isDlFreqSel, mBuf);
    return ROK;
-
-}   
+}
 
 
+\f
 /***********************************************************
- *
- *     Func : cmUnpkRgrAbsConfig
- *
- *
- *     Desc : Unpacks AbsConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmUnpkRgrAbsConfig
+*
+*     Func : cmUnpkRgrDlfsCfg
+*
+*
+*     Desc : RGR configuration for DLFS scheduler
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrDlfsCfg
 (
-RgrAbsConfig *param,
+RgrDlfsCfg *param,
 Buffer *mBuf
 )
 {
 
-   S8 indx = 0;
-
-   CMCHKUNPK(oduPackUInt32, &param->absLoadPeriodicity, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->absPatternType, mBuf);
-   for (indx = 0; indx <RGR_ABS_PATTERN_LEN; indx++) 
-   {
-      CMCHKUNPK(oduPackUInt8, &param->absPattern[(uint8_t)indx], mBuf);
-   }
-   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->status, mBuf);
 
+   CMCHKUNPK(oduPackUInt8, &param->isDlFreqSel, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->thresholdCqi, mBuf);
    return ROK;
-
 }
 
-/***********************************************************
- *
- *     Func : cmUnpkRgrSfrConfig
- *
- *
- *     Desc : Unpacks SfrConfig
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmUnpkRgrSfrConfig
-(
-RgrSfrConfig *param,
-Buffer *mBuf
-)
-{
-
 
-   CMCHKUNPK(oduPackUInt8, &param->cellEdgeRbRange.startRb, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->cellEdgeRbRange.endRb, mBuf);
-#ifdef TFU_UPGRADE   
-   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->pwrThreshold.pLow, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->pwrThreshold.pHigh, mBuf);
-#endif   
-   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->status, mBuf);
+#ifdef LTE_TDD
 
-   return ROK;
-}
+#ifdef LTE_TDD
 
+\f
 /***********************************************************
- *
- *     Func : cmUnpkRgrCellLteAdvancedFeatureCfg
- *
- *
- *     Desc : unpacks LteAdvancedFeatureCfg per cell
- *
- *
- *     Ret  : S16
- *
- *     Notes:
- *
- *     File  : 
- *
- **********************************************************/
-S16 cmUnpkRgrCellLteAdvancedFeatureCfg
+*
+*     Func : cmPkRgrTddPrachInfo
+*
+*
+*     Desc : PRACH resource information for TDD
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmPkRgrTddPrachInfo
 (
-RgrLteAdvancedCellConfig *param,
+RgrTddPrachInfo *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(cmUnpkRgrAbsConfig, &param->absCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrSfrConfig, &param->sfrCfg, mBuf);   
-   CMCHKUNPK(cmUnpkRgrDsfrConfig, &param->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
-   CMCHKUNPK(oduPackUInt32, &param->pres, mBuf);
 
+   CMCHKPK(oduUnpackUInt8, param->ulStartSfIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->halfFrm, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->sfn, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->freqIdx, mBuf);
    return ROK;
 }
 
-/* LTE_ADV_FLAG_REMOVED_END */
 
+\f
 /***********************************************************
 *
-*     Func : cmPkMacSchedGnbCfg
+*     Func : cmUnpkRgrTddPrachInfo
+*
+*
+*     Desc : PRACH resource information for TDD
 *
-*     Desc : SCH GNB Configurations 
 *
 *     Ret  : S16
 *
@@ -3364,28 +2268,31 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkMacSchedGnbCfg
+S16 cmUnpkRgrTddPrachInfo
 (
-MacSchedGnbCfg *param,
-Buffer         *mBuf
+RgrTddPrachInfo *param,
+Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
-   CMCHKPK(oduUnpackUInt8, param->maxDlUePerTti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxUlUePerTti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->dlSchdType, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->ulSchdType, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numTxAntPorts, mBuf);
+
+   CMCHKUNPK(oduPackUInt8, &param->freqIdx, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->sfn = tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->halfFrm, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ulStartSfIdx, mBuf);
    return ROK;
-} /* cmPkRgrSchedEnbCfg */
+}
 
+
+\f
 /***********************************************************
 *
-*     Func : cmUnpkMacSchedGnbCfg
+*     Func : cmPkRgrTddPrachRscInfo
 *
 *
-*     Desc : SCH Gnodeb Configuration to SCH
+*     Desc : Set of PRACH Information for TDD
 *
 *
 *     Ret  : S16
@@ -3395,30 +2302,30 @@ Buffer         *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkMacSchedGnbCfg
+S16 cmPkRgrTddPrachRscInfo
 (
-MacSchedGnbCfg *param,
-Buffer         *mBuf
+RgrTddPrachRscInfo *param,
+Buffer *mBuf
 )
 {
 
+   S32 i;
 
-   CMCHKUNPK(oduPackUInt8, &param->numTxAntPorts, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ulSchdType, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->dlSchdType, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numCells, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxUlUePerTti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxDlUePerTti, mBuf);
+   for (i=param->numRsc-1; i >= 0; i--) {
+      CMCHKPK(cmPkRgrTddPrachInfo, &param->prachInfo[i], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->numRsc, mBuf);
    return ROK;
-} /* cmUnpkMacSchedGnbCfg */
+}
+
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCellCfg
+*     Func : cmUnpkRgrTddPrachRscInfo
 *
 *
-*     Desc : Cell Configuration at RRM
+*     Desc : Set of PRACH Information for TDD
 *
 *
 *     Ret  : S16
@@ -3428,115 +2335,34 @@ Buffer         *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCellCfg
+S16 cmUnpkRgrTddPrachRscInfo
 (
-RgrCellCfg *param,
+RgrTddPrachRscInfo *param,
 Buffer *mBuf
 )
 {
 
    S32 i;
 
-#ifdef EMTC_ENABLE 
-/* EMTC related changes start*/
-
-     
-/* EMTC related changes ends*/
-#endif
-
-#ifdef RG_5GTF
-   CMCHKPK(cmPkRgr5gtfCellCfg, &param->Cell5gtfCfg, mBuf);
-#endif
-#ifdef LTE_ADV
-   CMCHKPK(oduUnpackUInt8, param->isPucchFormat3Sptd, mBuf);
-#endif
-/*LAA: Pack LAA params*/
-   CMCHKPK(cmPkRgrLteUCellCfg, &param->lteUCfg, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->msg4pAVal, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->phichTxPwrOffset, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->rarTxPwrOffset, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->pcchTxPwrOffset, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->bcchTxPwrOffset, mBuf);
-
-   CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
-/*rgr_c_001.main_7 - Added support for SPS*/
-   CMCHKPK(cmPkRgrSpsCellCfg, &param->spsCfg, mBuf);
-
-/* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
-   CMCHKPK(oduUnpackUInt8, param->rrmTtiIndPrd, mBuf);
-#ifdef LTE_TDD
-   CMCHKPK(cmPkRgrTddPrachRscInfo, &param->prachRscInfo, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->spclSfCfgIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->ulDlCfgIdx, mBuf);
-
-#endif
-   CMCHKPK(cmPkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
-   for (i=param->numCmnLcs-1; i >= 0; i--) {
-      CMCHKPK(cmPkRgrCmnLchCfg, &param->cmnLcCfg[i], mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numRsc, mBuf);
+   for (i=0; i<param->numRsc; i++) {
+      CMCHKUNPK(cmUnpkRgrTddPrachInfo, &param->prachInfo[i], mBuf);
    }
-   CMCHKPK(oduUnpackUInt8, param->numCmnLcs, mBuf);
-   CMCHKPK(cmPkRgrPreambleSetCfg, &param->macPreambleSet, mBuf);
-   CMCHKPK(cmPkRgrPuschCfg, &param->puschCfg, mBuf);
-   CMCHKPK(cmPkRgrUlPwrCfg, &param->pwrCfg, mBuf);
-   CMCHKPK(cmPkRgrSiCfg, &param->siCfg, mBuf);
-   CMCHKPK(cmPkRgrRachCfg, &param->rachCfg, mBuf);
-   CMCHKPK(cmPkRgrSrsCfg, &param->srsCfg, mBuf);
-   CMCHKPK(cmPkRgrPucchCfg, &param->pucchCfg, mBuf);
-   CMCHKPK(cmPkRgrPhichCfg, &param->phichCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKPK(cmPkRgrBwCfg, &param->bwCfg, mBuf);
-   CMCHKPK(cmPkRgrDlfsCfg, &param->dlfsCfg, mBuf);
-   CMCHKPK(cmPkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
-   CMCHKPK(cmPkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
-   CMCHKPK(cmPkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
-   CMCHKPK(cmPkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
-   CMCHKPK(cmPkRgrCfiCfg, &param->cfiCfg, mBuf);
-   CMCHKPK(cmPkRgrRntiCfg, &param->macRnti, mBuf);
-   CMCHKPK(cmPkRgrDlHqCfg, &param->dlHqCfg, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->dlfsSchdType, mBuf);
+   return ROK;
+}
 
-   CMCHKPK(SPkS8, param->pMax, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->cellModSchm, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isCpDlExtend, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isCpUlExtend, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxUlUeNewTxPerTti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxDlUeNewTxPerTti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxDlRetxBw, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxDlBwPerUe, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxUlBwPerUe, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxCcchPerDlSf, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxUePerDlSf, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxUePerUlSf, mBuf);
-#ifdef RGR_V1
-   /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
-      of  MSG3s */
-   CMCHKPK(oduUnpackUInt8, param->maxMsg3PerUlSf, mBuf);
-#endif
-   CMCHKPK(oduUnpackUInt8, param->macInst, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
 
-#ifdef EMTC_ENABLE 
-/* EMTC related changes start*/
-   CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
-   CMCHKPK(cmPkRgrEmtcCfg, &param->emtcCellCfg, mBuf);
-/* EMTC related changes ends*/
 #endif
 
-   return ROK;
-}
-
+#endif
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCellCfg
+*     Func : cmPkRgrEnbPfs
 *
 *
-*     Desc : Cell Configuration at RRM
+*     Desc : PFS Configuration
 *
 *
 *     Ret  : S16
@@ -3546,95 +2372,20 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCellCfg
+S16 cmPkRgrEnbPfs
 (
-RgrCellCfg *param,
-Buffer *mBuf
+RgrEnbPfs  *param,
+Buffer    *mBuf
 )
 {
-
-   S32 i;
-
-#ifdef EMTC_ENABLE     
-/* EMTC related changes start*/
-   CMCHKUNPK(cmUnpkRgrEmtcCfg, &param->emtcCellCfg, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->emtcEnable, mBuf);
-/* EMTC related changes ends*/
-#endif
-
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->macInst, mBuf);
-#ifdef RGR_V1
-   /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
-      of  MSG3s */
-   CMCHKUNPK(oduPackUInt8, &param->maxMsg3PerUlSf, mBuf);
-#endif
-   CMCHKUNPK(oduPackUInt8, &param->maxUePerUlSf, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxUePerDlSf, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxCcchPerDlSf, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxUlBwPerUe, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxDlBwPerUe, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxDlRetxBw, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxDlUeNewTxPerTti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxUlUeNewTxPerTti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isCpUlExtend, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isCpDlExtend, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->cellModSchm, mBuf);
-   CMCHKUNPK(SUnpkS8, &param->pMax, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->dlfsSchdType, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlHqCfg, &param->dlHqCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrRntiCfg, &param->macRnti, mBuf);
-   CMCHKUNPK(cmUnpkRgrCfiCfg, &param->cfiCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
-   CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlfsCfg, &param->dlfsCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrBwCfg, &param->bwCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKUNPK(cmUnpkRgrPhichCfg, &param->phichCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrPucchCfg, &param->pucchCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrSrsCfg, &param->srsCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrRachCfg, &param->rachCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrSiCfg, &param->siCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlPwrCfg, &param->pwrCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrPuschCfg, &param->puschCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrPreambleSetCfg, &param->macPreambleSet, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numCmnLcs, mBuf);
-   for (i=0; i<param->numCmnLcs; i++) {
-      CMCHKUNPK(cmUnpkRgrCmnLchCfg, &param->cmnLcCfg[i], mBuf);
-   }
-   CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
-
-#ifdef LTE_TDD
-   CMCHKUNPK(oduPackUInt8, &param->ulDlCfgIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->spclSfCfgIdx, mBuf);
-   CMCHKUNPK(cmUnpkRgrTddPrachRscInfo, &param->prachRscInfo, mBuf);
-
-#endif
-/* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
-   CMCHKUNPK(oduPackUInt8, &param->rrmTtiIndPrd, mBuf);
-   /*rgr_c_001.main_7 - Added support for SPS*/
-   CMCHKUNPK(cmUnpkRgrSpsDlCellCfg, &param->spsCfg, mBuf);
-
-   CMCHKUNPK(oduPackUInt16, &param->t300TmrVal, mBuf);
-   CMCHKPK(oduPackUInt16, &param->bcchTxPwrOffset, mBuf);
-   CMCHKPK(oduPackUInt16, &param->pcchTxPwrOffset, mBuf);
-   CMCHKPK(oduPackUInt16, &param->rarTxPwrOffset, mBuf);
-   CMCHKPK(oduPackUInt16, &param->phichTxPwrOffset, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isDynCfiEnb, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isAutoCfgModeEnb, mBuf);
-   CMCHKPK(oduPackUInt32, (uint32_t*)&param->msg4pAVal, mBuf);
-   /*LAA: Unpack LAA Cell params*/
-   CMCHKUNPK(cmUnpkRgrLteUCellCfg, &param->lteUCfg, mBuf);
-   #ifdef LTE_ADV
-   CMCHKUNPK(oduPackUInt8, &param->isPucchFormat3Sptd, mBuf);
-#endif
-#ifdef RG_5GTF
-   CMCHKUNPK(cmUnPkRgr5gtfCellCfg, &param->Cell5gtfCfg, mBuf);
-#endif
+   S32 idx;
+   for(idx = RGR_MAX_NUM_QCI-1; idx >= 0; idx--)
+   {
+      CMCHKPK(oduUnpackUInt32, param->qciWgt[idx], mBuf);
+   }   
+   CMCHKPK(oduUnpackUInt8, param->fairCoeffi, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->tptCoeffi, mBuf);
+
    return ROK;
 }
 
@@ -3642,10 +2393,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeAprdDlCqiCfg
+*     Func : cmUnpkRgrEnbPfs
 *
 *
-*     Desc : Downlink Aperiodic CQI reporting related configuration per UE
+*     Desc : PFS Configuration
 *
 *
 *     Ret  : S16
@@ -3655,32 +2406,32 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeAprdDlCqiCfg
+S16 cmUnpkRgrEnbPfs
 (
-RgrUeAprdDlCqiCfg *param,
-Buffer *mBuf
+RgrEnbPfs *param,
+Buffer   *mBuf
 )
 {
+   S32 idx;
 
-   /*Pack Aperiodic Trigger List only for Pcell */
-#ifdef LTE_ADV
-   CMCHKPK(oduUnpackUInt8, param->triggerSet2, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->triggerSet1, mBuf);
-#endif
-
-   CMCHKPK(oduUnpackUInt32, param->aprdModeEnum, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->tptCoeffi, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->fairCoeffi, mBuf);
+   for(idx = 0; idx < RGR_MAX_NUM_QCI; idx++)
+   {
+      CMCHKUNPK(oduPackUInt32, &param->qciWgt[idx], mBuf);
+   }   
    return ROK;
 }
 
-
+/*rgr_c_001.main_7 - Added support for SPS*/
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeAprdDlCqiCfg
+*     Func : cmPkRgrSpsCellCfg
 *
 *
-*     Desc : Downlink Aperiodic CQI reporting related configuration per UE
+*     Desc : DL SPS configuration parameters per UE 
+TODO: Check if this is to be added to re-configuration as well
 *
 *
 *     Ret  : S16
@@ -3690,38 +2441,29 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeAprdDlCqiCfg
+S16 cmPkRgrSpsCellCfg
 (
-RgrUeAprdDlCqiCfg *param,
+RgrSpsCellCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
-
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->aprdModeEnum = (RgrAprdCqiMode) tmpEnum;
-
-#ifdef LTE_ADV
-   CMCHKUNPK(oduPackUInt8, &param->triggerSet1, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->triggerSet2, mBuf);
-#endif
+   CMCHKPK(oduUnpackUInt16, param->maxSpsUePerUlSf, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->maxSpsUePerDlSf, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxSpsDlBw, mBuf);
 
    return ROK;
 }
 
 
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-#ifndef TFU_UPGRADE
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUePrdDlCqiCfg
+*     Func : cmUnpkRgrSpsDlCellCfg
 *
 *
-*     Desc : Downlink Periodic CQI reporting related configuration per UE
+*     Desc : DL SPS configuration parameters per UE 
+TODO: Check if this is to be added to re-configuration as well
 *
 *
 *     Ret  : S16
@@ -3731,32 +2473,74 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUePrdDlCqiCfg
+S16 cmUnpkRgrSpsDlCellCfg
 (
-RgrUePrdDlCqiCfg *param,
+RgrSpsCellCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt16, param->cqiPmiCfgIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->k, mBuf);
-   CMCHKPK(SPkS8, param->cqiOffst, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->subframeOffst, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->prdicityEnum, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxSpsDlBw, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->maxSpsUePerDlSf, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->maxSpsUePerUlSf, mBuf);
+   
    return ROK;
 }
 
+#ifdef RG_5GTF
+S16 cmPkRgr5gtfCellCfg
+(
+Rgr5gtfCellCfg   *param,
+Buffer           *mBuf
+)
+{
+   S8 idx = 0;      
+   for (idx = MAX_5GTF_SUBFRAME_INFO - 1; idx >= 0 ;--idx)
+   {
+
+      CMCHKPK(oduUnpackUInt32, param->dynConfig[(uint8_t)idx], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->uePerGrp, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ueGrpPerTti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numUes, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numOfCC, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->bwPerCC, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
+   return ROK;
+}
 
-\f
+S16 cmUnPkRgr5gtfCellCfg
+(
+Rgr5gtfCellCfg   *param,
+Buffer           *mBuf
+)
+{
+   S8 idx = 0;      
+   
+   CMCHKUNPK(oduPackUInt8, &param->cfi, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->bwPerCC, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numOfCC, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numUes, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ueGrpPerTti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->uePerGrp, mBuf);
+   for (idx = 0; idx < MAX_5GTF_SUBFRAME_INFO ; ++idx)
+   {
+
+      CMCHKUNPK(oduPackUInt32, &param->dynConfig[(uint8_t)idx], mBuf);
+   }
+   return ROK;
+}
+#endif
+
+
+/*LAA : functions to pack and unpack LAA params*/
 /***********************************************************
 *
-*     Func : cmUnpkRgrUePrdDlCqiCfg
+*     Func : cmPkRgrLteUCellCfg
 *
 *
-*     Desc : Downlink Periodic CQI reporting related configuration per UE
+*     Desc : LAA configuration for the Cell 
 *
 *
 *     Ret  : S16
@@ -3766,38 +2550,24 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUePrdDlCqiCfg
+static S16 cmPkRgrLteUCellCfg
 (
-RgrUePrdDlCqiCfg *param,
+RgrLteUCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
+   CMCHKPK(oduUnpackUInt8, param->isLaaCell, mBuf);
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->prdModeEnum = tmpEnum;
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->prdicityEnum = tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->subframeOffst, mBuf);
-   CMCHKUNPK(SUnpkS8, &param->cqiOffst, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->k, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->cqiPmiCfgIdx, mBuf);
    return ROK;
 }
 
-
-#endif
-
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
 /***********************************************************
 *
-*     Func : cmPkRgrUeDlPCqiSetup
+*     Func : cmUnpkRgrLteUCellCfg
 *
 *
-*     Desc : Periodic CQI Setup configuration parameters information
+*     Desc : LAA configuration for the cell 
 *
 *
 *     Ret  : S16
@@ -3807,246 +2577,343 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeDlPCqiSetup
+static S16 cmUnpkRgrLteUCellCfg
+(
+RgrLteUCfg *param,
+Buffer *mBuf
+)
+{
+
+
+   CMCHKUNPK(oduPackUInt8, &param->isLaaCell, mBuf);
+   
+   return ROK;
+}
+
+/* LTE_ADV_FLAG_REMOVED_START */
+/***********************************************************
+ *
+ *     Func : cmPkRgrLteAdvancedUeConfig
+ *
+ *
+ *     Desc : PAcks LteAdvancedUeConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmPkRgrLteAdvancedUeConfig
+(
+RgrLteAdvancedUeConfig *param,
+Buffer *mBuf
+)
+{
+
+   CMCHKPK(oduUnpackUInt8, param->isUeCellEdge, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isAbsUe, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
+   return ROK;
+}
+
+/***********************************************************
+ *
+ *     Func : cmUnpkRgrLteAdvancedUeConfig
+ *
+ *
+ *     Desc : unpacks LteAdvancedUeConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmUnpkRgrLteAdvancedUeConfig
+(
+RgrLteAdvancedUeConfig *param,
+Buffer *mBuf
+)
+{
+
+   CMCHKUNPK(oduPackUInt32, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isAbsUe, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isUeCellEdge, mBuf);
+   return ROK;
+}
+
+/***********************************************************
+ *
+ *     Func : cmPkRgrAbsConfig
+ *
+ *
+ *     Desc : Packs RgrAbsConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmPkRgrAbsConfig
+(
+RgrAbsConfig *param,
+Buffer *mBuf
+)
+{
+   S8   indx = 0;
+
+   CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
+   for (indx = RGR_ABS_PATTERN_LEN-1; indx >= 0; indx--) 
+   {
+      CMCHKPK(oduUnpackUInt8, param->absPattern[(uint8_t)indx], mBuf);
+   }
+
+   CMCHKPK(oduUnpackUInt32, param->absPatternType, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->absLoadPeriodicity, mBuf);
+
+   return ROK;
+
+}
+/***********************************************************
+ *
+ *     Func : cmPkRgrSfrConfig
+ *
+ *
+ *     Desc : Packs RgrSfrConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmPkRgrSfrConfig
 (
-RgrUeDlPCqiSetup *param,
+RgrSfrConfig *param,
 Buffer *mBuf
 )
 {
 
+   CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
+#ifdef TFU_UPGRADE   
+   CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pHigh, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pLow, mBuf);
+#endif   
+   CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.endRb, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.startRb, mBuf);
 
-   CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->sANCQI, mBuf);
-   /*rgr_c_001.main_9 DEL removed unwanted comments*/
-   CMCHKPK(oduUnpackUInt16, param->riCfgIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->riEna, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->k, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->cqiRepType, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->cqiPCfgIdx, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->cqiPResIdx, mBuf);
    return ROK;
+
 }
 
 
-\f
 /***********************************************************
-*
-*     Func : cmUnpkRgrUeDlPCqiSetup
-*
-*
-*     Desc : Periodic CQI Setup configuration parameters information
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUeDlPCqiSetup
+ *
+ *     Func : cmPkRgrDsfrConfig
+ *
+ *
+ *     Desc : Packs RgrDsfrConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:  AIRSPAN_LTE_ADV_DSFR
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmPkRgrDsfrConfig
 (
-RgrUeDlPCqiSetup *param,
+RgrDsfrConfig *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
+   CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
 
-   CMCHKUNPK(oduPackUInt16, &param->cqiPResIdx, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->cqiPCfgIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->cqiRepType, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->k, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->riEna, mBuf);
-   /*rgr_c_001.main_9 DEL removed unwanted comments*/
-   CMCHKUNPK(oduPackUInt16, &param->riCfgIdx, mBuf); 
-   CMCHKUNPK(oduPackUInt8, &param->sANCQI, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->prdModeEnum = (RgrPrdCqiMode) tmpEnum;
    return ROK;
+
 }
 
 
-\f
 /***********************************************************
-*
-*     Func : cmPkRgrUePrdDlCqiCfg
-*
-*
-*     Desc : Periodic CQI/PMI/RI configuration parameters information
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrUePrdDlCqiCfg
+ *
+ *     Func : cmUnpkRgrDsfrConfig
+ *
+ *
+ *     Desc : UnPacks RgrDsfrConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:  AIRSPAN_LTE_ADV_DSFR
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmUnpkRgrDsfrConfig
 (
-RgrUePrdDlCqiCfg *param,
+RgrDsfrConfig *param,
 Buffer *mBuf
 )
 {
 
-
-   CMCHKPK(cmPkRgrUeDlPCqiSetup, &param->cqiSetup, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->type, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->status, mBuf);
    return ROK;
+
 }
 
 
-\f
 /***********************************************************
-*
-*     Func : cmUnpkRgrUePrdDlCqiCfg
-*
-*
-*     Desc : Periodic CQI/PMI/RI configuration parameters information
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUePrdDlCqiCfg
+ *
+ *     Func : cmPkRgrCellLteAdvancedFeatureCfg
+ *
+ *
+ *     Desc : Cell LteAdvancedFeatureCfg
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+
+S16 cmPkRgrCellLteAdvancedFeatureCfg
 (
-RgrUePrdDlCqiCfg *param,
+RgrLteAdvancedCellConfig *param,
 Buffer *mBuf
 )
 {
 
+   CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
+   CMCHKPK(cmPkRgrDsfrConfig, &param->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
+   CMCHKPK(cmPkRgrSfrConfig,  &param->sfrCfg, mBuf);
+   CMCHKPK(cmPkRgrAbsConfig,  &param->absCfg, mBuf);
 
-   CMCHKUNPK(oduPackUInt8, &param->type, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeDlPCqiSetup, &param->cqiSetup, mBuf);
    return ROK;
-}
+
+}   
 
 
-\f
 /***********************************************************
-*
-*     Func : cmPkRgrUeUlSrsSetupCfg
-*
-*
-*     Desc : SRS configuration setup parameters information. 
-   Reference 36.313 SoundingRS-UL-Config
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrUeUlSrsSetupCfg
+ *
+ *     Func : cmUnpkRgrAbsConfig
+ *
+ *
+ *     Desc : Unpacks AbsConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmUnpkRgrAbsConfig
 (
-RgrUeUlSrsSetupCfg *param,
+RgrAbsConfig *param,
 Buffer *mBuf
 )
 {
 
+   S8 indx = 0;
+
+   CMCHKUNPK(oduPackUInt32, &param->absLoadPeriodicity, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->absPatternType, mBuf);
+   for (indx = 0; indx <RGR_ABS_PATTERN_LEN; indx++) 
+   {
+      CMCHKUNPK(oduPackUInt8, &param->absPattern[(uint8_t)indx], mBuf);
+   }
+   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->status, mBuf);
 
-   CMCHKPK(oduUnpackUInt8, param->fDomPosi, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->txComb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->sANSrs, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->duration, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->cycShift, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->srsHopBw, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->srsBw, mBuf);
-   /*rgr_c_001.main_9 DEL removed unwanted comments*/
-   CMCHKPK(oduUnpackUInt16, param->srsCfgIdx, mBuf);
    return ROK;
-}
 
+}
 
-\f
 /***********************************************************
-*
-*     Func : cmUnpkRgrUeUlSrsSetupCfg
-*
-*
-*     Desc : SRS configuration setup parameters information. 
-   Reference 36.313 SoundingRS-UL-Config
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUeUlSrsSetupCfg
+ *
+ *     Func : cmUnpkRgrSfrConfig
+ *
+ *
+ *     Desc : Unpacks SfrConfig
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmUnpkRgrSfrConfig
 (
-RgrUeUlSrsSetupCfg *param,
+RgrSfrConfig *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
 
-   /*rgr_c_001.main_9 DEL removed unwanted comments*/
-   CMCHKUNPK(oduPackUInt16, &param->srsCfgIdx, mBuf); 
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->srsBw = (RgrUlSrsBwInfo) tmpEnum;
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->srsHopBw = (RgrUlSrsHoBwInfo) tmpEnum;
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->cycShift = (RgrUlSrsCycShiftInfo) tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->duration, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->sANSrs, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->txComb, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->fDomPosi, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->cellEdgeRbRange.startRb, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->cellEdgeRbRange.endRb, mBuf);
+#ifdef TFU_UPGRADE   
+   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->pwrThreshold.pLow, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->pwrThreshold.pHigh, mBuf);
+#endif   
+   CMCHKUNPK(oduPackUInt32, (uint32_t*)&param->status, mBuf);
+
    return ROK;
 }
 
-
-\f
 /***********************************************************
-*
-*     Func : cmPkRgrUeSrSetupCfg
-*
-*
-*     Desc : SR Setup configuration parameters information
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrUeSrSetupCfg
+ *
+ *     Func : cmUnpkRgrCellLteAdvancedFeatureCfg
+ *
+ *
+ *     Desc : unpacks LteAdvancedFeatureCfg per cell
+ *
+ *
+ *     Ret  : S16
+ *
+ *     Notes:
+ *
+ *     File  : 
+ *
+ **********************************************************/
+S16 cmUnpkRgrCellLteAdvancedFeatureCfg
 (
-RgrUeSrSetupCfg *param,
+RgrLteAdvancedCellConfig *param,
 Buffer *mBuf
 )
 {
 
+   CMCHKUNPK(cmUnpkRgrAbsConfig, &param->absCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrSfrConfig, &param->sfrCfg, mBuf);   
+   CMCHKUNPK(cmUnpkRgrDsfrConfig, &param->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
+   CMCHKUNPK(oduPackUInt32, &param->pres, mBuf);
 
-   /* ccpu00131601:DEL - dTMax Packing removed since this param will not 
-    * be required by Scheduler*/
-   CMCHKPK(oduUnpackUInt8, param->srCfgIdx, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->srResIdx, mBuf);
    return ROK;
 }
 
+/* LTE_ADV_FLAG_REMOVED_END */
 
-\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeSrSetupCfg
-*
-*
-*     Desc : SR Setup configuration parameters information
+*     Func : cmPkMacSchedGnbCfg
 *
+*     Desc : SCH GNB Configurations 
 *
 *     Ret  : S16
 *
@@ -4055,28 +2922,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeSrSetupCfg
+S16 cmPkMacSchedGnbCfg
 (
-RgrUeSrSetupCfg *param,
-Buffer *mBuf
+MacSchedGnbCfg *param,
+Buffer         *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt16, &param->srResIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->srCfgIdx, mBuf);
-   /* ccpu00131601:DEL - dTMax UnPacking removed since this param will not 
-    * be required by Scheduler*/
+   CMCHKPK(oduUnpackUInt8, param->maxDlUePerTti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxUlUePerTti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->dlSchdType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ulSchdType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numTxAntPorts, mBuf);
    return ROK;
-}
-
+} /* cmPkRgrSchedEnbCfg */
 
-\f
 /***********************************************************
 *
-*     Func : cmPkRgrUeSrCfg
+*     Func : cmUnpkMacSchedGnbCfg
 *
 *
-*     Desc : SR configuration parameters information
+*     Desc : SCH Gnodeb Configuration to SCH
 *
 *
 *     Ret  : S16
@@ -4086,27 +2953,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeSrCfg
+S16 cmUnpkMacSchedGnbCfg
 (
-RgrUeSrCfg *param,
-Buffer *mBuf
+MacSchedGnbCfg *param,
+Buffer         *mBuf
 )
 {
 
 
-   CMCHKPK(cmPkRgrUeSrSetupCfg, &param->srSetup, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->type, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numTxAntPorts, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ulSchdType, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->dlSchdType, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numCells, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxUlUePerTti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxDlUePerTti, mBuf);
    return ROK;
-}
-
+} /* cmUnpkMacSchedGnbCfg */
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeSrCfg
+*     Func : cmPkRgrCellCfg
 *
 *
-*     Desc : SR configuration parameters information
+*     Desc : Cell Configuration at RRM
 *
 *
 *     Ret  : S16
@@ -4116,16 +2986,104 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeSrCfg
+S16 cmPkRgrCellCfg
 (
-RgrUeSrCfg *param,
+RgrCellCfg *param,
 Buffer *mBuf
 )
 {
 
+   S32 i;
+
+#ifdef EMTC_ENABLE 
+/* EMTC related changes start*/
+
+     
+/* EMTC related changes ends*/
+#endif
+
+#ifdef RG_5GTF
+   CMCHKPK(cmPkRgr5gtfCellCfg, &param->Cell5gtfCfg, mBuf);
+#endif
+#ifdef LTE_ADV
+   CMCHKPK(oduUnpackUInt8, param->isPucchFormat3Sptd, mBuf);
+#endif
+/*LAA: Pack LAA params*/
+   CMCHKPK(cmPkRgrLteUCellCfg, &param->lteUCfg, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->msg4pAVal, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->phichTxPwrOffset, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->rarTxPwrOffset, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->pcchTxPwrOffset, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->bcchTxPwrOffset, mBuf);
+
+   CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
+/*rgr_c_001.main_7 - Added support for SPS*/
+   CMCHKPK(cmPkRgrSpsCellCfg, &param->spsCfg, mBuf);
+
+/* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
+   CMCHKPK(oduUnpackUInt8, param->rrmTtiIndPrd, mBuf);
+#ifdef LTE_TDD
+   CMCHKPK(cmPkRgrTddPrachRscInfo, &param->prachRscInfo, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->spclSfCfgIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ulDlCfgIdx, mBuf);
+
+#endif
+   CMCHKPK(cmPkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
+   for (i=param->numCmnLcs-1; i >= 0; i--) {
+      CMCHKPK(cmPkRgrCmnLchCfg, &param->cmnLcCfg[i], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->numCmnLcs, mBuf);
+   CMCHKPK(cmPkRgrPreambleSetCfg, &param->macPreambleSet, mBuf);
+   CMCHKPK(cmPkRgrPuschCfg, &param->puschCfg, mBuf);
+   CMCHKPK(cmPkRgrUlPwrCfg, &param->pwrCfg, mBuf);
+   CMCHKPK(cmPkRgrSiCfg, &param->siCfg, mBuf);
+   CMCHKPK(cmPkRgrRachCfg, &param->rachCfg, mBuf);
+   CMCHKPK(cmPkRgrSrsCfg, &param->srsCfg, mBuf);
+   CMCHKPK(cmPkRgrPucchCfg, &param->pucchCfg, mBuf);
+   CMCHKPK(cmPkRgrPhichCfg, &param->phichCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKPK(cmPkRgrBwCfg, &param->bwCfg, mBuf);
+   CMCHKPK(cmPkRgrDlfsCfg, &param->dlfsCfg, mBuf);
+   CMCHKPK(cmPkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
+   CMCHKPK(cmPkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
+   CMCHKPK(cmPkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
+   CMCHKPK(cmPkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
+   CMCHKPK(cmPkRgrCfiCfg, &param->cfiCfg, mBuf);
+   CMCHKPK(cmPkRgrRntiCfg, &param->macRnti, mBuf);
+   CMCHKPK(cmPkRgrDlHqCfg, &param->dlHqCfg, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->dlfsSchdType, mBuf);
+
+   CMCHKPK(SPkS8, param->pMax, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->cellModSchm, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isCpDlExtend, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isCpUlExtend, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxUlUeNewTxPerTti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxDlUeNewTxPerTti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxDlRetxBw, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxDlBwPerUe, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxUlBwPerUe, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxCcchPerDlSf, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxUePerDlSf, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxUePerUlSf, mBuf);
+#ifdef RGR_V1
+   /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
+      of  MSG3s */
+   CMCHKPK(oduUnpackUInt8, param->maxMsg3PerUlSf, mBuf);
+#endif
+   CMCHKPK(oduUnpackUInt8, param->macInst, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+
+#ifdef EMTC_ENABLE 
+/* EMTC related changes start*/
+   CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
+   CMCHKPK(cmPkRgrEmtcCfg, &param->emtcCellCfg, mBuf);
+/* EMTC related changes ends*/
+#endif
 
-   CMCHKUNPK(oduPackUInt8, &param->type, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeSrSetupCfg, &param->srSetup, mBuf);
    return ROK;
 }
 
@@ -4133,11 +3091,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeUlSrsCfg
+*     Func : cmUnpkRgrCellCfg
 *
 *
-*     Desc : SRS configuration parameters information.  
-  Reference 36.313 SoundingRS-UL-Config
+*     Desc : Cell Configuration at RRM
 *
 *
 *     Ret  : S16
@@ -4147,17 +3104,95 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeUlSrsCfg
+S16 cmUnpkRgrCellCfg
 (
-RgrUeUlSrsCfg *param,
+RgrCellCfg *param,
 Buffer *mBuf
 )
 {
 
+   S32 i;
+
+#ifdef EMTC_ENABLE     
+/* EMTC related changes start*/
+   CMCHKUNPK(cmUnpkRgrEmtcCfg, &param->emtcCellCfg, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->emtcEnable, mBuf);
+/* EMTC related changes ends*/
+#endif
+
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->macInst, mBuf);
+#ifdef RGR_V1
+   /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
+      of  MSG3s */
+   CMCHKUNPK(oduPackUInt8, &param->maxMsg3PerUlSf, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt8, &param->maxUePerUlSf, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxUePerDlSf, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxCcchPerDlSf, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxUlBwPerUe, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxDlBwPerUe, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxDlRetxBw, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxDlUeNewTxPerTti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxUlUeNewTxPerTti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isCpUlExtend, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isCpDlExtend, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->cellModSchm, mBuf);
+   CMCHKUNPK(SUnpkS8, &param->pMax, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->dlfsSchdType, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlHqCfg, &param->dlHqCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrRntiCfg, &param->macRnti, mBuf);
+   CMCHKUNPK(cmUnpkRgrCfiCfg, &param->cfiCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
+   CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlfsCfg, &param->dlfsCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrBwCfg, &param->bwCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKUNPK(cmUnpkRgrPhichCfg, &param->phichCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrPucchCfg, &param->pucchCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrSrsCfg, &param->srsCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrRachCfg, &param->rachCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrSiCfg, &param->siCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlPwrCfg, &param->pwrCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrPuschCfg, &param->puschCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrPreambleSetCfg, &param->macPreambleSet, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numCmnLcs, mBuf);
+   for (i=0; i<param->numCmnLcs; i++) {
+      CMCHKUNPK(cmUnpkRgrCmnLchCfg, &param->cmnLcCfg[i], mBuf);
+   }
+   CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
+
+#ifdef LTE_TDD
+   CMCHKUNPK(oduPackUInt8, &param->ulDlCfgIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->spclSfCfgIdx, mBuf);
+   CMCHKUNPK(cmUnpkRgrTddPrachRscInfo, &param->prachRscInfo, mBuf);
+
+#endif
+/* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
+   CMCHKUNPK(oduPackUInt8, &param->rrmTtiIndPrd, mBuf);
+   /*rgr_c_001.main_7 - Added support for SPS*/
+   CMCHKUNPK(cmUnpkRgrSpsDlCellCfg, &param->spsCfg, mBuf);
 
-   /*rgr_c_001.main_9 DEL removed unwanted comments*/
-   CMCHKPK(cmPkRgrUeUlSrsSetupCfg, &param->srsSetup, mBuf);  
-   CMCHKPK(oduUnpackUInt8, param->type, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->t300TmrVal, mBuf);
+   CMCHKPK(oduPackUInt16, &param->bcchTxPwrOffset, mBuf);
+   CMCHKPK(oduPackUInt16, &param->pcchTxPwrOffset, mBuf);
+   CMCHKPK(oduPackUInt16, &param->rarTxPwrOffset, mBuf);
+   CMCHKPK(oduPackUInt16, &param->phichTxPwrOffset, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isDynCfiEnb, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isAutoCfgModeEnb, mBuf);
+   CMCHKPK(oduPackUInt32, (uint32_t*)&param->msg4pAVal, mBuf);
+   /*LAA: Unpack LAA Cell params*/
+   CMCHKUNPK(cmUnpkRgrLteUCellCfg, &param->lteUCfg, mBuf);
+   #ifdef LTE_ADV
+   CMCHKUNPK(oduPackUInt8, &param->isPucchFormat3Sptd, mBuf);
+#endif
+#ifdef RG_5GTF
+   CMCHKUNPK(cmUnPkRgr5gtfCellCfg, &param->Cell5gtfCfg, mBuf);
+#endif
    return ROK;
 }
 
@@ -4165,11 +3200,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeUlSrsCfg
+*     Func : cmPkRgrUeAprdDlCqiCfg
 *
 *
-*     Desc : SRS configuration parameters information.  
-  Reference 36.313 SoundingRS-UL-Config
+*     Desc : Downlink Aperiodic CQI reporting related configuration per UE
 *
 *
 *     Ret  : S16
@@ -4179,30 +3213,32 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeUlSrsCfg
+S16 cmPkRgrUeAprdDlCqiCfg
 (
-RgrUeUlSrsCfg *param,
+RgrUeAprdDlCqiCfg *param,
 Buffer *mBuf
 )
 {
 
+   /*Pack Aperiodic Trigger List only for Pcell */
+#ifdef LTE_ADV
+   CMCHKPK(oduUnpackUInt8, param->triggerSet2, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->triggerSet1, mBuf);
+#endif
 
-   CMCHKUNPK(oduPackUInt8, &param->type, mBuf);
-   /*rgr_c_001.main_9 DEL removed unwanted comments*/
-   CMCHKUNPK(cmUnpkRgrUeUlSrsSetupCfg, &param->srsSetup, mBuf);  
+   CMCHKPK(oduUnpackUInt32, param->aprdModeEnum, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
 
-#endif /*TFU_UPGRADE */
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeDlCqiCfg
+*     Func : cmUnpkRgrUeAprdDlCqiCfg
 *
 *
-*     Desc : Downlink CQI reporting related configuration per UE
+*     Desc : Downlink Aperiodic CQI reporting related configuration per UE
 *
 *
 *     Ret  : S16
@@ -4212,36 +3248,38 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeDlCqiCfg
+S16 cmUnpkRgrUeAprdDlCqiCfg
 (
-RgrUeDlCqiCfg *param,
+RgrUeAprdDlCqiCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->aprdModeEnum = (RgrAprdCqiMode) tmpEnum;
 
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->prdCqiCfg, mBuf);
+#ifdef LTE_ADV
+   CMCHKUNPK(oduPackUInt8, &param->triggerSet1, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->triggerSet2, mBuf);
 #endif
 
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-#ifndef TFU_UPGRADE
-   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->prdCqiCfg, mBuf);
-#endif
-   CMCHKPK(cmPkRgrUeAprdDlCqiCfg, &param->aprdCqiCfg, mBuf);
    return ROK;
 }
 
 
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+#ifndef TFU_UPGRADE
+
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeDlCqiCfg
+*     Func : cmPkRgrUePrdDlCqiCfg
 *
 *
-*     Desc : Downlink CQI reporting related configuration per UE
+*     Desc : Downlink Periodic CQI reporting related configuration per UE
 *
 *
 *     Ret  : S16
@@ -4251,16 +3289,21 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeDlCqiCfg
+S16 cmPkRgrUePrdDlCqiCfg
 (
-RgrUeDlCqiCfg *param,
+RgrUePrdDlCqiCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, &param->aprdCqiCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, &param->prdCqiCfg, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->cqiPmiCfgIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->k, mBuf);
+   CMCHKPK(SPkS8, param->cqiOffst, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->subframeOffst, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->prdicityEnum, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
@@ -4268,10 +3311,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeMeasGapCfg
+*     Func : cmUnpkRgrUePrdDlCqiCfg
 *
 *
-*     Desc : Measurement gap configuration for UE
+*     Desc : Downlink Periodic CQI reporting related configuration per UE
 *
 *
 *     Ret  : S16
@@ -4281,59 +3324,38 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeMeasGapCfg
+S16 cmUnpkRgrUePrdDlCqiCfg
 (
-RgrUeMeasGapCfg *param,
+RgrUePrdDlCqiCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
-   CMCHKPK(oduUnpackUInt8, param->gapOffst, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->gapPrd, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isMesGapEnabled, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->prdModeEnum = tmpEnum;
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->prdicityEnum = tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->subframeOffst, mBuf);
+   CMCHKUNPK(SUnpkS8, &param->cqiOffst, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->k, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->cqiPmiCfgIdx, mBuf);
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmUnpkRgrUeMeasGapCfg
-*
-*
-*     Desc : Measurement gap configuration for UE
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmUnpkRgrUeMeasGapCfg
-(
-RgrUeMeasGapCfg *param,
-Buffer *mBuf
-)
-{
-
-
-   CMCHKUNPK(oduPackUInt8, &param->isMesGapEnabled, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->gapPrd, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->gapOffst, mBuf);
-   return ROK;
-}
+#endif
 
-/*rgr_c_001.main_9 ADD DRX functionality under flag*/
-\f
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+#ifdef TFU_UPGRADE
 /***********************************************************
 *
-*     Func : cmPkRgrDrxLongCycleOffst
+*     Func : cmPkRgrUeDlPCqiSetup
 *
 *
-*     Desc : DRX Long Cycle Offset
+*     Desc : Periodic CQI Setup configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4343,16 +3365,23 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDrxLongCycleOffst
+S16 cmPkRgrUeDlPCqiSetup
 (
-RgrDrxLongCycleOffst *param,
+RgrUeDlPCqiSetup *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt16, param->drxStartOffst, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->longDrxCycle, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->sANCQI, mBuf);
+   /*rgr_c_001.main_9 DEL removed unwanted comments*/
+   CMCHKPK(oduUnpackUInt16, param->riCfgIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->riEna, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->k, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->cqiRepType, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->cqiPCfgIdx, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->cqiPResIdx, mBuf);
    return ROK;
 }
 
@@ -4360,10 +3389,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDrxLongCycleOffst
+*     Func : cmUnpkRgrUeDlPCqiSetup
 *
 *
-*     Desc : DRX Long Cycle Offset
+*     Desc : Periodic CQI Setup configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4373,16 +3402,25 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDrxLongCycleOffst
+S16 cmUnpkRgrUeDlPCqiSetup
 (
-RgrDrxLongCycleOffst *param,
+RgrUeDlPCqiSetup *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
-   CMCHKUNPK(oduPackUInt16, &param->longDrxCycle, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->drxStartOffst, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->cqiPResIdx, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->cqiPCfgIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->cqiRepType, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->k, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->riEna, mBuf);
+   /*rgr_c_001.main_9 DEL removed unwanted comments*/
+   CMCHKUNPK(oduPackUInt16, &param->riCfgIdx, mBuf); 
+   CMCHKUNPK(oduPackUInt8, &param->sANCQI, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->prdModeEnum = (RgrPrdCqiMode) tmpEnum;
    return ROK;
 }
 
@@ -4390,10 +3428,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrDrxShortDrx
+*     Func : cmPkRgrUePrdDlCqiCfg
 *
 *
-*     Desc : DRX Short Cycle Offset
+*     Desc : Periodic CQI/PMI/RI configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4403,17 +3441,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDrxShortDrx
+S16 cmPkRgrUePrdDlCqiCfg
 (
-RgrDrxShortDrx *param,
+RgrUePrdDlCqiCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt8, param->drxShortCycleTmr, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->shortDrxCycle, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKPK(cmPkRgrUeDlPCqiSetup, &param->cqiSetup, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->type, mBuf);
    return ROK;
 }
 
@@ -4421,10 +3458,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDrxShortDrx
+*     Func : cmUnpkRgrUePrdDlCqiCfg
 *
 *
-*     Desc : DRX Short Cycle Offset
+*     Desc : Periodic CQI/PMI/RI configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4434,26 +3471,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDrxShortDrx
+S16 cmUnpkRgrUePrdDlCqiCfg
 (
-RgrDrxShortDrx *param,
+RgrUePrdDlCqiCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->shortDrxCycle, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->drxShortCycleTmr, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->type, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeDlPCqiSetup, &param->cqiSetup, mBuf);
    return ROK;
 }
+
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeDrxCfg
+*     Func : cmPkRgrUeUlSrsSetupCfg
 *
 *
-*     Desc : DRX configuration for UE
+*     Desc : SRS configuration setup parameters information. 
+   Reference 36.313 SoundingRS-UL-Config
 *
 *
 *     Ret  : S16
@@ -4463,29 +3502,23 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeDrxCfg
+S16 cmPkRgrUeUlSrsSetupCfg
 (
-RgrUeDrxCfg *param,
+RgrUeUlSrsSetupCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(cmPkRgrDrxShortDrx, &param->drxShortDrx, mBuf);
-   CMCHKPK(cmPkRgrDrxLongCycleOffst, &param->drxLongCycleOffst, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->drxRetxTmr, mBuf);
-#ifdef EMTC_ENABLE
-   CMCHKPK(oduUnpackUInt8,  param->drxRetxTmrR13Pres, mBuf);
-   CMCHKPK(oduUnpackUInt8,  param->drxOnDurTmrR13Pres, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->emtcDrxUlRetxTmr, mBuf);
-   CMCHKPK(oduUnpackUInt8,  param->isEmtcUe, mBuf); 
-#endif
-   CMCHKPK(oduUnpackUInt16, param->drxInactvTmr, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->drxOnDurTmr, mBuf);
-/*rgr_c_001.main_9 ADD added changes for R9*/
-#ifdef LTEMAC_R9
-   CMCHKPK(cmPkTknS32, &param->cqiMask, mBuf);
-#endif
+   CMCHKPK(oduUnpackUInt8, param->fDomPosi, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->txComb, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->sANSrs, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->duration, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->cycShift, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->srsHopBw, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->srsBw, mBuf);
+   /*rgr_c_001.main_9 DEL removed unwanted comments*/
+   CMCHKPK(oduUnpackUInt16, param->srsCfgIdx, mBuf);
    return ROK;
 }
 
@@ -4493,10 +3526,11 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeDrxCfg
+*     Func : cmUnpkRgrUeUlSrsSetupCfg
 *
 *
-*     Desc : DRX configuration for UE
+*     Desc : SRS configuration setup parameters information. 
+   Reference 36.313 SoundingRS-UL-Config
 *
 *
 *     Ret  : S16
@@ -4506,40 +3540,38 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeDrxCfg
+S16 cmUnpkRgrUeUlSrsSetupCfg
 (
-RgrUeDrxCfg *param,
+RgrUeUlSrsSetupCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
-/*rgr_c_001.main_9 ADD added changes for R9*/
-#ifdef LTEMAC_R9
-   CMCHKUNPK(cmUnpkTknS32, &param->cqiMask, mBuf);
-#endif
-   CMCHKUNPK(oduPackUInt16, &param->drxOnDurTmr, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->drxInactvTmr, mBuf);
-#ifdef EMTC_ENABLE
-   CMCHKUNPK(oduPackUInt8, &param->isEmtcUe, mBuf); 
-   CMCHKUNPK(oduPackUInt16,&param->emtcDrxUlRetxTmr, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->drxOnDurTmrR13Pres, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->drxRetxTmrR13Pres, mBuf);
-#endif
-   CMCHKUNPK(oduPackUInt16, &param->drxRetxTmr, mBuf);
-   CMCHKUNPK(cmUnpkRgrDrxLongCycleOffst, &param->drxLongCycleOffst, mBuf);
-   CMCHKUNPK(cmUnpkRgrDrxShortDrx, &param->drxShortDrx, mBuf);
+   /*rgr_c_001.main_9 DEL removed unwanted comments*/
+   CMCHKUNPK(oduPackUInt16, &param->srsCfgIdx, mBuf); 
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->srsBw = (RgrUlSrsBwInfo) tmpEnum;
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->srsHopBw = (RgrUlSrsHoBwInfo) tmpEnum;
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->cycShift = (RgrUlSrsCycShiftInfo) tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->duration, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->sANSrs, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->txComb, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->fDomPosi, mBuf);
    return ROK;
 }
 
-/*rgr_c_001.main_9 ADD added DRX changes under DRX*/
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeCapCfg
+*     Func : cmPkRgrUeSrSetupCfg
 *
 *
-*     Desc : RgrUeCapCfg
+*     Desc : SR Setup configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4549,19 +3581,18 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeCapCfg
+S16 cmPkRgrUeSrSetupCfg
 (
-RgrUeCapCfg *param,
+RgrUeSrSetupCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt8, param->txAntSel, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->simCqiAckNack, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->resAloocType1, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->intraSfFeqHop, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pwrClass, mBuf);
+   /* ccpu00131601:DEL - dTMax Packing removed since this param will not 
+    * be required by Scheduler*/
+   CMCHKPK(oduUnpackUInt8, param->srCfgIdx, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->srResIdx, mBuf);
    return ROK;
 }
 
@@ -4569,10 +3600,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeCapCfg
+*     Func : cmUnpkRgrUeSrSetupCfg
 *
 *
-*     Desc : RgrUeCapCfg
+*     Desc : SR Setup configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4582,30 +3613,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeCapCfg
+S16 cmUnpkRgrUeSrSetupCfg
 (
-RgrUeCapCfg *param,
+RgrUeSrSetupCfg *param,
 Buffer *mBuf
 )
 {
 
-
-   CMCHKUNPK(oduPackUInt8, &param->pwrClass, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->intraSfFeqHop, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->resAloocType1, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->simCqiAckNack, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->txAntSel, mBuf);
-   
+   CMCHKUNPK(oduPackUInt16, &param->srResIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->srCfgIdx, mBuf);
+   /* ccpu00131601:DEL - dTMax UnPacking removed since this param will not 
+    * be required by Scheduler*/
    return ROK;
 }
 
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeAckNackRepCfg
+*     Func : cmPkRgrUeSrCfg
 *
 *
-*     Desc : rgrUeAckNackRepCfg
+*     Desc : SR configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4615,17 +3644,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeAckNackRepCfg
+S16 cmPkRgrUeSrCfg
 (
-RgrUeAckNackRepCfg *param,
+RgrUeSrCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt32, param->ackNackRepFactor, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->pucchAckNackRep, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isAckNackEnabled, mBuf);
+   CMCHKPK(cmPkRgrUeSrSetupCfg, &param->srSetup, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->type, mBuf);
    return ROK;
 }
 
@@ -4633,10 +3661,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeAckNackRepCfg
+*     Func : cmUnpkRgrUeSrCfg
 *
 *
-*     Desc : rgrUeAckNackRepCfg
+*     Desc : SR configuration parameters information
 *
 *
 *     Ret  : S16
@@ -4646,19 +3674,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeAckNackRepCfg
+S16 cmUnpkRgrUeSrCfg
 (
-RgrUeAckNackRepCfg *param,
+RgrUeSrCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
 
-   CMCHKUNPK(oduPackUInt8, &param->isAckNackEnabled, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->pucchAckNackRep, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->ackNackRepFactor = (RgrAckNackRepFactor) tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->type, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeSrSetupCfg, &param->srSetup, mBuf);
    return ROK;
 }
 
@@ -4666,10 +3691,11 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeTxModeCfg
+*     Func : cmPkRgrUeUlSrsCfg
 *
 *
-*     Desc : Transmission mode configuration per UE
+*     Desc : SRS configuration parameters information.  
+  Reference 36.313 SoundingRS-UL-Config
 *
 *
 *     Ret  : S16
@@ -4679,18 +3705,17 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeTxModeCfg
+S16 cmPkRgrUeUlSrsCfg
 (
-RgrUeTxModeCfg *param,
+RgrUeUlSrsCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt32, param->txModeEnum, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->tmTrnstnState, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
-   
+   /*rgr_c_001.main_9 DEL removed unwanted comments*/
+   CMCHKPK(cmPkRgrUeUlSrsSetupCfg, &param->srsSetup, mBuf);  
+   CMCHKPK(oduUnpackUInt8, param->type, mBuf);
    return ROK;
 }
 
@@ -4698,10 +3723,11 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeTxModeCfg
+*     Func : cmUnpkRgrUeUlSrsCfg
 *
 *
-*     Desc : Transmission mode configuration per UE
+*     Desc : SRS configuration parameters information.  
+  Reference 36.313 SoundingRS-UL-Config
 *
 *
 *     Ret  : S16
@@ -4711,32 +3737,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeTxModeCfg
+S16 cmUnpkRgrUeUlSrsCfg
 (
-RgrUeTxModeCfg *param,
+RgrUeUlSrsCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->tmTrnstnState = (RgrTxModeTrnstn) tmpEnum;
-
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->txModeEnum = (RgrTxMode) tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->type, mBuf);
+   /*rgr_c_001.main_9 DEL removed unwanted comments*/
+   CMCHKUNPK(cmUnpkRgrUeUlSrsSetupCfg, &param->srsSetup, mBuf);  
    return ROK;
 }
 
 
+#endif /*TFU_UPGRADE */
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeUlHqCfg
+*     Func : cmPkRgrUeDlCqiCfg
 *
 *
-*     Desc : Uplink HARQ configuration per UE
+*     Desc : Downlink CQI reporting related configuration per UE
 *
 *
 *     Ret  : S16
@@ -4746,16 +3770,25 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeUlHqCfg
+S16 cmPkRgrUeDlCqiCfg
 (
-RgrUeUlHqCfg *param,
+RgrUeDlCqiCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt8, param->deltaHqOffst, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->maxUlHqTx, mBuf);
+
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+#ifdef TFU_UPGRADE
+   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->prdCqiCfg, mBuf);
+#endif
+
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+#ifndef TFU_UPGRADE
+   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->prdCqiCfg, mBuf);
+#endif
+   CMCHKPK(cmPkRgrUeAprdDlCqiCfg, &param->aprdCqiCfg, mBuf);
    return ROK;
 }
 
@@ -4763,10 +3796,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeUlHqCfg
+*     Func : cmUnpkRgrUeDlCqiCfg
 *
 *
-*     Desc : Uplink HARQ configuration per UE
+*     Desc : Downlink CQI reporting related configuration per UE
 *
 *
 *     Ret  : S16
@@ -4776,16 +3809,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeUlHqCfg
+S16 cmUnpkRgrUeDlCqiCfg
 (
-RgrUeUlHqCfg *param,
+RgrUeDlCqiCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->maxUlHqTx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->deltaHqOffst, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, &param->aprdCqiCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, &param->prdCqiCfg, mBuf);
    return ROK;
 }
 
@@ -4793,10 +3826,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeGrpPwrCfg
+*     Func : cmPkRgrUeMeasGapCfg
 *
 *
-*     Desc : Group power configuration per UE for PUCCH and PUSCH group power control
+*     Desc : Measurement gap configuration for UE
 *
 *
 *     Ret  : S16
@@ -4806,17 +3839,17 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeGrpPwrCfg
+S16 cmPkRgrUeMeasGapCfg
 (
-RgrUeGrpPwrCfg *param,
+RgrUeMeasGapCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt8, param->idx, mBuf);
-   CMCHKPK(cmPkLteRnti, param->tpcRnti, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->gapOffst, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->gapPrd, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isMesGapEnabled, mBuf);
    return ROK;
 }
 
@@ -4824,10 +3857,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeGrpPwrCfg
+*     Func : cmUnpkRgrUeMeasGapCfg
 *
 *
-*     Desc : Group power configuration per UE for PUCCH and PUSCH group power control
+*     Desc : Measurement gap configuration for UE
 *
 *
 *     Ret  : S16
@@ -4837,29 +3870,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeGrpPwrCfg
+S16 cmUnpkRgrUeMeasGapCfg
 (
-RgrUeGrpPwrCfg *param,
+RgrUeMeasGapCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->tpcRnti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->idx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isMesGapEnabled, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->gapPrd, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->gapOffst, mBuf);
    return ROK;
 }
 
-/*rgr_c_001.main_7 - Added support for SPS*/
-
+/*rgr_c_001.main_9 ADD DRX functionality under flag*/
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeSpsDlCfg
+*     Func : cmPkRgrDrxLongCycleOffst
 *
 *
-*     Desc : DL SPS configuration parameters per UE
+*     Desc : DRX Long Cycle Offset
 *
 *
 *     Ret  : S16
@@ -4869,22 +3901,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeSpsDlCfg
+S16 cmPkRgrDrxLongCycleOffst
 (
-RgrUeSpsDlCfg *param,
+RgrDrxLongCycleOffst *param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
-   CMCHKPK(oduUnpackUInt16, param->explicitRelCnt, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->dlSpsPrdctyEnum, mBuf);
-   for (i=param->numPucchVal-1; i >= 0; i--) {
-      CMCHKPK(oduUnpackUInt32, param->n1PucchVal[i], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->numPucchVal, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numSpsHqProc, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isDlSpsEnabled, mBuf);
+
+   CMCHKPK(oduUnpackUInt16, param->drxStartOffst, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->longDrxCycle, mBuf);
    return ROK;
 }
 
@@ -4892,10 +3918,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeSpsDlCfg
+*     Func : cmUnpkRgrDrxLongCycleOffst
 *
 *
-*     Desc : DL SPS configuration parameters per UE
+*     Desc : DRX Long Cycle Offset
 *
 *
 *     Ret  : S16
@@ -4905,25 +3931,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeSpsDlCfg
+S16 cmUnpkRgrDrxLongCycleOffst
 (
-RgrUeSpsDlCfg *param,
+RgrDrxLongCycleOffst *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
-   S32 i;
 
-   CMCHKUNPK(oduPackUInt8, &param->isDlSpsEnabled, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numSpsHqProc, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numPucchVal, mBuf);
-   for (i=0; i<param->numPucchVal; i++) {
-      CMCHKUNPK(oduPackUInt32, &param->n1PucchVal[i], mBuf);
-   }
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->dlSpsPrdctyEnum = tmpEnum;
-   CMCHKUNPK(oduPackUInt16, &param->explicitRelCnt, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->longDrxCycle, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->drxStartOffst, mBuf);
    return ROK;
 }
 
@@ -4931,10 +3948,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeSpsUlCfg
+*     Func : cmPkRgrDrxShortDrx
 *
 *
-*     Desc : UL SPS configuration parameters per UE
+*     Desc : DRX Short Cycle Offset
 *
 *
 *     Ret  : S16
@@ -4944,34 +3961,17 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeSpsUlCfg
+S16 cmPkRgrDrxShortDrx
 (
-RgrUeSpsUlCfg *param,
+RgrDrxShortDrx *param,
 Buffer *mBuf
 )
 {
 
-   S32 i;
-
-   CMCHKPK(oduUnpackUInt8, param->isLcSRMaskEnab, mBuf);
-   for (i=param->lcCnt-1; i >= 0; i--) {
-      /* SPS Changes starts */
-      CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].isSpsEnabled, mBuf);
-      CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].lcId, mBuf);
-      /* SPS Changes ends */
-   }
-   CMCHKPK(oduUnpackUInt8, param->lcCnt, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->ulSpsPrdctyEnum, mBuf);
-      CMCHKPK(SPkS8, param->pwrCfg.p0UePuschVal, mBuf);
-      CMCHKPK(SPkS8, param->pwrCfg.p0NominalPuschVal, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pwrCfgPres, mBuf);
-
-#ifdef LTE_TDD
-   CMCHKPK(oduUnpackUInt8, param->twoIntervalCfg, mBuf);
 
-#endif
-   CMCHKPK(oduUnpackUInt32, param->implicitRelCnt, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isUlSpsEnabled, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->drxShortCycleTmr, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->shortDrxCycle, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
@@ -4979,10 +3979,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeSpsUlCfg
+*     Func : cmUnpkRgrDrxShortDrx
 *
 *
-*     Desc : UL SPS configuration parameters per UE
+*     Desc : DRX Short Cycle Offset
 *
 *
 *     Ret  : S16
@@ -4992,46 +3992,26 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeSpsUlCfg
+S16 cmUnpkRgrDrxShortDrx
 (
-RgrUeSpsUlCfg *param,
+RgrDrxShortDrx *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
-
-   S32 i;
-
-   CMCHKUNPK(oduPackUInt8, &param->isUlSpsEnabled, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->implicitRelCnt = tmpEnum;
 
-#ifdef LTE_TDD
-   CMCHKUNPK(oduPackUInt8, &param->twoIntervalCfg, mBuf);
 
-#endif
-   CMCHKUNPK(oduPackUInt8, &param->pwrCfgPres, mBuf);
-      CMCHKUNPK(SUnpkS8, &param->pwrCfg.p0NominalPuschVal, mBuf);
-      CMCHKUNPK(SUnpkS8, &param->pwrCfg.p0UePuschVal, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->ulSpsPrdctyEnum = tmpEnum;
-   CMCHKUNPK(oduPackUInt8, &param->lcCnt, mBuf); 
-   for (i=0; i<param->lcCnt; i++) {
-      CMCHKUNPK(oduPackUInt8, &param->spsLcInfo[i].lcId, mBuf);
-      CMCHKUNPK(oduPackUInt8, &param->spsLcInfo[i].isSpsEnabled, mBuf);
-   }
-   CMCHKUNPK(oduPackUInt8, &param->isLcSRMaskEnab, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->shortDrxCycle, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->drxShortCycleTmr, mBuf);
    return ROK;
 }
-
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeSpsCfg
+*     Func : cmPkRgrUeDrxCfg
 *
 *
-*     Desc : SPS configuration parameters per UE
+*     Desc : DRX configuration for UE
 *
 *
 *     Ret  : S16
@@ -5041,17 +4021,29 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeSpsCfg
+S16 cmPkRgrUeDrxCfg
 (
-RgrUeSpsCfg *param,
+RgrUeDrxCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(cmPkRgrUeSpsUlCfg, &param->ulSpsCfg, mBuf);
-   CMCHKPK(cmPkRgrUeSpsDlCfg, &param->dlSpsCfg, mBuf);
-   CMCHKPK(cmPkLteRnti, param->spsRnti, mBuf);
+   CMCHKPK(cmPkRgrDrxShortDrx, &param->drxShortDrx, mBuf);
+   CMCHKPK(cmPkRgrDrxLongCycleOffst, &param->drxLongCycleOffst, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->drxRetxTmr, mBuf);
+#ifdef EMTC_ENABLE
+   CMCHKPK(oduUnpackUInt8,  param->drxRetxTmrR13Pres, mBuf);
+   CMCHKPK(oduUnpackUInt8,  param->drxOnDurTmrR13Pres, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->emtcDrxUlRetxTmr, mBuf);
+   CMCHKPK(oduUnpackUInt8,  param->isEmtcUe, mBuf); 
+#endif
+   CMCHKPK(oduUnpackUInt16, param->drxInactvTmr, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->drxOnDurTmr, mBuf);
+/*rgr_c_001.main_9 ADD added changes for R9*/
+#ifdef LTEMAC_R9
+   CMCHKPK(cmPkTknS32, &param->cqiMask, mBuf);
+#endif
    return ROK;
 }
 
@@ -5059,10 +4051,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeSpsCfg
+*     Func : cmUnpkRgrUeDrxCfg
 *
 *
-*     Desc : SPS configuration parameters per UE
+*     Desc : DRX configuration for UE
 *
 *
 *     Ret  : S16
@@ -5072,27 +4064,40 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeSpsCfg
+S16 cmUnpkRgrUeDrxCfg
 (
-RgrUeSpsCfg *param,
+RgrUeDrxCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkLteRnti, &param->spsRnti, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeSpsDlCfg, &param->dlSpsCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeSpsUlCfg, &param->ulSpsCfg, mBuf);
+/*rgr_c_001.main_9 ADD added changes for R9*/
+#ifdef LTEMAC_R9
+   CMCHKUNPK(cmUnpkTknS32, &param->cqiMask, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt16, &param->drxOnDurTmr, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->drxInactvTmr, mBuf);
+#ifdef EMTC_ENABLE
+   CMCHKUNPK(oduPackUInt8, &param->isEmtcUe, mBuf); 
+   CMCHKUNPK(oduPackUInt16,&param->emtcDrxUlRetxTmr, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->drxOnDurTmrR13Pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->drxRetxTmrR13Pres, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt16, &param->drxRetxTmr, mBuf);
+   CMCHKUNPK(cmUnpkRgrDrxLongCycleOffst, &param->drxLongCycleOffst, mBuf);
+   CMCHKUNPK(cmUnpkRgrDrxShortDrx, &param->drxShortDrx, mBuf);
    return ROK;
 }
 
-
+/*rgr_c_001.main_9 ADD added DRX changes under DRX*/
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrUeUlPwrCfg
+*     Func : cmPkRgrUeCapCfg
 *
 *
-*     Desc : Uplink power configuration per UE
+*     Desc : RgrUeCapCfg
 *
 *
 *     Ret  : S16
@@ -5102,22 +4107,19 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeUlPwrCfg
+S16 cmPkRgrUeCapCfg
 (
-RgrUeUlPwrCfg *param,
+RgrUeCapCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
-   CMCHKPK(SPkS8, param->p0UePucch, mBuf);
-   CMCHKPK(SPkS8, param->p0UePusch, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
-   CMCHKPK(cmPkRgrUeGrpPwrCfg, &param->uePucchPwr, mBuf);
-   CMCHKPK(cmPkRgrUeGrpPwrCfg, &param->uePuschPwr, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->txAntSel, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->simCqiAckNack, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->resAloocType1, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->intraSfFeqHop, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pwrClass, mBuf);
    return ROK;
 }
 
@@ -5125,10 +4127,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeUlPwrCfg
+*     Func : cmUnpkRgrUeCapCfg
 *
 *
-*     Desc : Uplink power configuration per UE
+*     Desc : RgrUeCapCfg
 *
 *
 *     Ret  : S16
@@ -5138,33 +4140,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeUlPwrCfg
+S16 cmUnpkRgrUeCapCfg
 (
-RgrUeUlPwrCfg *param,
+RgrUeCapCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, &param->uePuschPwr, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, &param->uePucchPwr, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isAccumulated, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isDeltaMCSEnabled, mBuf);
-   CMCHKUNPK(SUnpkS8, &param->p0UePusch, mBuf);
-   CMCHKUNPK(SUnpkS8, &param->p0UePucch, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->pSRSOffset, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->trgCqi, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pwrClass, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->intraSfFeqHop, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->resAloocType1, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->simCqiAckNack, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->txAntSel, mBuf);
+   
    return ROK;
 }
 
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeQosCfg
+*     Func : cmPkRgrUeAckNackRepCfg
 *
 *
-*     Desc : Downlink/Uplink QoS configuration per UE
+*     Desc : rgrUeAckNackRepCfg
 *
 *
 *     Ret  : S16
@@ -5174,17 +4173,17 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeQosCfg
+S16 cmPkRgrUeAckNackRepCfg
 (
-RgrUeQosCfg *param,
+RgrUeAckNackRepCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt32, param->ueBr, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->dlAmbr, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->ambrPres, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->ackNackRepFactor, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->pucchAckNackRep, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isAckNackEnabled, mBuf);
    return ROK;
 }
 
@@ -5192,10 +4191,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeQosCfg
+*     Func : cmUnpkRgrUeAckNackRepCfg
 *
 *
-*     Desc : Downlink/Uplink QoS configuration per UE
+*     Desc : rgrUeAckNackRepCfg
 *
 *
 *     Ret  : S16
@@ -5205,58 +4204,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeQosCfg
+S16 cmUnpkRgrUeAckNackRepCfg
 (
-RgrUeQosCfg *param,
+RgrUeAckNackRepCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
-   CMCHKUNPK(oduPackUInt8, &param->ambrPres, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->dlAmbr, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->ueBr, mBuf);
-   return ROK;
-}
-
-/*********************************************************** 
-* 
-*     Func : cmPkRgrUePuschDedCfg 
-* 
-* 
-*     Desc : PUSCH Config Dedication for UE 
-* 
-* 
-*     Ret  : S16 
-* 
-*     Notes: 
-* 
-*     File  :  
-* 
-**********************************************************/ 
-S16 cmPkRgrUePuschDedCfg 
-( 
-RgrUePuschDedCfg *param, 
-Buffer *mBuf 
-) 
-{ 
-   CMCHKPK(oduUnpackUInt8, param->bCQIIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->bRIIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->bACKIdx, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isAckNackEnabled, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->pucchAckNackRep, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->ackNackRepFactor = (RgrAckNackRepFactor) tmpEnum;
    return ROK;
 }
 
 
+\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUePuschDedCfg
+*     Func : cmPkRgrUeTxModeCfg
 *
 *
-*     Desc : PUSCH Config Dedication for UE
-* 
+*     Desc : Transmission mode configuration per UE
 *
 *
 *     Ret  : S16
@@ -5266,27 +4237,29 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUePuschDedCfg
+S16 cmPkRgrUeTxModeCfg
 (
-RgrUePuschDedCfg *param,
+RgrUeTxModeCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->bACKIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->bRIIdx, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->bCQIIdx, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->txModeEnum, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->tmTrnstnState, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   
    return ROK;
 }
 
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrUeTxAntSelCfg
+*     Func : cmUnpkRgrUeTxModeCfg
 *
 *
-*     Desc : UE Transmit Antenna selection related configuration
+*     Desc : Transmission mode configuration per UE
 *
 *
 *     Ret  : S16
@@ -5296,16 +4269,21 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeTxAntSelCfg
+S16 cmUnpkRgrUeTxModeCfg
 (
-RgrUeTxAntSelCfg *param,
+RgrUeTxModeCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
-   CMCHKPK(oduUnpackUInt32, param->selType, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->tmTrnstnState = (RgrTxModeTrnstn) tmpEnum;
+
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->txModeEnum = (RgrTxMode) tmpEnum;
    return ROK;
 }
 
@@ -5313,10 +4291,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeTxAntSelCfg
+*     Func : cmPkRgrUeUlHqCfg
 *
 *
-*     Desc : UE Transmit Antenna selection related configuration
+*     Desc : Uplink HARQ configuration per UE
 *
 *
 *     Ret  : S16
@@ -5326,28 +4304,27 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeTxAntSelCfg
+S16 cmPkRgrUeUlHqCfg
 (
-RgrUeTxAntSelCfg *param,
+RgrUeUlHqCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->selType = (RgrUeTxAntSelType) tmpEnum;
+   CMCHKPK(oduUnpackUInt8, param->deltaHqOffst, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->maxUlHqTx, mBuf);
    return ROK;
 }
 
 
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrUeTaTmrCfg
+*     Func : cmUnpkRgrUeUlHqCfg
 *
 *
-*     Desc : Time Alignment timer configuration per UE
+*     Desc : Uplink HARQ configuration per UE
 *
 *
 *     Ret  : S16
@@ -5357,16 +4334,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeTaTmrCfg
+S16 cmUnpkRgrUeUlHqCfg
 (
-RgrUeTaTmrCfg *param,
+RgrUeUlHqCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt16, param->taTmr, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxUlHqTx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->deltaHqOffst, mBuf);
    return ROK;
 }
 
@@ -5374,10 +4351,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeTaTmrCfg
+*     Func : cmPkRgrUeGrpPwrCfg
 *
 *
-*     Desc : Time Alignment timer configuration per UE
+*     Desc : Group power configuration per UE for PUCCH and PUSCH group power control
 *
 *
 *     Ret  : S16
@@ -5387,248 +4364,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeTaTmrCfg
-(
-RgrUeTaTmrCfg *param,
-Buffer *mBuf
-)
-{
-
-
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->taTmr, mBuf);
-   return ROK;
-}
-
-
-#ifdef EMTC_ENABLE
-S16 cmUnpkRgrEmtcUeCfg
-(
-RgrUeEmtcCfg *param,
-Buffer *mBuf
-)
-{
-   S32 indx=0;
-   S32 idx=0;
-   RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
-   RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
-   RgrEpdcchAddModLst *epdcchAddModLst;
-
-   CMCHKUNPK(oduPackUInt8,&param->pdschReptLevModeA,mBuf);
-   /*UnPacking PUCCH Rep */
-   CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat2),mBuf);
-   CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat1),mBuf);
-   CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->isPucchRepPres),mBuf);
-   
-   
-   
-   for(indx = 0; indx < RGR_MAX_EPDCCH_SET; indx++)
-   {
-      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
-      CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->extaddgrp2.mpddchNB),mBuf);
-      CMCHKUNPK(oduPackUInt16,&(epdcchAddModLst->extaddgrp2.mpdcchNumRep),mBuf);
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD),mBuf);
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpddchPdschHop),mBuf);
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.csiNumRep),mBuf);
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.pres),mBuf);
-      CMCHKUNPK(cmUnpkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
-      CMCHKUNPK(cmUnpkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
-      CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->pucchResStartoffset),mBuf);
-      CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->dmrsScrambSeq),mBuf);
-      for(idx = 0; idx < 5; idx++)
-      {
-         CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.rbAssignment[idx]),mBuf);
-      }
-
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.numPRBpairs),mBuf);
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->transmissionType),mBuf);
-      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->setConfigId),mBuf);
-
-   }
-   CMCHKUNPK(cmUnpkTknUInt32,&(emtcEpdcchCfg->startSymbolr11),mBuf);
-   for(indx = 0; indx < 5; indx++)
-   {
-      CMCHKUNPK(oduPackUInt8,&(emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]),mBuf);
-   }
-   CMCHKUNPK(oduPackUInt8, &(emtcEpdcchCfg->sfPtn.pres), mBuf);
-   CMCHKUNPK(oduPackUInt8, &(param->pres), mBuf);
-   CMCHKUNPK(oduPackUInt8, &(param->isHdFddEnbld), mBuf);
-
-#ifdef EMTC_DEBUG_CONSOLE_PRINTS 
-   printf("\n EMTC RGR UE unpack\n");
-   printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
-
-   for(indx = 0; indx < 5; indx++)
-   {
-      printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
-   }
-   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
-   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
-
-   for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
-   {
-      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
-      printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
-      printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);
-      printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
-      printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
-      printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
-      for(idx = 0; idx < 5 ; idx++)
-      {
-         printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
-      }
-      printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
-      printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
-      printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
-      printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
-      printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ",  epdcchAddModLst->mpdcchNumPRBpair.pres);
-      printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ",  epdcchAddModLst->mpdcchNumPRBpair.val);
-      printf("\nepdcchAddModLst->extaddgrp2.pres %d ",       epdcchAddModLst->extaddgrp2.pres);
-      printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ",   epdcchAddModLst->extaddgrp2.csiNumRep);
-      printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
-      printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
-      printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
-      printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ",  epdcchAddModLst->extaddgrp2.mpddchNB);
-   }
-
-#endif
-
-   return ROK;
-}
-
-
-
-S16 cmPkRgrEmtcUeCfg
-(
- RgrUeEmtcCfg *param,
- Buffer *mBuf
- )
-{
-   S32 indx=0;
-   S32 idx=0;
-   RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
-   RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
-   RgrEpdcchAddModLst *epdcchAddModLst;
-
-   CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
-   CMCHKPK(oduUnpackUInt8, emtcEpdcchCfg->sfPtn.pres, mBuf);
-   for(indx = 4; indx >=0; indx--)
-   {
-      CMCHKPK(oduUnpackUInt8,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx],mBuf);
-   }
-   CMCHKPK(cmPkTknUInt32,&emtcEpdcchCfg->startSymbolr11,mBuf);
-   for(indx = RGR_MAX_EPDCCH_SET-1 ; indx >= 0; indx--)
-   {
-      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
-
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->setConfigId,mBuf);
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->transmissionType,mBuf);
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.numPRBpairs,mBuf);
-      for(idx = 4; idx >= 0; idx--)
-      {
-         CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.rbAssignment[idx],mBuf);
-      }
-      CMCHKPK(oduUnpackUInt32,epdcchAddModLst->dmrsScrambSeq,mBuf);
-      CMCHKPK(oduUnpackUInt32,epdcchAddModLst->pucchResStartoffset,mBuf);
-      CMCHKPK(cmPkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
-      CMCHKPK(cmPkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.pres,mBuf);
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.csiNumRep,mBuf);
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpddchPdschHop,mBuf);
-      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD,mBuf);
-      CMCHKPK(oduUnpackUInt16,epdcchAddModLst->extaddgrp2.mpdcchNumRep,mBuf);
-      CMCHKPK(oduUnpackUInt32,epdcchAddModLst->extaddgrp2.mpddchNB,mBuf);
-   }
-   
-/*Packing PUCCH Rep */
-   CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->isPucchRepPres, mBuf);
-   CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat1,mBuf);
-   CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat2,mBuf);
-   CMCHKPK(oduUnpackUInt8,param->pdschReptLevModeA,mBuf);
-   
-#ifdef EMTC_DEBUG_CONSOLE_PRINTS 
-   printf("\n EMTC RGR UE pack\n");
-   printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
-
-   for(indx = 0; indx < 5; indx++)
-   {
-      printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
-   }
-   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
-   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
-
-   for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
-   {
-      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
-     /* printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
-      printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);*/
-      printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
-      printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
-      printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
-      for(idx = 0; idx < 5 ; idx++)
-      {
-         printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
-      }
-      printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
-      printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
-      printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
-      printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
-      printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ",  epdcchAddModLst->mpdcchNumPRBpair.pres);
-      printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ",  epdcchAddModLst->mpdcchNumPRBpair.val);
-      printf("\nepdcchAddModLst->extaddgrp2.pres %d ",       epdcchAddModLst->extaddgrp2.pres);
-      printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ",   epdcchAddModLst->extaddgrp2.csiNumRep);
-      printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
-      printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
-      printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
-      printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ",  epdcchAddModLst->extaddgrp2.mpddchNB);
-   }
-
-#endif
-
-
-
-   return ROK;
-}
-#endif
-
-#ifdef RG_5GTF
-S16 cmUnpkRgr5gtfUeCfg
-(
- RgrUe5gtfCfg *param,
- Buffer       *mBuf
-)
-{
-   CMCHKUNPK(oduPackUInt8, &param->grpId, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->BeamId, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numCC, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->mcs, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->maxPrb, mBuf);
-   return ROK;
-}
-
-S16 cmPkRgr5gtfUeCfg
+S16 cmPkRgrUeGrpPwrCfg
 (
- RgrUe5gtfCfg *param,
- Buffer       *mBuf
+RgrUeGrpPwrCfg *param,
+Buffer *mBuf
 )
 {
-   CMCHKPK(oduUnpackUInt8, param->maxPrb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numCC, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->BeamId, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->grpId, mBuf);
+
+
+   CMCHKPK(oduUnpackUInt8, param->idx, mBuf);
+   CMCHKPK(cmPkLteRnti, param->tpcRnti, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
-#endif
+
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeCfg
+*     Func : cmUnpkRgrUeGrpPwrCfg
 *
 *
-*     Desc : UE configuration
+*     Desc : Group power configuration per UE for PUCCH and PUSCH group power control
 *
 *
 *     Ret  : S16
@@ -5638,86 +4395,93 @@ S16 cmPkRgr5gtfUeCfg
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeCfg
+S16 cmUnpkRgrUeGrpPwrCfg
 (
-RgrUeCfg *param,
+RgrUeGrpPwrCfg *param,
 Buffer *mBuf
 )
 {
 
-#ifdef RG_5GTF
-   CMCHKPK(cmPkRgr5gtfUeCfg, &param->ue5gtfCfg, mBuf);
-#endif
-#ifdef EMTC_ENABLE
- CMCHKPK(cmPkRgrEmtcUeCfg, &param->emtcUeCfg, mBuf);
-#endif
-   CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
-
-   CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKPK(cmPkRgrLteAdvancedUeConfig, &param->ueLteAdvCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-#ifdef TFU_UPGRADE
-/*rgr_c_001.main_9 ADD PDSCH ded cfg*/
-   CMCHKPK(cmPkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
-#endif
-   /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-   CMCHKPK(cmPkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
-#endif
-   CMCHKPK(cmPkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
 
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-   CMCHKPK(cmPkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->tpcRnti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->idx, mBuf);
+   return ROK;
+}
 
-/*rgr_c_001.main_9 ADD added changes for HDFDD*/
-#ifdef LTEMAC_HDFDD
-   CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
-#endif
+/*rgr_c_001.main_7 - Added support for SPS*/
 
-#ifdef TFU_UPGRADE
-   CMCHKPK(cmPkRgrUeSrCfg, &param->srCfg, mBuf);
-   CMCHKPK(cmPkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
-#endif
+\f
+/***********************************************************
+*
+*     Func : cmPkRgrUeSpsDlCfg
+*
+*
+*     Desc : DL SPS configuration parameters per UE
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmPkRgrUeSpsDlCfg
+(
+RgrUeSpsDlCfg *param,
+Buffer *mBuf
+)
+{
 
+   S32 i;
+   CMCHKPK(oduUnpackUInt16, param->explicitRelCnt, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->dlSpsPrdctyEnum, mBuf);
+   for (i=param->numPucchVal-1; i >= 0; i--) {
+      CMCHKPK(oduUnpackUInt32, param->n1PucchVal[i], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->numPucchVal, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numSpsHqProc, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isDlSpsEnabled, mBuf);
+   return ROK;
+}
 
 
-   CMCHKPK(cmPkRgrUeSpsCfg, &param->ueSpsCfg, mBuf);
+\f
+/***********************************************************
+*
+*     Func : cmUnpkRgrUeSpsDlCfg
+*
+*
+*     Desc : DL SPS configuration parameters per UE
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrUeSpsDlCfg
+(
+RgrUeSpsDlCfg *param,
+Buffer *mBuf
+)
+{
+   uint32_t tmpEnum;
 
-#ifdef LTE_TDD
-   CMCHKPK(oduUnpackUInt32, param->ackNackModeEnum, mBuf);
+   S32 i;
 
-#endif
-   CMCHKPK(cmPkTknUInt8, &param->dedPreambleId, mBuf);
-   CMCHKPK(cmPkRgrCodeBookRstCfg, &param->ueCodeBookRstCfg, mBuf);
-   CMCHKPK(cmPkRgrUeCapCfg, &param->ueCapCfg, mBuf);
-   CMCHKPK(cmPkRgrUeMeasGapCfg, &param->ueMesGapCfg, mBuf);
-   CMCHKPK(cmPkRgrUeAckNackRepCfg, &param->ueAckNackCfg, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
-/*rgr_c_001.main_9 ADD added changes for DRX*/
-   
-   /* Anshika - Pack only if DRX is enabled */
-   if(TRUE == param->ueDrxCfg.isDrxEnabled)
-   {   
-    CMCHKPK(cmPkRgrUeDrxCfg, &param->ueDrxCfg, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isDlSpsEnabled, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numSpsHqProc, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numPucchVal, mBuf);
+   for (i=0; i<param->numPucchVal; i++) {
+      CMCHKUNPK(oduPackUInt32, &param->n1PucchVal[i], mBuf);
    }
-   CMCHKPK(oduUnpackUInt8, param->ueDrxCfg.isDrxEnabled, mBuf); /* This has to be packed even if
-                                                 DRX is disabled */
-   CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
-#ifdef RGR_V1
-   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
-    * retxBSR-timer */
-   CMCHKPK(cmPkRgrUeBsrTmrCfg, &param->ueBsrTmrCfg, mBuf);
-#endif
-   CMCHKPK(cmPkRgrUeTaTmrCfg, &param->ueTaTmrCfg, mBuf);
-   CMCHKPK(cmPkRgrUeQosCfg, &param->ueQosCfg, mBuf);
-   CMCHKPK(cmPkRgrUeUlPwrCfg, &param->ueUlPwrCfg, mBuf);
-   CMCHKPK(cmPkRgrUeUlHqCfg, &param->ueUlHqCfg, mBuf);
-   CMCHKPK(cmPkRgrUeDlCqiCfg, &param->ueDlCqiCfg, mBuf);
-   CMCHKPK(cmPkRgrUeTxModeCfg, &param->txMode, mBuf);
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->dlSpsPrdctyEnum = tmpEnum;
+   CMCHKUNPK(oduPackUInt16, &param->explicitRelCnt, mBuf);
    return ROK;
 }
 
@@ -5725,10 +4489,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeCfg
+*     Func : cmPkRgrUeSpsUlCfg
 *
 *
-*     Desc : UE configuration
+*     Desc : UL SPS configuration parameters per UE
 *
 *
 *     Ret  : S16
@@ -5738,86 +4502,34 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeCfg
+S16 cmPkRgrUeSpsUlCfg
 (
-RgrUeCfg *param,
+RgrUeSpsUlCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
 
+   S32 i;
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeTxModeCfg, &param->txMode, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, &param->ueDlCqiCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeUlHqCfg, &param->ueUlHqCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, &param->ueUlPwrCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeQosCfg, &param->ueQosCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, &param->ueTaTmrCfg, mBuf);
-#ifdef RGR_V1
-   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
-    * retxBSR-timer */
-   CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, &param->ueBsrTmrCfg, mBuf);
-#endif
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->ueCatEnum = (CmLteUeCategory) tmpEnum;
-/*rgr_c_001.main_9 ADD added changes for DRX*/
-   
-   /* Anshika - Unpack only if DRX is enabled */
-   CMCHKUNPK(oduPackUInt8, &param->ueDrxCfg.isDrxEnabled, mBuf);
-   if(TRUE == param->ueDrxCfg.isDrxEnabled)
-   {
-      CMCHKUNPK(cmUnpkRgrUeDrxCfg, &param->ueDrxCfg, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isLcSRMaskEnab, mBuf);
+   for (i=param->lcCnt-1; i >= 0; i--) {
+      /* SPS Changes starts */
+      CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].isSpsEnabled, mBuf);
+      CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].lcId, mBuf);
+      /* SPS Changes ends */
    }
-   CMCHKUNPK(oduPackUInt8, &param->isTtiBundlEnabled, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, &param->ueAckNackCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, &param->ueMesGapCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeCapCfg, &param->ueCapCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, &param->ueCodeBookRstCfg, mBuf);
-   CMCHKUNPK(cmUnpkTknUInt8, &param->dedPreambleId, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->lcCnt, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->ulSpsPrdctyEnum, mBuf);
+      CMCHKPK(SPkS8, param->pwrCfg.p0UePuschVal, mBuf);
+      CMCHKPK(SPkS8, param->pwrCfg.p0NominalPuschVal, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pwrCfgPres, mBuf);
 
 #ifdef LTE_TDD
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->ackNackModeEnum = tmpEnum;
-
-#endif
-   /*rgr_c_001.main_7 - Added support for SPS*/
-   CMCHKUNPK(cmUnpkRgrUeSpsCfg, &param->ueSpsCfg, mBuf);
-
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-   CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeSrCfg, &param->srCfg, mBuf);
-#endif
-/*rgr_c_001.main_9 ADD added changes for HDFDD*/
-#ifdef LTEMAC_HDFDD
-   CMCHKUNPK(oduPackUInt8, &param->isHdFddEnbld, mBuf);
-#endif
-   CMCHKUNPK(cmUnpkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
-/* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-   CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
-#endif
-#ifdef TFU_UPGRADE
-   CMCHKUNPK(cmUnpkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
-#endif
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKUNPK(cmUnpkRgrLteAdvancedUeConfig, &param->ueLteAdvCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->accessStratumRls, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->csgMmbrSta, mBuf);
-
-#ifdef EMTC_ENABLE
- CMCHKUNPK(cmUnpkRgrEmtcUeCfg, &param->emtcUeCfg, mBuf);
-#endif
+   CMCHKPK(oduUnpackUInt8, param->twoIntervalCfg, mBuf);
 
-#ifdef RG_5GTF
- CMCHKUNPK(cmUnpkRgr5gtfUeCfg, &param->ue5gtfCfg, mBuf);
 #endif
-
+   CMCHKPK(oduUnpackUInt32, param->implicitRelCnt, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isUlSpsEnabled, mBuf);
    return ROK;
 }
 
@@ -5825,10 +4537,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrLchQosCfg
+*     Func : cmUnpkRgrUeSpsUlCfg
 *
 *
-*     Desc : QCI, GBR and MBR configuration for dedicated logical channels
+*     Desc : UL SPS configuration parameters per UE
 *
 *
 *     Ret  : S16
@@ -5838,17 +4550,35 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrLchQosCfg
+S16 cmUnpkRgrUeSpsUlCfg
 (
-RgrLchQosCfg *param,
+RgrUeSpsUlCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
+   S32 i;
 
-   CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isUlSpsEnabled, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->implicitRelCnt = tmpEnum;
+
+#ifdef LTE_TDD
+   CMCHKUNPK(oduPackUInt8, &param->twoIntervalCfg, mBuf);
+
+#endif
+   CMCHKUNPK(oduPackUInt8, &param->pwrCfgPres, mBuf);
+      CMCHKUNPK(SUnpkS8, &param->pwrCfg.p0NominalPuschVal, mBuf);
+      CMCHKUNPK(SUnpkS8, &param->pwrCfg.p0UePuschVal, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->ulSpsPrdctyEnum = tmpEnum;
+   CMCHKUNPK(oduPackUInt8, &param->lcCnt, mBuf); 
+   for (i=0; i<param->lcCnt; i++) {
+      CMCHKUNPK(oduPackUInt8, &param->spsLcInfo[i].lcId, mBuf);
+      CMCHKUNPK(oduPackUInt8, &param->spsLcInfo[i].isSpsEnabled, mBuf);
+   }
+   CMCHKUNPK(oduPackUInt8, &param->isLcSRMaskEnab, mBuf);
    return ROK;
 }
 
@@ -5856,10 +4586,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrLchQosCfg
+*     Func : cmPkRgrUeSpsCfg
 *
 *
-*     Desc : QCI, GBR and MBR configuration for dedicated logical channels
+*     Desc : SPS configuration parameters per UE
 *
 *
 *     Ret  : S16
@@ -5869,28 +4599,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrLchQosCfg
+S16 cmPkRgrUeSpsCfg
 (
-RgrLchQosCfg *param,
+RgrUeSpsCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->qci, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->gbr, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->mbr, mBuf);
+   CMCHKPK(cmPkRgrUeSpsUlCfg, &param->ulSpsCfg, mBuf);
+   CMCHKPK(cmPkRgrUeSpsDlCfg, &param->dlSpsCfg, mBuf);
+   CMCHKPK(cmPkLteRnti, param->spsRnti, mBuf);
    return ROK;
 }
-/*rgr_c_001.main_7 - Added support for SPS*/
+
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrLchSpsCfg
+*     Func : cmUnpkRgrUeSpsCfg
 *
 *
-*     Desc : SPS related configuration for logical channels
+*     Desc : SPS configuration parameters per UE
 *
 *
 *     Ret  : S16
@@ -5900,27 +4630,27 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrLchSpsCfg
+S16 cmUnpkRgrUeSpsCfg
 (
-RgrLchSpsCfg *param,
+RgrUeSpsCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   /* SPS_DEV */
-   CMCHKPK(oduUnpackUInt8, param->isSpsEnabled, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->spsRnti, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeSpsDlCfg, &param->dlSpsCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeSpsUlCfg, &param->ulSpsCfg, mBuf);
    return ROK;
 }
 
 
-\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrLchSpsCfg
+*     Func : cmPkRgrUeUlPwrCfg
 *
 *
-*     Desc : SPS related configuration for logical channels
+*     Desc : Uplink power configuration per UE
 *
 *
 *     Ret  : S16
@@ -5930,26 +4660,33 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrLchSpsCfg
+S16 cmPkRgrUeUlPwrCfg
 (
-RgrLchSpsCfg *param,
+RgrUeUlPwrCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->isSpsEnabled, mBuf);
-   
+   CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
+   CMCHKPK(SPkS8, param->p0UePucch, mBuf);
+   CMCHKPK(SPkS8, param->p0UePusch, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
+   CMCHKPK(cmPkRgrUeGrpPwrCfg, &param->uePucchPwr, mBuf);
+   CMCHKPK(cmPkRgrUeGrpPwrCfg, &param->uePuschPwr, mBuf);
    return ROK;
 }
 
 
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrDlLchCfg
+*     Func : cmUnpkRgrUeUlPwrCfg
 *
 *
-*     Desc : Logical channel configuration info for downlink logical channels
+*     Desc : Uplink power configuration per UE
 *
 *
 *     Ret  : S16
@@ -5959,19 +4696,22 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDlLchCfg
+S16 cmUnpkRgrUeUlPwrCfg
 (
-RgrDlLchCfg *param,
+RgrUeUlPwrCfg *param,
 Buffer *mBuf
 )
 {
 
-/*rgr_c_001.main_7 - Added support for SPS*/
 
-   CMCHKPK(oduUnpackUInt8, param->rlcReorderTmr, mBuf);
-   CMCHKPK(cmPkRgrLchSpsCfg, &param->dlSpsCfg, mBuf);
-   CMCHKPK(cmPkRgrLchQosCfg, &param->dlQos, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, &param->uePuschPwr, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, &param->uePucchPwr, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isAccumulated, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isDeltaMCSEnabled, mBuf);
+   CMCHKUNPK(SUnpkS8, &param->p0UePusch, mBuf);
+   CMCHKUNPK(SUnpkS8, &param->p0UePucch, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pSRSOffset, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->trgCqi, mBuf);
    return ROK;
 }
 
@@ -5979,10 +4719,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDlLchCfg
+*     Func : cmPkRgrUeQosCfg
 *
 *
-*     Desc : Logical channel configuration info for downlink logical channels
+*     Desc : Downlink/Uplink QoS configuration per UE
 *
 *
 *     Ret  : S16
@@ -5992,34 +4732,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDlLchCfg
+S16 cmPkRgrUeQosCfg
 (
-RgrDlLchCfg *param,
+RgrUeQosCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->dlTrchType, mBuf);
-   CMCHKUNPK(cmUnpkRgrLchQosCfg, &param->dlQos, mBuf);
-   /*rgr_c_001.main_7 - Added support for SPs*/
-   CMCHKUNPK(cmUnpkRgrLchSpsCfg, &param->dlSpsCfg, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->rlcReorderTmr, mBuf);
-
+   CMCHKPK(oduUnpackUInt32, param->ueBr, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->dlAmbr, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ambrPres, mBuf);
    return ROK;
 }
 
 
-/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
-#ifdef LTE_L2_MEAS
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUlLchCfg
+*     Func : cmUnpkRgrUeQosCfg
 *
 *
-*     Desc : Logical channel configuration information for uplink logical channels
+*     Desc : Downlink/Uplink QoS configuration per UE
 *
 *
 *     Ret  : S16
@@ -6029,28 +4763,58 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUlLchCfg
+S16 cmUnpkRgrUeQosCfg
 (
-RgrUlLchCfg *param,
+RgrUeQosCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
-   CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ambrPres, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->dlAmbr, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->ueBr, mBuf);
+   return ROK;
+}
+
+/*********************************************************** 
+* 
+*     Func : cmPkRgrUePuschDedCfg 
+* 
+* 
+*     Desc : PUSCH Config Dedication for UE 
+* 
+* 
+*     Ret  : S16 
+* 
+*     Notes: 
+* 
+*     File  :  
+* 
+**********************************************************/ 
+S16 cmPkRgrUePuschDedCfg 
+( 
+RgrUePuschDedCfg *param, 
+Buffer *mBuf 
+) 
+{ 
+   CMCHKPK(oduUnpackUInt8, param->bCQIIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->bRIIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->bACKIdx, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
 
-\f
-/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
 /***********************************************************
 *
-*     Func : cmUnpkRgrUlLchCfg
+*     Func : cmUnpkRgrUePuschDedCfg
 *
 *
-*     Desc : Logical channel configuration information for uplink logical channels
+*     Desc : PUSCH Config Dedication for UE
+* 
 *
 *
 *     Ret  : S16
@@ -6060,28 +4824,27 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUlLchCfg
+S16 cmUnpkRgrUePuschDedCfg
 (
-RgrUlLchCfg *param,
+RgrUePuschDedCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->qci, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->bACKIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->bRIIdx, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->bCQIIdx, mBuf);
    return ROK;
 }
 
-
-#endif
-\f
 /***********************************************************
 *
-*     Func : cmPkRgrUlLcgCfg
+*     Func : cmPkRgrUeTxAntSelCfg
 *
 *
-*     Desc : Logical channel configuration info for uplink logical channels
+*     Desc : UE Transmit Antenna selection related configuration
 *
 *
 *     Ret  : S16
@@ -6091,29 +4854,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUlLcgCfg
+S16 cmPkRgrUeTxAntSelCfg
 (
-RgrUlLcgCfg *param,
+RgrUeTxAntSelCfg *param,
 Buffer *mBuf
 )
 {
 
-/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
-#ifdef LTE_L2_MEAS
-   S32 i;
-#endif
-   CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
 
-/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
-#ifdef LTE_L2_MEAS
-   for (i = param->numLch - 1; i >= 0; i--)
-   {
-      CMCHKPK(cmPkRgrUlLchCfg, &param->lchUlCfg[i], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->numLch, mBuf);
-#endif
-   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->selType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
@@ -6121,10 +4871,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUlLcgCfg
+*     Func : cmUnpkRgrUeTxAntSelCfg
 *
 *
-*     Desc : Logical channel configuration info for uplink logical channels
+*     Desc : UE Transmit Antenna selection related configuration
 *
 *
 *     Ret  : S16
@@ -6134,63 +4884,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUlLcgCfg
+S16 cmUnpkRgrUeTxAntSelCfg
 (
-RgrUlLcgCfg *param,
+RgrUeTxAntSelCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
-/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
-#ifdef LTE_L2_MEAS
-   S32 i;
-#endif
-
-   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
-/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
-#ifdef LTE_L2_MEAS
-   CMCHKUNPK(oduPackUInt8, &param->numLch, mBuf);
-   for (i = 0; i< param->numLch; i++)
-   {
-      CMCHKUNPK(cmUnpkRgrUlLchCfg, &param->lchUlCfg[i], mBuf);
-   }
 
-#endif
-   CMCHKUNPK(oduPackUInt32, &param->gbr, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->mbr, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->selType = (RgrUeTxAntSelType) tmpEnum;
    return ROK;
 }
 
-S16 cmPkRgrUlLchQciCfg
-(
-RgrUlLchQciCfg *param,
-Buffer *mBuf
-)
-{
-   CMCHKPK(oduUnpackUInt8, param->lcId, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
-   return ROK;
-}
-S16 cmUnpkRgrUlLchQciCfg
-(
-RgrUlLchQciCfg *param,
-Buffer *mBuf
-)
-{
-   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->qci, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->lcId, mBuf);
-   return ROK;
-}
 
-\f
 /***********************************************************
 *
-*     Func : cmPkRgrLchCfg
+*     Func : cmPkRgrUeTaTmrCfg
 *
 *
-*     Desc : Logical channel configuration info for dedicated channels
+*     Desc : Time Alignment timer configuration per UE
 *
 *
 *     Ret  : S16
@@ -6200,20 +4915,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrLchCfg
+S16 cmPkRgrUeTaTmrCfg
 (
-RgrLchCfg *param,
+RgrUeTaTmrCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
-   CMCHKPK(cmPkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);
-   CMCHKPK(cmPkRgrDlLchCfg, &param->dlInfo, mBuf);
-   CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
-   CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+
+   CMCHKPK(oduUnpackUInt16, param->taTmr, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
 
@@ -6221,10 +4932,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrLchCfg
+*     Func : cmUnpkRgrUeTaTmrCfg
 *
 *
-*     Desc : Logical channel configuration info for dedicated channels
+*     Desc : Time Alignment timer configuration per UE
 *
 *
 *     Ret  : S16
@@ -6234,110 +4945,248 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrLchCfg
+S16 cmUnpkRgrUeTaTmrCfg
 (
-RgrLchCfg *param,
+RgrUeTaTmrCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
-   CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
-   CMCHKUNPK(cmUnpkLteLcType, &param->lcType, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlLchCfg, &param->dlInfo, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->taTmr, mBuf);
    return ROK;
 }
 
 
-S16 cmPkRgrLcgCfg
+#ifdef EMTC_ENABLE
+S16 cmUnpkRgrEmtcUeCfg
 (
-RgrLcgCfg *param,
+RgrUeEmtcCfg *param,
 Buffer *mBuf
 )
 {
+   S32 indx=0;
+   S32 idx=0;
+   RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
+   RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
+   RgrEpdcchAddModLst *epdcchAddModLst;
+
+   CMCHKUNPK(oduPackUInt8,&param->pdschReptLevModeA,mBuf);
+   /*UnPacking PUCCH Rep */
+   CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat2),mBuf);
+   CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat1),mBuf);
+   CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->isPucchRepPres),mBuf);
+   
+   
+   
+   for(indx = 0; indx < RGR_MAX_EPDCCH_SET; indx++)
+   {
+      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
+      CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->extaddgrp2.mpddchNB),mBuf);
+      CMCHKUNPK(oduPackUInt16,&(epdcchAddModLst->extaddgrp2.mpdcchNumRep),mBuf);
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD),mBuf);
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpddchPdschHop),mBuf);
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.csiNumRep),mBuf);
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.pres),mBuf);
+      CMCHKUNPK(cmUnpkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
+      CMCHKUNPK(cmUnpkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
+      CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->pucchResStartoffset),mBuf);
+      CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->dmrsScrambSeq),mBuf);
+      for(idx = 0; idx < 5; idx++)
+      {
+         CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.rbAssignment[idx]),mBuf);
+      }
 
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.numPRBpairs),mBuf);
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->transmissionType),mBuf);
+      CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->setConfigId),mBuf);
 
-   CMCHKPK(cmPkRgrUlLcgCfg, &param->ulInfo, mBuf);
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
-   return ROK;
-}
+   }
+   CMCHKUNPK(cmUnpkTknUInt32,&(emtcEpdcchCfg->startSymbolr11),mBuf);
+   for(indx = 0; indx < 5; indx++)
+   {
+      CMCHKUNPK(oduPackUInt8,&(emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]),mBuf);
+   }
+   CMCHKUNPK(oduPackUInt8, &(emtcEpdcchCfg->sfPtn.pres), mBuf);
+   CMCHKUNPK(oduPackUInt8, &(param->pres), mBuf);
+   CMCHKUNPK(oduPackUInt8, &(param->isHdFddEnbld), mBuf);
 
+#ifdef EMTC_DEBUG_CONSOLE_PRINTS 
+   printf("\n EMTC RGR UE unpack\n");
+   printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
 
-S16 cmUnpkRgrLcgCfg
-(
-RgrLcgCfg *param,
-Buffer *mBuf
-)
-{
+   for(indx = 0; indx < 5; indx++)
+   {
+      printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
+   }
+   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
+   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
 
+   for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
+   {
+      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
+      printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
+      printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);
+      printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
+      printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
+      printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
+      for(idx = 0; idx < 5 ; idx++)
+      {
+         printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
+      }
+      printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
+      printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
+      printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
+      printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
+      printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ",  epdcchAddModLst->mpdcchNumPRBpair.pres);
+      printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ",  epdcchAddModLst->mpdcchNumPRBpair.val);
+      printf("\nepdcchAddModLst->extaddgrp2.pres %d ",       epdcchAddModLst->extaddgrp2.pres);
+      printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ",   epdcchAddModLst->extaddgrp2.csiNumRep);
+      printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
+      printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
+      printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
+      printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ",  epdcchAddModLst->extaddgrp2.mpddchNB);
+   }
+
+#endif
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlLcgCfg, &param->ulInfo, mBuf);
    return ROK;
 }
 
 
-\f
-/***********************************************************
-*
-*     Func : cmPkRgrCfg
-*
-*
-*     Desc : Basic Configuration structure at RRM
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrCfg
+
+S16 cmPkRgrEmtcUeCfg
 (
-RgrCfg *param,
-Buffer *mBuf
-)
+ RgrUeEmtcCfg *param,
+ Buffer *mBuf
+ )
 {
+   S32 indx=0;
+   S32 idx=0;
+   RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
+   RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
+   RgrEpdcchAddModLst *epdcchAddModLst;
 
+   CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKPK(oduUnpackUInt8, emtcEpdcchCfg->sfPtn.pres, mBuf);
+   for(indx = 4; indx >=0; indx--)
+   {
+      CMCHKPK(oduUnpackUInt8,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx],mBuf);
+   }
+   CMCHKPK(cmPkTknUInt32,&emtcEpdcchCfg->startSymbolr11,mBuf);
+   for(indx = RGR_MAX_EPDCCH_SET-1 ; indx >= 0; indx--)
+   {
+      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
 
-      switch(param->cfgType) {
-         case RGR_LCG_CFG:
-            CMCHKPK(cmPkRgrLcgCfg, &param->u.lcgCfg, mBuf);
-            break;
-         case RGR_LCH_CFG:
-            CMCHKPK(cmPkRgrLchCfg, &param->u.lchCfg, mBuf);
-            break;
-         case RGR_UE_CFG:
-            CMCHKPK(cmPkRgrUeCfg, &param->u.ueCfg, mBuf);
-            break;
-         case RGR_CELL_CFG:
-            CMCHKPK(cmPkRgrCellCfg, &param->u.cellCfg, mBuf);
-            break;
-         case MAC_GNB_CFG:
-            CMCHKPK(cmPkMacSchedGnbCfg, &param->u.schedGnbCfg, mBuf);
-            break;
-         default :
-            return RFAILED;
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->setConfigId,mBuf);
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->transmissionType,mBuf);
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.numPRBpairs,mBuf);
+      for(idx = 4; idx >= 0; idx--)
+      {
+         CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.rbAssignment[idx],mBuf);
       }
-   CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
+      CMCHKPK(oduUnpackUInt32,epdcchAddModLst->dmrsScrambSeq,mBuf);
+      CMCHKPK(oduUnpackUInt32,epdcchAddModLst->pucchResStartoffset,mBuf);
+      CMCHKPK(cmPkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
+      CMCHKPK(cmPkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.pres,mBuf);
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.csiNumRep,mBuf);
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpddchPdschHop,mBuf);
+      CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD,mBuf);
+      CMCHKPK(oduUnpackUInt16,epdcchAddModLst->extaddgrp2.mpdcchNumRep,mBuf);
+      CMCHKPK(oduUnpackUInt32,epdcchAddModLst->extaddgrp2.mpddchNB,mBuf);
+   }
+   
+/*Packing PUCCH Rep */
+   CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->isPucchRepPres, mBuf);
+   CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat1,mBuf);
+   CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat2,mBuf);
+   CMCHKPK(oduUnpackUInt8,param->pdschReptLevModeA,mBuf);
+   
+#ifdef EMTC_DEBUG_CONSOLE_PRINTS 
+   printf("\n EMTC RGR UE pack\n");
+   printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
+
+   for(indx = 0; indx < 5; indx++)
+   {
+      printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
+   }
+   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
+   printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
+
+   for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
+   {
+      epdcchAddModLst =  &(emtcEpdcchCfg->epdcchAddModLst[indx]);
+     /* printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
+      printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);*/
+      printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
+      printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
+      printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
+      for(idx = 0; idx < 5 ; idx++)
+      {
+         printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
+      }
+      printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
+      printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
+      printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
+      printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
+      printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ",  epdcchAddModLst->mpdcchNumPRBpair.pres);
+      printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ",  epdcchAddModLst->mpdcchNumPRBpair.val);
+      printf("\nepdcchAddModLst->extaddgrp2.pres %d ",       epdcchAddModLst->extaddgrp2.pres);
+      printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ",   epdcchAddModLst->extaddgrp2.csiNumRep);
+      printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
+      printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
+      printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
+      printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ",  epdcchAddModLst->extaddgrp2.mpddchNB);
+   }
+
+#endif
+
+
+
+   return ROK;
+}
+#endif
+
+#ifdef RG_5GTF
+S16 cmUnpkRgr5gtfUeCfg
+(
+ RgrUe5gtfCfg *param,
+ Buffer       *mBuf
+)
+{
+   CMCHKUNPK(oduPackUInt8, &param->grpId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->BeamId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numCC, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->mcs, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->maxPrb, mBuf);
    return ROK;
 }
 
+S16 cmPkRgr5gtfUeCfg
+(
+ RgrUe5gtfCfg *param,
+ Buffer       *mBuf
+)
+{
+   CMCHKPK(oduUnpackUInt8, param->maxPrb, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numCC, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->BeamId, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->grpId, mBuf);
+   return ROK;
+}
+#endif
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCfg
+*     Func : cmPkRgrUeCfg
 *
 *
-*     Desc : Basic Configuration structure at RRM
+*     Desc : UE configuration
 *
 *
 *     Ret  : S16
@@ -6347,34 +5196,86 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCfg
+S16 cmPkRgrUeCfg
 (
-RgrCfg *param,
+RgrUeCfg *param,
 Buffer *mBuf
 )
 {
 
+#ifdef RG_5GTF
+   CMCHKPK(cmPkRgr5gtfUeCfg, &param->ue5gtfCfg, mBuf);
+#endif
+#ifdef EMTC_ENABLE
+ CMCHKPK(cmPkRgrEmtcUeCfg, &param->emtcUeCfg, mBuf);
+#endif
+   CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
 
-   CMCHKUNPK(oduPackUInt8, &param->cfgType, mBuf);
-      switch(param->cfgType) {
-         case MAC_GNB_CFG:
-            CMCHKUNPK(cmUnpkMacSchedGnbCfg, &param->u.schedGnbCfg, mBuf);
-            break;
-         case RGR_CELL_CFG:
-            CMCHKUNPK(cmUnpkRgrCellCfg, &param->u.cellCfg, mBuf);
-            break;
-         case RGR_UE_CFG:
-            CMCHKUNPK(cmUnpkRgrUeCfg, &param->u.ueCfg, mBuf);
-            break;
-         case RGR_LCH_CFG:
-            CMCHKUNPK(cmUnpkRgrLchCfg, &param->u.lchCfg, mBuf);
-            break;
-         case RGR_LCG_CFG:
-            CMCHKUNPK(cmUnpkRgrLcgCfg, &param->u.lcgCfg, mBuf);
-            break;
-         default :
-            return RFAILED;
-      }
+   CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKPK(cmPkRgrLteAdvancedUeConfig, &param->ueLteAdvCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+#ifdef TFU_UPGRADE
+/*rgr_c_001.main_9 ADD PDSCH ded cfg*/
+   CMCHKPK(cmPkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
+#endif
+   /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
+   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
+#ifdef RGR_CQI_REPT
+   CMCHKPK(cmPkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
+#endif
+   CMCHKPK(cmPkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
+
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+   CMCHKPK(cmPkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
+
+/*rgr_c_001.main_9 ADD added changes for HDFDD*/
+#ifdef LTEMAC_HDFDD
+   CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
+#endif
+
+#ifdef TFU_UPGRADE
+   CMCHKPK(cmPkRgrUeSrCfg, &param->srCfg, mBuf);
+   CMCHKPK(cmPkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
+#endif
+
+
+
+   CMCHKPK(cmPkRgrUeSpsCfg, &param->ueSpsCfg, mBuf);
+
+#ifdef LTE_TDD
+   CMCHKPK(oduUnpackUInt32, param->ackNackModeEnum, mBuf);
+
+#endif
+   CMCHKPK(cmPkTknUInt8, &param->dedPreambleId, mBuf);
+   CMCHKPK(cmPkRgrCodeBookRstCfg, &param->ueCodeBookRstCfg, mBuf);
+   CMCHKPK(cmPkRgrUeCapCfg, &param->ueCapCfg, mBuf);
+   CMCHKPK(cmPkRgrUeMeasGapCfg, &param->ueMesGapCfg, mBuf);
+   CMCHKPK(cmPkRgrUeAckNackRepCfg, &param->ueAckNackCfg, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
+/*rgr_c_001.main_9 ADD added changes for DRX*/
+   
+   /* Anshika - Pack only if DRX is enabled */
+   if(TRUE == param->ueDrxCfg.isDrxEnabled)
+   {   
+    CMCHKPK(cmPkRgrUeDrxCfg, &param->ueDrxCfg, mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->ueDrxCfg.isDrxEnabled, mBuf); /* This has to be packed even if
+                                                 DRX is disabled */
+   CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
+#ifdef RGR_V1
+   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
+    * retxBSR-timer */
+   CMCHKPK(cmPkRgrUeBsrTmrCfg, &param->ueBsrTmrCfg, mBuf);
+#endif
+   CMCHKPK(cmPkRgrUeTaTmrCfg, &param->ueTaTmrCfg, mBuf);
+   CMCHKPK(cmPkRgrUeQosCfg, &param->ueQosCfg, mBuf);
+   CMCHKPK(cmPkRgrUeUlPwrCfg, &param->ueUlPwrCfg, mBuf);
+   CMCHKPK(cmPkRgrUeUlHqCfg, &param->ueUlHqCfg, mBuf);
+   CMCHKPK(cmPkRgrUeDlCqiCfg, &param->ueDlCqiCfg, mBuf);
+   CMCHKPK(cmPkRgrUeTxModeCfg, &param->txMode, mBuf);
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
 
@@ -6382,10 +5283,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrActvTime
+*     Func : cmUnpkRgrUeCfg
 *
 *
-*     Desc : Activation time information
+*     Desc : UE configuration
 *
 *
 *     Ret  : S16
@@ -6395,16 +5296,86 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrActvTime
+S16 cmUnpkRgrUeCfg
 (
-RgrActvTime *param,
+RgrUeCfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
 
 
-   CMCHKPK(cmPkLteTimingInfo, &param->actvTime, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeTxModeCfg, &param->txMode, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, &param->ueDlCqiCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeUlHqCfg, &param->ueUlHqCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, &param->ueUlPwrCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeQosCfg, &param->ueQosCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, &param->ueTaTmrCfg, mBuf);
+#ifdef RGR_V1
+   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
+    * retxBSR-timer */
+   CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, &param->ueBsrTmrCfg, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->ueCatEnum = (CmLteUeCategory) tmpEnum;
+/*rgr_c_001.main_9 ADD added changes for DRX*/
+   
+   /* Anshika - Unpack only if DRX is enabled */
+   CMCHKUNPK(oduPackUInt8, &param->ueDrxCfg.isDrxEnabled, mBuf);
+   if(TRUE == param->ueDrxCfg.isDrxEnabled)
+   {
+      CMCHKUNPK(cmUnpkRgrUeDrxCfg, &param->ueDrxCfg, mBuf);
+   }
+   CMCHKUNPK(oduPackUInt8, &param->isTtiBundlEnabled, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, &param->ueAckNackCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, &param->ueMesGapCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeCapCfg, &param->ueCapCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, &param->ueCodeBookRstCfg, mBuf);
+   CMCHKUNPK(cmUnpkTknUInt8, &param->dedPreambleId, mBuf);
+
+#ifdef LTE_TDD
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->ackNackModeEnum = tmpEnum;
+
+#endif
+   /*rgr_c_001.main_7 - Added support for SPS*/
+   CMCHKUNPK(cmUnpkRgrUeSpsCfg, &param->ueSpsCfg, mBuf);
+
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+#ifdef TFU_UPGRADE
+   CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeSrCfg, &param->srCfg, mBuf);
+#endif
+/*rgr_c_001.main_9 ADD added changes for HDFDD*/
+#ifdef LTEMAC_HDFDD
+   CMCHKUNPK(oduPackUInt8, &param->isHdFddEnbld, mBuf);
+#endif
+   CMCHKUNPK(cmUnpkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
+/* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
+   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
+#ifdef RGR_CQI_REPT
+   CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
+#endif
+#ifdef TFU_UPGRADE
+   CMCHKUNPK(cmUnpkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
+#endif
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKUNPK(cmUnpkRgrLteAdvancedUeConfig, &param->ueLteAdvCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->accessStratumRls, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->csgMmbrSta, mBuf);
+
+#ifdef EMTC_ENABLE
+ CMCHKUNPK(cmUnpkRgrEmtcUeCfg, &param->emtcUeCfg, mBuf);
+#endif
+
+#ifdef RG_5GTF
+ CMCHKUNPK(cmUnpkRgr5gtfUeCfg, &param->ue5gtfCfg, mBuf);
+#endif
+
    return ROK;
 }
 
@@ -6412,10 +5383,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrActvTime
+*     Func : cmPkRgrLchQosCfg
 *
 *
-*     Desc : Activation time information
+*     Desc : QCI, GBR and MBR configuration for dedicated logical channels
 *
 *
 *     Ret  : S16
@@ -6425,16 +5396,17 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrActvTime
+S16 cmPkRgrLchQosCfg
 (
-RgrActvTime *param,
+RgrLchQosCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
-   CMCHKUNPK(cmUnpkLteTimingInfo, &param->actvTime, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
    return ROK;
 }
 
@@ -6442,10 +5414,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCellRecfg
+*     Func : cmUnpkRgrLchQosCfg
 *
 *
-*     Desc : Cell reconfiguration structure at RRM
+*     Desc : QCI, GBR and MBR configuration for dedicated logical channels
 *
 *
 *     Ret  : S16
@@ -6455,49 +5427,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCellRecfg
+S16 cmUnpkRgrLchQosCfg
 (
-RgrCellRecfg *param,
+RgrLchQosCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(cmPkRgrCellCntrlCmdCfg, &param->cntrlCmdCfg, mBuf);
-   CMCHKPK(cmPkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
-   /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
-#ifdef RGR_SI_SCH
-   CMCHKPK(cmPkRgrSiCfg, &param->siReCfg, mBuf);
-#endif /* RGR_SI_SCH */
-   CMCHKPK(cmPkRgrDlfsCfg, &param->dlfsRecfg, mBuf);
-   CMCHKPK(cmPkRgrRachCfg, &param->rachRecfg, mBuf);
-   CMCHKPK(cmPkRgrSrsCfg, &param->srsRecfg, mBuf);
-   CMCHKPK(cmPkRgrPucchCfg, &param->pucchRecfg, mBuf);
-   CMCHKPK(cmPkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
-   CMCHKPK(cmPkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
-   CMCHKPK(cmPkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
-   CMCHKPK(cmPkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
-   CMCHKPK(cmPkRgrCfiCfg, &param->cfiRecfg, mBuf);
-   CMCHKPK(cmPkRgrDlHqCfg, &param->dlHqRecfg, mBuf);
-   CMCHKPK(cmPkRgrActvTime, &param->recfgActvTime, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->recfgTypes, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+
+   CMCHKUNPK(oduPackUInt8, &param->qci, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->gbr, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->mbr, mBuf);
    return ROK;
 }
-
+/*rgr_c_001.main_7 - Added support for SPS*/
 
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCellRecfg
+*     Func : cmPkRgrLchSpsCfg
 *
 *
-*     Desc : Cell reconfiguration structure at RRM
+*     Desc : SPS related configuration for logical channels
 *
 *
 *     Ret  : S16
@@ -6507,40 +5458,16 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCellRecfg
+S16 cmPkRgrLchSpsCfg
 (
-RgrCellRecfg *param,
+RgrLchSpsCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->recfgTypes, mBuf);
-   CMCHKUNPK(cmUnpkRgrActvTime, &param->recfgActvTime, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlHqCfg, &param->dlHqRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrCfiCfg, &param->cfiRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
-   CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
-   CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
-   CMCHKUNPK(cmUnpkRgrPucchCfg, &param->pucchRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrSrsCfg, &param->srsRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrRachCfg, &param->rachRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrDlfsCfg, &param->dlfsRecfg, mBuf);
-   /* rgr_c_001.main_4-MOD-Modified for SI Enhancement. */
-#ifdef RGR_SI_SCH
-   CMCHKUNPK(cmUnpkRgrSiCfg, &param->siReCfg, mBuf);
-#endif /* RGR_SI_SCH */
-   CMCHKUNPK(oduPackUInt16, &param->t300TmrVal, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKUNPK(oduPackUInt8, &param->isAutoCfgModeEnb, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->isDynCfiEnb, mBuf);
-   CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrCellCntrlCmdCfg, &param->cntrlCmdCfg, mBuf);
-
+   /* SPS_DEV */
+   CMCHKPK(oduUnpackUInt8, param->isSpsEnabled, mBuf);
    return ROK;
 }
 
@@ -6548,10 +5475,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeRecfg
+*     Func : cmUnpkRgrLchSpsCfg
 *
 *
-*     Desc : UE reconfiguration info
+*     Desc : SPS related configuration for logical channels
 *
 *
 *     Ret  : S16
@@ -6561,111 +5488,26 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeRecfg
+S16 cmUnpkRgrLchSpsCfg
 (
-RgrUeRecfg *param,
+RgrLchSpsCfg *param,
 Buffer *mBuf
 )
 {
 
-#ifdef EMTC_ENABLE
-   /* Note: As we add more members to emtcUeRecfg, 
-      create a new function for pkUnpk */
-   CMCHKPK(oduUnpackUInt8, param->emtcUeRecfg.isHdFddEnbld, mBuf);
-#endif
-   CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
-  
-   CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
-#ifdef LTE_ADV 
-   CMCHKPK(oduUnpackUInt8, param->simulAckNackCQIFormat3, mBuf);
-   CMCHKPK(cmPkRgrUeSCellAckPucchCfg, &param->sCellAckN1ResCfg,mBuf);
-   CMCHKPK(cmPkRgrUeSecCellInfo, &param->ueSCellCfgInfo,mBuf);
-#endif
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isUeCellEdge, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isAbsUe, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->ueLteAdvCfg.pres, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   /*ccpu00130497: Removed the duplicate packing*/
-#ifdef TFU_UPGRADE
-   CMCHKPK(cmPkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
-#endif
-   /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-   CMCHKPK(cmPkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
-#endif
-
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-   CMCHKPK(cmPkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
-
-/*rgr_c_001.main_9 ADD added changes for HDFDD*/
-#ifdef LTEMAC_HDFDD
-   CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
-#endif
-
-#ifdef TFU_UPGRADE
-   CMCHKPK(cmPkRgrUeSrCfg, &param->srCfg, mBuf);
-   CMCHKPK(cmPkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
-   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->cqiCfg, mBuf);
-#endif 
-
-   /*rgr_c_001.main_7 - Added support for SPS*/
-   CMCHKPK(cmPkRgrUeSpsCfg, &param->ueSpsRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
-
-   /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
-   CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
 
-   CMCHKPK(cmPkRgrCodeBookRstCfg, &param->ueCodeBookRstRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeMeasGapCfg, &param->ueMeasGapRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeCapCfg, &param->ueCapRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeAckNackRepCfg, &param->ueAckNackRecfg, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
-/*rgr_c_001.main_9 ADD added changes for DRX*/
+   CMCHKUNPK(oduPackUInt8, &param->isSpsEnabled, mBuf);
    
-   /* Anshika - Pack only if DRX is enabled */
-   if(TRUE == param->ueDrxRecfg.isDrxEnabled)
-   {
-      CMCHKPK(cmPkRgrUeDrxCfg, &param->ueDrxRecfg, mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->ueDrxRecfg.isDrxEnabled, mBuf); /* This has to be packed even if
-                                                 DRX is disabled */
-   CMCHKPK(cmPkRgrUeUlPwrCfg, &param->ueUlPwrRecfg, mBuf);
-#ifdef RGR_V1
-   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
-    * retxBSR-timer */
-   CMCHKPK(cmPkRgrUeBsrTmrCfg, &param->ueBsrTmrRecfg, mBuf);
-#endif
-   CMCHKPK(cmPkRgrUeTaTmrCfg, &param->ueTaTmrRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeQosCfg, &param->ueQosRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeUlHqCfg, &param->ueUlHqRecfg, mBuf);
-
-#ifndef TFU_UPGRADE
-   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->prdDlCqiRecfg, mBuf);
-#endif
-
-   CMCHKPK(cmPkRgrUeAprdDlCqiCfg, &param->aprdDlCqiRecfg, mBuf);
-   CMCHKPK(cmPkRgrUeTxModeCfg, &param->txMode, mBuf);
-   /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
-   /* LTE_ADV_FLAG_REMOVED_START */
-   /* KW fix for LTE_ADV */
-   CMCHKPK(oduUnpackUInt32, param->ueRecfgTypes, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKPK(cmPkLteRnti, param->newCrnti, mBuf);
-   CMCHKPK(cmPkLteRnti, param->oldCrnti, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
 
 
-\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeRecfg
+*     Func : cmPkRgrDlLchCfg
 *
 *
-*     Desc : UE reconfiguration info
+*     Desc : Logical channel configuration info for downlink logical channels
 *
 *
 *     Ret  : S16
@@ -6675,111 +5517,67 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeRecfg
+S16 cmPkRgrDlLchCfg
 (
-RgrUeRecfg *param,
+RgrDlLchCfg *param,
 Buffer *mBuf
 )
 {
-   uint32_t tmpEnum;
-
-
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->oldCrnti, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->newCrnti, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_START */
-   /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
-   /* KW fix for LTE_ADV */
-   CMCHKUNPK(oduPackUInt32, &param->ueRecfgTypes, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-   CMCHKUNPK(cmUnpkRgrUeTxModeCfg, &param->txMode, mBuf);
-
-   CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, &param->aprdDlCqiRecfg, mBuf);
-
-#ifndef TFU_UPGRADE
-   CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, &param->prdDlCqiRecfg, mBuf);
-#endif
-
-   CMCHKUNPK(cmUnpkRgrUeUlHqCfg, &param->ueUlHqRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeQosCfg, &param->ueQosRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, &param->ueTaTmrRecfg, mBuf);
-#ifdef RGR_V1
-   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
-    * retxBSR-timer */
-   CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, &param->ueBsrTmrRecfg, mBuf);
-#endif
-   CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, &param->ueUlPwrRecfg, mBuf);
-/*rgr_c_001.main_9 ADD added changes for DRX*/
-   
-   /* Anshika - Unpack only if DRX is enabled */
-   CMCHKUNPK(oduPackUInt8, &param->ueDrxRecfg.isDrxEnabled, mBuf);
-   if(TRUE == param->ueDrxRecfg.isDrxEnabled)
-   {
-      CMCHKUNPK(cmUnpkRgrUeDrxCfg, &param->ueDrxRecfg, mBuf);
-   }
-   CMCHKUNPK(oduPackUInt8, &param->isTtiBundlEnabled, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, &param->ueAckNackRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeCapCfg, &param->ueCapRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, &param->ueMeasGapRecfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, &param->ueCodeBookRstRecfg, mBuf);
-/* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
-   param->ueCatEnum = (CmLteUeCategory) tmpEnum;
-   CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
-   /*rgr_c_001.main_7 - Added support for SPS*/
-   CMCHKUNPK(cmUnpkRgrUeSpsCfg, &param->ueSpsRecfg, mBuf);
 
-/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-   CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, &param->cqiCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
-   CMCHKUNPK(cmUnpkRgrUeSrCfg, &param->srCfg, mBuf);
-#endif
-
-/*rgr_c_001.main_9 ADD added changes for HDFDD*/
-#ifdef LTEMAC_HDFDD
-   CMCHKUNPK(oduPackUInt8, &param->isHdFddEnbld, mBuf);
-#endif
-
-   CMCHKUNPK(cmUnpkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
+/*rgr_c_001.main_7 - Added support for SPS*/
 
-/* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-   CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
-#endif
-#ifdef TFU_UPGRADE
-   CMCHKUNPK(cmUnpkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
-#endif
+   CMCHKPK(oduUnpackUInt8, param->rlcReorderTmr, mBuf);
+   CMCHKPK(cmPkRgrLchSpsCfg, &param->dlSpsCfg, mBuf);
+   CMCHKPK(cmPkRgrLchQosCfg, &param->dlQos, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
+   return ROK;
+}
 
-   /* LTE_ADV_FLAG_REMOVED_START */
-   CMCHKUNPK(oduPackUInt32, &param->ueLteAdvCfg.pres, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ueLteAdvCfg.isAbsUe, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ueLteAdvCfg.isUeCellEdge, mBuf);
-   /* LTE_ADV_FLAG_REMOVED_END */
-#ifdef LTE_ADV 
-   CMCHKUNPK(cmUnpkRgrUeSecCellInfo, &param->ueSCellCfgInfo,mBuf);
-   CMCHKUNPK(cmUnpkRgrUeSCellAckPucchCfg, &param->sCellAckN1ResCfg,mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->simulAckNackCQIFormat3, mBuf);
-#endif
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->accessStratumRls, mBuf);
 
-   CMCHKUNPK(oduPackUInt8, &param->csgMmbrSta, mBuf);
-#ifdef EMTC_ENABLE
-   CMCHKPK(oduPackUInt8, &param->emtcUeRecfg.isHdFddEnbld, mBuf);
-#endif
+\f
+/***********************************************************
+*
+*     Func : cmUnpkRgrDlLchCfg
+*
+*
+*     Desc : Logical channel configuration info for downlink logical channels
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrDlLchCfg
+(
+RgrDlLchCfg *param,
+Buffer *mBuf
+)
+{
+
+
+   CMCHKUNPK(oduPackUInt8, &param->dlTrchType, mBuf);
+   CMCHKUNPK(cmUnpkRgrLchQosCfg, &param->dlQos, mBuf);
+   /*rgr_c_001.main_7 - Added support for SPs*/
+   CMCHKUNPK(cmUnpkRgrLchSpsCfg, &param->dlSpsCfg, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->rlcReorderTmr, mBuf);
 
    return ROK;
 }
 
 
+/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
+#ifdef LTE_L2_MEAS
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrLchRecfg
+*     Func : cmPkRgrUlLchCfg
 *
 *
-*     Desc : Logical channel reconfiguration info for dedicated channels only
+*     Desc : Logical channel configuration information for uplink logical channels
 *
 *
 *     Ret  : S16
@@ -6789,34 +5587,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrLchRecfg
+S16 cmPkRgrUlLchCfg
 (
-RgrLchRecfg *param,
+RgrUlLchCfg *param,
 Buffer *mBuf
 )
 {
 
-/*rgr_c_001.main_7 - Added support for SPS*/
-   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
-   
-   CMCHKPK(cmPkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);
-   CMCHKPK(cmPkRgrLchSpsCfg, &param->dlRecfg.dlSpsRecfg, mBuf);
-   
-   CMCHKPK(cmPkRgrLchQosCfg, &param->dlRecfg.dlQos, mBuf);
+
+   CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
    CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
 
 
 \f
+/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
 /***********************************************************
 *
-*     Func : cmUnpkRgrLchRecfg
+*     Func : cmUnpkRgrUlLchCfg
 *
 *
-*     Desc : Logical channel reconfiguration info for dedicated channels only
+*     Desc : Logical channel configuration information for uplink logical channels
 *
 *
 *     Ret  : S16
@@ -6826,88 +5618,28 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrLchRecfg
+S16 cmUnpkRgrUlLchCfg
 (
-RgrLchRecfg *param,
+RgrUlLchCfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
    CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
-   CMCHKUNPK(cmUnpkRgrLchQosCfg, &param->dlRecfg.dlQos, mBuf);
-      /*rgr_c_001.main_7 - Added support for SPs*/
-   CMCHKUNPK(cmUnpkRgrLchSpsCfg, &param->dlRecfg.dlSpsRecfg, mBuf);
-
-   CMCHKUNPK(cmUnpkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);   
-   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
-   return ROK;
-}
-
-
-S16 cmPkRgrLcgRecfg
-(
-RgrLcgRecfg *param,
-Buffer *mBuf
-)
-{
-#ifdef RG_UNUSED
-   S32 i;
-#endif
-
-   CMCHKPK(oduUnpackUInt32, param->ulRecfg.mbr, mBuf);
-   CMCHKPK(oduUnpackUInt32, param->ulRecfg.gbr, mBuf);
-#ifdef RG_UNUSED
-   for (i = param->ulRecfg.numLch - 1; i >= 0; i--)
-   {
-      CMCHKPK(cmPkRgrUlLchCfg, &param->ulRecfg.lchUlCfg[i], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->ulRecfg.numLch, mBuf);
-#endif
-   CMCHKPK(oduUnpackUInt8, param->ulRecfg.lcgId, mBuf);
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->qci, mBuf);
    return ROK;
 }
 
 
-S16 cmUnpkRgrLcgRecfg
-(
-RgrLcgRecfg *param,
-Buffer *mBuf
-)
-{
-#ifdef RG_UNUSED
-   S32 i;
-#endif
-
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->ulRecfg.lcgId, mBuf);
-
-#ifdef RG_UNUSED
-   CMCHKUNPK(oduPackUInt8, &param->ulRecfg.numLch, mBuf);
-   for (i = 0; i < param->ulRecfg.numLch; i++)
-   {
-      CMCHKUNPK(cmUnpkRgrUlLchCfg, &param->ulRecfg.lchUlCfg[i], mBuf);
-   }
 #endif
-   CMCHKUNPK(oduPackUInt32, &param->ulRecfg.gbr, mBuf);
-   CMCHKUNPK(oduPackUInt32, &param->ulRecfg.mbr, mBuf);
-
-   return ROK;
-}
-
-
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrRecfg
+*     Func : cmPkRgrUlLcgCfg
 *
 *
-*     Desc : Basic reconfiguration structure at RRM
+*     Desc : Logical channel configuration info for uplink logical channels
 *
 *
 *     Ret  : S16
@@ -6917,31 +5649,29 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrRecfg
+S16 cmPkRgrUlLcgCfg
 (
-RgrRecfg *param,
+RgrUlLcgCfg *param,
 Buffer *mBuf
 )
 {
 
+/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
+#ifdef LTE_L2_MEAS
+   S32 i;
+#endif
+   CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
 
-      switch(param->recfgType) {
-         case RGR_LCG_CFG:
-            CMCHKPK(cmPkRgrLcgRecfg, &param->u.lcgRecfg, mBuf);
-            break;
-         case RGR_LCH_CFG:
-            CMCHKPK(cmPkRgrLchRecfg, &param->u.lchRecfg, mBuf);
-            break;
-         case RGR_UE_CFG:
-            CMCHKPK(cmPkRgrUeRecfg, &param->u.ueRecfg, mBuf);
-            break;
-         case RGR_CELL_CFG:
-            CMCHKPK(cmPkRgrCellRecfg, &param->u.cellRecfg, mBuf);
-            break;
-         default :
-            return RFAILED;
-      }
-   CMCHKPK(oduUnpackUInt8, param->recfgType, mBuf);
+/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
+#ifdef LTE_L2_MEAS
+   for (i = param->numLch - 1; i >= 0; i--)
+   {
+      CMCHKPK(cmPkRgrUlLchCfg, &param->lchUlCfg[i], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->numLch, mBuf);
+#endif
+   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
    return ROK;
 }
 
@@ -6949,10 +5679,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrRecfg
+*     Func : cmUnpkRgrUlLcgCfg
 *
 *
-*     Desc : Basic reconfiguration structure at RRM
+*     Desc : Logical channel configuration info for uplink logical channels
 *
 *
 *     Ret  : S16
@@ -6962,41 +5692,63 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrRecfg
+S16 cmUnpkRgrUlLcgCfg
 (
-RgrRecfg *param,
+RgrUlLcgCfg *param,
 Buffer *mBuf
 )
 {
 
+/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
+#ifdef LTE_L2_MEAS
+   S32 i;
+#endif
 
-   CMCHKUNPK(oduPackUInt8, &param->recfgType, mBuf);
-      switch(param->recfgType) {
-         case RGR_CELL_CFG:
-            CMCHKUNPK(cmUnpkRgrCellRecfg, &param->u.cellRecfg, mBuf);
-            break;
-         case RGR_UE_CFG:
-            CMCHKUNPK(cmUnpkRgrUeRecfg, &param->u.ueRecfg, mBuf);
-            break;
-         case RGR_LCH_CFG:
-            CMCHKUNPK(cmUnpkRgrLchRecfg, &param->u.lchRecfg, mBuf);
-            break;
-         case RGR_LCG_CFG:
-            CMCHKUNPK(cmUnpkRgrLcgRecfg, &param->u.lcgRecfg, mBuf);
-            break;
-         default :
-            return RFAILED;
-      }
+   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
+/*rgr_c_001.main_9 ADD added changes for L2 measurements*/
+#ifdef LTE_L2_MEAS
+   CMCHKUNPK(oduPackUInt8, &param->numLch, mBuf);
+   for (i = 0; i< param->numLch; i++)
+   {
+      CMCHKUNPK(cmUnpkRgrUlLchCfg, &param->lchUlCfg[i], mBuf);
+   }
+
+#endif
+   CMCHKUNPK(oduPackUInt32, &param->gbr, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->mbr, mBuf);
    return ROK;
 }
 
-#ifdef LTE_ADV
+S16 cmPkRgrUlLchQciCfg
+(
+RgrUlLchQciCfg *param,
+Buffer *mBuf
+)
+{
+   CMCHKPK(oduUnpackUInt8, param->lcId, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
+   return ROK;
+}
+S16 cmUnpkRgrUlLchQciCfg
+(
+RgrUlLchQciCfg *param,
+Buffer *mBuf
+)
+{
+   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->qci, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->lcId, mBuf);
+   return ROK;
+}
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrUeDlSecCellRelInfo
+*     Func : cmPkRgrLchCfg
 *
 *
-*     Desc : DL Secondary Cell information of the UE
+*     Desc : Logical channel configuration info for dedicated channels
 *
 *
 *     Ret  : S16
@@ -7006,23 +5758,31 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeDlSecCellRelInfo
+S16 cmPkRgrLchCfg
 (
-RgrUeDlSecCellRelInfo *param,
+RgrLchCfg *param,
 Buffer *mBuf
 )
 {
-   CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
+
+   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
+   CMCHKPK(cmPkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);
+   CMCHKPK(cmPkRgrDlLchCfg, &param->dlInfo, mBuf);
+   CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
+   CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
+
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrUeSecCellRelInfo
+*     Func : cmUnpkRgrLchCfg
 *
 *
-*     Desc : Secondary Cell Delete information of the UE
+*     Desc : Logical channel configuration info for dedicated channels
 *
 *
 *     Ret  : S16
@@ -7032,30 +5792,62 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeSecCellRelInfo
+S16 cmUnpkRgrLchCfg
+(
+RgrLchCfg *param,
+Buffer *mBuf
+)
+{
+
+
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
+   CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
+   CMCHKUNPK(cmUnpkLteLcType, &param->lcType, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlLchCfg, &param->dlInfo, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
+   return ROK;
+}
+
+
+S16 cmPkRgrLcgCfg
+(
+RgrLcgCfg *param,
+Buffer *mBuf
+)
+{
+
+
+   CMCHKPK(cmPkRgrUlLcgCfg, &param->ulInfo, mBuf);
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+   return ROK;
+}
+
+
+S16 cmUnpkRgrLcgCfg
 (
-RgrUeSecCellRelInfo *param,
+RgrLcgCfg *param,
 Buffer *mBuf
 )
 {
-   S8 idx;
-   for(idx = param->numSCells - 1; idx >= 0; idx--)
-   {
-      CMCHKPK(cmPkRgrUeDlSecCellRelInfo, &param->ueSCellRelDedCfg[(uint8_t)idx],mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
 
+
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlLcgCfg, &param->ulInfo, mBuf);
    return ROK;
 }
-#endif
+
 
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrDel
+*     Func : cmPkRgrCfg
 *
 *
-*     Desc : Basic Delete info for MAC
+*     Desc : Basic Configuration structure at RRM
 *
 *
 *     Ret  : S16
@@ -7065,57 +5857,45 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrDel
+S16 cmPkRgrCfg
 (
-RgrDel *param,
+RgrCfg *param,
 Buffer *mBuf
 )
 {
 
 
-      switch(param->delType) {
+      switch(param->cfgType) {
          case RGR_LCG_CFG:
-            CMCHKPK(oduUnpackUInt8, param->u.lcgDel.lcgId, mBuf);
-            CMCHKPK(cmPkLteRnti, param->u.lcgDel.crnti, mBuf);
-            CMCHKPK(cmPkLteCellId, param->u.lcgDel.cellId, mBuf);
-         break;
+            CMCHKPK(cmPkRgrLcgCfg, &param->u.lcgCfg, mBuf);
+            break;
          case RGR_LCH_CFG:
-            CMCHKPK(oduUnpackUInt8, param->u.lchDel.lcgId, mBuf);
-            CMCHKPK(cmPkLteLcId, param->u.lchDel.lcId, mBuf);
-            CMCHKPK(cmPkLteRnti, param->u.lchDel.crnti, mBuf);
-            CMCHKPK(cmPkLteCellId, param->u.lchDel.cellId, mBuf);
-         break;
+            CMCHKPK(cmPkRgrLchCfg, &param->u.lchCfg, mBuf);
+            break;
          case RGR_UE_CFG:
-            CMCHKPK(cmPkLteRnti, param->u.ueDel.crnti, mBuf);
-            CMCHKPK(cmPkLteCellId, param->u.ueDel.cellId, mBuf);
-         break;
+            CMCHKPK(cmPkRgrUeCfg, &param->u.ueCfg, mBuf);
+            break;
          case RGR_CELL_CFG:
-            CMCHKPK(cmPkLteCellId, param->u.cellDel.cellId, mBuf);
-         break;
-#ifdef LTE_ADV
-         case RGR_SCELL_UE_CFG:
-            CMCHKPK(cmPkRgrUeSecCellRelInfo, &param->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
-            CMCHKPK(oduUnpackUInt32, param->u.ueScellRel.ueDelTypes, mBuf);
-            CMCHKPK(cmPkLteRnti, param->u.ueScellRel.crnti, mBuf);
-            CMCHKPK(cmPkLteCellId, param->u.ueScellRel.cellId, mBuf);
-         break;
-#endif
+            CMCHKPK(cmPkRgrCellCfg, &param->u.cellCfg, mBuf);
+            break;
+         case MAC_GNB_CFG:
+            CMCHKPK(cmPkMacSchedGnbCfg, &param->u.schedGnbCfg, mBuf);
+            break;
          default :
             return RFAILED;
       }
-   CMCHKPK(oduUnpackUInt8, param->delType, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
    return ROK;
 }
 
 
-#ifdef LTE_ADV
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeDlSecCellRelInfo
+*     Func : cmUnpkRgrCfg
 *
 *
-*     Desc : DL Secondary Cell information of the UE
+*     Desc : Basic Configuration structure at RRM
 *
 *
 *     Ret  : S16
@@ -7125,24 +5905,45 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeDlSecCellRelInfo
+S16 cmUnpkRgrCfg
 (
-RgrUeDlSecCellRelInfo *param,
+RgrCfg *param,
 Buffer *mBuf
 )
 {
-   CMCHKUNPK(oduPackUInt8, &param->sCellIdx, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->sCellId, mBuf);
+
+
+   CMCHKUNPK(oduPackUInt8, &param->cfgType, mBuf);
+      switch(param->cfgType) {
+         case MAC_GNB_CFG:
+            CMCHKUNPK(cmUnpkMacSchedGnbCfg, &param->u.schedGnbCfg, mBuf);
+            break;
+         case RGR_CELL_CFG:
+            CMCHKUNPK(cmUnpkRgrCellCfg, &param->u.cellCfg, mBuf);
+            break;
+         case RGR_UE_CFG:
+            CMCHKUNPK(cmUnpkRgrUeCfg, &param->u.ueCfg, mBuf);
+            break;
+         case RGR_LCH_CFG:
+            CMCHKUNPK(cmUnpkRgrLchCfg, &param->u.lchCfg, mBuf);
+            break;
+         case RGR_LCG_CFG:
+            CMCHKUNPK(cmUnpkRgrLcgCfg, &param->u.lcgCfg, mBuf);
+            break;
+         default :
+            return RFAILED;
+      }
    return ROK;
 }
 
+
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeSecCellRelInfo
+*     Func : cmPkRgrActvTime
 *
 *
-*     Desc : Secondary Cell information of the UE
+*     Desc : Activation time information
 *
 *
 *     Ret  : S16
@@ -7152,30 +5953,27 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeSecCellRelInfo
+S16 cmPkRgrActvTime
 (
-RgrUeSecCellRelInfo *param,
+RgrActvTime *param,
 Buffer *mBuf
 )
 {
-   uint8_t idx;
 
-   CMCHKUNPK(oduPackUInt8, &param->numSCells, mBuf);
 
-   for(idx = 0; idx < param->numSCells;idx++)
-   {
-      CMCHKUNPK(cmUnpkRgrUeDlSecCellRelInfo, &param->ueSCellRelDedCfg[idx],mBuf);
-   }
+   CMCHKPK(cmPkLteTimingInfo, &param->actvTime, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
    return ROK;
 }
-#endif
+
+
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrDel
+*     Func : cmUnpkRgrActvTime
 *
 *
-*     Desc : Basic Delete info for MAC
+*     Desc : Activation time information
 *
 *
 *     Ret  : S16
@@ -7185,203 +5983,133 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrDel
+S16 cmUnpkRgrActvTime
 (
-RgrDel *param,
+RgrActvTime *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->delType, mBuf);
-      switch(param->delType) {
-         case RGR_CELL_CFG:
-            CMCHKUNPK(cmUnpkLteCellId, &param->u.cellDel.cellId, mBuf);
-         break;
-         case RGR_UE_CFG:
-            CMCHKUNPK(cmUnpkLteCellId, &param->u.ueDel.cellId, mBuf);
-            CMCHKUNPK(cmUnpkLteRnti, &param->u.ueDel.crnti, mBuf);
-         break;
-         case RGR_LCH_CFG:
-            CMCHKUNPK(cmUnpkLteCellId, &param->u.lchDel.cellId, mBuf);
-            CMCHKUNPK(cmUnpkLteRnti, &param->u.lchDel.crnti, mBuf);
-            CMCHKUNPK(cmUnpkLteLcId, &param->u.lchDel.lcId, mBuf);
-            CMCHKUNPK(oduPackUInt8, &param->u.lchDel.lcgId, mBuf);
-         break;
-         case RGR_LCG_CFG:
-            CMCHKUNPK(cmUnpkLteCellId, &param->u.lcgDel.cellId, mBuf);
-            CMCHKUNPK(cmUnpkLteRnti, &param->u.lcgDel.crnti, mBuf);
-            CMCHKUNPK(oduPackUInt8, &param->u.lcgDel.lcgId, mBuf);
-         break;
-#ifdef LTE_ADV
-         case RGR_SCELL_UE_CFG:
-            CMCHKUNPK(cmUnpkLteCellId, &param->u.ueScellRel.cellId, mBuf);
-            CMCHKUNPK(cmUnpkLteRnti, &param->u.ueScellRel.crnti, mBuf);
-            CMCHKUNPK(oduPackUInt32, &param->u.ueScellRel.ueDelTypes, mBuf);
-            CMCHKUNPK(cmUnpkRgrUeSecCellRelInfo, &param->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
-         break;
-#endif
-         default :
-            return RFAILED;
-      }
+   CMCHKUNPK(oduPackUInt8, &param->pres, mBuf);
+   CMCHKUNPK(cmUnpkLteTimingInfo, &param->actvTime, mBuf);
    return ROK;
 }
+
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrSonPrbCfg
+*     Func : cmPkRgrCellRecfg
 *
 *
-*     Desc : SON PRB Configuration info for MAC
+*     Desc : Cell reconfiguration structure at RRM
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  :
+*     File  : 
 *
 **********************************************************/
-S16 cmPkRgrSonPrbCfg
+S16 cmPkRgrCellRecfg
 (
-RgrPrbCfg *param,
+RgrCellRecfg *param,
 Buffer *mBuf
 )
 {
-   S32 count;
-   for(count = RGR_SCH_MAX_PA_PER_PRB - 1; count >= 0; count --)
-   {
-      CMCHKPK(oduUnpackUInt32, param->paLevelPerPrb[count], mBuf);
-   }
-   for(count = param->numCellCentreUEs - 1; count >= 0; count --)
-   {
-      CMCHKPK(cmPkLteRnti, param->cellCentreUe[count], mBuf);
-   } 
-   for(count = param->numCellEdgeUEs - 1; count >= 0; count --)
-   {
-      CMCHKPK(cmPkLteRnti, param->cellEdgeUe[count], mBuf);
-   }
-   CMCHKPK(oduUnpackUInt8, param->numCellCentreUEs, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->numCellEdgeUEs, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isSonIcicEnable, mBuf);
-   return ROK;
-}
 
-/***********************************************************
-*
-*     Func : cmUnpkRgrSon
-*
-*
-*     Desc : SON configuration info for MAC
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  :
-*
-**********************************************************/
-S16 cmUnpkRgrSonPrbCfg
-(
-RgrPrbCfg   *param,
-Buffer      *mBuf
-)
-{
-   S32   count;
-   CMCHKUNPK(oduPackUInt8, &param->isSonIcicEnable, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numCellEdgeUEs, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numCellCentreUEs, mBuf);
-   for (count = 0; count < param->numCellEdgeUEs; count++)
-   {
-      CMCHKUNPK(cmUnpkLteRnti, &param->cellEdgeUe[count], mBuf);
-   }
-   for (count = 0; count < param->numCellCentreUEs; count++)
-   {
-      CMCHKUNPK(cmUnpkLteRnti, &param->cellCentreUe[count], mBuf);
-   }
-   for(count = 0; count < RGR_SCH_MAX_PA_PER_PRB; count ++)
-   {
-      CMCHKUNPK(oduPackUInt32,(uint32_t *) &param->paLevelPerPrb[count], mBuf);
-   }
+   CMCHKPK(cmPkRgrCellCntrlCmdCfg, &param->cntrlCmdCfg, mBuf);
+   CMCHKPK(cmPkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
+   /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
+#ifdef RGR_SI_SCH
+   CMCHKPK(cmPkRgrSiCfg, &param->siReCfg, mBuf);
+#endif /* RGR_SI_SCH */
+   CMCHKPK(cmPkRgrDlfsCfg, &param->dlfsRecfg, mBuf);
+   CMCHKPK(cmPkRgrRachCfg, &param->rachRecfg, mBuf);
+   CMCHKPK(cmPkRgrSrsCfg, &param->srsRecfg, mBuf);
+   CMCHKPK(cmPkRgrPucchCfg, &param->pucchRecfg, mBuf);
+   CMCHKPK(cmPkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
+   CMCHKPK(cmPkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
+   CMCHKPK(cmPkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
+   CMCHKPK(cmPkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
+   CMCHKPK(cmPkRgrCfiCfg, &param->cfiRecfg, mBuf);
+   CMCHKPK(cmPkRgrDlHqCfg, &param->dlHqRecfg, mBuf);
+   CMCHKPK(cmPkRgrActvTime, &param->recfgActvTime, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->recfgTypes, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
+
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrSonCfg
+*     Func : cmUnpkRgrCellRecfg
 *
 *
-*     Desc : SON Configuration info for MAC
+*     Desc : Cell reconfiguration structure at RRM
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  :
+*     File  : 
 *
 **********************************************************/
-S16 cmPkRgrSonCfg
+S16 cmUnpkRgrCellRecfg
 (
-RgrSonCfg *param,
+RgrCellRecfg *param,
 Buffer *mBuf
 )
 {
 
-   switch(param->cfgType)
-   {
-      case RGR_SON_PRB_CFG :
-      CMCHKPK(cmPkRgrSonPrbCfg, &param->u.prbCfg, mBuf);
-      break;
-      default :
-      return RFAILED;
-   }
-   CMCHKPK(oduUnpackUInt32, param->cfgType, mBuf);
-   return ROK;
-}
 
-/***********************************************************
-*
-*     Func : cmUnpkRgrSon
-*
-*
-*     Desc : SON configuration info for MAC
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  :
-*
-**********************************************************/
-S16 cmUnpkRgrSonCfg
-(
-RgrSonCfg   *param,
-Buffer      *mBuf
-)
-{
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->recfgTypes, mBuf);
+   CMCHKUNPK(cmUnpkRgrActvTime, &param->recfgActvTime, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlHqCfg, &param->dlHqRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrCfiCfg, &param->cfiRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, &param->trgUlCqi, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, &param->dlCmnCodeRate, mBuf);
+   CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, &param->puschSubBand, mBuf);
+   CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, &param->ulCmnCodeRate, mBuf);
+   CMCHKUNPK(cmUnpkRgrPucchCfg, &param->pucchRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrSrsCfg, &param->srsRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrRachCfg, &param->rachRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrDlfsCfg, &param->dlfsRecfg, mBuf);
+   /* rgr_c_001.main_4-MOD-Modified for SI Enhancement. */
+#ifdef RGR_SI_SCH
+   CMCHKUNPK(cmUnpkRgrSiCfg, &param->siReCfg, mBuf);
+#endif /* RGR_SI_SCH */
+   CMCHKUNPK(oduPackUInt16, &param->t300TmrVal, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, &param->rgrLteAdvCfg, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKUNPK(oduPackUInt8, &param->isAutoCfgModeEnb, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->isDynCfiEnb, mBuf);
+   CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, &param->csgParamCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrCellCntrlCmdCfg, &param->cntrlCmdCfg, mBuf);
 
-   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->cfgType, mBuf);
-   switch(param->cfgType)
-   {
-      case RGR_SON_PRB_CFG :
-      {
-         CMCHKUNPK(cmUnpkRgrSonPrbCfg, &param->u.prbCfg, mBuf);
-         break;
-         default :
-         return RFAILED;
-      }
-   }
    return ROK;
 }
 
+
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrRst
+*     Func : cmPkRgrUeRecfg
 *
 *
-*     Desc : UE RESET info for MAC
+*     Desc : UE reconfiguration info
 *
 *
 *     Ret  : S16
@@ -7391,15 +6119,99 @@ Buffer      *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrRst
+S16 cmPkRgrUeRecfg
 (
-RgrRst *param,
+RgrUeRecfg *param,
 Buffer *mBuf
 )
 {
 
+#ifdef EMTC_ENABLE
+   /* Note: As we add more members to emtcUeRecfg, 
+      create a new function for pkUnpk */
+   CMCHKPK(oduUnpackUInt8, param->emtcUeRecfg.isHdFddEnbld, mBuf);
+#endif
+   CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
+  
+   CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
+#ifdef LTE_ADV 
+   CMCHKPK(oduUnpackUInt8, param->simulAckNackCQIFormat3, mBuf);
+   CMCHKPK(cmPkRgrUeSCellAckPucchCfg, &param->sCellAckN1ResCfg,mBuf);
+   CMCHKPK(cmPkRgrUeSecCellInfo, &param->ueSCellCfgInfo,mBuf);
+#endif
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isUeCellEdge, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isAbsUe, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->ueLteAdvCfg.pres, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   /*ccpu00130497: Removed the duplicate packing*/
+#ifdef TFU_UPGRADE
+   CMCHKPK(cmPkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
+#endif
+   /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
+   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
+#ifdef RGR_CQI_REPT
+   CMCHKPK(cmPkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
+#endif
+
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+   CMCHKPK(cmPkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
+
+/*rgr_c_001.main_9 ADD added changes for HDFDD*/
+#ifdef LTEMAC_HDFDD
+   CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
+#endif
 
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+#ifdef TFU_UPGRADE
+   CMCHKPK(cmPkRgrUeSrCfg, &param->srCfg, mBuf);
+   CMCHKPK(cmPkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
+   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->cqiCfg, mBuf);
+#endif 
+
+   /*rgr_c_001.main_7 - Added support for SPS*/
+   CMCHKPK(cmPkRgrUeSpsCfg, &param->ueSpsRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
+
+   /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
+   CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
+
+   CMCHKPK(cmPkRgrCodeBookRstCfg, &param->ueCodeBookRstRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeMeasGapCfg, &param->ueMeasGapRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeCapCfg, &param->ueCapRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeAckNackRepCfg, &param->ueAckNackRecfg, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
+/*rgr_c_001.main_9 ADD added changes for DRX*/
+   
+   /* Anshika - Pack only if DRX is enabled */
+   if(TRUE == param->ueDrxRecfg.isDrxEnabled)
+   {
+      CMCHKPK(cmPkRgrUeDrxCfg, &param->ueDrxRecfg, mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->ueDrxRecfg.isDrxEnabled, mBuf); /* This has to be packed even if
+                                                 DRX is disabled */
+   CMCHKPK(cmPkRgrUeUlPwrCfg, &param->ueUlPwrRecfg, mBuf);
+#ifdef RGR_V1
+   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
+    * retxBSR-timer */
+   CMCHKPK(cmPkRgrUeBsrTmrCfg, &param->ueBsrTmrRecfg, mBuf);
+#endif
+   CMCHKPK(cmPkRgrUeTaTmrCfg, &param->ueTaTmrRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeQosCfg, &param->ueQosRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeUlHqCfg, &param->ueUlHqRecfg, mBuf);
+
+#ifndef TFU_UPGRADE
+   CMCHKPK(cmPkRgrUePrdDlCqiCfg, &param->prdDlCqiRecfg, mBuf);
+#endif
+
+   CMCHKPK(cmPkRgrUeAprdDlCqiCfg, &param->aprdDlCqiRecfg, mBuf);
+   CMCHKPK(cmPkRgrUeTxModeCfg, &param->txMode, mBuf);
+   /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
+   /* LTE_ADV_FLAG_REMOVED_START */
+   /* KW fix for LTE_ADV */
+   CMCHKPK(oduUnpackUInt32, param->ueRecfgTypes, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKPK(cmPkLteRnti, param->newCrnti, mBuf);
+   CMCHKPK(cmPkLteRnti, param->oldCrnti, mBuf);
    CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
@@ -7408,10 +6220,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrRst
+*     Func : cmUnpkRgrUeRecfg
 *
 *
-*     Desc : UE RESET info for MAC
+*     Desc : UE reconfiguration info
 *
 *
 *     Ret  : S16
@@ -7421,25 +6233,111 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrRst
+S16 cmUnpkRgrUeRecfg
 (
-RgrRst *param,
+RgrUeRecfg *param,
 Buffer *mBuf
 )
 {
+   uint32_t tmpEnum;
+
+
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->oldCrnti, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->newCrnti, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_START */
+   /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
+   /* KW fix for LTE_ADV */
+   CMCHKUNPK(oduPackUInt32, &param->ueRecfgTypes, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+   CMCHKUNPK(cmUnpkRgrUeTxModeCfg, &param->txMode, mBuf);
+
+   CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, &param->aprdDlCqiRecfg, mBuf);
+
+#ifndef TFU_UPGRADE
+   CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, &param->prdDlCqiRecfg, mBuf);
+#endif
+
+   CMCHKUNPK(cmUnpkRgrUeUlHqCfg, &param->ueUlHqRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeQosCfg, &param->ueQosRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, &param->ueTaTmrRecfg, mBuf);
+#ifdef RGR_V1
+   /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
+    * retxBSR-timer */
+   CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, &param->ueBsrTmrRecfg, mBuf);
+#endif
+   CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, &param->ueUlPwrRecfg, mBuf);
+/*rgr_c_001.main_9 ADD added changes for DRX*/
+   
+   /* Anshika - Unpack only if DRX is enabled */
+   CMCHKUNPK(oduPackUInt8, &param->ueDrxRecfg.isDrxEnabled, mBuf);
+   if(TRUE == param->ueDrxRecfg.isDrxEnabled)
+   {
+      CMCHKUNPK(cmUnpkRgrUeDrxCfg, &param->ueDrxRecfg, mBuf);
+   }
+   CMCHKUNPK(oduPackUInt8, &param->isTtiBundlEnabled, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, &param->ueAckNackRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeCapCfg, &param->ueCapRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, &param->ueMeasGapRecfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, &param->ueCodeBookRstRecfg, mBuf);
+/* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
+   param->ueCatEnum = (CmLteUeCategory) tmpEnum;
+   CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, &param->ulTxAntSel, mBuf);
+   /*rgr_c_001.main_7 - Added support for SPS*/
+   CMCHKUNPK(cmUnpkRgrUeSpsCfg, &param->ueSpsRecfg, mBuf);
+
+/* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
+#ifdef TFU_UPGRADE
+   CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, &param->cqiCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, &param->srsCfg, mBuf);
+   CMCHKUNPK(cmUnpkRgrUeSrCfg, &param->srCfg, mBuf);
+#endif
+
+/*rgr_c_001.main_9 ADD added changes for HDFDD*/
+#ifdef LTEMAC_HDFDD
+   CMCHKUNPK(oduPackUInt8, &param->isHdFddEnbld, mBuf);
+#endif
+
+   CMCHKUNPK(cmUnpkRgrUePuschDedCfg, &param->puschDedCfg, mBuf);
+
+/* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
+   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
+#ifdef RGR_CQI_REPT
+   CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, &param->ueCqiReptCfg, mBuf);
+#endif
+#ifdef TFU_UPGRADE
+   CMCHKUNPK(cmUnpkRgrUePdschDedCfg, &param->uePdschDedCfg, mBuf);
+#endif
+
+   /* LTE_ADV_FLAG_REMOVED_START */
+   CMCHKUNPK(oduPackUInt32, &param->ueLteAdvCfg.pres, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ueLteAdvCfg.isAbsUe, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ueLteAdvCfg.isUeCellEdge, mBuf);
+   /* LTE_ADV_FLAG_REMOVED_END */
+#ifdef LTE_ADV 
+   CMCHKUNPK(cmUnpkRgrUeSecCellInfo, &param->ueSCellCfgInfo,mBuf);
+   CMCHKUNPK(cmUnpkRgrUeSCellAckPucchCfg, &param->sCellAckN1ResCfg,mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->simulAckNackCQIFormat3, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->accessStratumRls, mBuf);
 
+   CMCHKUNPK(oduPackUInt8, &param->csgMmbrSta, mBuf);
+#ifdef EMTC_ENABLE
+   CMCHKPK(oduPackUInt8, &param->emtcUeRecfg.isHdFddEnbld, mBuf);
+#endif
 
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
    return ROK;
 }
-#ifdef LTE_ADV
+
+
+\f
 /***********************************************************
 *
-*     Func : cmUnPkRgrSCellActDeactInfo
+*     Func : cmPkRgrLchRecfg
 *
 *
-*     Desc : SCell Activation information of the UE
+*     Desc : Logical channel reconfiguration info for dedicated channels only
 *
 *
 *     Ret  : S16
@@ -7449,23 +6347,34 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-static S16 cmUnPkRgrSCellActDeactInfo
+S16 cmPkRgrLchRecfg
 (
-RgrSCellActDeactInfo *param,
+RgrLchRecfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt8, &param->sCellIdx, mBuf);
+/*rgr_c_001.main_7 - Added support for SPS*/
+   CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
+   
+   CMCHKPK(cmPkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);
+   CMCHKPK(cmPkRgrLchSpsCfg, &param->dlRecfg.dlSpsRecfg, mBuf);
+   
+   CMCHKPK(cmPkRgrLchQosCfg, &param->dlRecfg.dlQos, mBuf);
+   CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
 
+
+\f
 /***********************************************************
 *
-*     Func : cmUnPkRgrSCellActDeactEvnt
+*     Func : cmUnpkRgrLchRecfg
 *
 *
-*     Desc : SCell Activation Configuration structure to SCH
+*     Desc : Logical channel reconfiguration info for dedicated channels only
 *
 *
 *     Ret  : S16
@@ -7475,98 +6384,88 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnPkRgrSCellActDeactEvnt
+S16 cmUnpkRgrLchRecfg
 (
-RgrSCellActDeactEvnt *param,
+RgrLchRecfg *param,
 Buffer *mBuf
 )
 {
 
-   uint8_t idx;
 
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
    CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->numOfSCells, mBuf);
-
-   for(idx = 0; idx < param->numOfSCells;idx++)
-   {
-      CMCHKUNPK(cmUnPkRgrSCellActDeactInfo, &param->sCellActDeactInfo[idx],mBuf);
-   }
+   CMCHKUNPK(cmUnpkLteLcId, &param->lcId, mBuf);
+   CMCHKUNPK(cmUnpkRgrLchQosCfg, &param->dlRecfg.dlQos, mBuf);
+      /*rgr_c_001.main_7 - Added support for SPs*/
+   CMCHKUNPK(cmUnpkRgrLchSpsCfg, &param->dlRecfg.dlSpsRecfg, mBuf);
 
+   CMCHKUNPK(cmUnpkRgrUlLchQciCfg, &param->ulLchQciInfo, mBuf);   
+   CMCHKUNPK(oduPackUInt8, &param->lcgId, mBuf);
    return ROK;
 }
 
 
-/***********************************************************
-*
-*     Func : cmPkRgrSCellActInfo
-*
-*
-*     Desc : SCell Activation information of the UE
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-static S16 cmPkRgrSCellActDeactInfo
+S16 cmPkRgrLcgRecfg
 (
-RgrSCellActDeactInfo *param,
+RgrLcgRecfg *param,
 Buffer *mBuf
 )
 {
+#ifdef RG_UNUSED
+   S32 i;
+#endif
 
-   CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
-
+   CMCHKPK(oduUnpackUInt32, param->ulRecfg.mbr, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->ulRecfg.gbr, mBuf);
+#ifdef RG_UNUSED
+   for (i = param->ulRecfg.numLch - 1; i >= 0; i--)
+   {
+      CMCHKPK(cmPkRgrUlLchCfg, &param->ulRecfg.lchUlCfg[i], mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->ulRecfg.numLch, mBuf);
+#endif
+   CMCHKPK(oduUnpackUInt8, param->ulRecfg.lcgId, mBuf);
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
    return ROK;
 }
 
-/***********************************************************
-*
-*     Func : cmPkRgrSCellActDeactEvnt
-*
-*
-*     Desc : Basic Configuration structure at SCH
-*
-*
-*     Ret  : S16
-*
-*     Notes:
-*
-*     File  : 
-*
-**********************************************************/
-S16 cmPkRgrSCellActDeactEvnt
+
+S16 cmUnpkRgrLcgRecfg
 (
-RgrSCellActDeactEvnt *param,
+RgrLcgRecfg *param,
 Buffer *mBuf
 )
 {
+#ifdef RG_UNUSED
+   S32 i;
+#endif
 
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->ulRecfg.lcgId, mBuf);
 
-   S8 idx;
-   for(idx = param->numOfSCells - 1; idx >= 0; idx--)
+#ifdef RG_UNUSED
+   CMCHKUNPK(oduPackUInt8, &param->ulRecfg.numLch, mBuf);
+   for (i = 0; i < param->ulRecfg.numLch; i++)
    {
-      CMCHKPK(cmPkRgrSCellActDeactInfo, &param->sCellActDeactInfo[(uint8_t)idx], mBuf);
+      CMCHKUNPK(cmUnpkRgrUlLchCfg, &param->ulRecfg.lchUlCfg[i], mBuf);
    }
-
-   CMCHKPK(oduUnpackUInt8, param->numOfSCells, mBuf);
-   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+#endif
+   CMCHKUNPK(oduPackUInt32, &param->ulRecfg.gbr, mBuf);
+   CMCHKUNPK(oduPackUInt32, &param->ulRecfg.mbr, mBuf);
 
    return ROK;
 }
 
 
-#endif /* LTE_ADV */
 \f
 /***********************************************************
 *
-*     Func : cmPkRgrCfgReqInfo
+*     Func : cmPkRgrRecfg
 *
 *
-*     Desc : Basic RGR configuration/reconfiguration info at RRM
+*     Desc : Basic reconfiguration structure at RRM
 *
 *
 *     Ret  : S16
@@ -7576,41 +6475,31 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrCfgReqInfo
+S16 cmPkRgrRecfg
 (
-RgrCfgReqInfo *param,
+RgrRecfg *param,
 Buffer *mBuf
 )
 {
 
 
-      switch(param->action) {
-         case RGR_SON_CFG:
-            CMCHKPK(cmPkRgrSonCfg, &param->u.sonCfg, mBuf);
-            break;
-         case RGR_RESET:
-            CMCHKPK(cmPkRgrRst, &param->u.rstInfo, mBuf);
-            break;
-         case RGR_DELETE:
-            CMCHKPK(cmPkRgrDel, &param->u.delInfo, mBuf);
+      switch(param->recfgType) {
+         case RGR_LCG_CFG:
+            CMCHKPK(cmPkRgrLcgRecfg, &param->u.lcgRecfg, mBuf);
             break;
-         case RGR_RECONFIG:
-            CMCHKPK(cmPkRgrRecfg, &param->u.recfgInfo, mBuf);
+         case RGR_LCH_CFG:
+            CMCHKPK(cmPkRgrLchRecfg, &param->u.lchRecfg, mBuf);
             break;
-         case SCH_CONFIG:
-            CMCHKPK(cmPkRgrCfg, &param->u.cfgInfo, mBuf);
+         case RGR_UE_CFG:
+            CMCHKPK(cmPkRgrUeRecfg, &param->u.ueRecfg, mBuf);
             break;
-#ifdef LTE_ADV
-         case RGR_SCELL_ACT:
-         case RGR_SCELL_DEACT:
-         case RGR_SCELL_READY:
-            CMCHKPK(cmPkRgrSCellActDeactEvnt, &param->u.sCellActDeactEvnt, mBuf);
+         case RGR_CELL_CFG:
+            CMCHKPK(cmPkRgrCellRecfg, &param->u.cellRecfg, mBuf);
             break;
-#endif
          default :
             return RFAILED;
       }
-   CMCHKPK(oduUnpackUInt8, param->action, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->recfgType, mBuf);
    return ROK;
 }
 
@@ -7618,10 +6507,10 @@ Buffer *mBuf
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrCfgReqInfo
+*     Func : cmUnpkRgrRecfg
 *
 *
-*     Desc : Basic RGR configuration/reconfiguration info at RRM
+*     Desc : Basic reconfiguration structure at RRM
 *
 *
 *     Ret  : S16
@@ -7631,52 +6520,41 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrCfgReqInfo
+S16 cmUnpkRgrRecfg
 (
-RgrCfgReqInfo *param,
+RgrRecfg *param,
 Buffer *mBuf
 )
 {
 
 
-   CMCHKUNPK(oduPackUInt8, &param->action, mBuf);
-      switch(param->action) {
-         case SCH_CONFIG:
-            CMCHKUNPK(cmUnpkRgrCfg, &param->u.cfgInfo, mBuf);
-            break;
-         case RGR_RECONFIG:
-            CMCHKUNPK(cmUnpkRgrRecfg, &param->u.recfgInfo, mBuf);
-            break;
-         case RGR_DELETE:
-            CMCHKUNPK(cmUnpkRgrDel, &param->u.delInfo, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->recfgType, mBuf);
+      switch(param->recfgType) {
+         case RGR_CELL_CFG:
+            CMCHKUNPK(cmUnpkRgrCellRecfg, &param->u.cellRecfg, mBuf);
             break;
-         case RGR_RESET:
-            CMCHKUNPK(cmUnpkRgrRst, &param->u.rstInfo, mBuf);
+         case RGR_UE_CFG:
+            CMCHKUNPK(cmUnpkRgrUeRecfg, &param->u.ueRecfg, mBuf);
             break;
-         case RGR_SON_CFG:
-            CMCHKUNPK(cmUnpkRgrSonCfg, &param->u.sonCfg, mBuf);
+         case RGR_LCH_CFG:
+            CMCHKUNPK(cmUnpkRgrLchRecfg, &param->u.lchRecfg, mBuf);
             break;
-#ifdef LTE_ADV
-         case RGR_SCELL_ACT:
-         case RGR_SCELL_DEACT:
-         case RGR_SCELL_READY:
-            CMCHKUNPK(cmUnPkRgrSCellActDeactEvnt, &param->u.sCellActDeactEvnt, mBuf);
+         case RGR_LCG_CFG:
+            CMCHKUNPK(cmUnpkRgrLcgRecfg, &param->u.lcgRecfg, mBuf);
             break;
-#endif /* LTE_ADV */
          default :
             return RFAILED;
       }
    return ROK;
 }
-#ifdef RGR_V1
-/* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
- * retxBSR-timer */
+
+#ifdef LTE_ADV
 /***********************************************************
 *
-*     Func : cmPkRgrUeBsrTmrCfg
+*     Func : cmPkRgrUeDlSecCellRelInfo
 *
 *
-*     Desc : BSR timer configuration per UE
+*     Desc : DL Secondary Cell information of the UE
 *
 *
 *     Ret  : S16
@@ -7686,26 +6564,23 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrUeBsrTmrCfg
+S16 cmPkRgrUeDlSecCellRelInfo
 (
-RgrUeBsrTmrCfg *param,
+RgrUeDlSecCellRelInfo *param,
 Buffer *mBuf
 )
 {
-
-
-   CMCHKPK(oduUnpackUInt16, param->prdBsrTmr, mBuf);
-   CMCHKPK(oduUnpackUInt16, param->retxBsrTmr, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->isPrdBsrTmrPres, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
    return ROK;
 }
-
+\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrUeBsrTmrCfg
+*     Func : cmPkRgrUeSecCellRelInfo
 *
 *
-*     Desc : BSR timer configuration per UE
+*     Desc : Secondary Cell Delete information of the UE
 *
 *
 *     Ret  : S16
@@ -7715,29 +6590,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrUeBsrTmrCfg
+S16 cmPkRgrUeSecCellRelInfo
 (
-RgrUeBsrTmrCfg *param,
+RgrUeSecCellRelInfo *param,
 Buffer *mBuf
 )
 {
+   S8 idx;
+   for(idx = param->numSCells - 1; idx >= 0; idx--)
+   {
+      CMCHKPK(cmPkRgrUeDlSecCellRelInfo, &param->ueSCellRelDedCfg[(uint8_t)idx],mBuf);
+   }
+   CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
 
-
-   CMCHKUNPK(oduPackUInt8, &param->isPrdBsrTmrPres, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->retxBsrTmr, mBuf);
-   CMCHKUNPK(oduPackUInt16, &param->prdBsrTmr, mBuf);
    return ROK;
 }
-#endif /* RGR_V1 */
-/* rgr_c_001.main_4-ADD-Added for SI Enhancement. */
-#ifdef RGR_SI_SCH
+#endif
+
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrSiCfgReq
+*     Func : cmPkRgrDel
 *
 *
-*     Desc : SI Configuration Request from RRM to MAC for 
-*            configuring SI
+*     Desc : Basic Delete info for MAC
 *
 *
 *     Ret  : S16
@@ -7747,83 +6623,57 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrSiCfgReq
+S16 cmPkRgrDel
 (
-Pst* pst,
-SpId spId,
-RgrCfgTransId transId,
-RgrSiCfgReqInfo * cfgReqInfo
+RgrDel *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
 
 
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, 
-                 sizeof(RgrSiCfgReqInfo));
-      return RFAILED;
-   }
-   if (cmPkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, 
-                sizeof(RgrSiCfgReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, 
-               sizeof(RgrSiCfgReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (SPkS16(spId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, 
-               sizeof(RgrSiCfgReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, 
-               sizeof(RgrSiCfgReqInfo)) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
+      switch(param->delType) {
+         case RGR_LCG_CFG:
+            CMCHKPK(oduUnpackUInt8, param->u.lcgDel.lcgId, mBuf);
+            CMCHKPK(cmPkLteRnti, param->u.lcgDel.crnti, mBuf);
+            CMCHKPK(cmPkLteCellId, param->u.lcgDel.cellId, mBuf);
+         break;
+         case RGR_LCH_CFG:
+            CMCHKPK(oduUnpackUInt8, param->u.lchDel.lcgId, mBuf);
+            CMCHKPK(cmPkLteLcId, param->u.lchDel.lcId, mBuf);
+            CMCHKPK(cmPkLteRnti, param->u.lchDel.crnti, mBuf);
+            CMCHKPK(cmPkLteCellId, param->u.lchDel.cellId, mBuf);
+         break;
+         case RGR_UE_CFG:
+            CMCHKPK(cmPkLteRnti, param->u.ueDel.crnti, mBuf);
+            CMCHKPK(cmPkLteCellId, param->u.ueDel.cellId, mBuf);
+         break;
+         case RGR_CELL_CFG:
+            CMCHKPK(cmPkLteCellId, param->u.cellDel.cellId, mBuf);
+         break;
+#ifdef LTE_ADV
+         case RGR_SCELL_UE_CFG:
+            CMCHKPK(cmPkRgrUeSecCellRelInfo, &param->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
+            CMCHKPK(oduUnpackUInt32, param->u.ueScellRel.ueDelTypes, mBuf);
+            CMCHKPK(cmPkLteRnti, param->u.ueScellRel.crnti, mBuf);
+            CMCHKPK(cmPkLteCellId, param->u.ueScellRel.cellId, mBuf);
+         break;
 #endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-
-   pst->event = (Event) EVTRGRSICFGREQ;
-   return (SPstTsk(pst,mBuf));
+         default :
+            return RFAILED;
+      }
+   CMCHKPK(oduUnpackUInt8, param->delType, mBuf);
+   return ROK;
 }
+
+
+#ifdef LTE_ADV
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrSiCfgReq
+*     Func : cmUnpkRgrUeDlSecCellRelInfo
 *
 *
-*     Desc : SI Configuration Request from RRM to MAC for 
-*     configuring SI
+*     Desc : DL Secondary Cell information of the UE
 *
 *
 *     Ret  : S16
@@ -7833,70 +6683,24 @@ RgrSiCfgReqInfo * cfgReqInfo
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrSiCfgReq
+S16 cmUnpkRgrUeDlSecCellRelInfo
 (
-RgrSiCfgReq func,
-Pst *pst,
+RgrUeDlSecCellRelInfo *param,
 Buffer *mBuf
 )
 {
-   SpId spId;
-   RgrCfgTransId transId;
-   RgrSiCfgReqInfo *cfgReqInfo;
-   
-
-   if (SUnpkS16(&spId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo,
-            sizeof(RgrSiCfgReqInfo))) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   memset(cfgReqInfo, 0, sizeof(RgrSiCfgReqInfo));
-   if (pst->selector == ODU_SELECTOR_LC) 
-      if (cmUnpkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
-         SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, 
-                          sizeof(RgrSiCfgReqInfo));
-         SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-         SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-               __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-               (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
-#endif
-         return RFAILED;
-      }
-   SPutMsg(mBuf);
-
-   return ((*func)(pst, spId, transId, cfgReqInfo));
+   CMCHKUNPK(oduPackUInt8, &param->sCellIdx, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->sCellId, mBuf);
+   return ROK;
 }
 
+\f
 /***********************************************************
 *
-*     Func : cmPkRgrSiCfgReqInfo
+*     Func : cmUnpkRgrUeSecCellRelInfo
 *
 *
-*     Desc : Basic SI configuration/reconfiguration info at RRM
+*     Desc : Secondary Cell information of the UE
 *
 *
 *     Ret  : S16
@@ -7906,44 +6710,30 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrSiCfgReqInfo
+S16 cmUnpkRgrUeSecCellRelInfo
 (
-RgrSiCfgReqInfo *param,
+RgrUeSecCellRelInfo *param,
 Buffer *mBuf
 )
 {
-  /* ccpu00111328: S16 is renamed as MsgLen */
-   MsgLen msgLen;
-
+   uint8_t idx;
 
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
-   CMCHKPK(SPkS32, param->cfgType, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numSCells, mBuf);
 
-   if(NULLP != param->pdu)
-   {
-      if (SFndLenMsg(param->pdu, &msgLen) != ROK)
-         return RFAILED;
-      if (SCatMsg(mBuf, param->pdu, M1M2) != ROK)
-         return RFAILED;
-      SPutMsg(param->pdu);
-      CMCHKPK(cmPkMsgLen, msgLen, mBuf);
-   }
-   /*ccpu00140789*/
-   else
+   for(idx = 0; idx < param->numSCells;idx++)
    {
-      CMCHKPK(cmPkMsgLen, 0, mBuf);
+      CMCHKUNPK(cmUnpkRgrUeDlSecCellRelInfo, &param->ueSCellRelDedCfg[idx],mBuf);
    }
-
    return ROK;
 }
+#endif
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrSiCfgReqInfo
+*     Func : cmUnpkRgrDel
 *
 *
-*     Desc : Basic SI configuration/reconfiguration info at RRM
+*     Desc : Basic Delete info for MAC
 *
 *
 *     Ret  : S16
@@ -7953,480 +6743,261 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrSiCfgReqInfo
+S16 cmUnpkRgrDel
 (
-RgrSiCfgReqInfo *param,
+RgrDel *param,
 Buffer *mBuf
 )
 {
-   MsgLen  msgLen, totalMsgLen;
-   /*Merge from Mohit Changes*/
-   S32    cfgType;
 
 
-   SFndLenMsg(mBuf, &msgLen);
-   if(msgLen > 0)
-   {
-      CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
-      /*ccpu00140789*/
-      if(msgLen > 0)
-      {
-         if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
-            return RFAILED;
-         if (SSegMsg(mBuf, totalMsgLen-msgLen, &param->pdu) != ROK)
+   CMCHKUNPK(oduPackUInt8, &param->delType, mBuf);
+      switch(param->delType) {
+         case RGR_CELL_CFG:
+            CMCHKUNPK(cmUnpkLteCellId, &param->u.cellDel.cellId, mBuf);
+         break;
+         case RGR_UE_CFG:
+            CMCHKUNPK(cmUnpkLteCellId, &param->u.ueDel.cellId, mBuf);
+            CMCHKUNPK(cmUnpkLteRnti, &param->u.ueDel.crnti, mBuf);
+         break;
+         case RGR_LCH_CFG:
+            CMCHKUNPK(cmUnpkLteCellId, &param->u.lchDel.cellId, mBuf);
+            CMCHKUNPK(cmUnpkLteRnti, &param->u.lchDel.crnti, mBuf);
+            CMCHKUNPK(cmUnpkLteLcId, &param->u.lchDel.lcId, mBuf);
+            CMCHKUNPK(oduPackUInt8, &param->u.lchDel.lcgId, mBuf);
+         break;
+         case RGR_LCG_CFG:
+            CMCHKUNPK(cmUnpkLteCellId, &param->u.lcgDel.cellId, mBuf);
+            CMCHKUNPK(cmUnpkLteRnti, &param->u.lcgDel.crnti, mBuf);
+            CMCHKUNPK(oduPackUInt8, &param->u.lcgDel.lcgId, mBuf);
+         break;
+#ifdef LTE_ADV
+         case RGR_SCELL_UE_CFG:
+            CMCHKUNPK(cmUnpkLteCellId, &param->u.ueScellRel.cellId, mBuf);
+            CMCHKUNPK(cmUnpkLteRnti, &param->u.ueScellRel.crnti, mBuf);
+            CMCHKUNPK(oduPackUInt32, &param->u.ueScellRel.ueDelTypes, mBuf);
+            CMCHKUNPK(cmUnpkRgrUeSecCellRelInfo, &param->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
+         break;
+#endif
+         default :
             return RFAILED;
       }
-      else
-      {
-         param->pdu = NULLP;
-      }
-   }
-
-   CMCHKUNPK(oduPackUInt8, &param->siId, mBuf);
-   /*CMCHKUNPK(SUnpkS32, (S32 *)&param->cfgType, mBuf);*/
-   /*Merge from Mohit Changes*/
-   CMCHKUNPK(SUnpkS32,(S32 *)&cfgType, mBuf);
-   param->cfgType = (RgrSiCfgType) cfgType;
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-
    return ROK;
 }
-
-
-\f
 /***********************************************************
 *
-*     Func : cmPkRgrWarningSiCfgReq
+*     Func : cmPkRgrSonPrbCfg
 *
 *
-*     Desc : SI Configuration Request from RRM to MAC for 
-*            configuring warning SI
+*     Desc : SON PRB Configuration info for MAC
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  : 
+*     File  :
 *
 **********************************************************/
-S16 cmPkRgrWarningSiCfgReq
+S16 cmPkRgrSonPrbCfg
 (
-Pst* pst,
-SpId spId,
-RgrCfgTransId transId,
-RgrWarningSiCfgReqInfo * warningSiCfgReqInfo
+RgrPrbCfg *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
-
-
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR061, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo, 
-                 sizeof(RgrWarningSiCfgReqInfo));
-      return RFAILED;
-   }
-
-   if (cmPkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR062, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo, 
-                sizeof(RgrWarningSiCfgReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) 
+   S32 count;
+   for(count = RGR_SCH_MAX_PA_PER_PRB - 1; count >= 0; count --)
    {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR063, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo, 
-               sizeof(RgrWarningSiCfgReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
+      CMCHKPK(oduUnpackUInt32, param->paLevelPerPrb[count], mBuf);
    }
-
-   if (SPkS16(spId, mBuf) != ROK) 
+   for(count = param->numCellCentreUEs - 1; count >= 0; count --)
    {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR064, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo, 
-               sizeof(RgrWarningSiCfgReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-
-   /* if the application wants to retain this structure, the below 
-    * code should be removed */
-   if (SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo, 
-               sizeof(RgrWarningSiCfgReqInfo)) != ROK) 
+      CMCHKPK(cmPkLteRnti, param->cellCentreUe[count], mBuf);
+   } 
+   for(count = param->numCellEdgeUEs - 1; count >= 0; count --)
    {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR065, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
+      CMCHKPK(cmPkLteRnti, param->cellEdgeUe[count], mBuf);
    }
+   CMCHKPK(oduUnpackUInt8, param->numCellCentreUEs, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->numCellEdgeUEs, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isSonIcicEnable, mBuf);
+   return ROK;
+}
 
-   pst->event = (Event) EVTRGRWARNINGSICFGREQ;
-   return (SPstTsk(pst,mBuf));
-}/*cmPkRgrWarningSiCfgReq*/
-
-\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrWarningSiCfgReq
+*     Func : cmUnpkRgrSon
 *
 *
-*     Desc : SI Configuration Request from RRM to MAC for  
-*            configuring warning SI
+*     Desc : SON configuration info for MAC
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  : 
+*     File  :
 *
 **********************************************************/
-S16 cmUnpkRgrWarningSiCfgReq
+S16 cmUnpkRgrSonPrbCfg
 (
-RgrWarningSiCfgReq func,
-Pst *pst,
-Buffer *mBuf
+RgrPrbCfg   *param,
+Buffer      *mBuf
 )
 {
-   SpId spId;
-   RgrCfgTransId transId;
-   RgrWarningSiCfgReqInfo *warningSiCfgReqInfo;
-   
-
-   if (SUnpkS16(&spId, mBuf) != ROK) 
-   {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR066, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) 
+   S32   count;
+   CMCHKUNPK(oduPackUInt8, &param->isSonIcicEnable, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numCellEdgeUEs, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numCellCentreUEs, mBuf);
+   for (count = 0; count < param->numCellEdgeUEs; count++)
    {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR067, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
+      CMCHKUNPK(cmUnpkLteRnti, &param->cellEdgeUe[count], mBuf);
    }
-
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&warningSiCfgReqInfo,
-            sizeof(RgrWarningSiCfgReqInfo))) != ROK) 
+   for (count = 0; count < param->numCellCentreUEs; count++)
    {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR068, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
+      CMCHKUNPK(cmUnpkLteRnti, &param->cellCentreUe[count], mBuf);
    }
-
-
-   if (pst->selector == ODU_SELECTOR_LC)
+   for(count = 0; count < RGR_SCH_MAX_PA_PER_PRB; count ++)
    {
-      if (cmUnpkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK) 
-      {
-         SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo, 
-                          sizeof(RgrWarningSiCfgReqInfo));
-         SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-         SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-               __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-               (ErrVal)ERGR069, (ErrVal)0, "Packing failed");
-#endif
-         return RFAILED;
-      }
+      CMCHKUNPK(oduPackUInt32,(uint32_t *) &param->paLevelPerPrb[count], mBuf);
    }
-   SPutMsg(mBuf);
-
-   return ((*func)(pst, spId, transId, warningSiCfgReqInfo));
-} /* cmUnpkRgrWarningSiCfgReq */
-
-\f
+   return ROK;
+}
 /***********************************************************
 *
-*     Func : cmPkRgrWarningSiCfgReqInfo
+*     Func : cmPkRgrSonCfg
 *
 *
-*     Desc : Basic warning SI configuration/reconfiguration 
-*            info at RRM
+*     Desc : SON Configuration info for MAC
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  : 
+*     File  :
 *
 **********************************************************/
-S16 cmPkRgrWarningSiCfgReqInfo
+S16 cmPkRgrSonCfg
 (
-Pst *pst,
-RgrWarningSiCfgReqInfo *param,
+RgrSonCfg *param,
 Buffer *mBuf
 )
 {
-   MsgLen   msgLen;
-   uint32_t      count;
-   CmLList  *node, *prevNode;
-   RgrSegmentInfo   *pdu;
-
-   CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
-
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
 
-   count = param->siPduLst.count;
-   node = param->siPduLst.last;
-   while (node) 
+   switch(param->cfgType)
    {
-      pdu = (RgrSegmentInfo *)node->node;
-      prevNode= node->prev;
-      if(NULLP != pdu)
-      {
-         if (SFndLenMsg(pdu->pdu, &msgLen) != ROK)
-            return RFAILED;
-         if (SCatMsg(mBuf, pdu->pdu, M1M2) != ROK)
-            return RFAILED;
-         /* The PDU is not Released. This has to be done by 
-          * the caller of the packing function  */
-         CMCHKPK(cmPkMsgLen, msgLen, mBuf);
-         SPutMsg(pdu->pdu);
-      }
-      cmLListDelFrm(&param->siPduLst, node);
-      SPutSBuf(pst->region, pst->pool, (Data *)node, sizeof(RgrSegmentInfo));
-      node= prevNode;
+      case RGR_SON_PRB_CFG :
+      CMCHKPK(cmPkRgrSonPrbCfg, &param->u.prbCfg, mBuf);
+      break;
+      default :
+      return RFAILED;
    }
-   CMCHKPK(oduUnpackUInt32, count, mBuf);
+   CMCHKPK(oduUnpackUInt32, param->cfgType, mBuf);
    return ROK;
 }
 
-\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrWarningSiCfgReqInfo
+*     Func : cmUnpkRgrSon
 *
 *
-*     Desc : Unpack warning SI configuration info at SCH 
+*     Desc : SON configuration info for MAC
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  : 
+*     File  :
 *
 **********************************************************/
-S16 cmUnpkRgrWarningSiCfgReqInfo
+S16 cmUnpkRgrSonCfg
 (
-Pst *pst,
-RgrWarningSiCfgReqInfo *param,
-Buffer *mBuf
+RgrSonCfg   *param,
+Buffer      *mBuf
 )
 {
-   MsgLen   msgLen, totalMsgLen;
-   uint32_t      count, loopCnt;
-   Buffer   *pdu;
-   CmLList  *node;
 
-
-   cmLListInit(&param->siPduLst);
-   CMCHKUNPK(oduPackUInt32, &count, mBuf);
-   for (loopCnt=0; loopCnt<count; loopCnt++) 
+   CMCHKUNPK(oduPackUInt32, (uint32_t *)&param->cfgType, mBuf);
+   switch(param->cfgType)
    {
-      if(SFndLenMsg(mBuf, &msgLen) != ROK)
-      {
-         return RFAILED;
-      } 
-
-      if(msgLen > 0)
-      { 
-         CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
-         if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
-         { 
-            return RFAILED;
-         }   
-         if (SSegMsg(mBuf, totalMsgLen-msgLen, &pdu) != ROK)
-         {              
-            return RFAILED;
-         }   
-      }
-      else
+      case RGR_SON_PRB_CFG :
       {
+         CMCHKUNPK(cmUnpkRgrSonPrbCfg, &param->u.prbCfg, mBuf);
+         break;
+         default :
          return RFAILED;
       }
-      if ((SGetSBuf(pst->region, pst->pool, (Data **)&node,
-                  sizeof(CmLList))) != ROK)
-         return RFAILED;
-      node->node = (PTR)pdu;
-      cmLListAdd2Tail(&param->siPduLst, node);
    }
-
-   CMCHKUNPK(oduPackUInt8, &param->siId, mBuf);
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
-   CMCHKPK(oduPackUInt8, &param->emtcEnable, mBuf);
-
    return ROK;
 }
 
 \f
 /***********************************************************
 *
-*    Func : cmPkRgrWarningSiStopReq
+*     Func : cmPkRgrRst
+*
+*
+*     Desc : UE RESET info for MAC
 *
-*    Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
 *
 *     Ret  : S16
 *
 *     Notes:
 *
 *     File  : 
+*
 **********************************************************/
-S16 cmPkRgrWarningSiStopReq
+S16 cmPkRgrRst
 (
-Pst           *pst,
-SpId          spId,
-RgrCfgTransId transId,
-uint8_t            siId
+RgrRst *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
-
-
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR070, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-
-   CMCHKPK(oduUnpackUInt8, siId, mBuf);
-
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR082, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
 
 
-   if (SPkS16(spId, mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR071, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
+   return ROK;
+}
 
-   pst->event = (Event) EVTRGRWARNINGSISTOPREQ;
-   return (SPstTsk(pst,mBuf));
-}/*cmPkRgrWarningSiStopReq */
 
 \f
 /***********************************************************
 *
-*    Func : cmUnpkRgrWarningSiStopReq
+*     Func : cmUnpkRgrRst
+*
+*
+*     Desc : UE RESET info for MAC
 *
-*    Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
 *
 *     Ret  : S16
 *
 *     Notes:
 *
 *     File  : 
+*
 **********************************************************/
-S16 cmUnpkRgrWarningSiStopReq
+S16 cmUnpkRgrRst
 (
-RgrWarningSiStopReq func,
-Pst *pst,
+RgrRst *param,
 Buffer *mBuf
 )
 {
-   SpId          spId;
-   uint8_t            siId;
-   RgrCfgTransId transId;
-
-
-  if (SUnpkS16(&spId, mBuf) != ROK)
-  {
-     SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-     SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-           __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-           (ErrVal)ERGR072, (ErrVal)0, "Packing failed");
-#endif
-     return RFAILED;
-  }
-
-    if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) 
-   {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR083, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   CMCHKUNPK(oduPackUInt8, &siId, mBuf);
 
-   SPutMsg(mBuf);
-
-   return ((*func)(pst, spId, transId, siId));
-} /*cmUnpkRgrWarningSiStopReq */
 
-\f
+   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
+   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
+   return ROK;
+}
+#ifdef LTE_ADV
 /***********************************************************
 *
-*     Func : cmPkRgrWarningSiCfgCfm
+*     Func : cmUnPkRgrSCellActDeactInfo
 *
 *
-*     Desc : Warning SI Configuration Confirm from MAC to RRM
+*     Desc : SCell Activation information of the UE
 *
 *
 *     Ret  : S16
@@ -8436,83 +7007,59 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrWarningSiCfgCfm
+static S16 cmUnPkRgrSCellActDeactInfo
 (
-Pst*          pst,
-SuId          suId,
-RgrCfgTransId transId,
-uint8_t            siId,
-uint8_t            status
+RgrSCellActDeactInfo *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
-
 
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR073, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
+   CMCHKUNPK(oduPackUInt8, &param->sCellIdx, mBuf);
+   return ROK;
+}
 
-   if (oduUnpackUInt8(status, mBuf) != ROK)
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR074, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
+/***********************************************************
+*
+*     Func : cmUnPkRgrSCellActDeactEvnt
+*
+*
+*     Desc : SCell Activation Configuration structure to SCH
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnPkRgrSCellActDeactEvnt
+(
+RgrSCellActDeactEvnt *param,
+Buffer *mBuf
+)
+{
 
-   if (oduUnpackUInt8(siId, mBuf) != ROK)
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR075, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
+   uint8_t idx;
 
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) 
-   {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR076, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
+   CMCHKUNPK(cmUnpkLteRnti, &param->crnti, mBuf);
+   CMCHKUNPK(oduPackUInt8, &param->numOfSCells, mBuf);
 
-   if (SPkS16(suId, mBuf) != ROK)
+   for(idx = 0; idx < param->numOfSCells;idx++)
    {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR077, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
+      CMCHKUNPK(cmUnPkRgrSCellActDeactInfo, &param->sCellActDeactInfo[idx],mBuf);
    }
 
-   pst->event = (Event) EVTRGRWARNINGSICFGCFM;
-   return (SPstTsk(pst,mBuf));
-} /* cmPkRgrWarningSiCfgCfm */
+   return ROK;
+}
+
 
-\f
 /***********************************************************
 *
-*     Func : cmUnpkRgrwarningSiCfgCfm
+*     Func : cmPkRgrSCellActInfo
 *
 *
-*     Desc : Warning SI Configuration Confirm from MAC to RRM
+*     Desc : SCell Activation information of the UE
 *
 *
 *     Ret  : S16
@@ -8522,161 +7069,62 @@ uint8_t            status
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrWarningSiCfgCfm
+static S16 cmPkRgrSCellActDeactInfo
 (
-RgrWarningSiCfgCfm func,
-Pst *pst,
+RgrSCellActDeactInfo *param,
 Buffer *mBuf
 )
 {
-   SuId          suId;
-   uint8_t            siId;
-   RgrCfgTransId transId;
-   uint8_t            status;
-
-
-   if (SUnpkS16(&suId, mBuf) != ROK) 
-   {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR078, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) 
-   {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR079, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
 
-   if (oduPackUInt8(&siId, mBuf) != ROK) 
-   {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR080, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
+   CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
 
-   if (oduPackUInt8(&status, mBuf) != ROK) 
-   {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR081, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
-   SPutMsg(mBuf);
-   return ((*func)(pst, suId, transId, siId, status));
-}/* cmUnpkRgrwarningSiCfgCfm */
-#endif/*RGR_SI_SCH*/
+   return ROK;
+}
 
-/* LTE_ADV_FLAG_REMOVED_START */
 /***********************************************************
 *
-*     Func : cmPkRgrLoadInfReq
+*     Func : cmPkRgrSCellActDeactEvnt
 *
 *
-*     Desc : LOAD INF Configuration Request from RRM to MAC for
-*            configuring RNTP, ABS etc
+*     Desc : Basic Configuration structure at SCH
 *
 *
 *     Ret  : S16
 *
 *     Notes:
 *
-*     File  :
+*     File  : 
 *
 **********************************************************/
-S16 cmPkRgrLoadInfReq
+S16 cmPkRgrSCellActDeactEvnt
 (
-Pst* pst,
-SpId spId,
-RgrCfgTransId transId,
-RgrLoadInfReqInfo * loadInfReq
+RgrSCellActDeactEvnt *param,
+Buffer *mBuf
 )
 {
-   Buffer *mBuf = NULLP;
 
 
-   if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) 
+   S8 idx;
+   for(idx = param->numOfSCells - 1; idx >= 0; idx--)
    {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq, 
-                 sizeof(RgrLoadInfReqInfo));
-      return RFAILED;
-   }
-   if (cmPkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq, 
-                sizeof(RgrLoadInfReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq, 
-               sizeof(RgrLoadInfReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (SPkS16(spId, mBuf) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
-#endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq, 
-               sizeof(RgrLoadInfReqInfo));
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
-   if (SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq, 
-               sizeof(RgrLoadInfReqInfo)) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
+      CMCHKPK(cmPkRgrSCellActDeactInfo, &param->sCellActDeactInfo[(uint8_t)idx], mBuf);
    }
 
-   pst->event = (Event) EVTRGRLOADINFREQ;
-   return (SPstTsk(pst,mBuf));
+   CMCHKPK(oduUnpackUInt8, param->numOfSCells, mBuf);
+   CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
+
+   return ROK;
 }
+
+
+#endif /* LTE_ADV */
 \f
 /***********************************************************
 *
-*     Func : cmUnpkRgrLoadInfReq
+*     Func : cmPkRgrCfgReqInfo
 *
 *
-*     Desc : LOAD INF Configuration Request from RRM to MAC for 
-*     configuring RNTP, ABS etc
+*     Desc : Basic RGR configuration/reconfiguration info at RRM
 *
 *
 *     Ret  : S16
@@ -8686,74 +7134,107 @@ RgrLoadInfReqInfo * loadInfReq
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrLoadInfReq
+S16 cmPkRgrCfgReqInfo
 (
-RgrLoadInfReq func,
-Pst *pst,
+RgrCfgReqInfo *param,
 Buffer *mBuf
 )
 {
-   SpId spId;
-   RgrCfgTransId transId;
-   RgrLoadInfReqInfo *loadInfReq;
-   
 
-   if (SUnpkS16(&spId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
-#endif
-      return RFAILED;
-   }
 
-   if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
-      SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-         __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-         (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
+      switch(param->action) {
+         case RGR_SON_CFG:
+            CMCHKPK(cmPkRgrSonCfg, &param->u.sonCfg, mBuf);
+            break;
+         case RGR_RESET:
+            CMCHKPK(cmPkRgrRst, &param->u.rstInfo, mBuf);
+            break;
+         case RGR_DELETE:
+            CMCHKPK(cmPkRgrDel, &param->u.delInfo, mBuf);
+            break;
+         case RGR_RECONFIG:
+            CMCHKPK(cmPkRgrRecfg, &param->u.recfgInfo, mBuf);
+            break;
+         case SCH_CONFIG:
+            CMCHKPK(cmPkRgrCfg, &param->u.cfgInfo, mBuf);
+            break;
+#ifdef LTE_ADV
+         case RGR_SCELL_ACT:
+         case RGR_SCELL_DEACT:
+         case RGR_SCELL_READY:
+            CMCHKPK(cmPkRgrSCellActDeactEvnt, &param->u.sCellActDeactEvnt, mBuf);
+            break;
 #endif
-      return RFAILED;
-   }
+         default :
+            return RFAILED;
+      }
+   CMCHKPK(oduUnpackUInt8, param->action, mBuf);
+   return ROK;
+}
 
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&loadInfReq,
-            sizeof(RgrLoadInfReqInfo))) != ROK) {
-#if (ERRCLASS & ERRCLS_ADD_RES)
-      SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-            __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-            (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
-#endif
-      SPutMsg(mBuf);
-      return RFAILED;
-   }
 
-   memset(loadInfReq, 0, sizeof(RgrLoadInfReqInfo));
+\f
+/***********************************************************
+*
+*     Func : cmUnpkRgrCfgReqInfo
+*
+*
+*     Desc : Basic RGR configuration/reconfiguration info at RRM
+*
+*
+*     Ret  : S16
+*
+*     Notes:
+*
+*     File  : 
+*
+**********************************************************/
+S16 cmUnpkRgrCfgReqInfo
+(
+RgrCfgReqInfo *param,
+Buffer *mBuf
+)
+{
+
 
-   if (pst->selector == ODU_SELECTOR_LC) 
-      if (cmUnpkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
-         SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq, 
-                          sizeof(RgrLoadInfReqInfo));
-         SPutMsg(mBuf);
-#if (ERRCLASS & ERRCLS_ADD_RES)
-         SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
-               __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
-               (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
-#endif
-         return RFAILED;
+   CMCHKUNPK(oduPackUInt8, &param->action, mBuf);
+      switch(param->action) {
+         case SCH_CONFIG:
+            CMCHKUNPK(cmUnpkRgrCfg, &param->u.cfgInfo, mBuf);
+            break;
+         case RGR_RECONFIG:
+            CMCHKUNPK(cmUnpkRgrRecfg, &param->u.recfgInfo, mBuf);
+            break;
+         case RGR_DELETE:
+            CMCHKUNPK(cmUnpkRgrDel, &param->u.delInfo, mBuf);
+            break;
+         case RGR_RESET:
+            CMCHKUNPK(cmUnpkRgrRst, &param->u.rstInfo, mBuf);
+            break;
+         case RGR_SON_CFG:
+            CMCHKUNPK(cmUnpkRgrSonCfg, &param->u.sonCfg, mBuf);
+            break;
+#ifdef LTE_ADV
+         case RGR_SCELL_ACT:
+         case RGR_SCELL_DEACT:
+         case RGR_SCELL_READY:
+            CMCHKUNPK(cmUnPkRgrSCellActDeactEvnt, &param->u.sCellActDeactEvnt, mBuf);
+            break;
+#endif /* LTE_ADV */
+         default :
+            return RFAILED;
       }
-   SPutMsg(mBuf);
-
-   return ((*func)(pst, spId, transId, loadInfReq));
+   return ROK;
 }
-
+#ifdef RGR_V1
+/* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
+ * retxBSR-timer */
 /***********************************************************
 *
-*     Func : cmPkRgrLoadInfReqInfo
+*     Func : cmPkRgrUeBsrTmrCfg
 *
 *
-*     Desc : Basic LOAD INF configuration/reconfiguration info at RRM
+*     Desc : BSR timer configuration per UE
 *
 *
 *     Ret  : S16
@@ -8763,26 +7244,26 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmPkRgrLoadInfReqInfo
+S16 cmPkRgrUeBsrTmrCfg
 (
-RgrLoadInfReqInfo *param,
+RgrUeBsrTmrCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->rgrCcPHighStartRb, mBuf);
-   CMCHKPK(oduUnpackUInt8, param->rgrCcPHighEndRb, mBuf);
 
+   CMCHKPK(oduUnpackUInt16, param->prdBsrTmr, mBuf);
+   CMCHKPK(oduUnpackUInt16, param->retxBsrTmr, mBuf);
+   CMCHKPK(oduUnpackUInt8, param->isPrdBsrTmrPres, mBuf);
    return ROK;
 }
-\f
+
 /***********************************************************
 *
-*     Func : cmUnpkRgrLoadInfReqInfo
+*     Func : cmUnpkRgrUeBsrTmrCfg
 *
 *
-*     Desc : Basic LOAD INF configuration/reconfiguration info at RRM
+*     Desc : BSR timer configuration per UE
 *
 *
 *     Ret  : S16
@@ -8792,20 +7273,20 @@ Buffer *mBuf
 *     File  : 
 *
 **********************************************************/
-S16 cmUnpkRgrLoadInfReqInfo
+S16 cmUnpkRgrUeBsrTmrCfg
 (
-RgrLoadInfReqInfo *param,
+RgrUeBsrTmrCfg *param,
 Buffer *mBuf
 )
 {
 
-   CMCHKUNPK(oduPackUInt8, &param->rgrCcPHighEndRb, mBuf);
-   CMCHKUNPK(oduPackUInt8, &param->rgrCcPHighStartRb, mBuf);
-   CMCHKUNPK(cmUnpkLteCellId, &param->cellId, mBuf);
 
+   CMCHKUNPK(oduPackUInt8, &param->isPrdBsrTmrPres, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->retxBsrTmr, mBuf);
+   CMCHKUNPK(oduPackUInt16, &param->prdBsrTmr, mBuf);
    return ROK;
 }
-/* LTE_ADV_FLAG_REMOVED_END */
+#endif /* RGR_V1 */
 
 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
    RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
@@ -8900,7 +7381,7 @@ RgrStaIndInfo* staInd
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
          (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)staInd, 
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd, 
                sizeof(RgrStaIndInfo));
       return RFAILED;
    }
@@ -8912,7 +7393,7 @@ RgrStaIndInfo* staInd
             __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
             (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)staInd, sizeof(RgrStaIndInfo));
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd, sizeof(RgrStaIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
    }
@@ -8924,13 +7405,13 @@ RgrStaIndInfo* staInd
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
          (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)staInd, 
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd, 
                   sizeof(RgrStaIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
    }
 
-   if (SPutSBuf(pst->region, pst->pool, (Data *)staInd, 
+   if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd, 
                   sizeof(RgrStaIndInfo)) != ROK) 
    {
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -8983,7 +7464,7 @@ Buffer *mBuf
       return RFAILED;
    }
 
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&staInd,
+   if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&staInd,
                  sizeof(RgrStaIndInfo))) != ROK)
    {
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -8997,7 +7478,7 @@ Buffer *mBuf
 
    if (cmUnpkRgrStaIndInfo(staInd, mBuf) != ROK)
    {
-      SPutSBuf(pst->region, pst->pool, (Data *)staInd,
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
              sizeof(RgrStaIndInfo));
       SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -9299,7 +7780,7 @@ RgrLoadInfIndInfo* loadInfInd
             __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
             (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
             sizeof(RgrLoadInfIndInfo));
       return RFAILED;
    }
@@ -9311,7 +7792,7 @@ RgrLoadInfIndInfo* loadInfInd
             __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
             (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
             sizeof(RgrLoadInfIndInfo));
       SPutMsg(mBuf);
 
@@ -9325,13 +7806,13 @@ RgrLoadInfIndInfo* loadInfInd
             __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
             (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
             sizeof(RgrLoadInfIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
    }
 
-   if (SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
+   if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
                   sizeof(RgrLoadInfIndInfo)) != ROK)
    {
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -9383,7 +7864,7 @@ Buffer *mBuf
       return RFAILED;
    }
 
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&loadInfInd,
+   if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&loadInfInd,
                  sizeof(RgrLoadInfIndInfo))) != ROK)
    {
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -9398,7 +7879,7 @@ Buffer *mBuf
    /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
    if (cmUnpkRgrLoadInfIndInfo(loadInfInd, pst, mBuf) != ROK)
    {
-      SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
              sizeof(RgrLoadInfIndInfo));
       SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -9504,7 +7985,7 @@ Buffer *mBuf
          /* Length */
          CMCHKUNPK(oduPackUInt16, &tknStr->len, mBuf);
 
-         if ((SGetSBuf(pst->region, pst->pool, (Data **)&tknStr->val,tknStr->len)) != ROK) {
+         if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&tknStr->val,tknStr->len)) != ROK) {
 #if (ERRCLASS & ERRCLS_ADD_RES)
             SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
                __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
@@ -10026,7 +8507,7 @@ RgrUeStaIndInfo* ueStaInd
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
          (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd, 
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd, 
                sizeof(RgrUeStaIndInfo));
       return RFAILED;
    }
@@ -10038,7 +8519,7 @@ RgrUeStaIndInfo* ueStaInd
             __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
             (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd, 
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd, 
                sizeof(RgrUeStaIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
@@ -10051,13 +8532,13 @@ RgrUeStaIndInfo* ueStaInd
          __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
          (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
 #endif
-      SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd, 
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd, 
                   sizeof(RgrUeStaIndInfo));
       SPutMsg(mBuf);
       return RFAILED;
    }
 
-   if (SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd, 
+   if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd, 
                   sizeof(RgrUeStaIndInfo)) != ROK) 
    {
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -10110,7 +8591,7 @@ Buffer *mBuf
       return RFAILED;
    }
 
-   if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueStaInd,
+   if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ueStaInd,
                  sizeof(RgrUeStaIndInfo))) != ROK)
    {
 #if (ERRCLASS & ERRCLS_ADD_RES)
@@ -10124,7 +8605,7 @@ Buffer *mBuf
 
    if (cmUnpkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
    {
-      SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
+      SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
              sizeof(RgrUeStaIndInfo));
       SPutMsg(mBuf);
 #if (ERRCLASS & ERRCLS_ADD_RES)