1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
20 /************************************************************************
26 Desc: C source code for pack/unpack of RGR interface primitives.
30 **********************************************************************/
33 @brief This file contains the packing/unpacking code for the RGR interface
36 /* LTE_ADV_FLAG_REMOVED_END */
37 #include "common_def.h"
38 #include "rgr.h" /* RGR Interface defines */
39 /* LTE_ADV_FLAG_REMOVED_END */
40 #include "rgr.x" /* RGR Interface includes */
45 /***********************************************************
47 * Func : cmUnpkRgrCfgReq
50 * Desc : Configuration Request from RRM to MAC for
51 * configuring Cell/Ue/Lc
60 **********************************************************/
68 RgrCfgTransId transId;
69 RgrCfgReqInfo *cfgReqInfo;
72 if (SUnpkS16(&spId, mBuf) != ROK) {
74 #if (ERRCLASS & ERRCLS_ADD_RES)
75 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
76 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
77 (ErrVal)ERGR021, (ErrVal)0, "Packing failed");
83 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
85 #if (ERRCLASS & ERRCLS_ADD_RES)
86 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
87 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
88 (ErrVal)ERGR022, (ErrVal)0, "Packing failed");
92 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&cfgReqInfo,sizeof(RgrCfgReqInfo))) != ROK) {
93 #if (ERRCLASS & ERRCLS_ADD_RES)
94 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
95 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
96 (ErrVal)ERGR023, (ErrVal)0, "Packing failed");
101 memset(cfgReqInfo, 0, sizeof(RgrCfgReqInfo));
102 if (pst->selector == ODU_SELECTOR_LC)
103 if (cmUnpkRgrCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
104 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(RgrCfgReqInfo));
106 #if (ERRCLASS & ERRCLS_ADD_RES)
107 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
108 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
109 (ErrVal)ERGR024, (ErrVal)0, "Packing failed");
114 return ((*func)(pst, transId, cfgReqInfo));
117 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
119 /***********************************************************
121 * Func : cmPkRgrTtiIndInfo
124 * Desc : Packs the TTI indication information.
133 **********************************************************/
134 S16 cmPkRgrTtiIndInfo
136 RgrTtiIndInfo *param,
140 CMCHKPK(oduPackUInt16, param->sfn, mBuf);
141 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
145 /***********************************************************
147 * Func : cmUnpkRgrTtiIndInfo
150 * Desc : Unpacking for RgrTtiIndInfo
158 **********************************************************/
159 S16 cmUnpkRgrTtiIndInfo
161 RgrTtiIndInfo *param,
166 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
167 CMCHKUNPK(oduUnpackUInt16, ¶m->sfn, mBuf);
172 /***********************************************************
174 * Func : cmPkRgrTtiInd
177 * Desc : TTI indication from MAC to RRM
186 **********************************************************/
191 RgrTtiIndInfo *ttiInd
194 Buffer *mBuf = NULLP;
196 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
197 #if (ERRCLASS & ERRCLS_ADD_RES)
198 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
199 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
200 (ErrVal)ERGR025, (ErrVal)0, "Packing failed");
204 if (cmPkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
205 #if (ERRCLASS & ERRCLS_ADD_RES)
206 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
207 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
208 (ErrVal)ERGR026, (ErrVal)0, "Packing failed");
210 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
214 if (SPkS16(suId, mBuf) != ROK) {
215 #if (ERRCLASS & ERRCLS_ADD_RES)
216 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
217 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
218 (ErrVal)ERGR027, (ErrVal)0, "Packing failed");
220 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
224 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
225 pst->event = (Event) EVTRGRTTIIND;
226 return (SPstTsk(pst,mBuf));
230 /***********************************************************
232 * Func : cmUnpkRgrTtiInd
235 * Desc : TTI indication from MAC to RRM
244 **********************************************************/
253 RgrTtiIndInfo *ttiInd;
256 if (SUnpkS16(&suId, mBuf) != ROK) {
258 #if (ERRCLASS & ERRCLS_ADD_RES)
259 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
260 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
261 (ErrVal)ERGR028, (ErrVal)0, "Packing failed");
265 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ttiInd, sizeof(RgrTtiIndInfo))) != ROK)
267 #if (ERRCLASS & ERRCLS_ADD_RES)
268 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
269 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
270 (ErrVal)ERGR029, (ErrVal)0, "UnPacking failed");
276 if (cmUnpkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
277 /*ccpu00114888- Memory Leak issue- Start*/
278 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd,
279 sizeof(RgrTtiIndInfo));
280 /*ccpu00114888- Memory Leak issue- End*/
282 #if (ERRCLASS & ERRCLS_ADD_RES)
283 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
284 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
285 (ErrVal)ERGR030, (ErrVal)0, "Packing failed");
290 return ((*func)(pst, suId, ttiInd));
294 /***********************************************************
296 * Func : cmPkRgrCfgCfm
299 * Desc : Configuration Confirm from MAC to RRM
308 **********************************************************/
312 RgrCfgTransId transId,
316 Buffer *mBuf = NULLP;
318 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
319 #if (ERRCLASS & ERRCLS_ADD_RES)
320 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
321 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
322 (ErrVal)ERGR031, (ErrVal)0, "Packing failed");
326 if (oduPackUInt8(status, mBuf) != ROK) {
327 #if (ERRCLASS & ERRCLS_ADD_RES)
328 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
329 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
330 (ErrVal)ERGR032, (ErrVal)0, "Packing failed");
335 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
336 #if (ERRCLASS & ERRCLS_ADD_RES)
337 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
338 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
339 (ErrVal)ERGR033, (ErrVal)0, "Packing failed");
344 pst->event = (Event) EVTMACSCHCFGCFM;
345 return (SPstTsk(pst,mBuf));
349 /***********************************************************
351 * Func : cmUnpkRgrCfgCfm
354 * Desc : Configuration Confirm from MAC to RRM
363 **********************************************************/
371 RgrCfgTransId transId;
375 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
377 #if (ERRCLASS & ERRCLS_ADD_RES)
378 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
379 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
380 (ErrVal)ERGR036, (ErrVal)0, "Packing failed");
384 if (oduUnpackUInt8(&status, mBuf) != ROK) {
386 #if (ERRCLASS & ERRCLS_ADD_RES)
387 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
388 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
389 (ErrVal)ERGR037, (ErrVal)0, "Packing failed");
394 return ((*func)(pst, transId, status));
398 /***********************************************************
400 * Func : cmPkRgrCfgTransId
403 * Desc : Transaction ID between MAC and RRM
412 **********************************************************/
413 S16 cmPkRgrCfgTransId
415 RgrCfgTransId *param,
422 for (i=RGR_CFG_TRANSID_SIZE-1; i >= 0; i--) {
423 CMCHKPK(oduPackUInt8, param->trans[i], mBuf);
430 /***********************************************************
432 * Func : cmUnpkRgrCfgTransId
435 * Desc : Transaction ID between MAC and RRM
444 **********************************************************/
445 S16 cmUnpkRgrCfgTransId
447 RgrCfgTransId *param,
454 for (i=0; i<RGR_CFG_TRANSID_SIZE; i++) {
455 CMCHKUNPK(oduUnpackUInt8, ¶m->trans[i], mBuf);
462 /***********************************************************
464 * Func : cmPkRgrDlHqCfg
467 * Desc : Downlink HARQ configuration per Cell
476 **********************************************************/
485 CMCHKPK(oduPackUInt8, param->maxMsg4HqTx, mBuf);
486 CMCHKPK(oduPackUInt8, param->maxDlHqTx, mBuf);
492 /***********************************************************
494 * Func : cmUnpkRgrDlHqCfg
497 * Desc : Downlink HARQ configuration per Cell
506 **********************************************************/
515 CMCHKUNPK(oduUnpackUInt8, ¶m->maxDlHqTx, mBuf);
516 CMCHKUNPK(oduUnpackUInt8, ¶m->maxMsg4HqTx, mBuf);
522 /***********************************************************
524 * Func : cmPkRgrRntiCfg
527 * Desc : Range of RNTIs managed by MAC
536 **********************************************************/
544 CMCHKPK(oduPackUInt16, param->size, mBuf);
545 CMCHKPK(cmPkLteRnti, param->startRnti, mBuf);
551 /***********************************************************
553 * Func : cmUnpkRgrRntiCfg
556 * Desc : Range of RNTIs managed by MAC
565 **********************************************************/
574 CMCHKUNPK(cmUnpkLteRnti, ¶m->startRnti, mBuf);
575 CMCHKUNPK(oduUnpackUInt16, ¶m->size, mBuf);
580 /***********************************************************
582 * Func : cmPkRgrEmtcRntiCfg
585 * Desc : Range of Emtc RNTIs managed by MAC
594 **********************************************************/
595 S16 cmPkRgrEmtcRntiCfg
597 RgrEmtcRntiCfg *param,
603 CMCHKPK(oduPackUInt16, param->size, mBuf);
604 CMCHKPK(cmPkLteRnti, param->rntiCeModeBRange, mBuf);
605 CMCHKPK(cmPkLteRnti, param->rntiCeModeBStart, mBuf);
606 CMCHKPK(cmPkLteRnti, param->rntiCeModeARange, mBuf);
607 CMCHKPK(cmPkLteRnti, param->rntiCeModeAStart, mBuf);
613 /***********************************************************
615 * Func : cmUnpkRgrEmtcRntiCfg
618 * Desc : Range of Emtc RNTIs managed by MAC
627 **********************************************************/
628 S16 cmUnpkRgrEmtcRntiCfg
630 RgrEmtcRntiCfg *param,
636 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeAStart, mBuf);
637 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeARange, mBuf);
638 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeBStart, mBuf);
639 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeBRange, mBuf);
640 CMCHKUNPK(oduUnpackUInt16, ¶m->size, mBuf);
647 /***********************************************************
649 * Func : cmPkRgrDlCmnCodeRateCfg
652 * Desc : Downlink common channel code rate configuration per cell
661 **********************************************************/
662 S16 cmPkRgrDlCmnCodeRateCfg
664 RgrDlCmnCodeRateCfg *param,
669 CMCHKPK(oduPackUInt8, param->ccchCqi, mBuf);
670 CMCHKPK(oduPackUInt16, param->pdcchCodeRate, mBuf);
671 CMCHKPK(oduPackUInt16, param->bcchPchRaCodeRate, mBuf);
677 /***********************************************************
679 * Func : cmUnpkRgrDlCmnCodeRateCfg
682 * Desc : Downlink common channel code rate configuration per cell
691 **********************************************************/
692 S16 cmUnpkRgrDlCmnCodeRateCfg
694 RgrDlCmnCodeRateCfg *param,
699 CMCHKUNPK(oduUnpackUInt16, ¶m->bcchPchRaCodeRate, mBuf);
700 CMCHKUNPK(oduUnpackUInt16, ¶m->pdcchCodeRate, mBuf);
701 CMCHKUNPK(oduUnpackUInt8, ¶m->ccchCqi, mBuf);
707 /***********************************************************
709 * Func : cmPkRgrCfiCfg
712 * Desc : Control Format Indicator (CFI) configuration per cell
721 **********************************************************/
728 CMCHKPK(oduPackUInt8, param->cfi, mBuf);
734 /***********************************************************
736 * Func : cmUnpkRgrCfiCfg
739 * Desc : Control Format Indicator (CFI) configuration per cell
748 **********************************************************/
756 CMCHKUNPK(oduUnpackUInt8, ¶m->cfi, mBuf);
762 /***********************************************************
764 * Func : cmPkRgrPuschSubBandCfg
767 * Desc : PUSCH sub-band configuration per cell
776 **********************************************************/
777 S16 cmPkRgrPuschSubBandCfg
779 RgrPuschSubBandCfg *param,
786 for (i=param->numSubbands-1; i >= 0; i--) {
787 CMCHKPK(oduPackUInt8, param->dmrs[i], mBuf);
789 CMCHKPK(oduPackUInt8, param->size, mBuf);
790 CMCHKPK(oduPackUInt8, param->numSubbands, mBuf);
791 CMCHKPK(oduPackUInt8, param->subbandStart, mBuf);
797 /***********************************************************
799 * Func : cmUnpkRgrPuschSubBandCfg
802 * Desc : PUSCH sub-band configuration per cell
811 **********************************************************/
812 S16 cmUnpkRgrPuschSubBandCfg
814 RgrPuschSubBandCfg *param,
820 CMCHKUNPK(oduUnpackUInt8, ¶m->subbandStart, mBuf);
821 CMCHKUNPK(oduUnpackUInt8, ¶m->numSubbands, mBuf);
822 CMCHKUNPK(oduUnpackUInt8, ¶m->size, mBuf);
823 for (i=0; i<param->numSubbands; i++) {
824 CMCHKUNPK(oduUnpackUInt8, ¶m->dmrs[i], mBuf);
831 /***********************************************************
833 * Func : cmPkRgrUlCmnCodeRateCfg
836 * Desc : Uplink common channel code rate configuration per cell
845 **********************************************************/
846 S16 cmPkRgrUlCmnCodeRateCfg
848 RgrUlCmnCodeRateCfg *param,
852 CMCHKPK(oduPackUInt8, param->ccchCqi, mBuf);
858 /***********************************************************
860 * Func : cmUnpkRgrUlCmnCodeRateCfg
863 * Desc : Uplink common channel code rate configuration per cell
872 **********************************************************/
873 S16 cmUnpkRgrUlCmnCodeRateCfg
875 RgrUlCmnCodeRateCfg *param,
880 CMCHKUNPK(oduUnpackUInt8, ¶m->ccchCqi, mBuf);
886 /***********************************************************
888 * Func : cmPkRgrUlTrgCqiCfg
891 * Desc : Target Uplink CQI to achieve through group power control configured per cell
900 **********************************************************/
901 S16 cmPkRgrUlTrgCqiCfg
903 RgrUlTrgCqiCfg *param,
907 CMCHKPK(oduPackUInt8, param->trgCqi, mBuf);
913 /***********************************************************
915 * Func : cmUnpkRgrUlTrgCqiCfg
918 * Desc : Target Uplink CQI to achieve through group power control configured per cell
927 **********************************************************/
928 S16 cmUnpkRgrUlTrgCqiCfg
930 RgrUlTrgCqiCfg *param,
935 CMCHKUNPK(oduUnpackUInt8, ¶m->trgCqi, mBuf);
941 /***********************************************************
943 * Func : cmPkRgrBwCfg
946 * Desc : Bandwidth configuration per cell
955 **********************************************************/
963 CMCHKPK(oduPackUInt8, param->ulTotalBw, mBuf);
964 CMCHKPK(oduPackUInt8, param->dlTotalBw, mBuf);
970 /* EMTC related pack changes start*/
981 CMCHKPK(oduPackUInt8, param->siHoppingEnable, mBuf);
982 CMCHKPK(oduPackUInt32, param->modPrd, mBuf);
983 CMCHKPK(oduPackUInt8, param->siWinSizeBr, mBuf);
984 CMCHKPK(oduPackUInt8, param->sib1Repetition, mBuf);
985 CMCHKPK(oduPackUInt8, param->siRepetition, mBuf);
987 CMCHKPK(oduPackUInt16, param->startSymbolLc, mBuf);
988 //CMCHKPK(oduPackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
989 /*Changes by SIMRAN*/
990 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
992 CMCHKPK(oduPackUInt16, param->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
996 //CMCHKPK(SPkU64,param->fddDLOrTddSfBitmapLC.u.ptn40, mBuf);
997 for (i=0; i<2; i++) {
998 CMCHKPK(oduPackUInt32, param->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1002 CMCHKPK(oduPackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1003 //CMCHKPK(oduPackUInt16, param->fddDlOrTddSfBitmapBR, mBuf);
1005 for (i= (param->numSi-1); i >= 0; i--) {
1006 CMCHKPK(oduPackUInt8, param->schdInfo[i].emtcSiNarrowBand, mBuf);
1007 CMCHKPK(oduPackUInt16, param->schdInfo[i].emtcSiTbs, mBuf);
1010 for (i= (param->numSi-1); i >= 0; i--) {
1011 CMCHKPK(oduPackUInt32, param->siPeriodicity[i], mBuf);
1014 CMCHKPK(oduPackUInt8, param->numSi, mBuf);
1022 S16 cmPkRgrEmtcRachCfg
1024 RgrEmtcRachCfg *param,
1031 CMCHKPK(oduPackUInt8, param->emtcCeLvlSupported, mBuf);
1033 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1034 CMCHKPK(oduPackUInt8, param->ceLevelInfo[i].emtcRarHopping, mBuf);
1035 CMCHKPK(oduPackUInt16, param->ceLevelInfo[i].raEmtcWinSize, mBuf);
1036 CMCHKPK(oduPackUInt16, param->ceLevelInfo[i].raEmtcContResTmr, mBuf);
1037 CMCHKPK(oduPackUInt16, param->ceLevelInfo[i].emtcPreambleTransMax, mBuf);
1038 CMCHKPK(oduPackUInt8, param->ceLevelInfo[i].emtcPreambleMap.firstPreamble, mBuf);
1039 CMCHKPK(oduPackUInt8, param->ceLevelInfo[i].emtcPreambleMap.lastPreamble, mBuf);
1046 S16 cmPkRgrEmtcPdschCfg
1048 RgrEmtcPdschCfg*param,
1053 CMCHKPK(oduPackUInt16, param->emtcMaxRepCeModeA, mBuf);
1054 CMCHKPK(oduPackUInt16, param->emtcMaxRepCeModeB, mBuf);
1059 S16 cmPkRgrEmtcPuschCfg
1061 RgrEmtcPuschCfg*param,
1065 CMCHKPK(oduPackUInt16, param->emtcMaxRepCeModeA, mBuf);
1066 CMCHKPK(oduPackUInt16, param->emtcMaxRepCeModeB, mBuf);
1067 CMCHKPK(oduPackUInt8, param->emtcHoppingOffset, mBuf);
1073 S16 cmPkRgrEmtcPucchCfg
1075 RgrEmtcPucchCfg *param,
1081 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--)
1083 CMCHKPK(oduPackUInt16, param->emtcN1pucchAnInfoLst[i], mBuf);
1086 CMCHKPK(oduPackUInt8, param->emtcPucchNumRepCEMsg4Lvl0, mBuf);
1087 CMCHKPK(oduPackUInt8, param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
1088 CMCHKPK(oduPackUInt8, param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
1089 CMCHKPK(oduPackUInt8, param->emtcPucchNumRepCEMsg4Lvl3, mBuf);
1095 S16 cmPkRgrEmtcPrachCeParamCfg
1097 RgrEmtcPrachCEParamLst *param,
1101 CMCHKPK(oduPackUInt8, param->emtcPrachCfgIdx, mBuf);
1102 CMCHKPK(oduPackUInt8, param->emtcPrachFreqOffset, mBuf);
1103 CMCHKPK(oduPackUInt16, param->emtcPrachStartSubFrame, mBuf);
1104 CMCHKPK(oduPackUInt8, param->emtcMaxPremAttemptCE, mBuf);
1105 CMCHKPK(oduPackUInt8, param->emtcNumRepPerPreambleAtt, mBuf);
1106 CMCHKPK(oduPackUInt8, param->emtcNumMpdcchNBtoMonitor, mBuf);
1107 CMCHKPK(oduPackUInt8, param->emtcMpdcchNBtoMonitor[0], mBuf);
1108 CMCHKPK(oduPackUInt8, param->emtcMpdcchNBtoMonitor[1], mBuf);
1109 CMCHKPK(oduPackUInt16, param->emtcMpdcchNumRep, mBuf);
1110 CMCHKPK(oduPackUInt8, param->emtcPrachHoppingCfg, mBuf);
1116 S16 cmPkRgrEmtcPrachCfg
1118 RgrEmtcPrachCfg *param,
1124 CMCHKPK(oduPackUInt8, param->emtcMpdcchStartSFCssRaFdd, mBuf);
1125 CMCHKPK(oduPackUInt8, param->emtcPrachHopingOffset, mBuf);
1126 CMCHKPK(oduPackUInt8, param->emtcInitialCElevel, mBuf);
1127 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1128 CMCHKPK(cmPkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
1139 RgrEmtcCellCfg *param,
1143 CMCHKPK(oduPackUInt16, param->pci, mBuf);
1144 CMCHKPK(oduPackUInt32, param->emtcT300Tmr, mBuf);
1145 CMCHKPK(oduPackUInt32, param->emtcT301Tmr, mBuf);
1146 CMCHKPK(cmPkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
1147 CMCHKPK(cmPkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
1148 CMCHKPK(cmPkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
1149 CMCHKPK(cmPkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
1150 CMCHKPK(cmPkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
1151 CMCHKPK(cmPkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
1152 CMCHKPK(cmPkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
1153 CMCHKPK(oduPackUInt8, param->emtcPdschNbIdx, mBuf);
1154 CMCHKPK(oduPackUInt8, param->emtcMpdcchNbIdx, mBuf);
1155 CMCHKPK(oduPackUInt8, param->emtcPuschNbIdx, mBuf);
1160 /* EMTC related pack changes end*/
1162 /* EMTC related unpack changes start*/
1164 S16 cmUnpkRgrEmtcSiCfg
1166 RgrEmtcSiCfg *param,
1173 CMCHKUNPK(oduUnpackUInt8, ¶m->numSi, mBuf);
1175 for (i=0; i < param->numSi ; i++)
1177 CMCHKUNPK(oduUnpackUInt32,(uint32_t*)&tmpEnum,mBuf);
1178 param->siPeriodicity[i] = (RgrSiPeriodicity) tmpEnum;
1181 for (i=0; i < param->numSi ; i++)
1183 CMCHKUNPK(oduUnpackUInt16, ¶m->schdInfo[i].emtcSiTbs, mBuf);
1184 CMCHKUNPK(oduUnpackUInt8, ¶m->schdInfo[i].emtcSiNarrowBand, mBuf);
1186 //CMCHKUNPK(oduUnpackUInt16, ¶m->fddDlOrTddSfBitmapBR, mBuf);
1187 CMCHKUNPK(oduUnpackUInt8, ¶m->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1188 /*Changes by SIMRAN*/
1189 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
1191 CMCHKUNPK(oduUnpackUInt16, ¶m->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
1195 for (i=1; i>=0; i--) {
1196 CMCHKUNPK(oduUnpackUInt32, ¶m->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1200 CMCHKUNPK(oduUnpackUInt16, ¶m->startSymbolLc, mBuf);
1201 CMCHKUNPK(oduUnpackUInt8, ¶m->siRepetition, mBuf);
1202 CMCHKUNPK(oduUnpackUInt8, ¶m->sib1Repetition, mBuf);
1203 CMCHKUNPK(oduUnpackUInt8, ¶m->siWinSizeBr, mBuf);
1204 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)&tmpEnum, mBuf);
1205 param->modPrd = (RgrModPeriodicity) tmpEnum;
1206 CMCHKUNPK(oduUnpackUInt8, ¶m->siHoppingEnable, mBuf);
1214 S16 cmUnpkRgrEmtcRachCfg
1216 RgrEmtcRachCfg *param,
1222 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
1223 CMCHKUNPK(oduUnpackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.lastPreamble), mBuf);
1224 CMCHKUNPK(oduUnpackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.firstPreamble), mBuf);
1225 CMCHKUNPK(oduUnpackUInt16, &(param->ceLevelInfo[i].emtcPreambleTransMax), mBuf);
1226 CMCHKUNPK(oduUnpackUInt16, &(param->ceLevelInfo[i].raEmtcContResTmr), mBuf);
1227 CMCHKUNPK(oduUnpackUInt16, &(param->ceLevelInfo[i].raEmtcWinSize), mBuf);
1228 CMCHKUNPK(oduUnpackUInt8,&(param->ceLevelInfo[i].emtcRarHopping), mBuf);
1230 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcCeLvlSupported, mBuf);
1235 S16 cmUnpkRgrEmtcPdschCfg
1237 RgrEmtcPdschCfg*param,
1242 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1243 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1247 S16 cmUnpkRgrEmtcPuschCfg
1249 RgrEmtcPuschCfg*param,
1253 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcHoppingOffset, mBuf);
1254 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1255 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1261 S16 cmUnpkRgrEmtcPucchCfg
1263 RgrEmtcPucchCfg *param,
1271 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl3, mBuf);
1272 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl2, mBuf);
1273 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl1, mBuf);
1274 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl0, mBuf);
1276 for (i=0; i < RGR_MAX_CE_LEVEL ; i++) {
1277 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcN1pucchAnInfoLst[i], mBuf);
1283 S16 cmUnpkRgrEmtcPrachCeParamCfg
1285 RgrEmtcPrachCEParamLst *param,
1289 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPrachHoppingCfg, mBuf);
1290 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcMpdcchNumRep, mBuf);
1291 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcMpdcchNBtoMonitor[1], mBuf);
1292 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcMpdcchNBtoMonitor[0], mBuf);
1293 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcNumMpdcchNBtoMonitor, mBuf);
1294 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcNumRepPerPreambleAtt, mBuf);
1295 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcMaxPremAttemptCE, mBuf);
1296 CMCHKUNPK(oduUnpackUInt16, ¶m->emtcPrachStartSubFrame, mBuf);
1297 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPrachFreqOffset, mBuf);
1298 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPrachCfgIdx, mBuf);
1304 S16 cmUnpkRgrEmtcPrachCfg
1306 RgrEmtcPrachCfg *param,
1312 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
1313 CMCHKUNPK(cmUnpkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
1315 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcInitialCElevel, mBuf);
1316 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPrachHopingOffset, mBuf);
1317 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcMpdcchStartSFCssRaFdd, mBuf);
1322 S16 cmUnpkRgrEmtcCfg
1324 RgrEmtcCellCfg *param,
1329 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPuschNbIdx, mBuf);
1330 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcMpdcchNbIdx, mBuf);
1331 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcPdschNbIdx, mBuf);
1332 CMCHKUNPK(cmUnpkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
1333 CMCHKUNPK(cmUnpkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
1334 CMCHKUNPK(cmUnpkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
1335 CMCHKUNPK(cmUnpkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
1336 CMCHKUNPK(cmUnpkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
1337 CMCHKUNPK(cmUnpkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
1338 CMCHKUNPK(cmUnpkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
1339 CMCHKUNPK(oduUnpackUInt32,¶m->emtcT301Tmr, mBuf);
1340 CMCHKUNPK(oduUnpackUInt32, ¶m->emtcT300Tmr, mBuf);
1341 CMCHKUNPK(oduUnpackUInt16, ¶m->pci, mBuf);
1350 /* EMTC related unpack changes end*/
1356 /***********************************************************
1358 * Func : cmUnpkRgrBwCfg
1361 * Desc : Bandwidth configuration per cell
1370 **********************************************************/
1378 CMCHKUNPK(oduUnpackUInt8, ¶m->dlTotalBw, mBuf);
1379 CMCHKUNPK(oduUnpackUInt8, ¶m->ulTotalBw, mBuf);
1385 /***********************************************************
1387 * Func : cmPkRgrPhichCfg
1390 * Desc : PHICH configuration per cell
1399 **********************************************************/
1407 CMCHKPK(oduPackUInt8, param->isDurExtend, mBuf);
1408 CMCHKPK(oduPackUInt32, param->ngEnum, mBuf);
1414 /***********************************************************
1416 * Func : cmUnpkRgrPhichCfg
1419 * Desc : PHICH configuration per cell
1428 **********************************************************/
1429 S16 cmUnpkRgrPhichCfg
1438 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1439 param->ngEnum = (RgrPhichNg) tmpEnum;
1440 CMCHKUNPK(oduUnpackUInt8, ¶m->isDurExtend, mBuf);
1446 /***********************************************************
1448 * Func : cmPkRgrPucchCfg
1451 * Desc : PUCCH configuration per cell
1460 **********************************************************/
1468 CMCHKPK(oduPackUInt8, param->maxPucchRb, mBuf);
1469 CMCHKPK(oduPackUInt8, param->cyclicShift, mBuf);
1470 CMCHKPK(oduPackUInt8, param->deltaShift, mBuf);
1471 CMCHKPK(oduPackUInt16, param->n1PucchAn, mBuf);
1472 CMCHKPK(oduPackUInt8, param->resourceSize, mBuf);
1479 /***********************************************************
1481 * Func : cmUnpkRgrPucchCfg
1484 * Desc : PUCCH configuration per cell
1493 **********************************************************/
1494 S16 cmUnpkRgrPucchCfg
1501 CMCHKUNPK(oduUnpackUInt8, ¶m->resourceSize, mBuf);
1502 CMCHKUNPK(oduUnpackUInt16, ¶m->n1PucchAn, mBuf);
1503 CMCHKUNPK(oduUnpackUInt8, ¶m->deltaShift, mBuf);
1504 CMCHKUNPK(oduUnpackUInt8, ¶m->cyclicShift, mBuf);
1505 CMCHKUNPK(oduUnpackUInt8, ¶m->maxPucchRb, mBuf);
1512 /***********************************************************
1514 * Func : cmPkRgrSrsCfg
1517 * Desc : SRS configuration per cell
1526 **********************************************************/
1535 CMCHKPK(oduPackUInt8, param->srsSubFrameCfg, mBuf);
1536 CMCHKPK(oduPackUInt32, param->srsBwEnum, mBuf);
1537 CMCHKPK(oduPackUInt32, param->srsCfgPrdEnum, mBuf);
1538 CMCHKPK(oduPackUInt8, param->isSrsCfgSetup, mBuf);
1544 /***********************************************************
1546 * Func : cmUnpkRgrSrsCfg
1549 * Desc : SRS configuration per cell
1558 **********************************************************/
1567 CMCHKUNPK(oduUnpackUInt8, ¶m->isSrsCfgSetup, mBuf);
1568 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1569 param->srsCfgPrdEnum = (RgrSrsCfgPrd) tmpEnum;
1570 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1571 param->srsBwEnum = (RgrSrsBwCfg) tmpEnum;
1572 CMCHKUNPK(oduUnpackUInt8, ¶m->srsSubFrameCfg, mBuf);
1578 /***********************************************************
1580 * Func : cmPkRgrRachCfg
1583 * Desc : RACH configuration per cell
1592 **********************************************************/
1602 CMCHKPK(oduPackUInt8, param->prachResource, mBuf);
1603 CMCHKPK(oduPackUInt16, param->msgSizeGrpA, mBuf);
1604 CMCHKPK(oduPackUInt8, param->sizeRaPreambleGrpA, mBuf);
1605 CMCHKPK(oduPackUInt8, param->numRaPreamble, mBuf);
1606 CMCHKPK(oduPackUInt8, param->maxMsg3Tx, mBuf);
1607 for (i=param->raOccasion.size-1; i >= 0; i--) {
1608 CMCHKPK(oduPackUInt8, param->raOccasion.subFrameNum[i], mBuf);
1610 CMCHKPK(oduPackUInt32, param->raOccasion.sfnEnum, mBuf);
1611 CMCHKPK(oduPackUInt8, param->raOccasion.size, mBuf);
1612 CMCHKPK(oduPackUInt8, param->raWinSize, mBuf);
1613 CMCHKPK(oduPackUInt8, param->preambleFormat, mBuf);
1615 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
1616 * timer configuration */
1617 CMCHKPK(oduPackUInt8, param->contResTmr, mBuf);
1624 /***********************************************************
1626 * Func : cmUnpkRgrRachCfg
1629 * Desc : RACH configuration per cell
1638 **********************************************************/
1639 S16 cmUnpkRgrRachCfg
1649 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
1650 * timer configuration */
1651 CMCHKUNPK(oduUnpackUInt8, ¶m->contResTmr, mBuf);
1653 CMCHKUNPK(oduUnpackUInt8, ¶m->preambleFormat, mBuf);
1654 CMCHKUNPK(oduUnpackUInt8, ¶m->raWinSize, mBuf);
1655 CMCHKUNPK(oduUnpackUInt8, ¶m->raOccasion.size, mBuf);
1656 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1657 param->raOccasion.sfnEnum = (RgrRaSfn) tmpEnum;
1658 for (i=0; i<param->raOccasion.size; i++) {
1659 CMCHKUNPK(oduUnpackUInt8, ¶m->raOccasion.subFrameNum[i], mBuf);
1661 CMCHKUNPK(oduUnpackUInt8, ¶m->maxMsg3Tx, mBuf);
1662 CMCHKUNPK(oduUnpackUInt8, ¶m->numRaPreamble, mBuf);
1663 CMCHKUNPK(oduUnpackUInt8, ¶m->sizeRaPreambleGrpA, mBuf);
1664 CMCHKUNPK(oduUnpackUInt16, ¶m->msgSizeGrpA, mBuf);
1665 CMCHKUNPK(oduUnpackUInt8, ¶m->prachResource, mBuf);
1671 /***********************************************************
1673 * Func : cmPkRgrSiCfg
1676 * Desc : SI Configuration per cell
1685 **********************************************************/
1692 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
1695 #endif/*RGR_SI_SCH*/
1699 if(param->numSi > sizeof(param->siPeriodicity)/
1700 sizeof(param->siPeriodicity[0]))
1701 param->numSi = sizeof(param->siPeriodicity)/
1702 sizeof(param->siPeriodicity[0]);
1704 for (idx=param->numSi-1; idx >= 0; idx--) {
1705 /* Enum to be packed/unpacked as uint32_t instead of S32 */
1706 CMCHKPK(oduPackUInt32, param->siPeriodicity[idx], mBuf);
1708 CMCHKPK(oduPackUInt8, param->numSi, mBuf);
1709 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
1710 CMCHKPK(oduPackUInt32, (uint32_t)param->modPrd, mBuf);
1711 #endif/*RGR_SI_SCH*/
1712 CMCHKPK(oduPackUInt8, param->retxCnt, mBuf);
1713 CMCHKPK(oduPackUInt8, param->siWinSize, mBuf);
1719 /***********************************************************
1721 * Func : cmUnpkRgrSiCfg
1724 * Desc : SI Configuration per cell
1733 **********************************************************/
1741 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
1744 #endif/*RGR_SI_SCH*/
1747 CMCHKUNPK(oduUnpackUInt8, ¶m->siWinSize, mBuf);
1748 CMCHKUNPK(oduUnpackUInt8, ¶m->retxCnt, mBuf);
1750 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
1751 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1752 param->modPrd = (RgrModPeriodicity) tmpEnum;
1753 CMCHKUNPK(oduUnpackUInt8, ¶m->numSi, mBuf);
1755 if(param->numSi > sizeof(param->siPeriodicity)/
1756 sizeof(param->siPeriodicity[0]))
1757 param->numSi = sizeof(param->siPeriodicity)/
1758 sizeof(param->siPeriodicity[0]);
1760 /* Enum to be packed/unpacked as uint32_t instead of S32 */
1761 for (idx=0; idx < param->numSi; idx++) {
1762 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1763 param->siPeriodicity[idx] = (RgrSiPeriodicity) tmpEnum;
1765 #endif/*RGR_SI_SCH*/
1772 /***********************************************************
1774 * Func : cmPkRgrTpcRntiCfg
1777 * Desc : TPC RNTI Range
1786 **********************************************************/
1787 S16 cmPkRgrTpcRntiCfg
1789 RgrTpcRntiCfg *param,
1795 CMCHKPK(oduPackUInt16, param->size, mBuf);
1796 CMCHKPK(cmPkLteRnti, param->startTpcRnti, mBuf);
1802 /***********************************************************
1804 * Func : cmUnpkRgrTpcRntiCfg
1807 * Desc : TPC RNTI Range
1816 **********************************************************/
1817 S16 cmUnpkRgrTpcRntiCfg
1819 RgrTpcRntiCfg *param,
1825 CMCHKUNPK(cmUnpkLteRnti, ¶m->startTpcRnti, mBuf);
1826 CMCHKUNPK(oduUnpackUInt16, ¶m->size, mBuf);
1832 /***********************************************************
1834 * Func : cmPkRgrUlPwrCfg
1837 * Desc : Cell specific power configuration
1846 **********************************************************/
1854 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
1855 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
1856 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
1857 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
1858 CMCHKPK(SPkS8, param->deltaPreambleMsg3, mBuf);
1859 CMCHKPK(SPkS8, param->p0NominalPucch, mBuf);
1860 CMCHKPK(oduPackUInt32, param->alpha, mBuf);
1861 CMCHKPK(SPkS8, param->p0NominalPusch, mBuf);
1867 /***********************************************************
1869 * Func : cmUnpkRgrUlPwrCfg
1872 * Desc : Cell specific power configuration
1881 **********************************************************/
1882 S16 cmUnpkRgrUlPwrCfg
1891 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPusch, mBuf);
1892 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
1893 param->alpha = (RgrPwrAlpha) tmpEnum;
1894 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPucch, mBuf);
1895 CMCHKUNPK(SUnpkS8, ¶m->deltaPreambleMsg3, mBuf);
1896 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
1897 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
1898 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
1899 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
1905 /***********************************************************
1907 * Func : cmPkRgrPuschCfg
1910 * Desc : brief cell specific hopping configuration
1919 **********************************************************/
1928 CMCHKPK(oduPackUInt8, param->hopOffst, mBuf);
1929 CMCHKPK(oduPackUInt8, param->isIntraHop, mBuf);
1930 CMCHKPK(oduPackUInt8, param->numSubBands, mBuf);
1936 /***********************************************************
1938 * Func : cmUnpkRgrPuschCfg
1941 * Desc : brief cell specific hopping configuration
1950 **********************************************************/
1951 S16 cmUnpkRgrPuschCfg
1959 CMCHKUNPK(oduUnpackUInt8, ¶m->numSubBands, mBuf);
1960 CMCHKUNPK(oduUnpackUInt8, ¶m->isIntraHop, mBuf);
1961 CMCHKUNPK(oduUnpackUInt8, ¶m->hopOffst, mBuf);
1967 /***********************************************************
1969 * Func : cmPkRgrCodeBookRstCfg
1972 * Desc : Number of bits in code book for different transmission modes
1981 **********************************************************/
1982 S16 cmPkRgrCodeBookRstCfg
1984 RgrCodeBookRstCfg *param,
1991 for (i=1-1; i >= 0; i--) {
1992 CMCHKPK(oduPackUInt32, param->pmiBitMap[i], mBuf);
1994 CMCHKPK(oduPackUInt8, param->pres, mBuf);
2000 /***********************************************************
2002 * Func : cmUnpkRgrCodeBookRstCfg
2005 * Desc : Number of bits in code book for different transmission modes
2014 **********************************************************/
2015 S16 cmUnpkRgrCodeBookRstCfg
2017 RgrCodeBookRstCfg *param,
2024 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
2025 for (i=0; i<1; i++) {
2026 CMCHKUNPK(oduUnpackUInt32, ¶m->pmiBitMap[i], mBuf);
2033 /***********************************************************
2035 * Func : cmPkRgrPreambleSetCfg
2038 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2047 **********************************************************/
2048 S16 cmPkRgrPreambleSetCfg
2050 RgrPreambleSetCfg *param,
2056 CMCHKPK(oduPackUInt8, param->size, mBuf);
2057 CMCHKPK(oduPackUInt8, param->start, mBuf);
2058 CMCHKPK(oduPackUInt8, param->pres, mBuf);
2064 /***********************************************************
2066 * Func : cmUnpkRgrPreambleSetCfg
2069 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2078 **********************************************************/
2079 S16 cmUnpkRgrPreambleSetCfg
2081 RgrPreambleSetCfg *param,
2087 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
2088 CMCHKUNPK(oduUnpackUInt8, ¶m->start, mBuf);
2089 CMCHKUNPK(oduUnpackUInt8, ¶m->size, mBuf);
2095 /***********************************************************
2097 * Func : cmPkRgrCmnLchCfg
2100 * Desc : Logical channel configuration info for common channels
2109 **********************************************************/
2110 S16 cmPkRgrCmnLchCfg
2112 RgrCmnLchCfg *param,
2117 CMCHKPK(oduPackUInt8, param->ulTrchType, mBuf);
2118 CMCHKPK(oduPackUInt8, param->dlTrchType, mBuf);
2119 CMCHKPK(oduPackUInt8, param->dir, mBuf);
2120 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
2121 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
2127 /***********************************************************
2129 * Func : cmUnpkRgrCmnLchCfg
2132 * Desc : Logical channel configuration info for common channels
2141 **********************************************************/
2142 S16 cmUnpkRgrCmnLchCfg
2144 RgrCmnLchCfg *param,
2150 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
2151 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
2152 CMCHKUNPK(oduUnpackUInt8, ¶m->dir, mBuf);
2153 CMCHKUNPK(oduUnpackUInt8, ¶m->dlTrchType, mBuf);
2154 CMCHKUNPK(oduUnpackUInt8, ¶m->ulTrchType, mBuf);
2160 /***********************************************************
2162 * Func : cmPkRgrDlfsCfg
2165 * Desc : RGR configuration for DLFS scheduler
2174 **********************************************************/
2183 CMCHKPK(oduPackUInt8, param->thresholdCqi, mBuf);
2184 CMCHKPK(oduPackUInt8, param->isDlFreqSel, mBuf);
2190 /***********************************************************
2192 * Func : cmUnpkRgrDlfsCfg
2195 * Desc : RGR configuration for DLFS scheduler
2204 **********************************************************/
2205 S16 cmUnpkRgrDlfsCfg
2213 CMCHKUNPK(oduUnpackUInt8, ¶m->isDlFreqSel, mBuf);
2214 CMCHKUNPK(oduUnpackUInt8, ¶m->thresholdCqi, mBuf);
2224 /***********************************************************
2226 * Func : cmPkRgrTddPrachInfo
2229 * Desc : PRACH resource information for TDD
2238 **********************************************************/
2239 S16 cmPkRgrTddPrachInfo
2241 RgrTddPrachInfo *param,
2247 CMCHKPK(oduPackUInt8, param->ulStartSfIdx, mBuf);
2248 CMCHKPK(oduPackUInt8, param->halfFrm, mBuf);
2249 CMCHKPK(oduPackUInt32, param->sfn, mBuf);
2250 CMCHKPK(oduPackUInt8, param->freqIdx, mBuf);
2256 /***********************************************************
2258 * Func : cmUnpkRgrTddPrachInfo
2261 * Desc : PRACH resource information for TDD
2270 **********************************************************/
2271 S16 cmUnpkRgrTddPrachInfo
2273 RgrTddPrachInfo *param,
2280 CMCHKUNPK(oduUnpackUInt8, ¶m->freqIdx, mBuf);
2281 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
2282 param->sfn = tmpEnum;
2283 CMCHKUNPK(oduUnpackUInt8, ¶m->halfFrm, mBuf);
2284 CMCHKUNPK(oduUnpackUInt8, ¶m->ulStartSfIdx, mBuf);
2290 /***********************************************************
2292 * Func : cmPkRgrTddPrachRscInfo
2295 * Desc : Set of PRACH Information for TDD
2304 **********************************************************/
2305 S16 cmPkRgrTddPrachRscInfo
2307 RgrTddPrachRscInfo *param,
2314 for (i=param->numRsc-1; i >= 0; i--) {
2315 CMCHKPK(cmPkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
2317 CMCHKPK(oduPackUInt8, param->numRsc, mBuf);
2323 /***********************************************************
2325 * Func : cmUnpkRgrTddPrachRscInfo
2328 * Desc : Set of PRACH Information for TDD
2337 **********************************************************/
2338 S16 cmUnpkRgrTddPrachRscInfo
2340 RgrTddPrachRscInfo *param,
2347 CMCHKUNPK(oduUnpackUInt8, ¶m->numRsc, mBuf);
2348 for (i=0; i<param->numRsc; i++) {
2349 CMCHKUNPK(cmUnpkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
2360 /***********************************************************
2362 * Func : cmPkRgrEnbPfs
2365 * Desc : PFS Configuration
2374 **********************************************************/
2382 for(idx = RGR_MAX_NUM_QCI-1; idx >= 0; idx--)
2384 CMCHKPK(oduPackUInt32, param->qciWgt[idx], mBuf);
2386 CMCHKPK(oduPackUInt8, param->fairCoeffi, mBuf);
2387 CMCHKPK(oduPackUInt8, param->tptCoeffi, mBuf);
2394 /***********************************************************
2396 * Func : cmUnpkRgrEnbPfs
2399 * Desc : PFS Configuration
2408 **********************************************************/
2417 CMCHKUNPK(oduUnpackUInt8, ¶m->tptCoeffi, mBuf);
2418 CMCHKUNPK(oduUnpackUInt8, ¶m->fairCoeffi, mBuf);
2419 for(idx = 0; idx < RGR_MAX_NUM_QCI; idx++)
2421 CMCHKUNPK(oduUnpackUInt32, ¶m->qciWgt[idx], mBuf);
2426 /*rgr_c_001.main_7 - Added support for SPS*/
2428 /***********************************************************
2430 * Func : cmPkRgrSpsCellCfg
2433 * Desc : DL SPS configuration parameters per UE
2434 TODO: Check if this is to be added to re-configuration as well
2443 **********************************************************/
2444 S16 cmPkRgrSpsCellCfg
2446 RgrSpsCellCfg *param,
2451 CMCHKPK(oduPackUInt16, param->maxSpsUePerUlSf, mBuf);
2452 CMCHKPK(oduPackUInt16, param->maxSpsUePerDlSf, mBuf);
2453 CMCHKPK(oduPackUInt8, param->maxSpsDlBw, mBuf);
2460 /***********************************************************
2462 * Func : cmUnpkRgrSpsDlCellCfg
2465 * Desc : DL SPS configuration parameters per UE
2466 TODO: Check if this is to be added to re-configuration as well
2475 **********************************************************/
2476 S16 cmUnpkRgrSpsDlCellCfg
2478 RgrSpsCellCfg *param,
2484 CMCHKUNPK(oduUnpackUInt8, ¶m->maxSpsDlBw, mBuf);
2485 CMCHKUNPK(oduUnpackUInt16, ¶m->maxSpsUePerDlSf, mBuf);
2486 CMCHKUNPK(oduUnpackUInt16, ¶m->maxSpsUePerUlSf, mBuf);
2492 S16 cmPkRgr5gtfCellCfg
2494 Rgr5gtfCellCfg *param,
2499 for (idx = MAX_5GTF_SUBFRAME_INFO - 1; idx >= 0 ;--idx)
2502 CMCHKPK(oduPackUInt32, param->dynConfig[(uint8_t)idx], mBuf);
2504 CMCHKPK(oduPackUInt8, param->uePerGrp, mBuf);
2505 CMCHKPK(oduPackUInt8, param->ueGrpPerTti, mBuf);
2506 CMCHKPK(oduPackUInt8, param->numUes, mBuf);
2507 CMCHKPK(oduPackUInt8, param->numOfCC, mBuf);
2508 CMCHKPK(oduPackUInt8, param->bwPerCC, mBuf);
2509 CMCHKPK(oduPackUInt8, param->cfi, mBuf);
2513 S16 cmUnPkRgr5gtfCellCfg
2515 Rgr5gtfCellCfg *param,
2521 CMCHKUNPK(oduUnpackUInt8, ¶m->cfi, mBuf);
2522 CMCHKUNPK(oduUnpackUInt8, ¶m->bwPerCC, mBuf);
2523 CMCHKUNPK(oduUnpackUInt8, ¶m->numOfCC, mBuf);
2524 CMCHKUNPK(oduUnpackUInt8, ¶m->numUes, mBuf);
2525 CMCHKUNPK(oduUnpackUInt8, ¶m->ueGrpPerTti, mBuf);
2526 CMCHKUNPK(oduUnpackUInt8, ¶m->uePerGrp, mBuf);
2527 for (idx = 0; idx < MAX_5GTF_SUBFRAME_INFO ; ++idx)
2530 CMCHKUNPK(oduUnpackUInt32, ¶m->dynConfig[(uint8_t)idx], mBuf);
2537 /*LAA : functions to pack and unpack LAA params*/
2538 /***********************************************************
2540 * Func : cmPkRgrLteUCellCfg
2543 * Desc : LAA configuration for the Cell
2552 **********************************************************/
2553 static S16 cmPkRgrLteUCellCfg
2560 CMCHKPK(oduPackUInt8, param->isLaaCell, mBuf);
2565 /***********************************************************
2567 * Func : cmUnpkRgrLteUCellCfg
2570 * Desc : LAA configuration for the cell
2579 **********************************************************/
2580 static S16 cmUnpkRgrLteUCellCfg
2588 CMCHKUNPK(oduUnpackUInt8, ¶m->isLaaCell, mBuf);
2593 /* LTE_ADV_FLAG_REMOVED_START */
2594 /***********************************************************
2596 * Func : cmPkRgrLteAdvancedUeConfig
2599 * Desc : PAcks LteAdvancedUeConfig
2608 **********************************************************/
2609 S16 cmPkRgrLteAdvancedUeConfig
2611 RgrLteAdvancedUeConfig *param,
2616 CMCHKPK(oduPackUInt8, param->isUeCellEdge, mBuf);
2617 CMCHKPK(oduPackUInt8, param->isAbsUe, mBuf);
2618 CMCHKPK(oduPackUInt32, param->pres, mBuf);
2622 /***********************************************************
2624 * Func : cmUnpkRgrLteAdvancedUeConfig
2627 * Desc : unpacks LteAdvancedUeConfig
2636 **********************************************************/
2637 S16 cmUnpkRgrLteAdvancedUeConfig
2639 RgrLteAdvancedUeConfig *param,
2644 CMCHKUNPK(oduUnpackUInt32, ¶m->pres, mBuf);
2645 CMCHKUNPK(oduUnpackUInt8, ¶m->isAbsUe, mBuf);
2646 CMCHKUNPK(oduUnpackUInt8, ¶m->isUeCellEdge, mBuf);
2650 /***********************************************************
2652 * Func : cmPkRgrAbsConfig
2655 * Desc : Packs RgrAbsConfig
2664 **********************************************************/
2665 S16 cmPkRgrAbsConfig
2667 RgrAbsConfig *param,
2673 CMCHKPK(oduPackUInt32, (uint32_t)param->status, mBuf);
2674 for (indx = RGR_ABS_PATTERN_LEN-1; indx >= 0; indx--)
2676 CMCHKPK(oduPackUInt8, param->absPattern[(uint8_t)indx], mBuf);
2679 CMCHKPK(oduPackUInt32, param->absPatternType, mBuf);
2680 CMCHKPK(oduPackUInt32, param->absLoadPeriodicity, mBuf);
2685 /***********************************************************
2687 * Func : cmPkRgrSfrConfig
2690 * Desc : Packs RgrSfrConfig
2699 **********************************************************/
2700 S16 cmPkRgrSfrConfig
2702 RgrSfrConfig *param,
2707 CMCHKPK(oduPackUInt32, (uint32_t)param->status, mBuf);
2709 CMCHKPK(oduPackUInt32, param->pwrThreshold.pHigh, mBuf);
2710 CMCHKPK(oduPackUInt32, param->pwrThreshold.pLow, mBuf);
2712 CMCHKPK(oduPackUInt8, param->cellEdgeRbRange.endRb, mBuf);
2713 CMCHKPK(oduPackUInt8, param->cellEdgeRbRange.startRb, mBuf);
2720 /***********************************************************
2722 * Func : cmPkRgrDsfrConfig
2725 * Desc : Packs RgrDsfrConfig
2730 * Notes: AIRSPAN_LTE_ADV_DSFR
2734 **********************************************************/
2735 S16 cmPkRgrDsfrConfig
2737 RgrDsfrConfig *param,
2742 CMCHKPK(oduPackUInt32, (uint32_t)param->status, mBuf);
2749 /***********************************************************
2751 * Func : cmUnpkRgrDsfrConfig
2754 * Desc : UnPacks RgrDsfrConfig
2759 * Notes: AIRSPAN_LTE_ADV_DSFR
2763 **********************************************************/
2764 S16 cmUnpkRgrDsfrConfig
2766 RgrDsfrConfig *param,
2771 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)¶m->status, mBuf);
2777 /***********************************************************
2779 * Func : cmPkRgrCellLteAdvancedFeatureCfg
2782 * Desc : Cell LteAdvancedFeatureCfg
2791 **********************************************************/
2793 S16 cmPkRgrCellLteAdvancedFeatureCfg
2795 RgrLteAdvancedCellConfig *param,
2800 CMCHKPK(oduPackUInt32, param->pres, mBuf);
2801 CMCHKPK(cmPkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
2802 CMCHKPK(cmPkRgrSfrConfig, ¶m->sfrCfg, mBuf);
2803 CMCHKPK(cmPkRgrAbsConfig, ¶m->absCfg, mBuf);
2810 /***********************************************************
2812 * Func : cmUnpkRgrAbsConfig
2815 * Desc : Unpacks AbsConfig
2824 **********************************************************/
2825 S16 cmUnpkRgrAbsConfig
2827 RgrAbsConfig *param,
2834 CMCHKUNPK(oduUnpackUInt32, ¶m->absLoadPeriodicity, mBuf);
2835 CMCHKUNPK(oduUnpackUInt32, ¶m->absPatternType, mBuf);
2836 for (indx = 0; indx <RGR_ABS_PATTERN_LEN; indx++)
2838 CMCHKUNPK(oduUnpackUInt8, ¶m->absPattern[(uint8_t)indx], mBuf);
2840 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)¶m->status, mBuf);
2846 /***********************************************************
2848 * Func : cmUnpkRgrSfrConfig
2851 * Desc : Unpacks SfrConfig
2860 **********************************************************/
2861 S16 cmUnpkRgrSfrConfig
2863 RgrSfrConfig *param,
2869 CMCHKUNPK(oduUnpackUInt8, ¶m->cellEdgeRbRange.startRb, mBuf);
2870 CMCHKUNPK(oduUnpackUInt8, ¶m->cellEdgeRbRange.endRb, mBuf);
2872 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)¶m->pwrThreshold.pLow, mBuf);
2873 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)¶m->pwrThreshold.pHigh, mBuf);
2875 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)¶m->status, mBuf);
2880 /***********************************************************
2882 * Func : cmUnpkRgrCellLteAdvancedFeatureCfg
2885 * Desc : unpacks LteAdvancedFeatureCfg per cell
2894 **********************************************************/
2895 S16 cmUnpkRgrCellLteAdvancedFeatureCfg
2897 RgrLteAdvancedCellConfig *param,
2902 CMCHKUNPK(cmUnpkRgrAbsConfig, ¶m->absCfg, mBuf);
2903 CMCHKUNPK(cmUnpkRgrSfrConfig, ¶m->sfrCfg, mBuf);
2904 CMCHKUNPK(cmUnpkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
2905 CMCHKUNPK(oduUnpackUInt32, ¶m->pres, mBuf);
2910 /* LTE_ADV_FLAG_REMOVED_END */
2912 /***********************************************************
2914 * Func : cmPkMacSchedGnbCfg
2916 * Desc : SCH GNB Configurations
2924 **********************************************************/
2925 S16 cmPkMacSchedGnbCfg
2927 MacSchedGnbCfg *param,
2932 CMCHKPK(oduPackUInt8, param->maxDlUePerTti, mBuf);
2933 CMCHKPK(oduPackUInt8, param->maxUlUePerTti, mBuf);
2934 CMCHKPK(oduPackUInt8, param->numCells, mBuf);
2935 CMCHKPK(oduPackUInt8, param->dlSchdType, mBuf);
2936 CMCHKPK(oduPackUInt8, param->ulSchdType, mBuf);
2937 CMCHKPK(oduPackUInt8, param->numTxAntPorts, mBuf);
2939 } /* cmPkRgrSchedEnbCfg */
2941 /***********************************************************
2943 * Func : cmUnpkMacSchedGnbCfg
2946 * Desc : SCH Gnodeb Configuration to SCH
2955 **********************************************************/
2956 S16 cmUnpkMacSchedGnbCfg
2958 MacSchedGnbCfg *param,
2964 CMCHKUNPK(oduUnpackUInt8, ¶m->numTxAntPorts, mBuf);
2965 CMCHKUNPK(oduUnpackUInt8, ¶m->ulSchdType, mBuf);
2966 CMCHKUNPK(oduUnpackUInt8, ¶m->dlSchdType, mBuf);
2967 CMCHKUNPK(oduUnpackUInt8, ¶m->numCells, mBuf);
2968 CMCHKUNPK(oduUnpackUInt8, ¶m->maxUlUePerTti, mBuf);
2969 CMCHKUNPK(oduUnpackUInt8, ¶m->maxDlUePerTti, mBuf);
2971 } /* cmUnpkMacSchedGnbCfg */
2974 /***********************************************************
2976 * Func : cmPkRgrCellCfg
2979 * Desc : Cell Configuration at RRM
2988 **********************************************************/
2999 /* EMTC related changes start*/
3002 /* EMTC related changes ends*/
3006 CMCHKPK(cmPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
3009 CMCHKPK(oduPackUInt8, param->isPucchFormat3Sptd, mBuf);
3011 /*LAA: Pack LAA params*/
3012 CMCHKPK(cmPkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
3013 CMCHKPK(oduPackUInt32, param->msg4pAVal, mBuf);
3014 CMCHKPK(oduPackUInt8, param->isAutoCfgModeEnb, mBuf);
3015 CMCHKPK(oduPackUInt8, param->isDynCfiEnb, mBuf);
3016 CMCHKPK(oduPackUInt16, param->phichTxPwrOffset, mBuf);
3017 CMCHKPK(oduPackUInt16, param->rarTxPwrOffset, mBuf);
3018 CMCHKPK(oduPackUInt16, param->pcchTxPwrOffset, mBuf);
3019 CMCHKPK(oduPackUInt16, param->bcchTxPwrOffset, mBuf);
3021 CMCHKPK(oduPackUInt16, param->t300TmrVal, mBuf);
3022 /*rgr_c_001.main_7 - Added support for SPS*/
3023 CMCHKPK(cmPkRgrSpsCellCfg, ¶m->spsCfg, mBuf);
3025 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
3026 CMCHKPK(oduPackUInt8, param->rrmTtiIndPrd, mBuf);
3028 CMCHKPK(cmPkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
3029 CMCHKPK(oduPackUInt8, param->spclSfCfgIdx, mBuf);
3030 CMCHKPK(oduPackUInt8, param->ulDlCfgIdx, mBuf);
3033 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
3034 for (i=param->numCmnLcs-1; i >= 0; i--) {
3035 CMCHKPK(cmPkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
3037 CMCHKPK(oduPackUInt8, param->numCmnLcs, mBuf);
3038 CMCHKPK(cmPkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
3039 CMCHKPK(cmPkRgrPuschCfg, ¶m->puschCfg, mBuf);
3040 CMCHKPK(cmPkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
3041 CMCHKPK(cmPkRgrSiCfg, ¶m->siCfg, mBuf);
3042 CMCHKPK(cmPkRgrRachCfg, ¶m->rachCfg, mBuf);
3043 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsCfg, mBuf);
3044 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchCfg, mBuf);
3045 CMCHKPK(cmPkRgrPhichCfg, ¶m->phichCfg, mBuf);
3046 /* LTE_ADV_FLAG_REMOVED_START */
3047 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
3048 /* LTE_ADV_FLAG_REMOVED_END */
3049 CMCHKPK(cmPkRgrBwCfg, ¶m->bwCfg, mBuf);
3050 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
3051 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
3052 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
3053 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
3054 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
3055 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiCfg, mBuf);
3056 CMCHKPK(cmPkRgrRntiCfg, ¶m->macRnti, mBuf);
3057 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
3058 CMCHKPK(oduPackUInt8, param->dlfsSchdType, mBuf);
3060 CMCHKPK(SPkS8, param->pMax, mBuf);
3061 CMCHKPK(oduPackUInt8, param->cellModSchm, mBuf);
3062 CMCHKPK(oduPackUInt8, param->isCpDlExtend, mBuf);
3063 CMCHKPK(oduPackUInt8, param->isCpUlExtend, mBuf);
3064 CMCHKPK(oduPackUInt8, param->maxUlUeNewTxPerTti, mBuf);
3065 CMCHKPK(oduPackUInt8, param->maxDlUeNewTxPerTti, mBuf);
3066 CMCHKPK(oduPackUInt8, param->maxDlRetxBw, mBuf);
3067 CMCHKPK(oduPackUInt8, param->maxDlBwPerUe, mBuf);
3068 CMCHKPK(oduPackUInt8, param->maxUlBwPerUe, mBuf);
3069 CMCHKPK(oduPackUInt8, param->maxCcchPerDlSf, mBuf);
3070 CMCHKPK(oduPackUInt8, param->maxUePerDlSf, mBuf);
3071 CMCHKPK(oduPackUInt8, param->maxUePerUlSf, mBuf);
3073 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
3075 CMCHKPK(oduPackUInt8, param->maxMsg3PerUlSf, mBuf);
3077 CMCHKPK(oduPackUInt8, param->macInst, mBuf);
3078 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
3081 /* EMTC related changes start*/
3082 CMCHKPK(oduPackUInt8, param->emtcEnable, mBuf);
3083 CMCHKPK(cmPkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
3084 /* EMTC related changes ends*/
3092 /***********************************************************
3094 * Func : cmUnpkRgrCellCfg
3097 * Desc : Cell Configuration at RRM
3106 **********************************************************/
3107 S16 cmUnpkRgrCellCfg
3117 /* EMTC related changes start*/
3118 CMCHKUNPK(cmUnpkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
3119 CMCHKUNPK(oduUnpackUInt8, ¶m->emtcEnable, mBuf);
3120 /* EMTC related changes ends*/
3123 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
3124 CMCHKUNPK(oduUnpackUInt8, ¶m->macInst, mBuf);
3126 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
3128 CMCHKUNPK(oduUnpackUInt8, ¶m->maxMsg3PerUlSf, mBuf);
3130 CMCHKUNPK(oduUnpackUInt8, ¶m->maxUePerUlSf, mBuf);
3131 CMCHKUNPK(oduUnpackUInt8, ¶m->maxUePerDlSf, mBuf);
3132 CMCHKUNPK(oduUnpackUInt8, ¶m->maxCcchPerDlSf, mBuf);
3133 CMCHKUNPK(oduUnpackUInt8, ¶m->maxUlBwPerUe, mBuf);
3134 CMCHKUNPK(oduUnpackUInt8, ¶m->maxDlBwPerUe, mBuf);
3135 CMCHKUNPK(oduUnpackUInt8, ¶m->maxDlRetxBw, mBuf);
3136 CMCHKUNPK(oduUnpackUInt8, ¶m->maxDlUeNewTxPerTti, mBuf);
3137 CMCHKUNPK(oduUnpackUInt8, ¶m->maxUlUeNewTxPerTti, mBuf);
3138 CMCHKUNPK(oduUnpackUInt8, ¶m->isCpUlExtend, mBuf);
3139 CMCHKUNPK(oduUnpackUInt8, ¶m->isCpDlExtend, mBuf);
3140 CMCHKUNPK(oduUnpackUInt8, ¶m->cellModSchm, mBuf);
3141 CMCHKUNPK(SUnpkS8, ¶m->pMax, mBuf);
3142 CMCHKUNPK(oduUnpackUInt8, ¶m->dlfsSchdType, mBuf);
3143 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
3144 CMCHKUNPK(cmUnpkRgrRntiCfg, ¶m->macRnti, mBuf);
3145 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiCfg, mBuf);
3146 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
3147 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
3148 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
3149 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
3150 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
3151 CMCHKUNPK(cmUnpkRgrBwCfg, ¶m->bwCfg, mBuf);
3152 /* LTE_ADV_FLAG_REMOVED_START */
3153 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
3154 /* LTE_ADV_FLAG_REMOVED_END */
3155 CMCHKUNPK(cmUnpkRgrPhichCfg, ¶m->phichCfg, mBuf);
3156 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchCfg, mBuf);
3157 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsCfg, mBuf);
3158 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachCfg, mBuf);
3159 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siCfg, mBuf);
3160 CMCHKUNPK(cmUnpkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
3161 CMCHKUNPK(cmUnpkRgrPuschCfg, ¶m->puschCfg, mBuf);
3162 CMCHKUNPK(cmUnpkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
3163 CMCHKUNPK(oduUnpackUInt8, ¶m->numCmnLcs, mBuf);
3164 for (i=0; i<param->numCmnLcs; i++) {
3165 CMCHKUNPK(cmUnpkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
3167 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
3170 CMCHKUNPK(oduUnpackUInt8, ¶m->ulDlCfgIdx, mBuf);
3171 CMCHKUNPK(oduUnpackUInt8, ¶m->spclSfCfgIdx, mBuf);
3172 CMCHKUNPK(cmUnpkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
3175 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
3176 CMCHKUNPK(oduUnpackUInt8, ¶m->rrmTtiIndPrd, mBuf);
3177 /*rgr_c_001.main_7 - Added support for SPS*/
3178 CMCHKUNPK(cmUnpkRgrSpsDlCellCfg, ¶m->spsCfg, mBuf);
3180 CMCHKUNPK(oduUnpackUInt16, ¶m->t300TmrVal, mBuf);
3181 CMCHKPK(oduUnpackUInt16, ¶m->bcchTxPwrOffset, mBuf);
3182 CMCHKPK(oduUnpackUInt16, ¶m->pcchTxPwrOffset, mBuf);
3183 CMCHKPK(oduUnpackUInt16, ¶m->rarTxPwrOffset, mBuf);
3184 CMCHKPK(oduUnpackUInt16, ¶m->phichTxPwrOffset, mBuf);
3185 CMCHKUNPK(oduUnpackUInt8, ¶m->isDynCfiEnb, mBuf);
3186 CMCHKUNPK(oduUnpackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
3187 CMCHKPK(oduUnpackUInt32, (uint32_t*)¶m->msg4pAVal, mBuf);
3188 /*LAA: Unpack LAA Cell params*/
3189 CMCHKUNPK(cmUnpkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
3191 CMCHKUNPK(oduUnpackUInt8, ¶m->isPucchFormat3Sptd, mBuf);
3194 CMCHKUNPK(cmUnPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
3201 /***********************************************************
3203 * Func : cmPkRgrUeAprdDlCqiCfg
3206 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
3215 **********************************************************/
3216 S16 cmPkRgrUeAprdDlCqiCfg
3218 RgrUeAprdDlCqiCfg *param,
3223 /*Pack Aperiodic Trigger List only for Pcell */
3225 CMCHKPK(oduPackUInt8, param->triggerSet2, mBuf);
3226 CMCHKPK(oduPackUInt8, param->triggerSet1, mBuf);
3229 CMCHKPK(oduPackUInt32, param->aprdModeEnum, mBuf);
3230 CMCHKPK(oduPackUInt8, param->pres, mBuf);
3236 /***********************************************************
3238 * Func : cmUnpkRgrUeAprdDlCqiCfg
3241 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
3250 **********************************************************/
3251 S16 cmUnpkRgrUeAprdDlCqiCfg
3253 RgrUeAprdDlCqiCfg *param,
3260 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
3261 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3262 param->aprdModeEnum = (RgrAprdCqiMode) tmpEnum;
3265 CMCHKUNPK(oduUnpackUInt8, ¶m->triggerSet1, mBuf);
3266 CMCHKUNPK(oduUnpackUInt8, ¶m->triggerSet2, mBuf);
3273 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
3277 /***********************************************************
3279 * Func : cmPkRgrUePrdDlCqiCfg
3282 * Desc : Downlink Periodic CQI reporting related configuration per UE
3291 **********************************************************/
3292 S16 cmPkRgrUePrdDlCqiCfg
3294 RgrUePrdDlCqiCfg *param,
3300 CMCHKPK(oduPackUInt16, param->cqiPmiCfgIdx, mBuf);
3301 CMCHKPK(oduPackUInt8, param->k, mBuf);
3302 CMCHKPK(SPkS8, param->cqiOffst, mBuf);
3303 CMCHKPK(oduPackUInt8, param->subframeOffst, mBuf);
3304 CMCHKPK(oduPackUInt32, param->prdicityEnum, mBuf);
3305 CMCHKPK(oduPackUInt32, param->prdModeEnum, mBuf);
3306 CMCHKPK(oduPackUInt8, param->pres, mBuf);
3312 /***********************************************************
3314 * Func : cmUnpkRgrUePrdDlCqiCfg
3317 * Desc : Downlink Periodic CQI reporting related configuration per UE
3326 **********************************************************/
3327 S16 cmUnpkRgrUePrdDlCqiCfg
3329 RgrUePrdDlCqiCfg *param,
3336 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
3337 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3338 param->prdModeEnum = tmpEnum;
3339 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3340 param->prdicityEnum = tmpEnum;
3341 CMCHKUNPK(oduUnpackUInt8, ¶m->subframeOffst, mBuf);
3342 CMCHKUNPK(SUnpkS8, ¶m->cqiOffst, mBuf);
3343 CMCHKUNPK(oduUnpackUInt8, ¶m->k, mBuf);
3344 CMCHKUNPK(oduUnpackUInt16, ¶m->cqiPmiCfgIdx, mBuf);
3351 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
3353 /***********************************************************
3355 * Func : cmPkRgrUeDlPCqiSetup
3358 * Desc : Periodic CQI Setup configuration parameters information
3367 **********************************************************/
3368 S16 cmPkRgrUeDlPCqiSetup
3370 RgrUeDlPCqiSetup *param,
3376 CMCHKPK(oduPackUInt32, param->prdModeEnum, mBuf);
3377 CMCHKPK(oduPackUInt8, param->sANCQI, mBuf);
3378 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3379 CMCHKPK(oduPackUInt16, param->riCfgIdx, mBuf);
3380 CMCHKPK(oduPackUInt8, param->riEna, mBuf);
3381 CMCHKPK(oduPackUInt8, param->k, mBuf);
3382 CMCHKPK(oduPackUInt8, param->cqiRepType, mBuf);
3383 CMCHKPK(oduPackUInt16, param->cqiPCfgIdx, mBuf);
3384 CMCHKPK(oduPackUInt16, param->cqiPResIdx, mBuf);
3390 /***********************************************************
3392 * Func : cmUnpkRgrUeDlPCqiSetup
3395 * Desc : Periodic CQI Setup configuration parameters information
3404 **********************************************************/
3405 S16 cmUnpkRgrUeDlPCqiSetup
3407 RgrUeDlPCqiSetup *param,
3414 CMCHKUNPK(oduUnpackUInt16, ¶m->cqiPResIdx, mBuf);
3415 CMCHKUNPK(oduUnpackUInt16, ¶m->cqiPCfgIdx, mBuf);
3416 CMCHKUNPK(oduUnpackUInt8, ¶m->cqiRepType, mBuf);
3417 CMCHKUNPK(oduUnpackUInt8, ¶m->k, mBuf);
3418 CMCHKUNPK(oduUnpackUInt8, ¶m->riEna, mBuf);
3419 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3420 CMCHKUNPK(oduUnpackUInt16, ¶m->riCfgIdx, mBuf);
3421 CMCHKUNPK(oduUnpackUInt8, ¶m->sANCQI, mBuf);
3422 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3423 param->prdModeEnum = (RgrPrdCqiMode) tmpEnum;
3429 /***********************************************************
3431 * Func : cmPkRgrUePrdDlCqiCfg
3434 * Desc : Periodic CQI/PMI/RI configuration parameters information
3443 **********************************************************/
3444 S16 cmPkRgrUePrdDlCqiCfg
3446 RgrUePrdDlCqiCfg *param,
3452 CMCHKPK(cmPkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
3453 CMCHKPK(oduPackUInt8, param->type, mBuf);
3459 /***********************************************************
3461 * Func : cmUnpkRgrUePrdDlCqiCfg
3464 * Desc : Periodic CQI/PMI/RI configuration parameters information
3473 **********************************************************/
3474 S16 cmUnpkRgrUePrdDlCqiCfg
3476 RgrUePrdDlCqiCfg *param,
3482 CMCHKUNPK(oduUnpackUInt8, ¶m->type, mBuf);
3483 CMCHKUNPK(cmUnpkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
3489 /***********************************************************
3491 * Func : cmPkRgrUeUlSrsSetupCfg
3494 * Desc : SRS configuration setup parameters information.
3495 Reference 36.313 SoundingRS-UL-Config
3504 **********************************************************/
3505 S16 cmPkRgrUeUlSrsSetupCfg
3507 RgrUeUlSrsSetupCfg *param,
3513 CMCHKPK(oduPackUInt8, param->fDomPosi, mBuf);
3514 CMCHKPK(oduPackUInt8, param->txComb, mBuf);
3515 CMCHKPK(oduPackUInt8, param->sANSrs, mBuf);
3516 CMCHKPK(oduPackUInt8, param->duration, mBuf);
3517 CMCHKPK(oduPackUInt32, param->cycShift, mBuf);
3518 CMCHKPK(oduPackUInt32, param->srsHopBw, mBuf);
3519 CMCHKPK(oduPackUInt32, param->srsBw, mBuf);
3520 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3521 CMCHKPK(oduPackUInt16, param->srsCfgIdx, mBuf);
3527 /***********************************************************
3529 * Func : cmUnpkRgrUeUlSrsSetupCfg
3532 * Desc : SRS configuration setup parameters information.
3533 Reference 36.313 SoundingRS-UL-Config
3542 **********************************************************/
3543 S16 cmUnpkRgrUeUlSrsSetupCfg
3545 RgrUeUlSrsSetupCfg *param,
3552 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3553 CMCHKUNPK(oduUnpackUInt16, ¶m->srsCfgIdx, mBuf);
3554 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3555 param->srsBw = (RgrUlSrsBwInfo) tmpEnum;
3556 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3557 param->srsHopBw = (RgrUlSrsHoBwInfo) tmpEnum;
3558 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
3559 param->cycShift = (RgrUlSrsCycShiftInfo) tmpEnum;
3560 CMCHKUNPK(oduUnpackUInt8, ¶m->duration, mBuf);
3561 CMCHKUNPK(oduUnpackUInt8, ¶m->sANSrs, mBuf);
3562 CMCHKUNPK(oduUnpackUInt8, ¶m->txComb, mBuf);
3563 CMCHKUNPK(oduUnpackUInt8, ¶m->fDomPosi, mBuf);
3569 /***********************************************************
3571 * Func : cmPkRgrUeSrSetupCfg
3574 * Desc : SR Setup configuration parameters information
3583 **********************************************************/
3584 S16 cmPkRgrUeSrSetupCfg
3586 RgrUeSrSetupCfg *param,
3592 /* ccpu00131601:DEL - dTMax Packing removed since this param will not
3593 * be required by Scheduler*/
3594 CMCHKPK(oduPackUInt8, param->srCfgIdx, mBuf);
3595 CMCHKPK(oduPackUInt16, param->srResIdx, mBuf);
3601 /***********************************************************
3603 * Func : cmUnpkRgrUeSrSetupCfg
3606 * Desc : SR Setup configuration parameters information
3615 **********************************************************/
3616 S16 cmUnpkRgrUeSrSetupCfg
3618 RgrUeSrSetupCfg *param,
3623 CMCHKUNPK(oduUnpackUInt16, ¶m->srResIdx, mBuf);
3624 CMCHKUNPK(oduUnpackUInt8, ¶m->srCfgIdx, mBuf);
3625 /* ccpu00131601:DEL - dTMax UnPacking removed since this param will not
3626 * be required by Scheduler*/
3632 /***********************************************************
3634 * Func : cmPkRgrUeSrCfg
3637 * Desc : SR configuration parameters information
3646 **********************************************************/
3655 CMCHKPK(cmPkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
3656 CMCHKPK(oduPackUInt8, param->type, mBuf);
3662 /***********************************************************
3664 * Func : cmUnpkRgrUeSrCfg
3667 * Desc : SR configuration parameters information
3676 **********************************************************/
3677 S16 cmUnpkRgrUeSrCfg
3685 CMCHKUNPK(oduUnpackUInt8, ¶m->type, mBuf);
3686 CMCHKUNPK(cmUnpkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
3692 /***********************************************************
3694 * Func : cmPkRgrUeUlSrsCfg
3697 * Desc : SRS configuration parameters information.
3698 Reference 36.313 SoundingRS-UL-Config
3707 **********************************************************/
3708 S16 cmPkRgrUeUlSrsCfg
3710 RgrUeUlSrsCfg *param,
3716 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3717 CMCHKPK(cmPkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
3718 CMCHKPK(oduPackUInt8, param->type, mBuf);
3724 /***********************************************************
3726 * Func : cmUnpkRgrUeUlSrsCfg
3729 * Desc : SRS configuration parameters information.
3730 Reference 36.313 SoundingRS-UL-Config
3739 **********************************************************/
3740 S16 cmUnpkRgrUeUlSrsCfg
3742 RgrUeUlSrsCfg *param,
3748 CMCHKUNPK(oduUnpackUInt8, ¶m->type, mBuf);
3749 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3750 CMCHKUNPK(cmUnpkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
3755 #endif /*TFU_UPGRADE */
3758 /***********************************************************
3760 * Func : cmPkRgrUeDlCqiCfg
3763 * Desc : Downlink CQI reporting related configuration per UE
3772 **********************************************************/
3773 S16 cmPkRgrUeDlCqiCfg
3775 RgrUeDlCqiCfg *param,
3782 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
3784 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
3787 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
3789 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
3791 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
3797 /***********************************************************
3799 * Func : cmUnpkRgrUeDlCqiCfg
3802 * Desc : Downlink CQI reporting related configuration per UE
3811 **********************************************************/
3812 S16 cmUnpkRgrUeDlCqiCfg
3814 RgrUeDlCqiCfg *param,
3820 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
3821 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
3827 /***********************************************************
3829 * Func : cmPkRgrUeMeasGapCfg
3832 * Desc : Measurement gap configuration for UE
3841 **********************************************************/
3842 S16 cmPkRgrUeMeasGapCfg
3844 RgrUeMeasGapCfg *param,
3850 CMCHKPK(oduPackUInt8, param->gapOffst, mBuf);
3851 CMCHKPK(oduPackUInt8, param->gapPrd, mBuf);
3852 CMCHKPK(oduPackUInt8, param->isMesGapEnabled, mBuf);
3858 /***********************************************************
3860 * Func : cmUnpkRgrUeMeasGapCfg
3863 * Desc : Measurement gap configuration for UE
3872 **********************************************************/
3873 S16 cmUnpkRgrUeMeasGapCfg
3875 RgrUeMeasGapCfg *param,
3881 CMCHKUNPK(oduUnpackUInt8, ¶m->isMesGapEnabled, mBuf);
3882 CMCHKUNPK(oduUnpackUInt8, ¶m->gapPrd, mBuf);
3883 CMCHKUNPK(oduUnpackUInt8, ¶m->gapOffst, mBuf);
3887 /*rgr_c_001.main_9 ADD DRX functionality under flag*/
3889 /***********************************************************
3891 * Func : cmPkRgrDrxLongCycleOffst
3894 * Desc : DRX Long Cycle Offset
3903 **********************************************************/
3904 S16 cmPkRgrDrxLongCycleOffst
3906 RgrDrxLongCycleOffst *param,
3912 CMCHKPK(oduPackUInt16, param->drxStartOffst, mBuf);
3913 CMCHKPK(oduPackUInt16, param->longDrxCycle, mBuf);
3919 /***********************************************************
3921 * Func : cmUnpkRgrDrxLongCycleOffst
3924 * Desc : DRX Long Cycle Offset
3933 **********************************************************/
3934 S16 cmUnpkRgrDrxLongCycleOffst
3936 RgrDrxLongCycleOffst *param,
3942 CMCHKUNPK(oduUnpackUInt16, ¶m->longDrxCycle, mBuf);
3943 CMCHKUNPK(oduUnpackUInt16, ¶m->drxStartOffst, mBuf);
3949 /***********************************************************
3951 * Func : cmPkRgrDrxShortDrx
3954 * Desc : DRX Short Cycle Offset
3963 **********************************************************/
3964 S16 cmPkRgrDrxShortDrx
3966 RgrDrxShortDrx *param,
3972 CMCHKPK(oduPackUInt8, param->drxShortCycleTmr, mBuf);
3973 CMCHKPK(oduPackUInt16, param->shortDrxCycle, mBuf);
3974 CMCHKPK(oduPackUInt8, param->pres, mBuf);
3980 /***********************************************************
3982 * Func : cmUnpkRgrDrxShortDrx
3985 * Desc : DRX Short Cycle Offset
3994 **********************************************************/
3995 S16 cmUnpkRgrDrxShortDrx
3997 RgrDrxShortDrx *param,
4003 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
4004 CMCHKUNPK(oduUnpackUInt16, ¶m->shortDrxCycle, mBuf);
4005 CMCHKUNPK(oduUnpackUInt8, ¶m->drxShortCycleTmr, mBuf);
4009 /***********************************************************
4011 * Func : cmPkRgrUeDrxCfg
4014 * Desc : DRX configuration for UE
4023 **********************************************************/
4032 CMCHKPK(cmPkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
4033 CMCHKPK(cmPkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
4034 CMCHKPK(oduPackUInt16, param->drxRetxTmr, mBuf);
4036 CMCHKPK(oduPackUInt8, param->drxRetxTmrR13Pres, mBuf);
4037 CMCHKPK(oduPackUInt8, param->drxOnDurTmrR13Pres, mBuf);
4038 CMCHKPK(oduPackUInt16, param->emtcDrxUlRetxTmr, mBuf);
4039 CMCHKPK(oduPackUInt8, param->isEmtcUe, mBuf);
4041 CMCHKPK(oduPackUInt16, param->drxInactvTmr, mBuf);
4042 CMCHKPK(oduPackUInt16, param->drxOnDurTmr, mBuf);
4043 /*rgr_c_001.main_9 ADD added changes for R9*/
4045 CMCHKPK(cmPkTknS32, ¶m->cqiMask, mBuf);
4052 /***********************************************************
4054 * Func : cmUnpkRgrUeDrxCfg
4057 * Desc : DRX configuration for UE
4066 **********************************************************/
4067 S16 cmUnpkRgrUeDrxCfg
4075 /*rgr_c_001.main_9 ADD added changes for R9*/
4077 CMCHKUNPK(cmUnpkTknS32, ¶m->cqiMask, mBuf);
4079 CMCHKUNPK(oduUnpackUInt16, ¶m->drxOnDurTmr, mBuf);
4080 CMCHKUNPK(oduUnpackUInt16, ¶m->drxInactvTmr, mBuf);
4082 CMCHKUNPK(oduUnpackUInt8, ¶m->isEmtcUe, mBuf);
4083 CMCHKUNPK(oduUnpackUInt16,¶m->emtcDrxUlRetxTmr, mBuf);
4084 CMCHKUNPK(oduUnpackUInt8, ¶m->drxOnDurTmrR13Pres, mBuf);
4085 CMCHKUNPK(oduUnpackUInt8, ¶m->drxRetxTmrR13Pres, mBuf);
4087 CMCHKUNPK(oduUnpackUInt16, ¶m->drxRetxTmr, mBuf);
4088 CMCHKUNPK(cmUnpkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
4089 CMCHKUNPK(cmUnpkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
4093 /*rgr_c_001.main_9 ADD added DRX changes under DRX*/
4095 /***********************************************************
4097 * Func : cmPkRgrUeCapCfg
4100 * Desc : RgrUeCapCfg
4109 **********************************************************/
4118 CMCHKPK(oduPackUInt8, param->txAntSel, mBuf);
4119 CMCHKPK(oduPackUInt8, param->simCqiAckNack, mBuf);
4120 CMCHKPK(oduPackUInt8, param->resAloocType1, mBuf);
4121 CMCHKPK(oduPackUInt8, param->intraSfFeqHop, mBuf);
4122 CMCHKPK(oduPackUInt8, param->pwrClass, mBuf);
4128 /***********************************************************
4130 * Func : cmUnpkRgrUeCapCfg
4133 * Desc : RgrUeCapCfg
4142 **********************************************************/
4143 S16 cmUnpkRgrUeCapCfg
4151 CMCHKUNPK(oduUnpackUInt8, ¶m->pwrClass, mBuf);
4152 CMCHKUNPK(oduUnpackUInt8, ¶m->intraSfFeqHop, mBuf);
4153 CMCHKUNPK(oduUnpackUInt8, ¶m->resAloocType1, mBuf);
4154 CMCHKUNPK(oduUnpackUInt8, ¶m->simCqiAckNack, mBuf);
4155 CMCHKUNPK(oduUnpackUInt8, ¶m->txAntSel, mBuf);
4161 /***********************************************************
4163 * Func : cmPkRgrUeAckNackRepCfg
4166 * Desc : rgrUeAckNackRepCfg
4175 **********************************************************/
4176 S16 cmPkRgrUeAckNackRepCfg
4178 RgrUeAckNackRepCfg *param,
4184 CMCHKPK(oduPackUInt32, param->ackNackRepFactor, mBuf);
4185 CMCHKPK(oduPackUInt16, param->pucchAckNackRep, mBuf);
4186 CMCHKPK(oduPackUInt8, param->isAckNackEnabled, mBuf);
4192 /***********************************************************
4194 * Func : cmUnpkRgrUeAckNackRepCfg
4197 * Desc : rgrUeAckNackRepCfg
4206 **********************************************************/
4207 S16 cmUnpkRgrUeAckNackRepCfg
4209 RgrUeAckNackRepCfg *param,
4216 CMCHKUNPK(oduUnpackUInt8, ¶m->isAckNackEnabled, mBuf);
4217 CMCHKUNPK(oduUnpackUInt16, ¶m->pucchAckNackRep, mBuf);
4218 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4219 param->ackNackRepFactor = (RgrAckNackRepFactor) tmpEnum;
4225 /***********************************************************
4227 * Func : cmPkRgrUeTxModeCfg
4230 * Desc : Transmission mode configuration per UE
4239 **********************************************************/
4240 S16 cmPkRgrUeTxModeCfg
4242 RgrUeTxModeCfg *param,
4248 CMCHKPK(oduPackUInt32, param->txModeEnum, mBuf);
4249 CMCHKPK(oduPackUInt32, param->tmTrnstnState, mBuf);
4250 CMCHKPK(oduPackUInt8, param->pres, mBuf);
4257 /***********************************************************
4259 * Func : cmUnpkRgrUeTxModeCfg
4262 * Desc : Transmission mode configuration per UE
4271 **********************************************************/
4272 S16 cmUnpkRgrUeTxModeCfg
4274 RgrUeTxModeCfg *param,
4281 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
4282 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4283 param->tmTrnstnState = (RgrTxModeTrnstn) tmpEnum;
4285 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4286 param->txModeEnum = (RgrTxMode) tmpEnum;
4292 /***********************************************************
4294 * Func : cmPkRgrUeUlHqCfg
4297 * Desc : Uplink HARQ configuration per UE
4306 **********************************************************/
4307 S16 cmPkRgrUeUlHqCfg
4309 RgrUeUlHqCfg *param,
4315 CMCHKPK(oduPackUInt8, param->deltaHqOffst, mBuf);
4316 CMCHKPK(oduPackUInt8, param->maxUlHqTx, mBuf);
4322 /***********************************************************
4324 * Func : cmUnpkRgrUeUlHqCfg
4327 * Desc : Uplink HARQ configuration per UE
4336 **********************************************************/
4337 S16 cmUnpkRgrUeUlHqCfg
4339 RgrUeUlHqCfg *param,
4345 CMCHKUNPK(oduUnpackUInt8, ¶m->maxUlHqTx, mBuf);
4346 CMCHKUNPK(oduUnpackUInt8, ¶m->deltaHqOffst, mBuf);
4352 /***********************************************************
4354 * Func : cmPkRgrUeGrpPwrCfg
4357 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
4366 **********************************************************/
4367 S16 cmPkRgrUeGrpPwrCfg
4369 RgrUeGrpPwrCfg *param,
4375 CMCHKPK(oduPackUInt8, param->idx, mBuf);
4376 CMCHKPK(cmPkLteRnti, param->tpcRnti, mBuf);
4377 CMCHKPK(oduPackUInt8, param->pres, mBuf);
4383 /***********************************************************
4385 * Func : cmUnpkRgrUeGrpPwrCfg
4388 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
4397 **********************************************************/
4398 S16 cmUnpkRgrUeGrpPwrCfg
4400 RgrUeGrpPwrCfg *param,
4406 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
4407 CMCHKUNPK(cmUnpkLteRnti, ¶m->tpcRnti, mBuf);
4408 CMCHKUNPK(oduUnpackUInt8, ¶m->idx, mBuf);
4412 /*rgr_c_001.main_7 - Added support for SPS*/
4415 /***********************************************************
4417 * Func : cmPkRgrUeSpsDlCfg
4420 * Desc : DL SPS configuration parameters per UE
4429 **********************************************************/
4430 S16 cmPkRgrUeSpsDlCfg
4432 RgrUeSpsDlCfg *param,
4438 CMCHKPK(oduPackUInt16, param->explicitRelCnt, mBuf);
4439 CMCHKPK(oduPackUInt32, param->dlSpsPrdctyEnum, mBuf);
4440 for (i=param->numPucchVal-1; i >= 0; i--) {
4441 CMCHKPK(oduPackUInt32, param->n1PucchVal[i], mBuf);
4443 CMCHKPK(oduPackUInt8, param->numPucchVal, mBuf);
4444 CMCHKPK(oduPackUInt8, param->numSpsHqProc, mBuf);
4445 CMCHKPK(oduPackUInt8, param->isDlSpsEnabled, mBuf);
4451 /***********************************************************
4453 * Func : cmUnpkRgrUeSpsDlCfg
4456 * Desc : DL SPS configuration parameters per UE
4465 **********************************************************/
4466 S16 cmUnpkRgrUeSpsDlCfg
4468 RgrUeSpsDlCfg *param,
4476 CMCHKUNPK(oduUnpackUInt8, ¶m->isDlSpsEnabled, mBuf);
4477 CMCHKUNPK(oduUnpackUInt8, ¶m->numSpsHqProc, mBuf);
4478 CMCHKUNPK(oduUnpackUInt8, ¶m->numPucchVal, mBuf);
4479 for (i=0; i<param->numPucchVal; i++) {
4480 CMCHKUNPK(oduUnpackUInt32, ¶m->n1PucchVal[i], mBuf);
4482 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4483 param->dlSpsPrdctyEnum = tmpEnum;
4484 CMCHKUNPK(oduUnpackUInt16, ¶m->explicitRelCnt, mBuf);
4490 /***********************************************************
4492 * Func : cmPkRgrUeSpsUlCfg
4495 * Desc : UL SPS configuration parameters per UE
4504 **********************************************************/
4505 S16 cmPkRgrUeSpsUlCfg
4507 RgrUeSpsUlCfg *param,
4514 CMCHKPK(oduPackUInt8, param->isLcSRMaskEnab, mBuf);
4515 for (i=param->lcCnt-1; i >= 0; i--) {
4516 /* SPS Changes starts */
4517 CMCHKPK(oduPackUInt8, param->spsLcInfo[i].isSpsEnabled, mBuf);
4518 CMCHKPK(oduPackUInt8, param->spsLcInfo[i].lcId, mBuf);
4519 /* SPS Changes ends */
4521 CMCHKPK(oduPackUInt8, param->lcCnt, mBuf);
4522 CMCHKPK(oduPackUInt32, param->ulSpsPrdctyEnum, mBuf);
4523 CMCHKPK(SPkS8, param->pwrCfg.p0UePuschVal, mBuf);
4524 CMCHKPK(SPkS8, param->pwrCfg.p0NominalPuschVal, mBuf);
4525 CMCHKPK(oduPackUInt8, param->pwrCfgPres, mBuf);
4528 CMCHKPK(oduPackUInt8, param->twoIntervalCfg, mBuf);
4531 CMCHKPK(oduPackUInt32, param->implicitRelCnt, mBuf);
4532 CMCHKPK(oduPackUInt8, param->isUlSpsEnabled, mBuf);
4538 /***********************************************************
4540 * Func : cmUnpkRgrUeSpsUlCfg
4543 * Desc : UL SPS configuration parameters per UE
4552 **********************************************************/
4553 S16 cmUnpkRgrUeSpsUlCfg
4555 RgrUeSpsUlCfg *param,
4563 CMCHKUNPK(oduUnpackUInt8, ¶m->isUlSpsEnabled, mBuf);
4564 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4565 param->implicitRelCnt = tmpEnum;
4568 CMCHKUNPK(oduUnpackUInt8, ¶m->twoIntervalCfg, mBuf);
4571 CMCHKUNPK(oduUnpackUInt8, ¶m->pwrCfgPres, mBuf);
4572 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0NominalPuschVal, mBuf);
4573 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0UePuschVal, mBuf);
4574 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4575 param->ulSpsPrdctyEnum = tmpEnum;
4576 CMCHKUNPK(oduUnpackUInt8, ¶m->lcCnt, mBuf);
4577 for (i=0; i<param->lcCnt; i++) {
4578 CMCHKUNPK(oduUnpackUInt8, ¶m->spsLcInfo[i].lcId, mBuf);
4579 CMCHKUNPK(oduUnpackUInt8, ¶m->spsLcInfo[i].isSpsEnabled, mBuf);
4581 CMCHKUNPK(oduUnpackUInt8, ¶m->isLcSRMaskEnab, mBuf);
4587 /***********************************************************
4589 * Func : cmPkRgrUeSpsCfg
4592 * Desc : SPS configuration parameters per UE
4601 **********************************************************/
4610 CMCHKPK(cmPkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
4611 CMCHKPK(cmPkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
4612 CMCHKPK(cmPkLteRnti, param->spsRnti, mBuf);
4618 /***********************************************************
4620 * Func : cmUnpkRgrUeSpsCfg
4623 * Desc : SPS configuration parameters per UE
4632 **********************************************************/
4633 S16 cmUnpkRgrUeSpsCfg
4641 CMCHKUNPK(cmUnpkLteRnti, ¶m->spsRnti, mBuf);
4642 CMCHKUNPK(cmUnpkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
4643 CMCHKUNPK(cmUnpkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
4648 /***********************************************************
4650 * Func : cmPkRgrUeUlPwrCfg
4653 * Desc : Uplink power configuration per UE
4662 **********************************************************/
4663 S16 cmPkRgrUeUlPwrCfg
4665 RgrUeUlPwrCfg *param,
4671 CMCHKPK(oduPackUInt8, param->trgCqi, mBuf);
4672 CMCHKPK(oduPackUInt8, param->pSRSOffset, mBuf);
4673 CMCHKPK(SPkS8, param->p0UePucch, mBuf);
4674 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
4675 CMCHKPK(oduPackUInt8, param->isDeltaMCSEnabled, mBuf);
4676 CMCHKPK(oduPackUInt8, param->isAccumulated, mBuf);
4677 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
4678 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
4684 /***********************************************************
4686 * Func : cmUnpkRgrUeUlPwrCfg
4689 * Desc : Uplink power configuration per UE
4698 **********************************************************/
4699 S16 cmUnpkRgrUeUlPwrCfg
4701 RgrUeUlPwrCfg *param,
4707 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
4708 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
4709 CMCHKUNPK(oduUnpackUInt8, ¶m->isAccumulated, mBuf);
4710 CMCHKUNPK(oduUnpackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
4711 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
4712 CMCHKUNPK(SUnpkS8, ¶m->p0UePucch, mBuf);
4713 CMCHKUNPK(oduUnpackUInt8, ¶m->pSRSOffset, mBuf);
4714 CMCHKUNPK(oduUnpackUInt8, ¶m->trgCqi, mBuf);
4720 /***********************************************************
4722 * Func : cmPkRgrUeQosCfg
4725 * Desc : Downlink/Uplink QoS configuration per UE
4734 **********************************************************/
4743 CMCHKPK(oduPackUInt32, param->ueBr, mBuf);
4744 CMCHKPK(oduPackUInt32, param->dlAmbr, mBuf);
4745 CMCHKPK(oduPackUInt8, param->ambrPres, mBuf);
4751 /***********************************************************
4753 * Func : cmUnpkRgrUeQosCfg
4756 * Desc : Downlink/Uplink QoS configuration per UE
4765 **********************************************************/
4766 S16 cmUnpkRgrUeQosCfg
4774 CMCHKUNPK(oduUnpackUInt8, ¶m->ambrPres, mBuf);
4775 CMCHKUNPK(oduUnpackUInt32, ¶m->dlAmbr, mBuf);
4776 CMCHKUNPK(oduUnpackUInt32, ¶m->ueBr, mBuf);
4780 /***********************************************************
4782 * Func : cmPkRgrUePuschDedCfg
4785 * Desc : PUSCH Config Dedication for UE
4794 **********************************************************/
4795 S16 cmPkRgrUePuschDedCfg
4797 RgrUePuschDedCfg *param,
4803 CMCHKPK(oduPackUInt8, param->bCQIIdx, mBuf);
4804 CMCHKPK(oduPackUInt8, param->bRIIdx, mBuf);
4805 CMCHKPK(oduPackUInt8, param->bACKIdx, mBuf);
4806 CMCHKPK(oduPackUInt8, param->pres, mBuf);
4811 /***********************************************************
4813 * Func : cmUnpkRgrUePuschDedCfg
4816 * Desc : PUSCH Config Dedication for UE
4826 **********************************************************/
4827 S16 cmUnpkRgrUePuschDedCfg
4829 RgrUePuschDedCfg *param,
4835 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
4836 CMCHKUNPK(oduUnpackUInt8, ¶m->bACKIdx, mBuf);
4837 CMCHKUNPK(oduUnpackUInt8, ¶m->bRIIdx, mBuf);
4838 CMCHKUNPK(oduUnpackUInt8, ¶m->bCQIIdx, mBuf);
4842 /***********************************************************
4844 * Func : cmPkRgrUeTxAntSelCfg
4847 * Desc : UE Transmit Antenna selection related configuration
4856 **********************************************************/
4857 S16 cmPkRgrUeTxAntSelCfg
4859 RgrUeTxAntSelCfg *param,
4865 CMCHKPK(oduPackUInt32, param->selType, mBuf);
4866 CMCHKPK(oduPackUInt8, param->pres, mBuf);
4872 /***********************************************************
4874 * Func : cmUnpkRgrUeTxAntSelCfg
4877 * Desc : UE Transmit Antenna selection related configuration
4886 **********************************************************/
4887 S16 cmUnpkRgrUeTxAntSelCfg
4889 RgrUeTxAntSelCfg *param,
4896 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
4897 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
4898 param->selType = (RgrUeTxAntSelType) tmpEnum;
4903 /***********************************************************
4905 * Func : cmPkRgrUeTaTmrCfg
4908 * Desc : Time Alignment timer configuration per UE
4917 **********************************************************/
4918 S16 cmPkRgrUeTaTmrCfg
4920 RgrUeTaTmrCfg *param,
4926 CMCHKPK(oduPackUInt16, param->taTmr, mBuf);
4927 CMCHKPK(oduPackUInt8, param->pres, mBuf);
4933 /***********************************************************
4935 * Func : cmUnpkRgrUeTaTmrCfg
4938 * Desc : Time Alignment timer configuration per UE
4947 **********************************************************/
4948 S16 cmUnpkRgrUeTaTmrCfg
4950 RgrUeTaTmrCfg *param,
4956 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
4957 CMCHKUNPK(oduUnpackUInt16, ¶m->taTmr, mBuf);
4963 S16 cmUnpkRgrEmtcUeCfg
4965 RgrUeEmtcCfg *param,
4971 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
4972 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
4973 RgrEpdcchAddModLst *epdcchAddModLst;
4975 CMCHKUNPK(oduUnpackUInt8,¶m->pdschReptLevModeA,mBuf);
4976 /*UnPacking PUCCH Rep */
4977 CMCHKUNPK(oduUnpackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat2),mBuf);
4978 CMCHKUNPK(oduUnpackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat1),mBuf);
4979 CMCHKUNPK(oduUnpackUInt8,&(emtcPucchRepCfg->isPucchRepPres),mBuf);
4983 for(indx = 0; indx < RGR_MAX_EPDCCH_SET; indx++)
4985 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
4986 CMCHKUNPK(oduUnpackUInt32,&(epdcchAddModLst->extaddgrp2.mpddchNB),mBuf);
4987 CMCHKUNPK(oduUnpackUInt16,&(epdcchAddModLst->extaddgrp2.mpdcchNumRep),mBuf);
4988 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD),mBuf);
4989 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->extaddgrp2.mpddchPdschHop),mBuf);
4990 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->extaddgrp2.csiNumRep),mBuf);
4991 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->extaddgrp2.pres),mBuf);
4992 CMCHKUNPK(cmUnpkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
4993 CMCHKUNPK(cmUnpkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
4994 CMCHKUNPK(oduUnpackUInt32,&(epdcchAddModLst->pucchResStartoffset),mBuf);
4995 CMCHKUNPK(oduUnpackUInt32,&(epdcchAddModLst->dmrsScrambSeq),mBuf);
4996 for(idx = 0; idx < 5; idx++)
4998 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->resBlkAssignment.rbAssignment[idx]),mBuf);
5001 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->resBlkAssignment.numPRBpairs),mBuf);
5002 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->transmissionType),mBuf);
5003 CMCHKUNPK(oduUnpackUInt8,&(epdcchAddModLst->setConfigId),mBuf);
5006 CMCHKUNPK(cmUnpkTknUInt32,&(emtcEpdcchCfg->startSymbolr11),mBuf);
5007 for(indx = 0; indx < 5; indx++)
5009 CMCHKUNPK(oduUnpackUInt8,&(emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]),mBuf);
5011 CMCHKUNPK(oduUnpackUInt8, &(emtcEpdcchCfg->sfPtn.pres), mBuf);
5012 CMCHKUNPK(oduUnpackUInt8, &(param->pres), mBuf);
5013 CMCHKUNPK(oduUnpackUInt8, &(param->isHdFddEnbld), mBuf);
5015 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
5016 printf("\n EMTC RGR UE unpack\n");
5017 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
5019 for(indx = 0; indx < 5; indx++)
5021 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
5023 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
5024 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
5026 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
5028 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5029 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
5030 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);
5031 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
5032 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
5033 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
5034 for(idx = 0; idx < 5 ; idx++)
5036 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
5038 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
5039 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
5040 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
5041 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
5042 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
5043 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
5044 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
5045 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
5046 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
5047 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
5048 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
5049 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
5059 S16 cmPkRgrEmtcUeCfg
5061 RgrUeEmtcCfg *param,
5067 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
5068 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
5069 RgrEpdcchAddModLst *epdcchAddModLst;
5071 CMCHKPK(oduPackUInt8, param->isHdFddEnbld, mBuf);
5072 CMCHKPK(oduPackUInt8, param->pres, mBuf);
5073 CMCHKPK(oduPackUInt8, emtcEpdcchCfg->sfPtn.pres, mBuf);
5074 for(indx = 4; indx >=0; indx--)
5076 CMCHKPK(oduPackUInt8,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx],mBuf);
5078 CMCHKPK(cmPkTknUInt32,&emtcEpdcchCfg->startSymbolr11,mBuf);
5079 for(indx = RGR_MAX_EPDCCH_SET-1 ; indx >= 0; indx--)
5081 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5083 CMCHKPK(oduPackUInt8,epdcchAddModLst->setConfigId,mBuf);
5084 CMCHKPK(oduPackUInt8,epdcchAddModLst->transmissionType,mBuf);
5085 CMCHKPK(oduPackUInt8,epdcchAddModLst->resBlkAssignment.numPRBpairs,mBuf);
5086 for(idx = 4; idx >= 0; idx--)
5088 CMCHKPK(oduPackUInt8,epdcchAddModLst->resBlkAssignment.rbAssignment[idx],mBuf);
5090 CMCHKPK(oduPackUInt32,epdcchAddModLst->dmrsScrambSeq,mBuf);
5091 CMCHKPK(oduPackUInt32,epdcchAddModLst->pucchResStartoffset,mBuf);
5092 CMCHKPK(cmPkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
5093 CMCHKPK(cmPkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
5094 CMCHKPK(oduPackUInt8,epdcchAddModLst->extaddgrp2.pres,mBuf);
5095 CMCHKPK(oduPackUInt8,epdcchAddModLst->extaddgrp2.csiNumRep,mBuf);
5096 CMCHKPK(oduPackUInt8,epdcchAddModLst->extaddgrp2.mpddchPdschHop,mBuf);
5097 CMCHKPK(oduPackUInt8,epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD,mBuf);
5098 CMCHKPK(oduPackUInt16,epdcchAddModLst->extaddgrp2.mpdcchNumRep,mBuf);
5099 CMCHKPK(oduPackUInt32,epdcchAddModLst->extaddgrp2.mpddchNB,mBuf);
5102 /*Packing PUCCH Rep */
5103 CMCHKPK(oduPackUInt8,emtcPucchRepCfg->isPucchRepPres, mBuf);
5104 CMCHKPK(oduPackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat1,mBuf);
5105 CMCHKPK(oduPackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat2,mBuf);
5106 CMCHKPK(oduPackUInt8,param->pdschReptLevModeA,mBuf);
5108 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
5109 printf("\n EMTC RGR UE pack\n");
5110 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
5112 for(indx = 0; indx < 5; indx++)
5114 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
5116 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
5117 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
5119 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
5121 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5122 /* printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
5123 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);*/
5124 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
5125 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
5126 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
5127 for(idx = 0; idx < 5 ; idx++)
5129 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
5131 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
5132 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
5133 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
5134 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
5135 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
5136 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
5137 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
5138 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
5139 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
5140 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
5141 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
5142 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
5154 S16 cmUnpkRgr5gtfUeCfg
5156 RgrUe5gtfCfg *param,
5160 CMCHKUNPK(oduUnpackUInt8, ¶m->grpId, mBuf);
5161 CMCHKUNPK(oduUnpackUInt8, ¶m->BeamId, mBuf);
5162 CMCHKUNPK(oduUnpackUInt8, ¶m->numCC, mBuf);
5163 CMCHKUNPK(oduUnpackUInt8, ¶m->mcs, mBuf);
5164 CMCHKUNPK(oduUnpackUInt8, ¶m->maxPrb, mBuf);
5168 S16 cmPkRgr5gtfUeCfg
5170 RgrUe5gtfCfg *param,
5174 CMCHKPK(oduPackUInt8, param->maxPrb, mBuf);
5175 CMCHKPK(oduPackUInt8, param->mcs, mBuf);
5176 CMCHKPK(oduPackUInt8, param->numCC, mBuf);
5177 CMCHKPK(oduPackUInt8, param->BeamId, mBuf);
5178 CMCHKPK(oduPackUInt8, param->grpId, mBuf);
5184 /***********************************************************
5186 * Func : cmPkRgrUeCfg
5189 * Desc : UE configuration
5198 **********************************************************/
5207 CMCHKPK(cmPkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
5210 CMCHKPK(cmPkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
5212 CMCHKPK(oduPackUInt8, param->csgMmbrSta, mBuf);
5214 CMCHKPK(oduPackUInt32, param->accessStratumRls, mBuf);
5215 /* LTE_ADV_FLAG_REMOVED_START */
5216 CMCHKPK(cmPkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
5217 /* LTE_ADV_FLAG_REMOVED_END */
5219 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
5220 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
5222 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
5223 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
5225 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
5227 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
5229 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
5230 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
5232 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
5234 CMCHKPK(oduPackUInt8, param->isHdFddEnbld, mBuf);
5238 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
5239 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
5244 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
5247 CMCHKPK(oduPackUInt32, param->ackNackModeEnum, mBuf);
5250 CMCHKPK(cmPkTknUInt8, ¶m->dedPreambleId, mBuf);
5251 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
5252 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
5253 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
5254 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
5255 CMCHKPK(oduPackUInt8, param->isTtiBundlEnabled, mBuf);
5256 /*rgr_c_001.main_9 ADD added changes for DRX*/
5258 /* Anshika - Pack only if DRX is enabled */
5259 if(TRUE == param->ueDrxCfg.isDrxEnabled)
5261 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
5263 CMCHKPK(oduPackUInt8, param->ueDrxCfg.isDrxEnabled, mBuf); /* This has to be packed even if
5265 CMCHKPK(oduPackUInt32, param->ueCatEnum, mBuf);
5267 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
5269 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
5271 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
5272 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
5273 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
5274 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
5275 CMCHKPK(cmPkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
5276 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
5277 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
5278 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5284 /***********************************************************
5286 * Func : cmUnpkRgrUeCfg
5289 * Desc : UE configuration
5298 **********************************************************/
5308 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5309 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
5310 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
5311 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
5312 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
5313 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
5314 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
5315 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
5317 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
5319 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
5321 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
5322 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
5323 /*rgr_c_001.main_9 ADD added changes for DRX*/
5325 /* Anshika - Unpack only if DRX is enabled */
5326 CMCHKUNPK(oduUnpackUInt8, ¶m->ueDrxCfg.isDrxEnabled, mBuf);
5327 if(TRUE == param->ueDrxCfg.isDrxEnabled)
5329 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
5331 CMCHKUNPK(oduUnpackUInt8, ¶m->isTtiBundlEnabled, mBuf);
5332 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
5333 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
5334 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
5335 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
5336 CMCHKUNPK(cmUnpkTknUInt8, ¶m->dedPreambleId, mBuf);
5339 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
5340 param->ackNackModeEnum = tmpEnum;
5343 /*rgr_c_001.main_7 - Added support for SPS*/
5344 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
5346 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
5348 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
5349 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
5351 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
5353 CMCHKUNPK(oduUnpackUInt8, ¶m->isHdFddEnbld, mBuf);
5355 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
5356 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
5357 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
5358 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
5360 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
5363 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
5365 /* LTE_ADV_FLAG_REMOVED_START */
5366 CMCHKUNPK(cmUnpkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
5367 /* LTE_ADV_FLAG_REMOVED_END */
5368 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)¶m->accessStratumRls, mBuf);
5369 CMCHKUNPK(oduUnpackUInt8, ¶m->csgMmbrSta, mBuf);
5372 CMCHKUNPK(cmUnpkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
5376 CMCHKUNPK(cmUnpkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
5384 /***********************************************************
5386 * Func : cmPkRgrLchQosCfg
5389 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
5398 **********************************************************/
5399 S16 cmPkRgrLchQosCfg
5401 RgrLchQosCfg *param,
5407 CMCHKPK(oduPackUInt32, param->mbr, mBuf);
5408 CMCHKPK(oduPackUInt32, param->gbr, mBuf);
5409 CMCHKPK(oduPackUInt8, param->qci, mBuf);
5415 /***********************************************************
5417 * Func : cmUnpkRgrLchQosCfg
5420 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
5429 **********************************************************/
5430 S16 cmUnpkRgrLchQosCfg
5432 RgrLchQosCfg *param,
5438 CMCHKUNPK(oduUnpackUInt8, ¶m->qci, mBuf);
5439 CMCHKUNPK(oduUnpackUInt32, ¶m->gbr, mBuf);
5440 CMCHKUNPK(oduUnpackUInt32, ¶m->mbr, mBuf);
5443 /*rgr_c_001.main_7 - Added support for SPS*/
5446 /***********************************************************
5448 * Func : cmPkRgrLchSpsCfg
5451 * Desc : SPS related configuration for logical channels
5460 **********************************************************/
5461 S16 cmPkRgrLchSpsCfg
5463 RgrLchSpsCfg *param,
5470 CMCHKPK(oduPackUInt8, param->isSpsEnabled, mBuf);
5476 /***********************************************************
5478 * Func : cmUnpkRgrLchSpsCfg
5481 * Desc : SPS related configuration for logical channels
5490 **********************************************************/
5491 S16 cmUnpkRgrLchSpsCfg
5493 RgrLchSpsCfg *param,
5499 CMCHKUNPK(oduUnpackUInt8, ¶m->isSpsEnabled, mBuf);
5505 /***********************************************************
5507 * Func : cmPkRgrDlLchCfg
5510 * Desc : Logical channel configuration info for downlink logical channels
5519 **********************************************************/
5527 /*rgr_c_001.main_7 - Added support for SPS*/
5529 CMCHKPK(oduPackUInt8, param->rlcReorderTmr, mBuf);
5530 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
5531 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlQos, mBuf);
5532 CMCHKPK(oduPackUInt8, param->dlTrchType, mBuf);
5538 /***********************************************************
5540 * Func : cmUnpkRgrDlLchCfg
5543 * Desc : Logical channel configuration info for downlink logical channels
5552 **********************************************************/
5553 S16 cmUnpkRgrDlLchCfg
5561 CMCHKUNPK(oduUnpackUInt8, ¶m->dlTrchType, mBuf);
5562 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlQos, mBuf);
5563 /*rgr_c_001.main_7 - Added support for SPs*/
5564 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
5565 CMCHKUNPK(oduUnpackUInt8, ¶m->rlcReorderTmr, mBuf);
5571 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
5575 /***********************************************************
5577 * Func : cmPkRgrUlLchCfg
5580 * Desc : Logical channel configuration information for uplink logical channels
5589 **********************************************************/
5598 CMCHKPK(oduPackUInt8, param->qci, mBuf);
5599 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
5605 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
5606 /***********************************************************
5608 * Func : cmUnpkRgrUlLchCfg
5611 * Desc : Logical channel configuration information for uplink logical channels
5620 **********************************************************/
5621 S16 cmUnpkRgrUlLchCfg
5629 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
5630 CMCHKUNPK(oduUnpackUInt8, ¶m->qci, mBuf);
5637 /***********************************************************
5639 * Func : cmPkRgrUlLcgCfg
5642 * Desc : Logical channel configuration info for uplink logical channels
5651 **********************************************************/
5659 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
5663 CMCHKPK(oduPackUInt32, param->mbr, mBuf);
5664 CMCHKPK(oduPackUInt32, param->gbr, mBuf);
5666 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
5668 for (i = param->numLch - 1; i >= 0; i--)
5670 CMCHKPK(cmPkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
5672 CMCHKPK(oduPackUInt8, param->numLch, mBuf);
5674 CMCHKPK(oduPackUInt8, param->lcgId, mBuf);
5680 /***********************************************************
5682 * Func : cmUnpkRgrUlLcgCfg
5685 * Desc : Logical channel configuration info for uplink logical channels
5694 **********************************************************/
5695 S16 cmUnpkRgrUlLcgCfg
5702 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
5707 CMCHKUNPK(oduUnpackUInt8, ¶m->lcgId, mBuf);
5708 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
5710 CMCHKUNPK(oduUnpackUInt8, ¶m->numLch, mBuf);
5711 for (i = 0; i< param->numLch; i++)
5713 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
5717 CMCHKUNPK(oduUnpackUInt32, ¶m->gbr, mBuf);
5718 CMCHKUNPK(oduUnpackUInt32, ¶m->mbr, mBuf);
5722 S16 cmPkRgrUlLchQciCfg
5724 RgrUlLchQciCfg *param,
5728 CMCHKPK(oduPackUInt8, param->lcId, mBuf);
5729 CMCHKPK(oduPackUInt8, param->qci, mBuf);
5730 CMCHKPK(oduPackUInt8, param->lcgId, mBuf);
5733 S16 cmUnpkRgrUlLchQciCfg
5735 RgrUlLchQciCfg *param,
5739 CMCHKUNPK(oduUnpackUInt8, ¶m->lcgId, mBuf);
5740 CMCHKUNPK(oduUnpackUInt8, ¶m->qci, mBuf);
5741 CMCHKUNPK(oduUnpackUInt8, ¶m->lcId, mBuf);
5746 /***********************************************************
5748 * Func : cmPkRgrLchCfg
5751 * Desc : Logical channel configuration info for dedicated channels
5760 **********************************************************/
5768 CMCHKPK(oduPackUInt8, param->lcgId, mBuf);
5769 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
5770 CMCHKPK(cmPkRgrDlLchCfg, ¶m->dlInfo, mBuf);
5771 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
5772 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
5773 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
5774 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5780 /***********************************************************
5782 * Func : cmUnpkRgrLchCfg
5785 * Desc : Logical channel configuration info for dedicated channels
5794 **********************************************************/
5803 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5804 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
5805 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
5806 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
5807 CMCHKUNPK(cmUnpkRgrDlLchCfg, ¶m->dlInfo, mBuf);
5808 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
5809 CMCHKUNPK(oduUnpackUInt8, ¶m->lcgId, mBuf);
5822 CMCHKPK(cmPkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
5823 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
5824 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5837 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5838 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
5839 CMCHKUNPK(cmUnpkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
5845 /***********************************************************
5850 * Desc : Basic Configuration structure at RRM
5859 **********************************************************/
5868 switch(param->cfgType) {
5870 CMCHKPK(cmPkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
5873 CMCHKPK(cmPkRgrLchCfg, ¶m->u.lchCfg, mBuf);
5876 CMCHKPK(cmPkRgrUeCfg, ¶m->u.ueCfg, mBuf);
5879 CMCHKPK(cmPkRgrCellCfg, ¶m->u.cellCfg, mBuf);
5882 CMCHKPK(cmPkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
5887 CMCHKPK(oduPackUInt8, param->cfgType, mBuf);
5893 /***********************************************************
5895 * Func : cmUnpkRgrCfg
5898 * Desc : Basic Configuration structure at RRM
5907 **********************************************************/
5916 CMCHKUNPK(oduUnpackUInt8, ¶m->cfgType, mBuf);
5917 switch(param->cfgType) {
5919 CMCHKUNPK(cmUnpkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
5922 CMCHKUNPK(cmUnpkRgrCellCfg, ¶m->u.cellCfg, mBuf);
5925 CMCHKUNPK(cmUnpkRgrUeCfg, ¶m->u.ueCfg, mBuf);
5928 CMCHKUNPK(cmUnpkRgrLchCfg, ¶m->u.lchCfg, mBuf);
5931 CMCHKUNPK(cmUnpkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
5941 /***********************************************************
5943 * Func : cmPkRgrActvTime
5946 * Desc : Activation time information
5955 **********************************************************/
5964 CMCHKPK(cmPkLteTimingInfo, ¶m->actvTime, mBuf);
5965 CMCHKPK(oduPackUInt8, param->pres, mBuf);
5971 /***********************************************************
5973 * Func : cmUnpkRgrActvTime
5976 * Desc : Activation time information
5985 **********************************************************/
5986 S16 cmUnpkRgrActvTime
5994 CMCHKUNPK(oduUnpackUInt8, ¶m->pres, mBuf);
5995 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvTime, mBuf);
6001 /***********************************************************
6003 * Func : cmPkRgrCellRecfg
6006 * Desc : Cell reconfiguration structure at RRM
6015 **********************************************************/
6016 S16 cmPkRgrCellRecfg
6018 RgrCellRecfg *param,
6023 CMCHKPK(cmPkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
6024 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
6025 CMCHKPK(oduPackUInt8, param->isDynCfiEnb, mBuf);
6026 CMCHKPK(oduPackUInt8, param->isAutoCfgModeEnb, mBuf);
6027 /* LTE_ADV_FLAG_REMOVED_START */
6028 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
6029 /* LTE_ADV_FLAG_REMOVED_END */
6030 CMCHKPK(oduPackUInt16, param->t300TmrVal, mBuf);
6031 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
6033 CMCHKPK(cmPkRgrSiCfg, ¶m->siReCfg, mBuf);
6034 #endif /* RGR_SI_SCH */
6035 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
6036 CMCHKPK(cmPkRgrRachCfg, ¶m->rachRecfg, mBuf);
6037 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsRecfg, mBuf);
6038 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
6039 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
6040 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
6041 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
6042 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
6043 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
6044 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
6045 CMCHKPK(cmPkRgrActvTime, ¶m->recfgActvTime, mBuf);
6046 CMCHKPK(oduPackUInt32, param->recfgTypes, mBuf);
6047 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6053 /***********************************************************
6055 * Func : cmUnpkRgrCellRecfg
6058 * Desc : Cell reconfiguration structure at RRM
6067 **********************************************************/
6068 S16 cmUnpkRgrCellRecfg
6070 RgrCellRecfg *param,
6076 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6077 CMCHKUNPK(oduUnpackUInt32, ¶m->recfgTypes, mBuf);
6078 CMCHKUNPK(cmUnpkRgrActvTime, ¶m->recfgActvTime, mBuf);
6079 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
6080 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
6081 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
6082 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
6083 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
6084 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
6085 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
6086 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsRecfg, mBuf);
6087 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachRecfg, mBuf);
6088 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
6089 /* rgr_c_001.main_4-MOD-Modified for SI Enhancement. */
6091 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siReCfg, mBuf);
6092 #endif /* RGR_SI_SCH */
6093 CMCHKUNPK(oduUnpackUInt16, ¶m->t300TmrVal, mBuf);
6094 /* LTE_ADV_FLAG_REMOVED_START */
6095 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
6096 /* LTE_ADV_FLAG_REMOVED_END */
6097 CMCHKUNPK(oduUnpackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
6098 CMCHKUNPK(oduUnpackUInt8, ¶m->isDynCfiEnb, mBuf);
6099 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
6100 CMCHKUNPK(cmUnpkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
6107 /***********************************************************
6109 * Func : cmPkRgrUeRecfg
6112 * Desc : UE reconfiguration info
6121 **********************************************************/
6130 /* Note: As we add more members to emtcUeRecfg,
6131 create a new function for pkUnpk */
6132 CMCHKPK(oduPackUInt8, param->emtcUeRecfg.isHdFddEnbld, mBuf);
6134 CMCHKPK(oduPackUInt8, param->csgMmbrSta, mBuf);
6136 CMCHKPK(oduPackUInt32, param->accessStratumRls, mBuf);
6138 CMCHKPK(oduPackUInt8, param->simulAckNackCQIFormat3, mBuf);
6139 CMCHKPK(cmPkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
6140 CMCHKPK(cmPkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
6142 /* LTE_ADV_FLAG_REMOVED_START */
6143 CMCHKPK(oduPackUInt8, param->ueLteAdvCfg.isUeCellEdge, mBuf);
6144 CMCHKPK(oduPackUInt8, param->ueLteAdvCfg.isAbsUe, mBuf);
6145 CMCHKPK(oduPackUInt32, param->ueLteAdvCfg.pres, mBuf);
6146 /* LTE_ADV_FLAG_REMOVED_END */
6147 /*ccpu00130497: Removed the duplicate packing*/
6149 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6151 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6152 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6154 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6157 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6158 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6160 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6162 CMCHKPK(oduPackUInt8, param->isHdFddEnbld, mBuf);
6166 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
6167 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6168 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
6171 /*rgr_c_001.main_7 - Added support for SPS*/
6172 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
6173 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6175 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
6176 CMCHKPK(oduPackUInt32, param->ueCatEnum, mBuf);
6178 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
6179 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
6180 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
6181 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
6182 CMCHKPK(oduPackUInt8, param->isTtiBundlEnabled, mBuf);
6183 /*rgr_c_001.main_9 ADD added changes for DRX*/
6185 /* Anshika - Pack only if DRX is enabled */
6186 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
6188 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
6190 CMCHKPK(oduPackUInt8, param->ueDrxRecfg.isDrxEnabled, mBuf); /* This has to be packed even if
6192 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
6194 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6196 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
6198 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
6199 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
6200 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
6203 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
6206 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
6207 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6208 /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
6209 /* LTE_ADV_FLAG_REMOVED_START */
6210 /* KW fix for LTE_ADV */
6211 CMCHKPK(oduPackUInt32, param->ueRecfgTypes, mBuf);
6212 /* LTE_ADV_FLAG_REMOVED_END */
6213 CMCHKPK(cmPkLteRnti, param->newCrnti, mBuf);
6214 CMCHKPK(cmPkLteRnti, param->oldCrnti, mBuf);
6215 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6221 /***********************************************************
6223 * Func : cmUnpkRgrUeRecfg
6226 * Desc : UE reconfiguration info
6235 **********************************************************/
6236 S16 cmUnpkRgrUeRecfg
6245 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6246 CMCHKUNPK(cmUnpkLteRnti, ¶m->oldCrnti, mBuf);
6247 CMCHKUNPK(cmUnpkLteRnti, ¶m->newCrnti, mBuf);
6248 /* LTE_ADV_FLAG_REMOVED_START */
6249 /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
6250 /* KW fix for LTE_ADV */
6251 CMCHKUNPK(oduUnpackUInt32, ¶m->ueRecfgTypes, mBuf);
6252 /* LTE_ADV_FLAG_REMOVED_END */
6253 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6255 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
6258 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
6261 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
6262 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
6263 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
6265 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6267 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
6269 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
6270 /*rgr_c_001.main_9 ADD added changes for DRX*/
6272 /* Anshika - Unpack only if DRX is enabled */
6273 CMCHKUNPK(oduUnpackUInt8, ¶m->ueDrxRecfg.isDrxEnabled, mBuf);
6274 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
6276 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
6278 CMCHKUNPK(oduUnpackUInt8, ¶m->isTtiBundlEnabled, mBuf);
6279 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
6280 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
6281 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
6282 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
6283 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
6284 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)&tmpEnum, mBuf);
6285 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
6286 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6287 /*rgr_c_001.main_7 - Added support for SPS*/
6288 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
6290 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6292 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
6293 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6294 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
6297 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6299 CMCHKUNPK(oduUnpackUInt8, ¶m->isHdFddEnbld, mBuf);
6302 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6304 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6305 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6307 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6310 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6313 /* LTE_ADV_FLAG_REMOVED_START */
6314 CMCHKUNPK(oduUnpackUInt32, ¶m->ueLteAdvCfg.pres, mBuf);
6315 CMCHKUNPK(oduUnpackUInt8, ¶m->ueLteAdvCfg.isAbsUe, mBuf);
6316 CMCHKUNPK(oduUnpackUInt8, ¶m->ueLteAdvCfg.isUeCellEdge, mBuf);
6317 /* LTE_ADV_FLAG_REMOVED_END */
6319 CMCHKUNPK(cmUnpkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
6320 CMCHKUNPK(cmUnpkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
6321 CMCHKUNPK(oduUnpackUInt8, ¶m->simulAckNackCQIFormat3, mBuf);
6323 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)¶m->accessStratumRls, mBuf);
6325 CMCHKUNPK(oduUnpackUInt8, ¶m->csgMmbrSta, mBuf);
6327 CMCHKPK(oduUnpackUInt8, ¶m->emtcUeRecfg.isHdFddEnbld, mBuf);
6335 /***********************************************************
6337 * Func : cmPkRgrLchRecfg
6340 * Desc : Logical channel reconfiguration info for dedicated channels only
6349 **********************************************************/
6357 /*rgr_c_001.main_7 - Added support for SPS*/
6358 CMCHKPK(oduPackUInt8, param->lcgId, mBuf);
6360 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
6361 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
6363 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
6364 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
6365 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6366 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6372 /***********************************************************
6374 * Func : cmUnpkRgrLchRecfg
6377 * Desc : Logical channel reconfiguration info for dedicated channels only
6386 **********************************************************/
6387 S16 cmUnpkRgrLchRecfg
6395 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6396 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6397 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
6398 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
6399 /*rgr_c_001.main_7 - Added support for SPs*/
6400 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
6402 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
6403 CMCHKUNPK(oduUnpackUInt8, ¶m->lcgId, mBuf);
6418 CMCHKPK(oduPackUInt32, param->ulRecfg.mbr, mBuf);
6419 CMCHKPK(oduPackUInt32, param->ulRecfg.gbr, mBuf);
6421 for (i = param->ulRecfg.numLch - 1; i >= 0; i--)
6423 CMCHKPK(cmPkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
6425 CMCHKPK(oduPackUInt8, param->ulRecfg.numLch, mBuf);
6427 CMCHKPK(oduPackUInt8, param->ulRecfg.lcgId, mBuf);
6428 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6429 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6434 S16 cmUnpkRgrLcgRecfg
6444 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6445 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6446 CMCHKUNPK(oduUnpackUInt8, ¶m->ulRecfg.lcgId, mBuf);
6449 CMCHKUNPK(oduUnpackUInt8, ¶m->ulRecfg.numLch, mBuf);
6450 for (i = 0; i < param->ulRecfg.numLch; i++)
6452 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
6455 CMCHKUNPK(oduUnpackUInt32, ¶m->ulRecfg.gbr, mBuf);
6456 CMCHKUNPK(oduUnpackUInt32, ¶m->ulRecfg.mbr, mBuf);
6463 /***********************************************************
6465 * Func : cmPkRgrRecfg
6468 * Desc : Basic reconfiguration structure at RRM
6477 **********************************************************/
6486 switch(param->recfgType) {
6488 CMCHKPK(cmPkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
6491 CMCHKPK(cmPkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
6494 CMCHKPK(cmPkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
6497 CMCHKPK(cmPkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
6502 CMCHKPK(oduPackUInt8, param->recfgType, mBuf);
6508 /***********************************************************
6510 * Func : cmUnpkRgrRecfg
6513 * Desc : Basic reconfiguration structure at RRM
6522 **********************************************************/
6531 CMCHKUNPK(oduUnpackUInt8, ¶m->recfgType, mBuf);
6532 switch(param->recfgType) {
6534 CMCHKUNPK(cmUnpkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
6537 CMCHKUNPK(cmUnpkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
6540 CMCHKUNPK(cmUnpkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
6543 CMCHKUNPK(cmUnpkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
6552 /***********************************************************
6554 * Func : cmPkRgrUeDlSecCellRelInfo
6557 * Desc : DL Secondary Cell information of the UE
6566 **********************************************************/
6567 S16 cmPkRgrUeDlSecCellRelInfo
6569 RgrUeDlSecCellRelInfo *param,
6573 CMCHKPK(oduPackUInt16, param->sCellId, mBuf);
6574 CMCHKPK(oduPackUInt8, param->sCellIdx, mBuf);
6578 /***********************************************************
6580 * Func : cmPkRgrUeSecCellRelInfo
6583 * Desc : Secondary Cell Delete information of the UE
6592 **********************************************************/
6593 S16 cmPkRgrUeSecCellRelInfo
6595 RgrUeSecCellRelInfo *param,
6600 for(idx = param->numSCells - 1; idx >= 0; idx--)
6602 CMCHKPK(cmPkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[(uint8_t)idx],mBuf);
6604 CMCHKPK(oduPackUInt8, param->numSCells, mBuf);
6611 /***********************************************************
6616 * Desc : Basic Delete info for MAC
6625 **********************************************************/
6634 switch(param->delType) {
6636 CMCHKPK(oduPackUInt8, param->u.lcgDel.lcgId, mBuf);
6637 CMCHKPK(cmPkLteRnti, param->u.lcgDel.crnti, mBuf);
6638 CMCHKPK(cmPkLteCellId, param->u.lcgDel.cellId, mBuf);
6641 CMCHKPK(oduPackUInt8, param->u.lchDel.lcgId, mBuf);
6642 CMCHKPK(cmPkLteLcId, param->u.lchDel.lcId, mBuf);
6643 CMCHKPK(cmPkLteRnti, param->u.lchDel.crnti, mBuf);
6644 CMCHKPK(cmPkLteCellId, param->u.lchDel.cellId, mBuf);
6647 CMCHKPK(cmPkLteRnti, param->u.ueDel.crnti, mBuf);
6648 CMCHKPK(cmPkLteCellId, param->u.ueDel.cellId, mBuf);
6651 CMCHKPK(cmPkLteCellId, param->u.cellDel.cellId, mBuf);
6654 case RGR_SCELL_UE_CFG:
6655 CMCHKPK(cmPkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
6656 CMCHKPK(oduPackUInt32, param->u.ueScellRel.ueDelTypes, mBuf);
6657 CMCHKPK(cmPkLteRnti, param->u.ueScellRel.crnti, mBuf);
6658 CMCHKPK(cmPkLteCellId, param->u.ueScellRel.cellId, mBuf);
6664 CMCHKPK(oduPackUInt8, param->delType, mBuf);
6671 /***********************************************************
6673 * Func : cmUnpkRgrUeDlSecCellRelInfo
6676 * Desc : DL Secondary Cell information of the UE
6685 **********************************************************/
6686 S16 cmUnpkRgrUeDlSecCellRelInfo
6688 RgrUeDlSecCellRelInfo *param,
6692 CMCHKUNPK(oduUnpackUInt8, ¶m->sCellIdx, mBuf);
6693 CMCHKUNPK(oduUnpackUInt16, ¶m->sCellId, mBuf);
6698 /***********************************************************
6700 * Func : cmUnpkRgrUeSecCellRelInfo
6703 * Desc : Secondary Cell information of the UE
6712 **********************************************************/
6713 S16 cmUnpkRgrUeSecCellRelInfo
6715 RgrUeSecCellRelInfo *param,
6721 CMCHKUNPK(oduUnpackUInt8, ¶m->numSCells, mBuf);
6723 for(idx = 0; idx < param->numSCells;idx++)
6725 CMCHKUNPK(cmUnpkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[idx],mBuf);
6731 /***********************************************************
6733 * Func : cmUnpkRgrDel
6736 * Desc : Basic Delete info for MAC
6745 **********************************************************/
6754 CMCHKUNPK(oduUnpackUInt8, ¶m->delType, mBuf);
6755 switch(param->delType) {
6757 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.cellDel.cellId, mBuf);
6760 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueDel.cellId, mBuf);
6761 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueDel.crnti, mBuf);
6764 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lchDel.cellId, mBuf);
6765 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lchDel.crnti, mBuf);
6766 CMCHKUNPK(cmUnpkLteLcId, ¶m->u.lchDel.lcId, mBuf);
6767 CMCHKUNPK(oduUnpackUInt8, ¶m->u.lchDel.lcgId, mBuf);
6770 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lcgDel.cellId, mBuf);
6771 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lcgDel.crnti, mBuf);
6772 CMCHKUNPK(oduUnpackUInt8, ¶m->u.lcgDel.lcgId, mBuf);
6775 case RGR_SCELL_UE_CFG:
6776 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueScellRel.cellId, mBuf);
6777 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueScellRel.crnti, mBuf);
6778 CMCHKUNPK(oduUnpackUInt32, ¶m->u.ueScellRel.ueDelTypes, mBuf);
6779 CMCHKUNPK(cmUnpkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
6787 /***********************************************************
6789 * Func : cmPkRgrSonPrbCfg
6792 * Desc : SON PRB Configuration info for MAC
6801 **********************************************************/
6802 S16 cmPkRgrSonPrbCfg
6809 for(count = RGR_SCH_MAX_PA_PER_PRB - 1; count >= 0; count --)
6811 CMCHKPK(oduPackUInt32, param->paLevelPerPrb[count], mBuf);
6813 for(count = param->numCellCentreUEs - 1; count >= 0; count --)
6815 CMCHKPK(cmPkLteRnti, param->cellCentreUe[count], mBuf);
6817 for(count = param->numCellEdgeUEs - 1; count >= 0; count --)
6819 CMCHKPK(cmPkLteRnti, param->cellEdgeUe[count], mBuf);
6821 CMCHKPK(oduPackUInt8, param->numCellCentreUEs, mBuf);
6822 CMCHKPK(oduPackUInt8, param->numCellEdgeUEs, mBuf);
6823 CMCHKPK(oduPackUInt8, param->isSonIcicEnable, mBuf);
6827 /***********************************************************
6829 * Func : cmUnpkRgrSon
6832 * Desc : SON configuration info for MAC
6841 **********************************************************/
6842 S16 cmUnpkRgrSonPrbCfg
6849 CMCHKUNPK(oduUnpackUInt8, ¶m->isSonIcicEnable, mBuf);
6850 CMCHKUNPK(oduUnpackUInt8, ¶m->numCellEdgeUEs, mBuf);
6851 CMCHKUNPK(oduUnpackUInt8, ¶m->numCellCentreUEs, mBuf);
6852 for (count = 0; count < param->numCellEdgeUEs; count++)
6854 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellEdgeUe[count], mBuf);
6856 for (count = 0; count < param->numCellCentreUEs; count++)
6858 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellCentreUe[count], mBuf);
6860 for(count = 0; count < RGR_SCH_MAX_PA_PER_PRB; count ++)
6862 CMCHKUNPK(oduUnpackUInt32,(uint32_t *) ¶m->paLevelPerPrb[count], mBuf);
6866 /***********************************************************
6868 * Func : cmPkRgrSonCfg
6871 * Desc : SON Configuration info for MAC
6880 **********************************************************/
6888 switch(param->cfgType)
6890 case RGR_SON_PRB_CFG :
6891 CMCHKPK(cmPkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
6896 CMCHKPK(oduPackUInt32, param->cfgType, mBuf);
6900 /***********************************************************
6902 * Func : cmUnpkRgrSon
6905 * Desc : SON configuration info for MAC
6914 **********************************************************/
6922 CMCHKUNPK(oduUnpackUInt32, (uint32_t *)¶m->cfgType, mBuf);
6923 switch(param->cfgType)
6925 case RGR_SON_PRB_CFG :
6927 CMCHKUNPK(cmUnpkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
6937 /***********************************************************
6942 * Desc : UE RESET info for MAC
6951 **********************************************************/
6960 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6961 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6967 /***********************************************************
6969 * Func : cmUnpkRgrRst
6972 * Desc : UE RESET info for MAC
6981 **********************************************************/
6990 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6991 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6995 /***********************************************************
6997 * Func : cmUnPkRgrSCellActDeactInfo
7000 * Desc : SCell Activation information of the UE
7009 **********************************************************/
7010 static S16 cmUnPkRgrSCellActDeactInfo
7012 RgrSCellActDeactInfo *param,
7017 CMCHKUNPK(oduUnpackUInt8, ¶m->sCellIdx, mBuf);
7021 /***********************************************************
7023 * Func : cmUnPkRgrSCellActDeactEvnt
7026 * Desc : SCell Activation Configuration structure to SCH
7035 **********************************************************/
7036 S16 cmUnPkRgrSCellActDeactEvnt
7038 RgrSCellActDeactEvnt *param,
7045 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7046 CMCHKUNPK(oduUnpackUInt8, ¶m->numOfSCells, mBuf);
7048 for(idx = 0; idx < param->numOfSCells;idx++)
7050 CMCHKUNPK(cmUnPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[idx],mBuf);
7057 /***********************************************************
7059 * Func : cmPkRgrSCellActInfo
7062 * Desc : SCell Activation information of the UE
7071 **********************************************************/
7072 static S16 cmPkRgrSCellActDeactInfo
7074 RgrSCellActDeactInfo *param,
7079 CMCHKPK(oduPackUInt8, param->sCellIdx, mBuf);
7084 /***********************************************************
7086 * Func : cmPkRgrSCellActDeactEvnt
7089 * Desc : Basic Configuration structure at SCH
7098 **********************************************************/
7099 S16 cmPkRgrSCellActDeactEvnt
7101 RgrSCellActDeactEvnt *param,
7108 for(idx = param->numOfSCells - 1; idx >= 0; idx--)
7110 CMCHKPK(cmPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[(uint8_t)idx], mBuf);
7113 CMCHKPK(oduPackUInt8, param->numOfSCells, mBuf);
7114 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7120 #endif /* LTE_ADV */
7122 /***********************************************************
7124 * Func : cmPkRgrCfgReqInfo
7127 * Desc : Basic RGR configuration/reconfiguration info at RRM
7136 **********************************************************/
7137 S16 cmPkRgrCfgReqInfo
7139 RgrCfgReqInfo *param,
7145 switch(param->action) {
7147 CMCHKPK(cmPkRgrSonCfg, ¶m->u.sonCfg, mBuf);
7150 CMCHKPK(cmPkRgrRst, ¶m->u.rstInfo, mBuf);
7153 CMCHKPK(cmPkRgrDel, ¶m->u.delInfo, mBuf);
7156 CMCHKPK(cmPkRgrRecfg, ¶m->u.recfgInfo, mBuf);
7159 CMCHKPK(cmPkRgrCfg, ¶m->u.cfgInfo, mBuf);
7163 case RGR_SCELL_DEACT:
7164 case RGR_SCELL_READY:
7165 CMCHKPK(cmPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
7171 CMCHKPK(oduPackUInt8, param->action, mBuf);
7177 /***********************************************************
7179 * Func : cmUnpkRgrCfgReqInfo
7182 * Desc : Basic RGR configuration/reconfiguration info at RRM
7191 **********************************************************/
7192 S16 cmUnpkRgrCfgReqInfo
7194 RgrCfgReqInfo *param,
7200 CMCHKUNPK(oduUnpackUInt8, ¶m->action, mBuf);
7201 switch(param->action) {
7203 CMCHKUNPK(cmUnpkRgrCfg, ¶m->u.cfgInfo, mBuf);
7206 CMCHKUNPK(cmUnpkRgrRecfg, ¶m->u.recfgInfo, mBuf);
7209 CMCHKUNPK(cmUnpkRgrDel, ¶m->u.delInfo, mBuf);
7212 CMCHKUNPK(cmUnpkRgrRst, ¶m->u.rstInfo, mBuf);
7215 CMCHKUNPK(cmUnpkRgrSonCfg, ¶m->u.sonCfg, mBuf);
7219 case RGR_SCELL_DEACT:
7220 case RGR_SCELL_READY:
7221 CMCHKUNPK(cmUnPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
7223 #endif /* LTE_ADV */
7230 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
7232 /***********************************************************
7234 * Func : cmPkRgrUeBsrTmrCfg
7237 * Desc : BSR timer configuration per UE
7246 **********************************************************/
7247 S16 cmPkRgrUeBsrTmrCfg
7249 RgrUeBsrTmrCfg *param,
7255 CMCHKPK(oduPackUInt16, param->prdBsrTmr, mBuf);
7256 CMCHKPK(oduPackUInt16, param->retxBsrTmr, mBuf);
7257 CMCHKPK(oduPackUInt8, param->isPrdBsrTmrPres, mBuf);
7261 /***********************************************************
7263 * Func : cmUnpkRgrUeBsrTmrCfg
7266 * Desc : BSR timer configuration per UE
7275 **********************************************************/
7276 S16 cmUnpkRgrUeBsrTmrCfg
7278 RgrUeBsrTmrCfg *param,
7284 CMCHKUNPK(oduUnpackUInt8, ¶m->isPrdBsrTmrPres, mBuf);
7285 CMCHKUNPK(oduUnpackUInt16, ¶m->retxBsrTmr, mBuf);
7286 CMCHKUNPK(oduUnpackUInt16, ¶m->prdBsrTmr, mBuf);
7291 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
7292 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
7295 /***********************************************************
7297 * Func : cmPkRgrUeCqiReptCfg
7300 * Desc : Transaction ID between MAC and RRM
7309 **********************************************************/
7310 S16 cmPkRgrUeCqiReptCfg
7312 RgrUeCqiReptCfg *param,
7317 CMCHKPK(oduPackUInt8, param->numColltdCqiRept, mBuf);
7323 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7324 /***********************************************************
7326 * Func : cmUnpkRgrUeCqiReptCfg
7329 * Desc : Transaction ID between MAC and RRM
7338 **********************************************************/
7339 S16 cmUnpkRgrUeCqiReptCfg
7341 RgrUeCqiReptCfg *param,
7346 CMCHKUNPK(oduUnpackUInt8, ¶m->numColltdCqiRept, mBuf);
7352 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7353 /***********************************************************
7355 * Func : cmPkRgrStaInd
7358 * Desc : Packing Sta Indication sent to RRM
7367 **********************************************************/
7372 RgrStaIndInfo* staInd
7375 Buffer *mBuf = NULLP;
7377 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
7379 #if (ERRCLASS & ERRCLS_ADD_RES)
7380 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7381 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7382 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
7384 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
7385 sizeof(RgrStaIndInfo));
7389 if (cmPkRgrStaIndInfo(staInd, mBuf) != ROK)
7391 #if (ERRCLASS & ERRCLS_ADD_RES)
7392 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7393 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7394 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
7396 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd, sizeof(RgrStaIndInfo));
7401 if (SPkS16(suId, mBuf) != ROK)
7403 #if (ERRCLASS & ERRCLS_ADD_RES)
7404 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7405 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7406 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
7408 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
7409 sizeof(RgrStaIndInfo));
7414 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
7415 sizeof(RgrStaIndInfo)) != ROK)
7417 #if (ERRCLASS & ERRCLS_ADD_RES)
7418 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7419 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7420 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
7426 pst->event = (Event) EVTRGRSTAIND;
7427 return (SPstTsk(pst,mBuf));
7430 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7431 /***********************************************************
7433 * Func : cmUnpkRgrStaInd
7436 * Desc : Unpacking Sta Indication sent to RRM
7444 **********************************************************/
7453 RgrStaIndInfo *staInd;
7456 if (SUnpkS16(&suId, mBuf) != ROK)
7459 #if (ERRCLASS & ERRCLS_ADD_RES)
7460 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7461 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7462 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
7467 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&staInd,
7468 sizeof(RgrStaIndInfo))) != ROK)
7470 #if (ERRCLASS & ERRCLS_ADD_RES)
7471 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7472 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7473 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
7479 if (cmUnpkRgrStaIndInfo(staInd, mBuf) != ROK)
7481 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
7482 sizeof(RgrStaIndInfo));
7484 #if (ERRCLASS & ERRCLS_ADD_RES)
7485 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7486 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7487 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
7493 return ((*func)(pst, suId, staInd));
7496 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7497 /***********************************************************
7499 * Func : cmPkRgrStaIndInfo
7502 * Desc : Packing of StaIndInfo structure
7510 **********************************************************/
7511 S16 cmPkRgrStaIndInfo
7513 RgrStaIndInfo *param,
7519 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7520 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7521 CMCHKPK(cmPkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
7525 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7526 /***********************************************************
7528 * Func : cmUnpkRgrStaIndInfo
7531 * Desc : Unpacking of StaIndInfo structure
7539 **********************************************************/
7540 S16 cmUnpkRgrStaIndInfo
7542 RgrStaIndInfo *param,
7548 CMCHKUNPK(cmUnpkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
7549 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7550 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7554 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7555 /***********************************************************
7557 * Func : cmPkRgrUeCqiInfo
7560 * Desc : Packing of StaIndInfo structure
7568 **********************************************************/
7569 S16 cmPkRgrUeCqiInfo
7571 RgrUeCqiInfo *param,
7578 for (idx = param->numCqiRept - 1; idx >= 0; idx--)
7580 CMCHKPK(cmPkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
7582 CMCHKPK(oduPackUInt8, param->numCqiRept, mBuf);
7585 } /* cmPkRgrUeCqiInfo */
7587 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7588 /***********************************************************
7590 * Func : cmUnpkRgrUeCqiInfo
7593 * Desc : Packing of StaIndInfo structure
7601 **********************************************************/
7602 S16 cmUnpkRgrUeCqiInfo
7604 RgrUeCqiInfo *param,
7611 CMCHKUNPK(oduUnpackUInt8, ¶m->numCqiRept, mBuf);
7612 for (idx = 0; idx < param->numCqiRept; idx++)
7614 CMCHKUNPK(cmUnpkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
7618 } /* cmUnpkRgrUeCqiInfo */
7620 /***********************************************************
7622 * Func : cmPkRgrSubBandCqiInfo
7625 * Desc : Packing ofcmPkRgrSubBandCqiInfo structure
7633 **********************************************************/
7634 S16 cmPkRgrSubBandCqiInfo
7636 RgrSubBandCqiInfo *param,
7642 CMCHKPK(oduPackUInt8, param->cqi[0], mBuf);
7643 CMCHKPK(oduPackUInt8, param->cqi[1], mBuf);
7644 CMCHKPK(oduPackUInt8, param->subBandIdx, mBuf);
7647 } /* cmPkRgrSubBandCqiInfo */
7649 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7650 /***********************************************************
7652 * Func : cmPkRgrUeCqiRept
7655 * Desc : Packing of StaIndInfo structure
7663 **********************************************************/
7664 S16 cmPkRgrUeCqiRept
7666 RgrUeCqiRept *param,
7674 CMCHKPK(oduPackUInt8, param->cqi[0], mBuf);
7675 CMCHKPK(oduPackUInt8, param->cqi[1], mBuf);
7676 CMCHKPK(oduPackUInt8, param->cqiMode, mBuf);
7677 for (idx = param->numSubBand - 1; idx >= 0; idx--)
7680 CMCHKPK(cmPkRgrSubBandCqiInfo, ¶m->sbCqiInfo[count], mBuf);
7682 CMCHKPK(oduPackUInt8, param->numSubBand, mBuf);
7684 } /* cmPkRgrUeCqiRept */
7686 /***********************************************************
7688 * Func :cmUnpkRgrSubBandCqiInfo
7691 * Desc : Packing of cmUnpkRgrSubBandCqiInfo structure
7699 **********************************************************/
7700 S16 cmUnpkRgrSubBandCqiInfo
7702 RgrSubBandCqiInfo *param,
7708 CMCHKUNPK(oduUnpackUInt8, ¶m->subBandIdx, mBuf);
7709 CMCHKUNPK(oduUnpackUInt8, ¶m->cqi[1], mBuf);
7710 CMCHKUNPK(oduUnpackUInt8, ¶m->cqi[0], mBuf);
7713 } /* cmUnpkRgrSubBandCqiInfo*/
7715 /*rgr_c_001.main_9 ADD added changes for CQI management*/
7716 /***********************************************************
7718 * Func : cmUnpkRgrUeCqiRept
7721 * Desc : Packing of StaIndInfo structure
7729 **********************************************************/
7730 S16 cmUnpkRgrUeCqiRept
7732 RgrUeCqiRept *param,
7738 CMCHKUNPK(oduUnpackUInt8, ¶m->numSubBand, mBuf);
7739 for (idx = 0; idx < param->numSubBand; idx++)
7741 CMCHKUNPK(cmUnpkRgrSubBandCqiInfo, ¶m->sbCqiInfo[idx], mBuf);
7743 CMCHKUNPK(oduUnpackUInt8, ¶m->cqiMode, mBuf);
7744 CMCHKUNPK(oduUnpackUInt8, ¶m->cqi[1], mBuf);
7745 CMCHKUNPK(oduUnpackUInt8, ¶m->cqi[0], mBuf);
7748 } /* cmUnpkRgrUeCqiRept */
7749 #endif /* End of ifdef RGR_CQI_REPT */
7751 /* LTE_ADV_FLAG_REMOVED_START */
7752 /***********************************************************
7754 * Func : cmPkRgrLoadInfInd
7757 * Desc : Packing LOAD INFORMATION Indication sent to RRM
7766 **********************************************************/
7767 S16 cmPkRgrLoadInfInd
7771 RgrLoadInfIndInfo* loadInfInd
7774 Buffer *mBuf = NULLP;
7776 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
7778 #if (ERRCLASS & ERRCLS_ADD_RES)
7779 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7780 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7781 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
7783 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
7784 sizeof(RgrLoadInfIndInfo));
7788 if (cmPkRgrLoadInfIndInfo(loadInfInd, mBuf) != ROK)
7790 #if (ERRCLASS & ERRCLS_ADD_RES)
7791 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7792 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7793 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
7795 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
7796 sizeof(RgrLoadInfIndInfo));
7802 if (SPkS16(suId, mBuf) != ROK)
7804 #if (ERRCLASS & ERRCLS_ADD_RES)
7805 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7806 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7807 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
7809 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
7810 sizeof(RgrLoadInfIndInfo));
7815 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
7816 sizeof(RgrLoadInfIndInfo)) != ROK)
7818 #if (ERRCLASS & ERRCLS_ADD_RES)
7819 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7820 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7821 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
7827 pst->event = (Event) EVTRGRLOADINFIND;
7828 return (SPstTsk(pst,mBuf));
7831 /***********************************************************
7833 * Func : cmUnpkRgrLoadInfInd
7836 * Desc : Unpacking LOAD INFORMATION Indication sent to RRM
7844 **********************************************************/
7845 S16 cmUnpkRgrLoadInfInd
7853 RgrLoadInfIndInfo *loadInfInd = NULLP; /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
7856 if (SUnpkS16(&suId, mBuf) != ROK)
7859 #if (ERRCLASS & ERRCLS_ADD_RES)
7860 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7861 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7862 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
7867 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&loadInfInd,
7868 sizeof(RgrLoadInfIndInfo))) != ROK)
7870 #if (ERRCLASS & ERRCLS_ADD_RES)
7871 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7872 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7873 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
7879 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
7880 if (cmUnpkRgrLoadInfIndInfo(loadInfInd, pst, mBuf) != ROK)
7882 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
7883 sizeof(RgrLoadInfIndInfo));
7885 #if (ERRCLASS & ERRCLS_ADD_RES)
7886 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7887 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7888 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
7894 return ((*func)(pst, suId, loadInfInd));
7898 /***********************************************************
7900 * Func : cmPkRgrLoadInfIndInfo
7903 * Desc : Packing of LoadInfIndInfo structure
7911 **********************************************************/
7912 S16 cmPkRgrLoadInfIndInfo
7914 RgrLoadInfIndInfo *param,
7920 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7921 CMCHKPK(oduPackUInt16, param->bw, mBuf);
7922 if(RGR_ABS == param->type)
7924 for(idx = 0; idx < RGR_ABS_PATTERN_LEN; idx++)
7926 CMCHKPK(oduPackUInt32, param->u.absLoadInfo[idx], mBuf);
7931 CMCHKPK(cmPkTknStrOSXL, ¶m->u.rntpInfo, mBuf);
7934 CMCHKPK(oduPackUInt32, param->type, mBuf);
7939 /***********************************************************
7941 * Func : cmUnpkRgrLoadInfIndInfo
7944 * Desc : Unpacking of LoadInfIndInfo structure
7952 **********************************************************/
7953 S16 cmUnpkRgrLoadInfIndInfo
7955 RgrLoadInfIndInfo *param,
7962 /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
7967 CMCHKUNPK(oduUnpackUInt32, ¶m->type, mBuf);
7968 if(RGR_ABS == param->type)
7970 for(idx = RGR_ABS_PATTERN_LEN -1 ; idx >= 0; idx--)
7972 CMCHKUNPK(oduUnpackUInt32, ¶m->u.absLoadInfo[(uint8_t)idx], mBuf);
7978 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** Start */
7979 tknStr = ¶m->u.rntpInfo;
7981 CMCHKUNPK(oduUnpackUInt8, &tknStr->pres, mBuf);
7986 CMCHKUNPK(oduUnpackUInt16, &tknStr->len, mBuf);
7988 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&tknStr->val,tknStr->len)) != ROK) {
7989 #if (ERRCLASS & ERRCLS_ADD_RES)
7990 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7991 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7992 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
7999 for (ndx = 1; ndx <= tknStr->len; ndx++)
8001 CMCHKUNPK(oduUnpackUInt8, &tknStr->val[tknStr->len - ndx], mBuf);
8005 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** End */
8007 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
8008 CMCHKUNPK(oduUnpackUInt16, ¶m->bw, mBuf);
8010 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8014 /* LTE_ADV_FLAG_REMOVED_END */
8017 /*rgr_c_001.main_9 ADD added changes for CQI management*/
8018 /***********************************************************
8020 * Func : cmPkRgrUepACfg
8023 * Desc : Transaction ID between MAC and RRM
8032 **********************************************************/
8042 CMCHKPK(oduPackUInt32, param->pA, mBuf);
8044 CMCHKPK(oduPackUInt8, param->pAPrsnt, mBuf);
8050 /*rgr_c_001.main_9 ADD added changes for CQI management*/
8051 /***********************************************************
8053 * Func : cmUnpkRgrUepACfg
8056 * Desc : Transaction ID between MAC and RRM
8065 **********************************************************/
8066 S16 cmUnpkRgrUepACfg
8074 CMCHKUNPK(oduUnpackUInt8, (uint8_t *)¶m->pAPrsnt, mBuf);
8077 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)&tmpEnum, mBuf);
8078 param->pA = (RgrUeDlPwrCntrlPaCfg) tmpEnum;
8084 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
8085 /***********************************************************
8087 * Func : cmPkRgrUePdschDedCfg
8090 * Desc : Transaction ID between MAC and RRM
8099 **********************************************************/
8100 S16 cmPkRgrUePdschDedCfg
8102 RgrUePdschDedCfg *param,
8107 CMCHKPK(cmPkRgrUepACfg, ¶m->uepACfg, mBuf);
8113 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
8114 /***********************************************************
8116 * Func : cmUnpkRgrUePdschDedCfg
8119 * Desc : Transaction ID between MAC and RRM
8128 **********************************************************/
8129 S16 cmUnpkRgrUePdschDedCfg
8131 RgrUePdschDedCfg *param,
8136 CMCHKUNPK(cmUnpkRgrUepACfg, ¶m->uepACfg, mBuf);
8145 /***********************************************************
8147 * Func : cmPkRgrUeUlPwrDedSCellCfg
8150 * Desc : DL Secondary Cell UL PC Info
8159 **********************************************************/
8160 static S16 cmPkRgrUeUlPwrDedSCellCfg
8162 RgrUeUlPwrDedSCellCfg *param,
8166 CMCHKPK(oduPackUInt8, param->pSRSOffset, mBuf);
8167 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
8168 CMCHKPK(oduPackUInt8, param->isDeltaMCSEnabled, mBuf);
8169 CMCHKPK(oduPackUInt8, param->isAccumulated, mBuf);
8174 /***********************************************************
8176 * Func : cmUnpkRgrUeUlPwrDedSCellCfg
8179 * Desc : Uplink power configuration per UE
8188 **********************************************************/
8189 static S16 cmUnpkRgrUeUlPwrDedSCellCfg
8191 RgrUeUlPwrDedSCellCfg *param,
8197 CMCHKUNPK(oduUnpackUInt8, ¶m->isAccumulated, mBuf);
8198 CMCHKUNPK(oduUnpackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
8199 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
8200 CMCHKUNPK(oduUnpackUInt8, ¶m->pSRSOffset, mBuf);
8207 /***********************************************************
8209 * Func : cmPkRgrUeSecCellCfg
8212 * Desc : DL Secondary Cell information of the UE
8221 **********************************************************/
8222 static S16 cmPkRgrUeSecCellCfg
8224 RgrUeSecCellCfg *param,
8228 CMCHKPK(cmPkRgrUeUlPwrDedSCellCfg,¶m->ueSCellUlDedPwrCfg, mBuf);
8229 CMCHKPK(oduPackUInt8, param->isUlCaEnabled, mBuf);
8230 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
8232 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
8233 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
8235 CMCHKPK(cmPkRgrUeDlCqiCfg,¶m->ueSCellDlCqiCfg, mBuf);
8236 CMCHKPK(cmPkTknUInt32, ¶m->sCellDeActTmr, mBuf);
8237 CMCHKPK(oduPackUInt16, param->sCellId, mBuf);
8238 CMCHKPK(oduPackUInt8, param->sCellIdx, mBuf);
8245 /***********************************************************
8247 * Func : cmPkRgrUeSecCellInfo
8250 * Desc : Secondary Cell information of the UE
8259 **********************************************************/
8260 S16 cmPkRgrUeSecCellInfo
8262 RgrUeSecCellInfo *param,
8267 for(idx = param->numSCells - 1; idx >= 0; idx--)
8269 CMCHKPK(cmPkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[(uint8_t)idx],mBuf);
8272 CMCHKPK(oduPackUInt8, param->numSCells, mBuf);
8274 CMCHKPK(oduPackUInt8, param->useExtBSRSizes, mBuf);
8280 /***********************************************************
8282 * Func : cmUnpkRgrUeSecCellCfg
8285 * Desc : DL Secondary Cell information of the UE
8294 **********************************************************/
8295 static S16 cmUnpkRgrUeSecCellCfg
8297 RgrUeSecCellCfg *param,
8301 CMCHKUNPK(oduUnpackUInt8, ¶m->sCellIdx, mBuf);
8302 CMCHKUNPK(oduUnpackUInt16, ¶m->sCellId, mBuf);
8303 CMCHKUNPK(cmUnpkTknUInt32, ¶m->sCellDeActTmr, mBuf);
8304 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueSCellDlCqiCfg, mBuf);
8306 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
8308 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
8309 CMCHKUNPK(oduUnpackUInt8, ¶m->isUlCaEnabled, mBuf);
8310 CMCHKUNPK(cmUnpkRgrUeUlPwrDedSCellCfg, ¶m->ueSCellUlDedPwrCfg, mBuf);
8318 /***********************************************************
8320 * Func : cmUnpkRgrUeSecCellInfo
8323 * Desc : Secondary Cell information of the UE
8332 **********************************************************/
8333 S16 cmUnpkRgrUeSecCellInfo
8335 RgrUeSecCellInfo *param,
8341 CMCHKUNPK(oduUnpackUInt8, ¶m->useExtBSRSizes, mBuf);
8342 CMCHKUNPK(oduUnpackUInt8, ¶m->numSCells, mBuf);
8344 for(idx = 0; idx < param->numSCells;idx++)
8346 CMCHKUNPK(cmUnpkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[idx],mBuf);
8352 /***********************************************************
8354 * Func : cmPkRgrUeSCellAckPucchCfg
8357 * Desc : PUCCH Configuration information of the UE
8366 **********************************************************/
8367 S16 cmPkRgrUeSCellAckPucchCfg
8369 RgrUeSCellAckPucchCfg *param,
8375 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
8377 for(idx = param->u.format1Bcs.sCellAckN1ResTb2Count - 1; idx >=0 ;idx--)
8379 CMCHKPK(oduPackUInt16, param->u.format1Bcs.sCellAckN1ResTb2[(uint8_t)idx], mBuf);
8382 CMCHKPK(oduPackUInt8, param->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
8384 for(idx = param->u.format1Bcs.sCellAckN1ResTb1Count - 1; idx >=0 ;idx--)
8386 CMCHKPK(oduPackUInt16, param->u.format1Bcs.sCellAckN1ResTb1[(uint8_t)idx], mBuf);
8389 CMCHKPK(oduPackUInt8, param->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
8393 for(idx = param->u.format3.sCellAckN3ResAntP1Count - 1; idx >=0 ;idx--)
8395 CMCHKPK(oduPackUInt16, param->u.format3.sCellAckN3ResAntP1[(uint8_t)idx], mBuf);
8398 CMCHKPK(oduPackUInt8, param->u.format3.sCellAckN3ResAntP1Count, mBuf);
8400 for(idx = param->u.format3.sCellAckN3ResAntP0Count- 1; idx >=0 ;idx--)
8402 CMCHKPK(oduPackUInt16, param->u.format3.sCellAckN3ResAntP0[(uint8_t)idx], mBuf);
8405 CMCHKPK(oduPackUInt8, param->u.format3.sCellAckN3ResAntP0Count, mBuf);
8407 CMCHKPK(oduPackUInt32, param->pucchFormatType, mBuf);
8412 /***********************************************************
8414 * Func : cmUnpkRgrUeSCellAckPucchCfg
8417 * Desc : PUCCH Configuration information of the UE
8426 **********************************************************/
8427 S16 cmUnpkRgrUeSCellAckPucchCfg
8429 RgrUeSCellAckPucchCfg *param,
8436 CMCHKUNPK(oduUnpackUInt32, (uint32_t*)¶m->pucchFormatType, mBuf);
8437 //if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS)
8438 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
8440 CMCHKUNPK(oduUnpackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
8442 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb1Count; idx++)
8444 CMCHKUNPK(oduUnpackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb1[idx], mBuf);
8447 CMCHKUNPK(oduUnpackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
8449 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb2Count; idx++)
8451 CMCHKUNPK(oduUnpackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb2[idx], mBuf);
8456 CMCHKUNPK(oduUnpackUInt8, ¶m->u.format3.sCellAckN3ResAntP0Count, mBuf);
8458 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP0Count; idx++)
8460 CMCHKUNPK(oduUnpackUInt16, ¶m->u.format3.sCellAckN3ResAntP0[idx], mBuf);
8463 CMCHKUNPK(oduUnpackUInt8, ¶m->u.format3.sCellAckN3ResAntP1Count, mBuf);
8465 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP1Count; idx++)
8467 CMCHKUNPK(oduUnpackUInt16, ¶m->u.format3.sCellAckN3ResAntP1[idx], mBuf);
8480 /***********************************************************
8482 * Func : cmPkRgrUeStaInd
8485 * Desc : Packing Ue Sta Indication sent to RRM
8494 **********************************************************/
8499 RgrUeStaIndInfo* ueStaInd
8502 Buffer *mBuf = NULLP;
8503 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
8505 #if (ERRCLASS & ERRCLS_ADD_RES)
8506 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8507 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8508 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
8510 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
8511 sizeof(RgrUeStaIndInfo));
8515 if (cmPkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
8517 #if (ERRCLASS & ERRCLS_ADD_RES)
8518 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8519 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8520 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
8522 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
8523 sizeof(RgrUeStaIndInfo));
8528 if (SPkS16(suId, mBuf) != ROK)
8530 #if (ERRCLASS & ERRCLS_ADD_RES)
8531 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8532 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8533 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
8535 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
8536 sizeof(RgrUeStaIndInfo));
8541 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
8542 sizeof(RgrUeStaIndInfo)) != ROK)
8544 #if (ERRCLASS & ERRCLS_ADD_RES)
8545 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8546 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8547 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
8553 pst->event = (Event) EVTRGRUESTAIND;
8554 return (SPstTsk(pst,mBuf));
8557 /*rgr_c_001.main_9 ADD added changes for CQI management*/
8558 /***********************************************************
8560 * Func : cmUnpkRgrUeStaInd
8563 * Desc : Unpacking Sta Indication sent to RRM
8571 **********************************************************/
8572 S16 cmUnpkRgrUeStaInd
8580 RgrUeStaIndInfo *ueStaInd;
8583 if (SUnpkS16(&suId, mBuf) != ROK)
8586 #if (ERRCLASS & ERRCLS_ADD_RES)
8587 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8588 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8589 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
8594 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ueStaInd,
8595 sizeof(RgrUeStaIndInfo))) != ROK)
8597 #if (ERRCLASS & ERRCLS_ADD_RES)
8598 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8599 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8600 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
8606 if (cmUnpkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
8608 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
8609 sizeof(RgrUeStaIndInfo));
8611 #if (ERRCLASS & ERRCLS_ADD_RES)
8612 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8613 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8614 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
8620 return ((*func)(pst, suId, ueStaInd));
8623 /***********************************************************
8625 * Func : cmPkRgrUeStaIndInfo
8628 * Desc : Packing of UeStaIndInfo structure
8636 **********************************************************/
8637 S16 cmPkRgrUeStaIndInfo
8639 RgrUeStaIndInfo *param,
8645 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
8646 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
8647 CMCHKPK(oduPackUInt8, param->status, mBuf);
8651 /***********************************************************
8653 * Func : cmUnpkRgrUeStaIndInfo
8656 * Desc : Unpacking of UeStaIndInfo structure
8664 **********************************************************/
8665 S16 cmUnpkRgrUeStaIndInfo
8667 RgrUeStaIndInfo *param,
8673 CMCHKUNPK(oduUnpackUInt8, ¶m->status, mBuf);
8674 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8675 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8681 /***********************************************************
8683 * Func : cmPkRgrCellCsgParamCfg
8686 * Desc : CSG Parameter configuration
8695 **********************************************************/
8696 S16 cmPkRgrCellCsgParamCfg
8698 RgrCellCsgParamCfg *param,
8704 CMCHKPK(oduPackUInt8, param->minUlResNonCsg, mBuf);
8705 CMCHKPK(oduPackUInt8, param->minDlResNonCsg, mBuf);
8710 /***********************************************************
8712 * Func : cmUnpkRgrCellCsgParamCfg
8715 * Desc : Unpacking of RgrCellCsgParamCfg structure
8723 **********************************************************/
8724 S16 cmUnpkRgrCellCsgParamCfg
8726 RgrCellCsgParamCfg *param,
8732 CMCHKUNPK(oduUnpackUInt8, ¶m->minDlResNonCsg, mBuf);
8733 CMCHKUNPK(oduUnpackUInt8, ¶m->minUlResNonCsg, mBuf);
8738 /***********************************************************
8740 * Func : cmPkRgrCellCntrlCmdCfg
8743 * Desc : Packing of RgrCellCntrlCmdCfg structure
8751 **********************************************************/
8752 S16 cmPkRgrCellCntrlCmdCfg
8754 RgrCellCntrlCmdCfg *param,
8759 switch(param->cmdType)
8761 case RGR_CNTRL_CMD_RACH_OVRLD:
8762 CMCHKUNPK(oduPackUInt8, param->cmdDesc.rachOvrLd.backOffVal, mBuf);
8763 CMCHKUNPK(oduPackUInt8, param->cmdDesc.rachOvrLd.backOffEnb, mBuf);
8765 case RGR_CNTRL_CMD_CPU_OVRLD:
8766 CMCHKUNPK(oduPackUInt8, param->cmdDesc.cpuOvrLd.instruction, mBuf);
8771 CMCHKUNPK(oduPackUInt32, param->cmdType, mBuf);
8775 /***********************************************************
8777 * Func : cmUnpkRgrCellCntrlCmdCfg
8780 * Desc : Unpacking of RgrCellCntrlCmdCfg structure
8788 **********************************************************/
8789 S16 cmUnpkRgrCellCntrlCmdCfg
8791 RgrCellCntrlCmdCfg *param,
8798 CMCHKUNPK(oduUnpackUInt32, &tmpEnum, mBuf);
8799 param->cmdType = (RgrCellCntrlCmdType) tmpEnum;
8800 switch(param->cmdType)
8802 case RGR_CNTRL_CMD_RACH_OVRLD:
8803 CMCHKUNPK(oduUnpackUInt8, ¶m->cmdDesc.rachOvrLd.backOffEnb, mBuf);
8804 CMCHKUNPK(oduUnpackUInt8, ¶m->cmdDesc.rachOvrLd.backOffVal, mBuf);
8806 case RGR_CNTRL_CMD_CPU_OVRLD:
8807 CMCHKUNPK(oduUnpackUInt8, ¶m->cmdDesc.cpuOvrLd.instruction, mBuf);
8815 #endif /* End of if defined(LCRGR) */
8817 /**********************************************************************
8819 **********************************************************************/