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 : cmPkRgrBndReq
50 * Desc : Request from RRM to MAC to bind the interface saps
59 **********************************************************/
68 S16 cmPkRgrBndReq(pst, suId, spId)
76 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
77 #if (ERRCLASS & ERRCLS_ADD_RES)
78 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
79 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
80 (ErrVal)ERGR001, (ErrVal)0, "Packing failed");
84 if (SPkS16(spId, 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)ERGR002, (ErrVal)0, "Packing failed");
93 if (SPkS16(suId, mBuf) != ROK) {
94 #if (ERRCLASS & ERRCLS_ADD_RES)
95 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
96 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
97 (ErrVal)ERGR003, (ErrVal)0, "Packing failed");
102 pst->event = (Event) EVTRGRBNDREQ;
103 return (SPstTsk(pst,mBuf));
107 /***********************************************************
109 * Func : cmUnpkRgrBndReq
112 * Desc : Request from RRM to MAC to bind the interface saps
121 **********************************************************/
130 S16 cmUnpkRgrBndReq(func, pst, mBuf)
140 if (SUnpkS16(&suId, mBuf) != ROK) {
142 #if (ERRCLASS & ERRCLS_ADD_RES)
143 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
144 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
145 (ErrVal)ERGR004, (ErrVal)0, "Packing failed");
149 if (SUnpkS16(&spId, mBuf) != ROK) {
151 #if (ERRCLASS & ERRCLS_ADD_RES)
152 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
153 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
154 (ErrVal)ERGR005, (ErrVal)0, "Packing failed");
159 return ((*func)(pst, suId, spId));
163 /***********************************************************
165 * Func : cmPkRgrBndCfm
168 * Desc : Confirmation from MAC to RRM for the bind/Unbind
169 * request for the interface saps
178 **********************************************************/
187 S16 cmPkRgrBndCfm(pst, suId, status)
193 Buffer *mBuf = NULLP;
195 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
196 #if (ERRCLASS & ERRCLS_ADD_RES)
197 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
198 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
199 (ErrVal)ERGR006, (ErrVal)0, "Packing failed");
203 if (oduUnpackUInt8(status, mBuf) != ROK) {
204 #if (ERRCLASS & ERRCLS_ADD_RES)
205 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
206 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
207 (ErrVal)ERGR007, (ErrVal)0, "Packing failed");
212 if (SPkS16(suId, mBuf) != ROK) {
213 #if (ERRCLASS & ERRCLS_ADD_RES)
214 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
215 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
216 (ErrVal)ERGR008, (ErrVal)0, "Packing failed");
221 pst->event = (Event) EVTRGRBNDCFM;
222 return (SPstTsk(pst,mBuf));
226 /***********************************************************
228 * Func : cmUnpkRgrBndCfm
231 * Desc : Confirmation from MAC to RRM for the bind/Unbind
232 * request for the interface saps
241 **********************************************************/
250 S16 cmUnpkRgrBndCfm(func, pst, mBuf)
260 if (SUnpkS16(&suId, mBuf) != ROK) {
262 #if (ERRCLASS & ERRCLS_ADD_RES)
263 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
264 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
265 (ErrVal)ERGR009, (ErrVal)0, "Packing failed");
269 if (oduPackUInt8(&status, mBuf) != ROK) {
271 #if (ERRCLASS & ERRCLS_ADD_RES)
272 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
273 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
274 (ErrVal)ERGR010, (ErrVal)0, "Packing failed");
279 return ((*func)(pst, suId, status));
283 /***********************************************************
285 * Func : cmPkRgrUbndReq
288 * Desc : Request from RRM to MAC to Unbind the interface saps
297 **********************************************************/
306 S16 cmPkRgrUbndReq(pst, spId, reason)
312 Buffer *mBuf = NULLP;
314 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
315 #if (ERRCLASS & ERRCLS_ADD_RES)
316 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
317 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
318 (ErrVal)ERGR011, (ErrVal)0, "Packing failed");
322 if (SPkS16(reason, mBuf) != ROK) {
323 #if (ERRCLASS & ERRCLS_ADD_RES)
324 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
325 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
326 (ErrVal)ERGR012, (ErrVal)0, "Packing failed");
331 if (SPkS16(spId, mBuf) != ROK) {
332 #if (ERRCLASS & ERRCLS_ADD_RES)
333 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
334 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
335 (ErrVal)ERGR013, (ErrVal)0, "Packing failed");
340 pst->event = (Event) EVTRGRUBNDREQ;
341 return (SPstTsk(pst,mBuf));
345 /***********************************************************
347 * Func : cmUnpkRgrUbndReq
350 * Desc : Request from RRM to MAC to Unbind the interface saps
359 **********************************************************/
368 S16 cmUnpkRgrUbndReq(func, pst, mBuf)
378 if (SUnpkS16(&spId, mBuf) != ROK) {
380 #if (ERRCLASS & ERRCLS_ADD_RES)
381 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
382 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
383 (ErrVal)ERGR014, (ErrVal)0, "Packing failed");
387 if (SUnpkS16(&reason, mBuf) != ROK) {
389 #if (ERRCLASS & ERRCLS_ADD_RES)
390 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
391 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
392 (ErrVal)ERGR015, (ErrVal)0, "Packing failed");
397 return ((*func)(pst, spId, reason));
401 /***********************************************************
403 * Func : cmUnpkRgrCfgReq
406 * Desc : Configuration Request from RRM to MAC for
407 * configuring Cell/Ue/Lc
416 **********************************************************/
425 S16 cmUnpkRgrCfgReq(func, pst, mBuf)
431 RgrCfgTransId transId;
432 RgrCfgReqInfo *cfgReqInfo;
435 if (SUnpkS16(&spId, mBuf) != ROK) {
437 #if (ERRCLASS & ERRCLS_ADD_RES)
438 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
439 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
440 (ErrVal)ERGR021, (ErrVal)0, "Packing failed");
446 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
448 #if (ERRCLASS & ERRCLS_ADD_RES)
449 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
450 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
451 (ErrVal)ERGR022, (ErrVal)0, "Packing failed");
455 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo,sizeof(RgrCfgReqInfo))) != ROK) {
456 #if (ERRCLASS & ERRCLS_ADD_RES)
457 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
458 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
459 (ErrVal)ERGR023, (ErrVal)0, "Packing failed");
464 memset(cfgReqInfo, 0, sizeof(RgrCfgReqInfo));
465 if (pst->selector == ODU_SELECTOR_LC)
466 if (cmUnpkRgrCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
467 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(RgrCfgReqInfo));
469 #if (ERRCLASS & ERRCLS_ADD_RES)
470 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
471 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
472 (ErrVal)ERGR024, (ErrVal)0, "Packing failed");
477 return ((*func)(pst, transId, cfgReqInfo));
480 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
482 /***********************************************************
484 * Func : cmPkRgrTtiIndInfo
487 * Desc : Packs the TTI indication information.
496 **********************************************************/
498 S16 cmPkRgrTtiIndInfo
500 RgrTtiIndInfo *param,
504 S16 cmPkRgrTtiIndInfo(param, mBuf)
505 RgrTtiIndInfo *param;
509 CMCHKPK(oduUnpackUInt16, param->sfn, mBuf);
510 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
514 /***********************************************************
516 * Func : cmUnpkRgrTtiIndInfo
519 * Desc : Unpacking for RgrTtiIndInfo
527 **********************************************************/
529 S16 cmUnpkRgrTtiIndInfo
531 RgrTtiIndInfo *param,
535 S16 cmUnpkRgrTtiIndInfo(param, mBuf)
536 RgrTtiIndInfo *param;
541 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
542 CMCHKUNPK(oduPackUInt16, ¶m->sfn, mBuf);
547 /***********************************************************
549 * Func : cmPkRgrTtiInd
552 * Desc : TTI indication from MAC to RRM
561 **********************************************************/
567 RgrTtiIndInfo *ttiInd
570 S16 cmPkRgrTtiInd(pst, suId, ttiInd)
573 RgrTtiIndInfo *ttiInd;
576 Buffer *mBuf = NULLP;
578 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
579 #if (ERRCLASS & ERRCLS_ADD_RES)
580 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
581 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
582 (ErrVal)ERGR025, (ErrVal)0, "Packing failed");
586 if (cmPkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
587 #if (ERRCLASS & ERRCLS_ADD_RES)
588 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
589 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
590 (ErrVal)ERGR026, (ErrVal)0, "Packing failed");
592 SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
596 if (SPkS16(suId, mBuf) != ROK) {
597 #if (ERRCLASS & ERRCLS_ADD_RES)
598 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
599 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
600 (ErrVal)ERGR027, (ErrVal)0, "Packing failed");
602 SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
606 SPutSBuf(pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
607 pst->event = (Event) EVTRGRTTIIND;
608 return (SPstTsk(pst,mBuf));
612 /***********************************************************
614 * Func : cmUnpkRgrTtiInd
617 * Desc : TTI indication from MAC to RRM
626 **********************************************************/
635 S16 cmUnpkRgrTtiInd(func, pst, mBuf)
642 RgrTtiIndInfo *ttiInd;
645 if (SUnpkS16(&suId, mBuf) != ROK) {
647 #if (ERRCLASS & ERRCLS_ADD_RES)
648 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
649 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
650 (ErrVal)ERGR028, (ErrVal)0, "Packing failed");
654 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ttiInd, sizeof(RgrTtiIndInfo))) != ROK)
656 #if (ERRCLASS & ERRCLS_ADD_RES)
657 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
658 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
659 (ErrVal)ERGR029, (ErrVal)0, "UnPacking failed");
665 if (cmUnpkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
666 /*ccpu00114888- Memory Leak issue- Start*/
667 SPutSBuf(pst->region, pst->pool, (Data *)ttiInd,
668 sizeof(RgrTtiIndInfo));
669 /*ccpu00114888- Memory Leak issue- End*/
671 #if (ERRCLASS & ERRCLS_ADD_RES)
672 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
673 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
674 (ErrVal)ERGR030, (ErrVal)0, "Packing failed");
679 return ((*func)(pst, suId, ttiInd));
683 /***********************************************************
685 * Func : cmPkRgrCfgCfm
688 * Desc : Configuration Confirm from MAC to RRM
697 **********************************************************/
702 RgrCfgTransId transId,
706 S16 cmPkRgrCfgCfm(pst, transId, status)
708 RgrCfgTransId transId;
712 Buffer *mBuf = NULLP;
714 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
715 #if (ERRCLASS & ERRCLS_ADD_RES)
716 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
717 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
718 (ErrVal)ERGR031, (ErrVal)0, "Packing failed");
722 if (oduUnpackUInt8(status, mBuf) != ROK) {
723 #if (ERRCLASS & ERRCLS_ADD_RES)
724 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
725 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
726 (ErrVal)ERGR032, (ErrVal)0, "Packing failed");
731 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
732 #if (ERRCLASS & ERRCLS_ADD_RES)
733 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
734 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
735 (ErrVal)ERGR033, (ErrVal)0, "Packing failed");
740 pst->event = (Event) EVTMACSCHCFGCFM;
741 return (SPstTsk(pst,mBuf));
745 /***********************************************************
747 * Func : cmUnpkRgrCfgCfm
750 * Desc : Configuration Confirm from MAC to RRM
759 **********************************************************/
768 S16 cmUnpkRgrCfgCfm(func, pst, mBuf)
774 RgrCfgTransId transId;
778 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
780 #if (ERRCLASS & ERRCLS_ADD_RES)
781 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
782 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
783 (ErrVal)ERGR036, (ErrVal)0, "Packing failed");
787 if (oduPackUInt8(&status, mBuf) != ROK) {
789 #if (ERRCLASS & ERRCLS_ADD_RES)
790 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
791 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
792 (ErrVal)ERGR037, (ErrVal)0, "Packing failed");
797 return ((*func)(pst, transId, status));
800 /* rgr_c_001.main_4: ADD-Added for SI Enhancement. */
802 /***********************************************************
804 * Func : cmPkRgrSiCfgCfm
807 * Desc : SI Configuration Confirm from MAC to RRM
816 **********************************************************/
822 RgrCfgTransId transId,
826 S16 cmPkRgrSiCfgCfm(pst, suId, transId, status)
829 RgrCfgTransId transId;
833 Buffer *mBuf = NULLP;
836 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
837 #if (ERRCLASS & ERRCLS_ADD_RES)
838 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
839 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
840 (ErrVal)ERGR038, (ErrVal)0, "Packing failed");
844 if (oduUnpackUInt8(status, mBuf) != ROK) {
845 #if (ERRCLASS & ERRCLS_ADD_RES)
846 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
847 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
848 (ErrVal)ERGR039, (ErrVal)0, "Packing failed");
853 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
854 #if (ERRCLASS & ERRCLS_ADD_RES)
855 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
856 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
857 (ErrVal)ERGR040, (ErrVal)0, "Packing failed");
862 if (SPkS16(suId, mBuf) != ROK) {
863 #if (ERRCLASS & ERRCLS_ADD_RES)
864 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
865 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
866 (ErrVal)ERGR041, (ErrVal)0, "Packing failed");
872 pst->event = (Event) EVTRGRSICFGCFM;
873 return (SPstTsk(pst,mBuf));
877 /***********************************************************
879 * Func : cmUnpkRgrSiCfgCfm
882 * Desc : Configuration Confirm from MAC to RRM
891 **********************************************************/
893 S16 cmUnpkRgrSiCfgCfm
900 S16 cmUnpkRgrSiCfgCfm(func, pst, mBuf)
907 RgrCfgTransId transId;
911 if (SUnpkS16(&suId, mBuf) != ROK) {
913 #if (ERRCLASS & ERRCLS_ADD_RES)
914 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
915 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
916 (ErrVal)ERGR042, (ErrVal)0, "Packing failed");
920 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
922 #if (ERRCLASS & ERRCLS_ADD_RES)
923 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
924 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
925 (ErrVal)ERGR043, (ErrVal)0, "Packing failed");
929 if (oduPackUInt8(&status, mBuf) != ROK) {
931 #if (ERRCLASS & ERRCLS_ADD_RES)
932 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
933 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
934 (ErrVal)ERGR044, (ErrVal)0, "Packing failed");
939 return ((*func)(pst, suId, transId, status));
944 /***********************************************************
946 * Func : cmPkRgrCfgTransId
949 * Desc : Transaction ID between MAC and RRM
958 **********************************************************/
960 S16 cmPkRgrCfgTransId
962 RgrCfgTransId *param,
966 S16 cmPkRgrCfgTransId(param, mBuf)
967 RgrCfgTransId *param;
974 for (i=RGR_CFG_TRANSID_SIZE-1; i >= 0; i--) {
975 CMCHKPK(oduUnpackUInt8, param->trans[i], mBuf);
982 /***********************************************************
984 * Func : cmUnpkRgrCfgTransId
987 * Desc : Transaction ID between MAC and RRM
996 **********************************************************/
998 S16 cmUnpkRgrCfgTransId
1000 RgrCfgTransId *param,
1004 S16 cmUnpkRgrCfgTransId(param, mBuf)
1005 RgrCfgTransId *param;
1012 for (i=0; i<RGR_CFG_TRANSID_SIZE; i++) {
1013 CMCHKUNPK(oduPackUInt8, ¶m->trans[i], mBuf);
1020 /***********************************************************
1022 * Func : cmPkRgrDlHqCfg
1025 * Desc : Downlink HARQ configuration per Cell
1034 **********************************************************/
1042 S16 cmPkRgrDlHqCfg(param, mBuf)
1049 CMCHKPK(oduUnpackUInt8, param->maxMsg4HqTx, mBuf);
1050 CMCHKPK(oduUnpackUInt8, param->maxDlHqTx, mBuf);
1056 /***********************************************************
1058 * Func : cmUnpkRgrDlHqCfg
1061 * Desc : Downlink HARQ configuration per Cell
1070 **********************************************************/
1072 S16 cmUnpkRgrDlHqCfg
1078 S16 cmUnpkRgrDlHqCfg(param, mBuf)
1085 CMCHKUNPK(oduPackUInt8, ¶m->maxDlHqTx, mBuf);
1086 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg4HqTx, mBuf);
1092 /***********************************************************
1094 * Func : cmPkRgrRntiCfg
1097 * Desc : Range of RNTIs managed by MAC
1106 **********************************************************/
1114 S16 cmPkRgrRntiCfg(param, mBuf)
1121 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
1122 CMCHKPK(cmPkLteRnti, param->startRnti, mBuf);
1128 /***********************************************************
1130 * Func : cmUnpkRgrRntiCfg
1133 * Desc : Range of RNTIs managed by MAC
1142 **********************************************************/
1144 S16 cmUnpkRgrRntiCfg
1150 S16 cmUnpkRgrRntiCfg(param, mBuf)
1157 CMCHKUNPK(cmUnpkLteRnti, ¶m->startRnti, mBuf);
1158 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
1163 /***********************************************************
1165 * Func : cmPkRgrEmtcRntiCfg
1168 * Desc : Range of Emtc RNTIs managed by MAC
1177 **********************************************************/
1179 S16 cmPkRgrEmtcRntiCfg
1181 RgrEmtcRntiCfg *param,
1185 S16 cmPkRgrEmtcRntiCfg(param, mBuf)
1186 RgrEmtcRntiCfg *param;
1192 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
1193 CMCHKPK(cmPkLteRnti, param->rntiCeModeBRange, mBuf);
1194 CMCHKPK(cmPkLteRnti, param->rntiCeModeBStart, mBuf);
1195 CMCHKPK(cmPkLteRnti, param->rntiCeModeARange, mBuf);
1196 CMCHKPK(cmPkLteRnti, param->rntiCeModeAStart, mBuf);
1202 /***********************************************************
1204 * Func : cmUnpkRgrEmtcRntiCfg
1207 * Desc : Range of Emtc RNTIs managed by MAC
1216 **********************************************************/
1218 S16 cmUnpkRgrEmtcRntiCfg
1220 RgrEmtcRntiCfg *param,
1224 S16 cmUnpkRgrEmtcRntiCfg(param, mBuf)
1225 RgrEmtcRntiCfg *param;
1231 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeAStart, mBuf);
1232 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeARange, mBuf);
1233 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeBStart, mBuf);
1234 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeBRange, mBuf);
1235 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
1242 /***********************************************************
1244 * Func : cmPkRgrDlCmnCodeRateCfg
1247 * Desc : Downlink common channel code rate configuration per cell
1256 **********************************************************/
1258 S16 cmPkRgrDlCmnCodeRateCfg
1260 RgrDlCmnCodeRateCfg *param,
1264 S16 cmPkRgrDlCmnCodeRateCfg(param, mBuf)
1265 RgrDlCmnCodeRateCfg *param;
1270 CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
1271 CMCHKPK(oduUnpackUInt16, param->pdcchCodeRate, mBuf);
1272 CMCHKPK(oduUnpackUInt16, param->bcchPchRaCodeRate, mBuf);
1278 /***********************************************************
1280 * Func : cmUnpkRgrDlCmnCodeRateCfg
1283 * Desc : Downlink common channel code rate configuration per cell
1292 **********************************************************/
1294 S16 cmUnpkRgrDlCmnCodeRateCfg
1296 RgrDlCmnCodeRateCfg *param,
1300 S16 cmUnpkRgrDlCmnCodeRateCfg(param, mBuf)
1301 RgrDlCmnCodeRateCfg *param;
1306 CMCHKUNPK(oduPackUInt16, ¶m->bcchPchRaCodeRate, mBuf);
1307 CMCHKUNPK(oduPackUInt16, ¶m->pdcchCodeRate, mBuf);
1308 CMCHKUNPK(oduPackUInt8, ¶m->ccchCqi, mBuf);
1314 /***********************************************************
1316 * Func : cmPkRgrCfiCfg
1319 * Desc : Control Format Indicator (CFI) configuration per cell
1328 **********************************************************/
1336 S16 cmPkRgrCfiCfg(param, mBuf)
1342 CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
1348 /***********************************************************
1350 * Func : cmUnpkRgrCfiCfg
1353 * Desc : Control Format Indicator (CFI) configuration per cell
1362 **********************************************************/
1370 S16 cmUnpkRgrCfiCfg(param, mBuf)
1376 CMCHKUNPK(oduPackUInt8, ¶m->cfi, mBuf);
1382 /***********************************************************
1384 * Func : cmPkRgrPuschSubBandCfg
1387 * Desc : PUSCH sub-band configuration per cell
1396 **********************************************************/
1398 S16 cmPkRgrPuschSubBandCfg
1400 RgrPuschSubBandCfg *param,
1404 S16 cmPkRgrPuschSubBandCfg(param, mBuf)
1405 RgrPuschSubBandCfg *param;
1412 for (i=param->numSubbands-1; i >= 0; i--) {
1413 CMCHKPK(oduUnpackUInt8, param->dmrs[i], mBuf);
1415 CMCHKPK(oduUnpackUInt8, param->size, mBuf);
1416 CMCHKPK(oduUnpackUInt8, param->numSubbands, mBuf);
1417 CMCHKPK(oduUnpackUInt8, param->subbandStart, mBuf);
1423 /***********************************************************
1425 * Func : cmUnpkRgrPuschSubBandCfg
1428 * Desc : PUSCH sub-band configuration per cell
1437 **********************************************************/
1439 S16 cmUnpkRgrPuschSubBandCfg
1441 RgrPuschSubBandCfg *param,
1445 S16 cmUnpkRgrPuschSubBandCfg(param, mBuf)
1446 RgrPuschSubBandCfg *param;
1453 CMCHKUNPK(oduPackUInt8, ¶m->subbandStart, mBuf);
1454 CMCHKUNPK(oduPackUInt8, ¶m->numSubbands, mBuf);
1455 CMCHKUNPK(oduPackUInt8, ¶m->size, mBuf);
1456 for (i=0; i<param->numSubbands; i++) {
1457 CMCHKUNPK(oduPackUInt8, ¶m->dmrs[i], mBuf);
1464 /***********************************************************
1466 * Func : cmPkRgrUlCmnCodeRateCfg
1469 * Desc : Uplink common channel code rate configuration per cell
1478 **********************************************************/
1480 S16 cmPkRgrUlCmnCodeRateCfg
1482 RgrUlCmnCodeRateCfg *param,
1486 S16 cmPkRgrUlCmnCodeRateCfg(param, mBuf)
1487 RgrUlCmnCodeRateCfg *param;
1492 CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
1498 /***********************************************************
1500 * Func : cmUnpkRgrUlCmnCodeRateCfg
1503 * Desc : Uplink common channel code rate configuration per cell
1512 **********************************************************/
1514 S16 cmUnpkRgrUlCmnCodeRateCfg
1516 RgrUlCmnCodeRateCfg *param,
1520 S16 cmUnpkRgrUlCmnCodeRateCfg(param, mBuf)
1521 RgrUlCmnCodeRateCfg *param;
1526 CMCHKUNPK(oduPackUInt8, ¶m->ccchCqi, mBuf);
1532 /***********************************************************
1534 * Func : cmPkRgrUlTrgCqiCfg
1537 * Desc : Target Uplink CQI to achieve through group power control configured per cell
1546 **********************************************************/
1548 S16 cmPkRgrUlTrgCqiCfg
1550 RgrUlTrgCqiCfg *param,
1554 S16 cmPkRgrUlTrgCqiCfg(param, mBuf)
1555 RgrUlTrgCqiCfg *param;
1560 CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
1566 /***********************************************************
1568 * Func : cmUnpkRgrUlTrgCqiCfg
1571 * Desc : Target Uplink CQI to achieve through group power control configured per cell
1580 **********************************************************/
1582 S16 cmUnpkRgrUlTrgCqiCfg
1584 RgrUlTrgCqiCfg *param,
1588 S16 cmUnpkRgrUlTrgCqiCfg(param, mBuf)
1589 RgrUlTrgCqiCfg *param;
1594 CMCHKUNPK(oduPackUInt8, ¶m->trgCqi, mBuf);
1600 /***********************************************************
1602 * Func : cmPkRgrBwCfg
1605 * Desc : Bandwidth configuration per cell
1614 **********************************************************/
1622 S16 cmPkRgrBwCfg(param, mBuf)
1628 CMCHKPK(oduUnpackUInt8, param->ulTotalBw, mBuf);
1629 CMCHKPK(oduUnpackUInt8, param->dlTotalBw, mBuf);
1635 /* EMTC related pack changes start*/
1638 S16 cmPkRgrEmtcSiCfg
1640 RgrEmtcSiCfg *param,
1644 S16 cmPkRgrEmtcSiCfg(param, mBuf)
1645 RgrEmtcSiCfg *param;
1652 CMCHKPK(oduUnpackUInt8, param->siHoppingEnable, mBuf);
1653 CMCHKPK(oduUnpackUInt32, param->modPrd, mBuf);
1654 CMCHKPK(oduUnpackUInt8, param->siWinSizeBr, mBuf);
1655 CMCHKPK(oduUnpackUInt8, param->sib1Repetition, mBuf);
1656 CMCHKPK(oduUnpackUInt8, param->siRepetition, mBuf);
1658 CMCHKPK(oduUnpackUInt16, param->startSymbolLc, mBuf);
1659 //CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1660 /*Changes by SIMRAN*/
1661 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
1663 CMCHKPK(oduUnpackUInt16, param->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
1667 //CMCHKPK(SPkU64,param->fddDLOrTddSfBitmapLC.u.ptn40, mBuf);
1668 for (i=0; i<2; i++) {
1669 CMCHKPK(oduUnpackUInt32, param->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1673 CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1674 //CMCHKPK(oduUnpackUInt16, param->fddDlOrTddSfBitmapBR, mBuf);
1676 for (i= (param->numSi-1); i >= 0; i--) {
1677 CMCHKPK(oduUnpackUInt8, param->schdInfo[i].emtcSiNarrowBand, mBuf);
1678 CMCHKPK(oduUnpackUInt16, param->schdInfo[i].emtcSiTbs, mBuf);
1681 for (i= (param->numSi-1); i >= 0; i--) {
1682 CMCHKPK(oduUnpackUInt32, param->siPeriodicity[i], mBuf);
1685 CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
1694 S16 cmPkRgrEmtcRachCfg
1696 RgrEmtcRachCfg *param,
1700 S16 cmPkRgrEmtcRachCfg(param, mBuf)
1701 RgrEmtcRachCfg *param;
1708 CMCHKPK(oduUnpackUInt8, param->emtcCeLvlSupported, mBuf);
1710 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1711 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcRarHopping, mBuf);
1712 CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcWinSize, mBuf);
1713 CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcContResTmr, mBuf);
1714 CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].emtcPreambleTransMax, mBuf);
1715 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.firstPreamble, mBuf);
1716 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.lastPreamble, mBuf);
1724 S16 cmPkRgrEmtcPdschCfg
1726 RgrEmtcPdschCfg*param,
1730 S16 cmPkRgrEmtcPdschCfg(param, mBuf)
1731 RgrEmtcPdschCfg *param;
1736 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
1737 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
1743 S16 cmPkRgrEmtcPuschCfg
1745 RgrEmtcPuschCfg*param,
1749 S16 cmPkRgrEmtcPuschCfg(param, mBuf)
1750 RgrEmtcPuschCfg *param;
1754 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
1755 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
1756 CMCHKPK(oduUnpackUInt8, param->emtcHoppingOffset, mBuf);
1763 S16 cmPkRgrEmtcPucchCfg
1765 RgrEmtcPucchCfg *param,
1769 S16 cmPkRgrEmtcPucchCfg(param, mBuf)
1770 RgrEmtcPucchCfg *param;
1777 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1778 CMCHKPK(oduUnpackUInt16, param->emtcN1pucchAnInfoLst[i], mBuf);
1781 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl0, mBuf);
1782 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
1783 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
1784 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl3, mBuf);
1791 S16 cmPkRgrEmtcPrachCeParamCfg
1793 RgrEmtcPrachCEParamLst *param,
1797 S16 cmPkRgrEmtcPrachCeParamCfg(param, mBuf)
1798 RgrEmtcPrachCEParamLst *param;
1802 CMCHKPK(oduUnpackUInt8, param->emtcPrachCfgIdx, mBuf);
1803 CMCHKPK(oduUnpackUInt8, param->emtcPrachFreqOffset, mBuf);
1804 CMCHKPK(oduUnpackUInt16, param->emtcPrachStartSubFrame, mBuf);
1805 CMCHKPK(oduUnpackUInt8, param->emtcMaxPremAttemptCE, mBuf);
1806 CMCHKPK(oduUnpackUInt8, param->emtcNumRepPerPreambleAtt, mBuf);
1807 CMCHKPK(oduUnpackUInt8, param->emtcNumMpdcchNBtoMonitor, mBuf);
1808 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNBtoMonitor[0], mBuf);
1809 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNBtoMonitor[1], mBuf);
1810 CMCHKPK(oduUnpackUInt16, param->emtcMpdcchNumRep, mBuf);
1811 CMCHKPK(oduUnpackUInt8, param->emtcPrachHoppingCfg, mBuf);
1818 S16 cmPkRgrEmtcPrachCfg
1820 RgrEmtcPrachCfg *param,
1824 S16 cmPkRgrEmtcPrachCfg(param, mBuf)
1825 RgrEmtcPrachCfg *param;
1831 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchStartSFCssRaFdd, mBuf);
1832 CMCHKPK(oduUnpackUInt8, param->emtcPrachHopingOffset, mBuf);
1833 CMCHKPK(oduUnpackUInt8, param->emtcInitialCElevel, mBuf);
1834 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1835 CMCHKPK(cmPkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
1847 RgrEmtcCellCfg *param,
1851 S16 cmPkRgrEmtcCfg(param, mBuf)
1852 RgrEmtcCellCfg *param;
1856 CMCHKPK(oduUnpackUInt16, param->pci, mBuf);
1857 CMCHKPK(oduUnpackUInt32, param->emtcT300Tmr, mBuf);
1858 CMCHKPK(oduUnpackUInt32, param->emtcT301Tmr, mBuf);
1859 CMCHKPK(cmPkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
1860 CMCHKPK(cmPkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
1861 CMCHKPK(cmPkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
1862 CMCHKPK(cmPkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
1863 CMCHKPK(cmPkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
1864 CMCHKPK(cmPkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
1865 CMCHKPK(cmPkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
1866 CMCHKPK(oduUnpackUInt8, param->emtcPdschNbIdx, mBuf);
1867 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNbIdx, mBuf);
1868 CMCHKPK(oduUnpackUInt8, param->emtcPuschNbIdx, mBuf);
1873 /* EMTC related pack changes end*/
1875 /* EMTC related unpack changes start*/
1878 S16 cmUnpkRgrEmtcSiCfg
1880 RgrEmtcSiCfg *param,
1884 S16 cmUnpkRgrEmtcSiCfg(param, mBuf)
1885 RgrEmtcSiCfg *param;
1892 CMCHKUNPK(oduPackUInt8, ¶m->numSi, mBuf);
1894 for (i=0; i < param->numSi ; i++)
1896 CMCHKUNPK(oduPackUInt32,(uint32_t*)&tmpEnum,mBuf);
1897 param->siPeriodicity[i] = (RgrSiPeriodicity) tmpEnum;
1900 for (i=0; i < param->numSi ; i++)
1902 CMCHKUNPK(oduPackUInt16, ¶m->schdInfo[i].emtcSiTbs, mBuf);
1903 CMCHKUNPK(oduPackUInt8, ¶m->schdInfo[i].emtcSiNarrowBand, mBuf);
1905 //CMCHKUNPK(oduPackUInt16, ¶m->fddDlOrTddSfBitmapBR, mBuf);
1906 CMCHKUNPK(oduPackUInt8, ¶m->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1907 /*Changes by SIMRAN*/
1908 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
1910 CMCHKUNPK(oduPackUInt16, ¶m->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
1914 for (i=1; i>=0; i--) {
1915 CMCHKUNPK(oduPackUInt32, ¶m->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1919 CMCHKUNPK(oduPackUInt16, ¶m->startSymbolLc, mBuf);
1920 CMCHKUNPK(oduPackUInt8, ¶m->siRepetition, mBuf);
1921 CMCHKUNPK(oduPackUInt8, ¶m->sib1Repetition, mBuf);
1922 CMCHKUNPK(oduPackUInt8, ¶m->siWinSizeBr, mBuf);
1923 CMCHKUNPK(oduPackUInt32, (uint32_t*)&tmpEnum, mBuf);
1924 param->modPrd = (RgrModPeriodicity) tmpEnum;
1925 CMCHKUNPK(oduPackUInt8, ¶m->siHoppingEnable, mBuf);
1934 S16 cmUnpkRgrEmtcRachCfg
1936 RgrEmtcRachCfg *param,
1940 S16 cmUnpkRgrEmtcRachCfg(param, mBuf)
1941 RgrEmtcRachCfg *param;
1947 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
1948 CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.lastPreamble), mBuf);
1949 CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.firstPreamble), mBuf);
1950 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].emtcPreambleTransMax), mBuf);
1951 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcContResTmr), mBuf);
1952 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcWinSize), mBuf);
1953 CMCHKUNPK(oduPackUInt8,&(param->ceLevelInfo[i].emtcRarHopping), mBuf);
1955 CMCHKUNPK(oduPackUInt8, ¶m->emtcCeLvlSupported, mBuf);
1961 S16 cmUnpkRgrEmtcPdschCfg
1963 RgrEmtcPdschCfg*param,
1967 S16 cmUnpkRgrEmtcPdschCfg(param, mBuf)
1968 RgrEmtcPdschCfg *param;
1973 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1974 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1979 S16 cmUnpkRgrEmtcPuschCfg
1981 RgrEmtcPuschCfg*param,
1985 S16 cmUnpkRgrEmtcPuschCfg(param, mBuf)
1986 RgrEmtcPuschCfg *param;
1990 CMCHKUNPK(oduPackUInt8, ¶m->emtcHoppingOffset, mBuf);
1991 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1992 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1999 S16 cmUnpkRgrEmtcPucchCfg
2001 RgrEmtcPucchCfg *param,
2005 S16 cmUnpkRgrEmtcPucchCfg(param, mBuf)
2006 RgrEmtcPucchCfg *param;
2014 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl3, mBuf);
2015 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl2, mBuf);
2016 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl1, mBuf);
2017 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl0, mBuf);
2019 for (i=0; i < RGR_MAX_CE_LEVEL ; i++) {
2020 CMCHKUNPK(oduPackUInt16, ¶m->emtcN1pucchAnInfoLst[i], mBuf);
2027 S16 cmUnpkRgrEmtcPrachCeParamCfg
2029 RgrEmtcPrachCEParamLst *param,
2033 S16 cmUnpkRgrEmtcPrachCeParamCfg(param, mBuf)
2034 RgrEmtcPrachCEParamLst *param;
2038 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachHoppingCfg, mBuf);
2039 CMCHKUNPK(oduPackUInt16, ¶m->emtcMpdcchNumRep, mBuf);
2040 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNBtoMonitor[1], mBuf);
2041 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNBtoMonitor[0], mBuf);
2042 CMCHKUNPK(oduPackUInt8, ¶m->emtcNumMpdcchNBtoMonitor, mBuf);
2043 CMCHKUNPK(oduPackUInt8, ¶m->emtcNumRepPerPreambleAtt, mBuf);
2044 CMCHKUNPK(oduPackUInt8, ¶m->emtcMaxPremAttemptCE, mBuf);
2045 CMCHKUNPK(oduPackUInt16, ¶m->emtcPrachStartSubFrame, mBuf);
2046 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachFreqOffset, mBuf);
2047 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachCfgIdx, mBuf);
2054 S16 cmUnpkRgrEmtcPrachCfg
2056 RgrEmtcPrachCfg *param,
2060 S16 cmUnpkRgrEmtcPrachCfg(param, mBuf)
2061 RgrEmtcPrachCfg *param;
2067 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
2068 CMCHKUNPK(cmUnpkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
2070 CMCHKUNPK(oduPackUInt8, ¶m->emtcInitialCElevel, mBuf);
2071 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachHopingOffset, mBuf);
2072 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchStartSFCssRaFdd, mBuf);
2078 S16 cmUnpkRgrEmtcCfg
2080 RgrEmtcCellCfg *param,
2084 S16 cmUnpkRgrEmtcCfg(param, mBuf)
2085 RgrEmtcCellCfg *param;
2090 CMCHKUNPK(oduPackUInt8, ¶m->emtcPuschNbIdx, mBuf);
2091 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNbIdx, mBuf);
2092 CMCHKUNPK(oduPackUInt8, ¶m->emtcPdschNbIdx, mBuf);
2093 CMCHKUNPK(cmUnpkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
2094 CMCHKUNPK(cmUnpkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
2095 CMCHKUNPK(cmUnpkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
2096 CMCHKUNPK(cmUnpkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
2097 CMCHKUNPK(cmUnpkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
2098 CMCHKUNPK(cmUnpkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
2099 CMCHKUNPK(cmUnpkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
2100 CMCHKUNPK(oduPackUInt32,¶m->emtcT301Tmr, mBuf);
2101 CMCHKUNPK(oduPackUInt32, ¶m->emtcT300Tmr, mBuf);
2102 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
2111 /* EMTC related unpack changes end*/
2117 /***********************************************************
2119 * Func : cmUnpkRgrBwCfg
2122 * Desc : Bandwidth configuration per cell
2131 **********************************************************/
2139 S16 cmUnpkRgrBwCfg(param, mBuf)
2145 CMCHKUNPK(oduPackUInt8, ¶m->dlTotalBw, mBuf);
2146 CMCHKUNPK(oduPackUInt8, ¶m->ulTotalBw, mBuf);
2152 /***********************************************************
2154 * Func : cmPkRgrPhichCfg
2157 * Desc : PHICH configuration per cell
2166 **********************************************************/
2174 S16 cmPkRgrPhichCfg(param, mBuf)
2180 CMCHKPK(oduUnpackUInt8, param->isDurExtend, mBuf);
2181 CMCHKPK(oduUnpackUInt32, param->ngEnum, mBuf);
2187 /***********************************************************
2189 * Func : cmUnpkRgrPhichCfg
2192 * Desc : PHICH configuration per cell
2201 **********************************************************/
2203 S16 cmUnpkRgrPhichCfg
2209 S16 cmUnpkRgrPhichCfg(param, mBuf)
2217 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2218 param->ngEnum = (RgrPhichNg) tmpEnum;
2219 CMCHKUNPK(oduPackUInt8, ¶m->isDurExtend, mBuf);
2225 /***********************************************************
2227 * Func : cmPkRgrPucchCfg
2230 * Desc : PUCCH configuration per cell
2239 **********************************************************/
2247 S16 cmPkRgrPucchCfg(param, mBuf)
2253 CMCHKPK(oduUnpackUInt8, param->maxPucchRb, mBuf);
2254 CMCHKPK(oduUnpackUInt8, param->cyclicShift, mBuf);
2255 CMCHKPK(oduUnpackUInt8, param->deltaShift, mBuf);
2256 CMCHKPK(oduUnpackUInt16, param->n1PucchAn, mBuf);
2257 CMCHKPK(oduUnpackUInt8, param->resourceSize, mBuf);
2264 /***********************************************************
2266 * Func : cmUnpkRgrPucchCfg
2269 * Desc : PUCCH configuration per cell
2278 **********************************************************/
2280 S16 cmUnpkRgrPucchCfg
2286 S16 cmUnpkRgrPucchCfg(param, mBuf)
2293 CMCHKUNPK(oduPackUInt8, ¶m->resourceSize, mBuf);
2294 CMCHKUNPK(oduPackUInt16, ¶m->n1PucchAn, mBuf);
2295 CMCHKUNPK(oduPackUInt8, ¶m->deltaShift, mBuf);
2296 CMCHKUNPK(oduPackUInt8, ¶m->cyclicShift, mBuf);
2297 CMCHKUNPK(oduPackUInt8, ¶m->maxPucchRb, mBuf);
2304 /***********************************************************
2306 * Func : cmPkRgrSrsCfg
2309 * Desc : SRS configuration per cell
2318 **********************************************************/
2326 S16 cmPkRgrSrsCfg(param, mBuf)
2333 CMCHKPK(oduUnpackUInt8, param->srsSubFrameCfg, mBuf);
2334 CMCHKPK(oduUnpackUInt32, param->srsBwEnum, mBuf);
2335 CMCHKPK(oduUnpackUInt32, param->srsCfgPrdEnum, mBuf);
2336 CMCHKPK(oduUnpackUInt8, param->isSrsCfgSetup, mBuf);
2342 /***********************************************************
2344 * Func : cmUnpkRgrSrsCfg
2347 * Desc : SRS configuration per cell
2356 **********************************************************/
2364 S16 cmUnpkRgrSrsCfg(param, mBuf)
2372 CMCHKUNPK(oduPackUInt8, ¶m->isSrsCfgSetup, mBuf);
2373 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2374 param->srsCfgPrdEnum = (RgrSrsCfgPrd) tmpEnum;
2375 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2376 param->srsBwEnum = (RgrSrsBwCfg) tmpEnum;
2377 CMCHKUNPK(oduPackUInt8, ¶m->srsSubFrameCfg, mBuf);
2383 /***********************************************************
2385 * Func : cmPkRgrRachCfg
2388 * Desc : RACH configuration per cell
2397 **********************************************************/
2405 S16 cmPkRgrRachCfg(param, mBuf)
2413 CMCHKPK(oduUnpackUInt8, param->prachResource, mBuf);
2414 CMCHKPK(oduUnpackUInt16, param->msgSizeGrpA, mBuf);
2415 CMCHKPK(oduUnpackUInt8, param->sizeRaPreambleGrpA, mBuf);
2416 CMCHKPK(oduUnpackUInt8, param->numRaPreamble, mBuf);
2417 CMCHKPK(oduUnpackUInt8, param->maxMsg3Tx, mBuf);
2418 for (i=param->raOccasion.size-1; i >= 0; i--) {
2419 CMCHKPK(oduUnpackUInt8, param->raOccasion.subFrameNum[i], mBuf);
2421 CMCHKPK(oduUnpackUInt32, param->raOccasion.sfnEnum, mBuf);
2422 CMCHKPK(oduUnpackUInt8, param->raOccasion.size, mBuf);
2423 CMCHKPK(oduUnpackUInt8, param->raWinSize, mBuf);
2424 CMCHKPK(oduUnpackUInt8, param->preambleFormat, mBuf);
2426 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
2427 * timer configuration */
2428 CMCHKPK(oduUnpackUInt8, param->contResTmr, mBuf);
2435 /***********************************************************
2437 * Func : cmUnpkRgrRachCfg
2440 * Desc : RACH configuration per cell
2449 **********************************************************/
2451 S16 cmUnpkRgrRachCfg
2457 S16 cmUnpkRgrRachCfg(param, mBuf)
2466 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
2467 * timer configuration */
2468 CMCHKUNPK(oduPackUInt8, ¶m->contResTmr, mBuf);
2470 CMCHKUNPK(oduPackUInt8, ¶m->preambleFormat, mBuf);
2471 CMCHKUNPK(oduPackUInt8, ¶m->raWinSize, mBuf);
2472 CMCHKUNPK(oduPackUInt8, ¶m->raOccasion.size, mBuf);
2473 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2474 param->raOccasion.sfnEnum = (RgrRaSfn) tmpEnum;
2475 for (i=0; i<param->raOccasion.size; i++) {
2476 CMCHKUNPK(oduPackUInt8, ¶m->raOccasion.subFrameNum[i], mBuf);
2478 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg3Tx, mBuf);
2479 CMCHKUNPK(oduPackUInt8, ¶m->numRaPreamble, mBuf);
2480 CMCHKUNPK(oduPackUInt8, ¶m->sizeRaPreambleGrpA, mBuf);
2481 CMCHKUNPK(oduPackUInt16, ¶m->msgSizeGrpA, mBuf);
2482 CMCHKUNPK(oduPackUInt8, ¶m->prachResource, mBuf);
2488 /***********************************************************
2490 * Func : cmPkRgrSiCfg
2493 * Desc : SI Configuration per cell
2502 **********************************************************/
2510 S16 cmPkRgrSiCfg(param, mBuf)
2515 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
2518 #endif/*RGR_SI_SCH*/
2522 if(param->numSi > sizeof(param->siPeriodicity)/
2523 sizeof(param->siPeriodicity[0]))
2524 param->numSi = sizeof(param->siPeriodicity)/
2525 sizeof(param->siPeriodicity[0]);
2527 for (idx=param->numSi-1; idx >= 0; idx--) {
2528 /* Enum to be packed/unpacked as uint32_t instead of S32 */
2529 CMCHKPK(oduUnpackUInt32, param->siPeriodicity[idx], mBuf);
2531 CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
2532 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
2533 CMCHKPK(oduUnpackUInt32, (uint32_t)param->modPrd, mBuf);
2534 #endif/*RGR_SI_SCH*/
2535 CMCHKPK(oduUnpackUInt8, param->retxCnt, mBuf);
2536 CMCHKPK(oduUnpackUInt8, param->siWinSize, mBuf);
2542 /***********************************************************
2544 * Func : cmUnpkRgrSiCfg
2547 * Desc : SI Configuration per cell
2556 **********************************************************/
2564 S16 cmUnpkRgrSiCfg(param, mBuf)
2570 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
2573 #endif/*RGR_SI_SCH*/
2576 CMCHKUNPK(oduPackUInt8, ¶m->siWinSize, mBuf);
2577 CMCHKUNPK(oduPackUInt8, ¶m->retxCnt, mBuf);
2579 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
2580 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2581 param->modPrd = (RgrModPeriodicity) tmpEnum;
2582 CMCHKUNPK(oduPackUInt8, ¶m->numSi, mBuf);
2584 if(param->numSi > sizeof(param->siPeriodicity)/
2585 sizeof(param->siPeriodicity[0]))
2586 param->numSi = sizeof(param->siPeriodicity)/
2587 sizeof(param->siPeriodicity[0]);
2589 /* Enum to be packed/unpacked as uint32_t instead of S32 */
2590 for (idx=0; idx < param->numSi; idx++) {
2591 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2592 param->siPeriodicity[idx] = (RgrSiPeriodicity) tmpEnum;
2594 #endif/*RGR_SI_SCH*/
2601 /***********************************************************
2603 * Func : cmPkRgrTpcRntiCfg
2606 * Desc : TPC RNTI Range
2615 **********************************************************/
2617 S16 cmPkRgrTpcRntiCfg
2619 RgrTpcRntiCfg *param,
2623 S16 cmPkRgrTpcRntiCfg(param, mBuf)
2624 RgrTpcRntiCfg *param;
2630 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
2631 CMCHKPK(cmPkLteRnti, param->startTpcRnti, mBuf);
2637 /***********************************************************
2639 * Func : cmUnpkRgrTpcRntiCfg
2642 * Desc : TPC RNTI Range
2651 **********************************************************/
2653 S16 cmUnpkRgrTpcRntiCfg
2655 RgrTpcRntiCfg *param,
2659 S16 cmUnpkRgrTpcRntiCfg(param, mBuf)
2660 RgrTpcRntiCfg *param;
2666 CMCHKUNPK(cmUnpkLteRnti, ¶m->startTpcRnti, mBuf);
2667 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
2673 /***********************************************************
2675 * Func : cmPkRgrUlPwrCfg
2678 * Desc : Cell specific power configuration
2687 **********************************************************/
2695 S16 cmPkRgrUlPwrCfg(param, mBuf)
2702 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
2703 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
2704 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
2705 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
2706 CMCHKPK(SPkS8, param->deltaPreambleMsg3, mBuf);
2707 CMCHKPK(SPkS8, param->p0NominalPucch, mBuf);
2708 CMCHKPK(oduUnpackUInt32, param->alpha, mBuf);
2709 CMCHKPK(SPkS8, param->p0NominalPusch, mBuf);
2715 /***********************************************************
2717 * Func : cmUnpkRgrUlPwrCfg
2720 * Desc : Cell specific power configuration
2729 **********************************************************/
2731 S16 cmUnpkRgrUlPwrCfg
2737 S16 cmUnpkRgrUlPwrCfg(param, mBuf)
2745 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPusch, mBuf);
2746 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2747 param->alpha = (RgrPwrAlpha) tmpEnum;
2748 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPucch, mBuf);
2749 CMCHKUNPK(SUnpkS8, ¶m->deltaPreambleMsg3, mBuf);
2750 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
2751 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
2752 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
2753 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
2759 /***********************************************************
2761 * Func : cmPkRgrPuschCfg
2764 * Desc : brief cell specific hopping configuration
2773 **********************************************************/
2781 S16 cmPkRgrPuschCfg(param, mBuf)
2788 CMCHKPK(oduUnpackUInt8, param->hopOffst, mBuf);
2789 CMCHKPK(oduUnpackUInt8, param->isIntraHop, mBuf);
2790 CMCHKPK(oduUnpackUInt8, param->numSubBands, mBuf);
2796 /***********************************************************
2798 * Func : cmUnpkRgrPuschCfg
2801 * Desc : brief cell specific hopping configuration
2810 **********************************************************/
2812 S16 cmUnpkRgrPuschCfg
2818 S16 cmUnpkRgrPuschCfg(param, mBuf)
2825 CMCHKUNPK(oduPackUInt8, ¶m->numSubBands, mBuf);
2826 CMCHKUNPK(oduPackUInt8, ¶m->isIntraHop, mBuf);
2827 CMCHKUNPK(oduPackUInt8, ¶m->hopOffst, mBuf);
2833 /***********************************************************
2835 * Func : cmPkRgrCodeBookRstCfg
2838 * Desc : Number of bits in code book for different transmission modes
2847 **********************************************************/
2849 S16 cmPkRgrCodeBookRstCfg
2851 RgrCodeBookRstCfg *param,
2855 S16 cmPkRgrCodeBookRstCfg(param, mBuf)
2856 RgrCodeBookRstCfg *param;
2863 for (i=1-1; i >= 0; i--) {
2864 CMCHKPK(oduUnpackUInt32, param->pmiBitMap[i], mBuf);
2866 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
2872 /***********************************************************
2874 * Func : cmUnpkRgrCodeBookRstCfg
2877 * Desc : Number of bits in code book for different transmission modes
2886 **********************************************************/
2888 S16 cmUnpkRgrCodeBookRstCfg
2890 RgrCodeBookRstCfg *param,
2894 S16 cmUnpkRgrCodeBookRstCfg(param, mBuf)
2895 RgrCodeBookRstCfg *param;
2902 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
2903 for (i=0; i<1; i++) {
2904 CMCHKUNPK(oduPackUInt32, ¶m->pmiBitMap[i], mBuf);
2911 /***********************************************************
2913 * Func : cmPkRgrPreambleSetCfg
2916 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2925 **********************************************************/
2927 S16 cmPkRgrPreambleSetCfg
2929 RgrPreambleSetCfg *param,
2933 S16 cmPkRgrPreambleSetCfg(param, mBuf)
2934 RgrPreambleSetCfg *param;
2940 CMCHKPK(oduUnpackUInt8, param->size, mBuf);
2941 CMCHKPK(oduUnpackUInt8, param->start, mBuf);
2942 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
2948 /***********************************************************
2950 * Func : cmUnpkRgrPreambleSetCfg
2953 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2962 **********************************************************/
2964 S16 cmUnpkRgrPreambleSetCfg
2966 RgrPreambleSetCfg *param,
2970 S16 cmUnpkRgrPreambleSetCfg(param, mBuf)
2971 RgrPreambleSetCfg *param;
2977 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
2978 CMCHKUNPK(oduPackUInt8, ¶m->start, mBuf);
2979 CMCHKUNPK(oduPackUInt8, ¶m->size, mBuf);
2985 /***********************************************************
2987 * Func : cmPkRgrCmnLchCfg
2990 * Desc : Logical channel configuration info for common channels
2999 **********************************************************/
3001 S16 cmPkRgrCmnLchCfg
3003 RgrCmnLchCfg *param,
3007 S16 cmPkRgrCmnLchCfg(param, mBuf)
3008 RgrCmnLchCfg *param;
3014 CMCHKPK(oduUnpackUInt8, param->ulTrchType, mBuf);
3015 CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
3016 CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
3017 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
3018 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
3024 /***********************************************************
3026 * Func : cmUnpkRgrCmnLchCfg
3029 * Desc : Logical channel configuration info for common channels
3038 **********************************************************/
3040 S16 cmUnpkRgrCmnLchCfg
3042 RgrCmnLchCfg *param,
3046 S16 cmUnpkRgrCmnLchCfg(param, mBuf)
3047 RgrCmnLchCfg *param;
3053 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
3054 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
3055 CMCHKUNPK(oduPackUInt8, ¶m->dir, mBuf);
3056 CMCHKUNPK(oduPackUInt8, ¶m->dlTrchType, mBuf);
3057 CMCHKUNPK(oduPackUInt8, ¶m->ulTrchType, mBuf);
3063 /***********************************************************
3065 * Func : cmPkRgrDlfsCfg
3068 * Desc : RGR configuration for DLFS scheduler
3077 **********************************************************/
3085 S16 cmPkRgrDlfsCfg(param, mBuf)
3092 CMCHKPK(oduUnpackUInt8, param->thresholdCqi, mBuf);
3093 CMCHKPK(oduUnpackUInt8, param->isDlFreqSel, mBuf);
3099 /***********************************************************
3101 * Func : cmUnpkRgrDlfsCfg
3104 * Desc : RGR configuration for DLFS scheduler
3113 **********************************************************/
3115 S16 cmUnpkRgrDlfsCfg
3121 S16 cmUnpkRgrDlfsCfg(param, mBuf)
3128 CMCHKUNPK(oduPackUInt8, ¶m->isDlFreqSel, mBuf);
3129 CMCHKUNPK(oduPackUInt8, ¶m->thresholdCqi, mBuf);
3139 /***********************************************************
3141 * Func : cmPkRgrTddPrachInfo
3144 * Desc : PRACH resource information for TDD
3153 **********************************************************/
3155 S16 cmPkRgrTddPrachInfo
3157 RgrTddPrachInfo *param,
3161 S16 cmPkRgrTddPrachInfo(param, mBuf)
3162 RgrTddPrachInfo *param;
3168 CMCHKPK(oduUnpackUInt8, param->ulStartSfIdx, mBuf);
3169 CMCHKPK(oduUnpackUInt8, param->halfFrm, mBuf);
3170 CMCHKPK(oduUnpackUInt32, param->sfn, mBuf);
3171 CMCHKPK(oduUnpackUInt8, param->freqIdx, mBuf);
3177 /***********************************************************
3179 * Func : cmUnpkRgrTddPrachInfo
3182 * Desc : PRACH resource information for TDD
3191 **********************************************************/
3193 S16 cmUnpkRgrTddPrachInfo
3195 RgrTddPrachInfo *param,
3199 S16 cmUnpkRgrTddPrachInfo(param, mBuf)
3200 RgrTddPrachInfo *param;
3207 CMCHKUNPK(oduPackUInt8, ¶m->freqIdx, mBuf);
3208 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3209 param->sfn = tmpEnum;
3210 CMCHKUNPK(oduPackUInt8, ¶m->halfFrm, mBuf);
3211 CMCHKUNPK(oduPackUInt8, ¶m->ulStartSfIdx, mBuf);
3217 /***********************************************************
3219 * Func : cmPkRgrTddPrachRscInfo
3222 * Desc : Set of PRACH Information for TDD
3231 **********************************************************/
3233 S16 cmPkRgrTddPrachRscInfo
3235 RgrTddPrachRscInfo *param,
3239 S16 cmPkRgrTddPrachRscInfo(param, mBuf)
3240 RgrTddPrachRscInfo *param;
3247 for (i=param->numRsc-1; i >= 0; i--) {
3248 CMCHKPK(cmPkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
3250 CMCHKPK(oduUnpackUInt8, param->numRsc, mBuf);
3256 /***********************************************************
3258 * Func : cmUnpkRgrTddPrachRscInfo
3261 * Desc : Set of PRACH Information for TDD
3270 **********************************************************/
3272 S16 cmUnpkRgrTddPrachRscInfo
3274 RgrTddPrachRscInfo *param,
3278 S16 cmUnpkRgrTddPrachRscInfo(param, mBuf)
3279 RgrTddPrachRscInfo *param;
3286 CMCHKUNPK(oduPackUInt8, ¶m->numRsc, mBuf);
3287 for (i=0; i<param->numRsc; i++) {
3288 CMCHKUNPK(cmUnpkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
3299 /***********************************************************
3301 * Func : cmPkRgrEnbPfs
3304 * Desc : PFS Configuration
3313 **********************************************************/
3321 S16 cmPkRgrEnbPfs(param, mBuf)
3327 for(idx = RGR_MAX_NUM_QCI-1; idx >= 0; idx--)
3329 CMCHKPK(oduUnpackUInt32, param->qciWgt[idx], mBuf);
3331 CMCHKPK(oduUnpackUInt8, param->fairCoeffi, mBuf);
3332 CMCHKPK(oduUnpackUInt8, param->tptCoeffi, mBuf);
3339 /***********************************************************
3341 * Func : cmUnpkRgrEnbPfs
3344 * Desc : PFS Configuration
3353 **********************************************************/
3361 S16 cmUnpkRgrEnbPfs(param, mBuf)
3368 CMCHKUNPK(oduPackUInt8, ¶m->tptCoeffi, mBuf);
3369 CMCHKUNPK(oduPackUInt8, ¶m->fairCoeffi, mBuf);
3370 for(idx = 0; idx < RGR_MAX_NUM_QCI; idx++)
3372 CMCHKUNPK(oduPackUInt32, ¶m->qciWgt[idx], mBuf);
3377 /*rgr_c_001.main_7 - Added support for SPS*/
3379 /***********************************************************
3381 * Func : cmPkRgrSpsCellCfg
3384 * Desc : DL SPS configuration parameters per UE
3385 TODO: Check if this is to be added to re-configuration as well
3394 **********************************************************/
3396 S16 cmPkRgrSpsCellCfg
3398 RgrSpsCellCfg *param,
3402 S16 cmPkRgrSpsCellCfg(param, mBuf)
3403 RgrSpsCellCfg *param;
3408 CMCHKPK(oduUnpackUInt16, param->maxSpsUePerUlSf, mBuf);
3409 CMCHKPK(oduUnpackUInt16, param->maxSpsUePerDlSf, mBuf);
3410 CMCHKPK(oduUnpackUInt8, param->maxSpsDlBw, mBuf);
3417 /***********************************************************
3419 * Func : cmUnpkRgrSpsDlCellCfg
3422 * Desc : DL SPS configuration parameters per UE
3423 TODO: Check if this is to be added to re-configuration as well
3432 **********************************************************/
3434 S16 cmUnpkRgrSpsDlCellCfg
3436 RgrSpsCellCfg *param,
3440 S16 cmUnpkRgrSpsDlCellCfg(param, mBuf)
3441 RgrSpsCellCfg *param;
3447 CMCHKUNPK(oduPackUInt8, ¶m->maxSpsDlBw, mBuf);
3448 CMCHKUNPK(oduPackUInt16, ¶m->maxSpsUePerDlSf, mBuf);
3449 CMCHKUNPK(oduPackUInt16, ¶m->maxSpsUePerUlSf, mBuf);
3455 S16 cmPkRgr5gtfCellCfg
3457 Rgr5gtfCellCfg *param,
3462 for (idx = MAX_5GTF_SUBFRAME_INFO - 1; idx >= 0 ;--idx)
3465 CMCHKPK(oduUnpackUInt32, param->dynConfig[(uint8_t)idx], mBuf);
3467 CMCHKPK(oduUnpackUInt8, param->uePerGrp, mBuf);
3468 CMCHKPK(oduUnpackUInt8, param->ueGrpPerTti, mBuf);
3469 CMCHKPK(oduUnpackUInt8, param->numUes, mBuf);
3470 CMCHKPK(oduUnpackUInt8, param->numOfCC, mBuf);
3471 CMCHKPK(oduUnpackUInt8, param->bwPerCC, mBuf);
3472 CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
3476 S16 cmUnPkRgr5gtfCellCfg
3478 Rgr5gtfCellCfg *param,
3484 CMCHKUNPK(oduPackUInt8, ¶m->cfi, mBuf);
3485 CMCHKUNPK(oduPackUInt8, ¶m->bwPerCC, mBuf);
3486 CMCHKUNPK(oduPackUInt8, ¶m->numOfCC, mBuf);
3487 CMCHKUNPK(oduPackUInt8, ¶m->numUes, mBuf);
3488 CMCHKUNPK(oduPackUInt8, ¶m->ueGrpPerTti, mBuf);
3489 CMCHKUNPK(oduPackUInt8, ¶m->uePerGrp, mBuf);
3490 for (idx = 0; idx < MAX_5GTF_SUBFRAME_INFO ; ++idx)
3493 CMCHKUNPK(oduPackUInt32, ¶m->dynConfig[(uint8_t)idx], mBuf);
3500 /*LAA : functions to pack and unpack LAA params*/
3501 /***********************************************************
3503 * Func : cmPkRgrLteUCellCfg
3506 * Desc : LAA configuration for the Cell
3515 **********************************************************/
3517 static S16 cmPkRgrLteUCellCfg
3523 static S16 cmPkRgrLteUCellCfg(param, mBuf)
3529 CMCHKPK(oduUnpackUInt8, param->isLaaCell, mBuf);
3534 /***********************************************************
3536 * Func : cmUnpkRgrLteUCellCfg
3539 * Desc : LAA configuration for the cell
3548 **********************************************************/
3550 static S16 cmUnpkRgrLteUCellCfg
3556 static S16 cmUnpkRgrLteUCellCfg(param, mBuf)
3563 CMCHKUNPK(oduPackUInt8, ¶m->isLaaCell, mBuf);
3568 /* LTE_ADV_FLAG_REMOVED_START */
3569 /***********************************************************
3571 * Func : cmPkRgrLteAdvancedUeConfig
3574 * Desc : PAcks LteAdvancedUeConfig
3583 **********************************************************/
3585 S16 cmPkRgrLteAdvancedUeConfig
3587 RgrLteAdvancedUeConfig *param,
3591 S16 cmPkRgrLteAdvancedUeConfig(param, mBuf)
3592 RgrLteAdvancedUeConfig *param;
3597 CMCHKPK(oduUnpackUInt8, param->isUeCellEdge, mBuf);
3598 CMCHKPK(oduUnpackUInt8, param->isAbsUe, mBuf);
3599 CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
3603 /***********************************************************
3605 * Func : cmUnpkRgrLteAdvancedUeConfig
3608 * Desc : unpacks LteAdvancedUeConfig
3617 **********************************************************/
3619 S16 cmUnpkRgrLteAdvancedUeConfig
3621 RgrLteAdvancedUeConfig *param,
3625 S16 cmUnpkRgrLteAdvancedUeConfig(param, mBuf)
3626 RgrLteAdvancedUeConfig *param;
3631 CMCHKUNPK(oduPackUInt32, ¶m->pres, mBuf);
3632 CMCHKUNPK(oduPackUInt8, ¶m->isAbsUe, mBuf);
3633 CMCHKUNPK(oduPackUInt8, ¶m->isUeCellEdge, mBuf);
3637 /***********************************************************
3639 * Func : cmPkRgrAbsConfig
3642 * Desc : Packs RgrAbsConfig
3651 **********************************************************/
3653 S16 cmPkRgrAbsConfig
3655 RgrAbsConfig *param,
3659 S16 cmPkRgrAbsConfig(param, mBuf)
3660 RgrAbsConfig *param;
3666 CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
3667 for (indx = RGR_ABS_PATTERN_LEN-1; indx >= 0; indx--)
3669 CMCHKPK(oduUnpackUInt8, param->absPattern[(uint8_t)indx], mBuf);
3672 CMCHKPK(oduUnpackUInt32, param->absPatternType, mBuf);
3673 CMCHKPK(oduUnpackUInt32, param->absLoadPeriodicity, mBuf);
3678 /***********************************************************
3680 * Func : cmPkRgrSfrConfig
3683 * Desc : Packs RgrSfrConfig
3692 **********************************************************/
3694 S16 cmPkRgrSfrConfig
3696 RgrSfrConfig *param,
3700 S16 cmPkRgrSfrConfig(param, mBuf)
3701 RgrSfrConfig *param;
3706 CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
3708 CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pHigh, mBuf);
3709 CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pLow, mBuf);
3711 CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.endRb, mBuf);
3712 CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.startRb, mBuf);
3719 /***********************************************************
3721 * Func : cmPkRgrDsfrConfig
3724 * Desc : Packs RgrDsfrConfig
3729 * Notes: AIRSPAN_LTE_ADV_DSFR
3733 **********************************************************/
3735 S16 cmPkRgrDsfrConfig
3737 RgrDsfrConfig *param,
3741 S16 cmPkRgrDsfrConfig(param, mBuf)
3742 RgrDsfrConfig *param;
3747 CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
3754 /***********************************************************
3756 * Func : cmUnpkRgrDsfrConfig
3759 * Desc : UnPacks RgrDsfrConfig
3764 * Notes: AIRSPAN_LTE_ADV_DSFR
3768 **********************************************************/
3770 S16 cmUnpkRgrDsfrConfig
3772 RgrDsfrConfig *param,
3776 S16 cmUnpkRgrDsfrConfig(param, mBuf)
3777 RgrDsfrConfig *param;
3782 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->status, mBuf);
3788 /***********************************************************
3790 * Func : cmPkRgrCellLteAdvancedFeatureCfg
3793 * Desc : Cell LteAdvancedFeatureCfg
3802 **********************************************************/
3804 S16 cmPkRgrCellLteAdvancedFeatureCfg
3806 RgrLteAdvancedCellConfig *param,
3810 S16 cmPkRgrCellLteAdvancedFeatureCfg(param, mBuf)
3811 RgrLteAdvancedCellConfig *param;
3816 CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
3817 CMCHKPK(cmPkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
3818 CMCHKPK(cmPkRgrSfrConfig, ¶m->sfrCfg, mBuf);
3819 CMCHKPK(cmPkRgrAbsConfig, ¶m->absCfg, mBuf);
3826 /***********************************************************
3828 * Func : cmUnpkRgrAbsConfig
3831 * Desc : Unpacks AbsConfig
3840 **********************************************************/
3842 S16 cmUnpkRgrAbsConfig
3844 RgrAbsConfig *param,
3848 S16 cmUnpkRgrAbsConfig(param, mBuf)
3849 RgrAbsConfig *param;
3856 CMCHKUNPK(oduPackUInt32, ¶m->absLoadPeriodicity, mBuf);
3857 CMCHKUNPK(oduPackUInt32, ¶m->absPatternType, mBuf);
3858 for (indx = 0; indx <RGR_ABS_PATTERN_LEN; indx++)
3860 CMCHKUNPK(oduPackUInt8, ¶m->absPattern[(uint8_t)indx], mBuf);
3862 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->status, mBuf);
3868 /***********************************************************
3870 * Func : cmUnpkRgrSfrConfig
3873 * Desc : Unpacks SfrConfig
3882 **********************************************************/
3884 S16 cmUnpkRgrSfrConfig
3886 RgrSfrConfig *param,
3890 S16 cmUnpkRgrSfrConfig(param, mBuf)
3891 RgrSfrConfig *param;
3897 CMCHKUNPK(oduPackUInt8, ¶m->cellEdgeRbRange.startRb, mBuf);
3898 CMCHKUNPK(oduPackUInt8, ¶m->cellEdgeRbRange.endRb, mBuf);
3900 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->pwrThreshold.pLow, mBuf);
3901 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->pwrThreshold.pHigh, mBuf);
3903 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->status, mBuf);
3908 /***********************************************************
3910 * Func : cmUnpkRgrCellLteAdvancedFeatureCfg
3913 * Desc : unpacks LteAdvancedFeatureCfg per cell
3922 **********************************************************/
3924 S16 cmUnpkRgrCellLteAdvancedFeatureCfg
3926 RgrLteAdvancedCellConfig *param,
3930 S16 cmUnpkRgrCellLteAdvancedFeatureCfg(param, mBuf)
3931 RgrLteAdvancedCellConfig *param;
3936 CMCHKUNPK(cmUnpkRgrAbsConfig, ¶m->absCfg, mBuf);
3937 CMCHKUNPK(cmUnpkRgrSfrConfig, ¶m->sfrCfg, mBuf);
3938 CMCHKUNPK(cmUnpkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
3939 CMCHKUNPK(oduPackUInt32, ¶m->pres, mBuf);
3944 /* LTE_ADV_FLAG_REMOVED_END */
3946 /***********************************************************
3948 * Func : cmPkMacSchedGnbCfg
3950 * Desc : SCH GNB Configurations
3958 **********************************************************/
3960 S16 cmPkMacSchedGnbCfg
3962 MacSchedGnbCfg *param,
3966 S16 cmPkMacSchedGnbCfg(param, mBuf)
3967 RgrSchedEnbCfg *param;
3972 CMCHKPK(oduUnpackUInt8, param->maxDlUePerTti, mBuf);
3973 CMCHKPK(oduUnpackUInt8, param->maxUlUePerTti, mBuf);
3974 CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
3975 CMCHKPK(oduUnpackUInt8, param->dlSchdType, mBuf);
3976 CMCHKPK(oduUnpackUInt8, param->ulSchdType, mBuf);
3977 CMCHKPK(oduUnpackUInt8, param->numTxAntPorts, mBuf);
3979 } /* cmPkRgrSchedEnbCfg */
3981 /***********************************************************
3983 * Func : cmUnpkMacSchedGnbCfg
3986 * Desc : SCH Gnodeb Configuration to SCH
3995 **********************************************************/
3997 S16 cmUnpkMacSchedGnbCfg
3999 MacSchedGnbCfg *param,
4003 S16 cmUnpkMacSchedGnbCfg(param, mBuf)
4004 MacSchedGnbCfg *param;
4010 CMCHKUNPK(oduPackUInt8, ¶m->numTxAntPorts, mBuf);
4011 CMCHKUNPK(oduPackUInt8, ¶m->ulSchdType, mBuf);
4012 CMCHKUNPK(oduPackUInt8, ¶m->dlSchdType, mBuf);
4013 CMCHKUNPK(oduPackUInt8, ¶m->numCells, mBuf);
4014 CMCHKUNPK(oduPackUInt8, ¶m->maxUlUePerTti, mBuf);
4015 CMCHKUNPK(oduPackUInt8, ¶m->maxDlUePerTti, mBuf);
4017 } /* cmUnpkMacSchedGnbCfg */
4020 /***********************************************************
4022 * Func : cmPkRgrCellCfg
4025 * Desc : Cell Configuration at RRM
4034 **********************************************************/
4042 S16 cmPkRgrCellCfg(param, mBuf)
4051 /* EMTC related changes start*/
4054 /* EMTC related changes ends*/
4058 CMCHKPK(cmPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
4061 CMCHKPK(oduUnpackUInt8, param->isPucchFormat3Sptd, mBuf);
4063 /*LAA: Pack LAA params*/
4064 CMCHKPK(cmPkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
4065 CMCHKPK(oduUnpackUInt32, param->msg4pAVal, mBuf);
4066 CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
4067 CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
4068 CMCHKPK(oduUnpackUInt16, param->phichTxPwrOffset, mBuf);
4069 CMCHKPK(oduUnpackUInt16, param->rarTxPwrOffset, mBuf);
4070 CMCHKPK(oduUnpackUInt16, param->pcchTxPwrOffset, mBuf);
4071 CMCHKPK(oduUnpackUInt16, param->bcchTxPwrOffset, mBuf);
4073 CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
4074 /*rgr_c_001.main_7 - Added support for SPS*/
4075 CMCHKPK(cmPkRgrSpsCellCfg, ¶m->spsCfg, mBuf);
4077 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
4078 CMCHKPK(oduUnpackUInt8, param->rrmTtiIndPrd, mBuf);
4080 CMCHKPK(cmPkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
4081 CMCHKPK(oduUnpackUInt8, param->spclSfCfgIdx, mBuf);
4082 CMCHKPK(oduUnpackUInt8, param->ulDlCfgIdx, mBuf);
4085 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
4086 for (i=param->numCmnLcs-1; i >= 0; i--) {
4087 CMCHKPK(cmPkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
4089 CMCHKPK(oduUnpackUInt8, param->numCmnLcs, mBuf);
4090 CMCHKPK(cmPkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
4091 CMCHKPK(cmPkRgrPuschCfg, ¶m->puschCfg, mBuf);
4092 CMCHKPK(cmPkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
4093 CMCHKPK(cmPkRgrSiCfg, ¶m->siCfg, mBuf);
4094 CMCHKPK(cmPkRgrRachCfg, ¶m->rachCfg, mBuf);
4095 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsCfg, mBuf);
4096 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchCfg, mBuf);
4097 CMCHKPK(cmPkRgrPhichCfg, ¶m->phichCfg, mBuf);
4098 /* LTE_ADV_FLAG_REMOVED_START */
4099 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
4100 /* LTE_ADV_FLAG_REMOVED_END */
4101 CMCHKPK(cmPkRgrBwCfg, ¶m->bwCfg, mBuf);
4102 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
4103 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
4104 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
4105 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
4106 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
4107 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiCfg, mBuf);
4108 CMCHKPK(cmPkRgrRntiCfg, ¶m->macRnti, mBuf);
4109 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
4110 CMCHKPK(oduUnpackUInt8, param->dlfsSchdType, mBuf);
4112 CMCHKPK(SPkS8, param->pMax, mBuf);
4113 CMCHKPK(oduUnpackUInt8, param->cellModSchm, mBuf);
4114 CMCHKPK(oduUnpackUInt8, param->isCpDlExtend, mBuf);
4115 CMCHKPK(oduUnpackUInt8, param->isCpUlExtend, mBuf);
4116 CMCHKPK(oduUnpackUInt8, param->maxUlUeNewTxPerTti, mBuf);
4117 CMCHKPK(oduUnpackUInt8, param->maxDlUeNewTxPerTti, mBuf);
4118 CMCHKPK(oduUnpackUInt8, param->maxDlRetxBw, mBuf);
4119 CMCHKPK(oduUnpackUInt8, param->maxDlBwPerUe, mBuf);
4120 CMCHKPK(oduUnpackUInt8, param->maxUlBwPerUe, mBuf);
4121 CMCHKPK(oduUnpackUInt8, param->maxCcchPerDlSf, mBuf);
4122 CMCHKPK(oduUnpackUInt8, param->maxUePerDlSf, mBuf);
4123 CMCHKPK(oduUnpackUInt8, param->maxUePerUlSf, mBuf);
4125 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
4127 CMCHKPK(oduUnpackUInt8, param->maxMsg3PerUlSf, mBuf);
4129 CMCHKPK(oduUnpackUInt8, param->macInst, mBuf);
4130 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4133 /* EMTC related changes start*/
4134 CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
4135 CMCHKPK(cmPkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
4136 /* EMTC related changes ends*/
4144 /***********************************************************
4146 * Func : cmUnpkRgrCellCfg
4149 * Desc : Cell Configuration at RRM
4158 **********************************************************/
4160 S16 cmUnpkRgrCellCfg
4166 S16 cmUnpkRgrCellCfg(param, mBuf)
4175 /* EMTC related changes start*/
4176 CMCHKUNPK(cmUnpkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
4177 CMCHKUNPK(oduPackUInt8, ¶m->emtcEnable, mBuf);
4178 /* EMTC related changes ends*/
4181 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4182 CMCHKUNPK(oduPackUInt8, ¶m->macInst, mBuf);
4184 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
4186 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg3PerUlSf, mBuf);
4188 CMCHKUNPK(oduPackUInt8, ¶m->maxUePerUlSf, mBuf);
4189 CMCHKUNPK(oduPackUInt8, ¶m->maxUePerDlSf, mBuf);
4190 CMCHKUNPK(oduPackUInt8, ¶m->maxCcchPerDlSf, mBuf);
4191 CMCHKUNPK(oduPackUInt8, ¶m->maxUlBwPerUe, mBuf);
4192 CMCHKUNPK(oduPackUInt8, ¶m->maxDlBwPerUe, mBuf);
4193 CMCHKUNPK(oduPackUInt8, ¶m->maxDlRetxBw, mBuf);
4194 CMCHKUNPK(oduPackUInt8, ¶m->maxDlUeNewTxPerTti, mBuf);
4195 CMCHKUNPK(oduPackUInt8, ¶m->maxUlUeNewTxPerTti, mBuf);
4196 CMCHKUNPK(oduPackUInt8, ¶m->isCpUlExtend, mBuf);
4197 CMCHKUNPK(oduPackUInt8, ¶m->isCpDlExtend, mBuf);
4198 CMCHKUNPK(oduPackUInt8, ¶m->cellModSchm, mBuf);
4199 CMCHKUNPK(SUnpkS8, ¶m->pMax, mBuf);
4200 CMCHKUNPK(oduPackUInt8, ¶m->dlfsSchdType, mBuf);
4201 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
4202 CMCHKUNPK(cmUnpkRgrRntiCfg, ¶m->macRnti, mBuf);
4203 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiCfg, mBuf);
4204 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
4205 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
4206 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
4207 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
4208 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
4209 CMCHKUNPK(cmUnpkRgrBwCfg, ¶m->bwCfg, mBuf);
4210 /* LTE_ADV_FLAG_REMOVED_START */
4211 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
4212 /* LTE_ADV_FLAG_REMOVED_END */
4213 CMCHKUNPK(cmUnpkRgrPhichCfg, ¶m->phichCfg, mBuf);
4214 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchCfg, mBuf);
4215 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsCfg, mBuf);
4216 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachCfg, mBuf);
4217 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siCfg, mBuf);
4218 CMCHKUNPK(cmUnpkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
4219 CMCHKUNPK(cmUnpkRgrPuschCfg, ¶m->puschCfg, mBuf);
4220 CMCHKUNPK(cmUnpkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
4221 CMCHKUNPK(oduPackUInt8, ¶m->numCmnLcs, mBuf);
4222 for (i=0; i<param->numCmnLcs; i++) {
4223 CMCHKUNPK(cmUnpkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
4225 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
4228 CMCHKUNPK(oduPackUInt8, ¶m->ulDlCfgIdx, mBuf);
4229 CMCHKUNPK(oduPackUInt8, ¶m->spclSfCfgIdx, mBuf);
4230 CMCHKUNPK(cmUnpkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
4233 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
4234 CMCHKUNPK(oduPackUInt8, ¶m->rrmTtiIndPrd, mBuf);
4235 /*rgr_c_001.main_7 - Added support for SPS*/
4236 CMCHKUNPK(cmUnpkRgrSpsDlCellCfg, ¶m->spsCfg, mBuf);
4238 CMCHKUNPK(oduPackUInt16, ¶m->t300TmrVal, mBuf);
4239 CMCHKPK(oduPackUInt16, ¶m->bcchTxPwrOffset, mBuf);
4240 CMCHKPK(oduPackUInt16, ¶m->pcchTxPwrOffset, mBuf);
4241 CMCHKPK(oduPackUInt16, ¶m->rarTxPwrOffset, mBuf);
4242 CMCHKPK(oduPackUInt16, ¶m->phichTxPwrOffset, mBuf);
4243 CMCHKUNPK(oduPackUInt8, ¶m->isDynCfiEnb, mBuf);
4244 CMCHKUNPK(oduPackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
4245 CMCHKPK(oduPackUInt32, (uint32_t*)¶m->msg4pAVal, mBuf);
4246 /*LAA: Unpack LAA Cell params*/
4247 CMCHKUNPK(cmUnpkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
4249 CMCHKUNPK(oduPackUInt8, ¶m->isPucchFormat3Sptd, mBuf);
4252 CMCHKUNPK(cmUnPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
4259 /***********************************************************
4261 * Func : cmPkRgrUeAprdDlCqiCfg
4264 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
4273 **********************************************************/
4275 S16 cmPkRgrUeAprdDlCqiCfg
4277 RgrUeAprdDlCqiCfg *param,
4281 S16 cmPkRgrUeAprdDlCqiCfg(param, mBuf)
4282 RgrUeAprdDlCqiCfg *param;
4287 /*Pack Aperiodic Trigger List only for Pcell */
4289 CMCHKPK(oduUnpackUInt8, param->triggerSet2, mBuf);
4290 CMCHKPK(oduUnpackUInt8, param->triggerSet1, mBuf);
4293 CMCHKPK(oduUnpackUInt32, param->aprdModeEnum, mBuf);
4294 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4300 /***********************************************************
4302 * Func : cmUnpkRgrUeAprdDlCqiCfg
4305 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
4314 **********************************************************/
4316 S16 cmUnpkRgrUeAprdDlCqiCfg
4318 RgrUeAprdDlCqiCfg *param,
4322 S16 cmUnpkRgrUeAprdDlCqiCfg(param, mBuf)
4323 RgrUeAprdDlCqiCfg *param;
4330 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4331 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4332 param->aprdModeEnum = (RgrAprdCqiMode) tmpEnum;
4335 CMCHKUNPK(oduPackUInt8, ¶m->triggerSet1, mBuf);
4336 CMCHKUNPK(oduPackUInt8, ¶m->triggerSet2, mBuf);
4343 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4347 /***********************************************************
4349 * Func : cmPkRgrUePrdDlCqiCfg
4352 * Desc : Downlink Periodic CQI reporting related configuration per UE
4361 **********************************************************/
4363 S16 cmPkRgrUePrdDlCqiCfg
4365 RgrUePrdDlCqiCfg *param,
4369 S16 cmPkRgrUePrdDlCqiCfg(param, mBuf)
4370 RgrUePrdDlCqiCfg *param;
4376 CMCHKPK(oduUnpackUInt16, param->cqiPmiCfgIdx, mBuf);
4377 CMCHKPK(oduUnpackUInt8, param->k, mBuf);
4378 CMCHKPK(SPkS8, param->cqiOffst, mBuf);
4379 CMCHKPK(oduUnpackUInt8, param->subframeOffst, mBuf);
4380 CMCHKPK(oduUnpackUInt32, param->prdicityEnum, mBuf);
4381 CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
4382 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4388 /***********************************************************
4390 * Func : cmUnpkRgrUePrdDlCqiCfg
4393 * Desc : Downlink Periodic CQI reporting related configuration per UE
4402 **********************************************************/
4404 S16 cmUnpkRgrUePrdDlCqiCfg
4406 RgrUePrdDlCqiCfg *param,
4410 S16 cmUnpkRgrUePrdDlCqiCfg(param, mBuf)
4411 RgrUePrdDlCqiCfg *param;
4418 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4419 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4420 param->prdModeEnum = tmpEnum;
4421 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4422 param->prdicityEnum = tmpEnum;
4423 CMCHKUNPK(oduPackUInt8, ¶m->subframeOffst, mBuf);
4424 CMCHKUNPK(SUnpkS8, ¶m->cqiOffst, mBuf);
4425 CMCHKUNPK(oduPackUInt8, ¶m->k, mBuf);
4426 CMCHKUNPK(oduPackUInt16, ¶m->cqiPmiCfgIdx, mBuf);
4433 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4435 /***********************************************************
4437 * Func : cmPkRgrUeDlPCqiSetup
4440 * Desc : Periodic CQI Setup configuration parameters information
4449 **********************************************************/
4451 S16 cmPkRgrUeDlPCqiSetup
4453 RgrUeDlPCqiSetup *param,
4457 S16 cmPkRgrUeDlPCqiSetup(param, mBuf)
4458 RgrUeDlPCqiSetup *param;
4464 CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
4465 CMCHKPK(oduUnpackUInt8, param->sANCQI, mBuf);
4466 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4467 CMCHKPK(oduUnpackUInt16, param->riCfgIdx, mBuf);
4468 CMCHKPK(oduUnpackUInt8, param->riEna, mBuf);
4469 CMCHKPK(oduUnpackUInt8, param->k, mBuf);
4470 CMCHKPK(oduUnpackUInt8, param->cqiRepType, mBuf);
4471 CMCHKPK(oduUnpackUInt16, param->cqiPCfgIdx, mBuf);
4472 CMCHKPK(oduUnpackUInt16, param->cqiPResIdx, mBuf);
4478 /***********************************************************
4480 * Func : cmUnpkRgrUeDlPCqiSetup
4483 * Desc : Periodic CQI Setup configuration parameters information
4492 **********************************************************/
4494 S16 cmUnpkRgrUeDlPCqiSetup
4496 RgrUeDlPCqiSetup *param,
4500 S16 cmUnpkRgrUeDlPCqiSetup(param, mBuf)
4501 RgrUeDlPCqiSetup *param;
4508 CMCHKUNPK(oduPackUInt16, ¶m->cqiPResIdx, mBuf);
4509 CMCHKUNPK(oduPackUInt16, ¶m->cqiPCfgIdx, mBuf);
4510 CMCHKUNPK(oduPackUInt8, ¶m->cqiRepType, mBuf);
4511 CMCHKUNPK(oduPackUInt8, ¶m->k, mBuf);
4512 CMCHKUNPK(oduPackUInt8, ¶m->riEna, mBuf);
4513 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4514 CMCHKUNPK(oduPackUInt16, ¶m->riCfgIdx, mBuf);
4515 CMCHKUNPK(oduPackUInt8, ¶m->sANCQI, mBuf);
4516 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4517 param->prdModeEnum = (RgrPrdCqiMode) tmpEnum;
4523 /***********************************************************
4525 * Func : cmPkRgrUePrdDlCqiCfg
4528 * Desc : Periodic CQI/PMI/RI configuration parameters information
4537 **********************************************************/
4539 S16 cmPkRgrUePrdDlCqiCfg
4541 RgrUePrdDlCqiCfg *param,
4545 S16 cmPkRgrUePrdDlCqiCfg(param, mBuf)
4546 RgrUePrdDlCqiCfg *param;
4552 CMCHKPK(cmPkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
4553 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4559 /***********************************************************
4561 * Func : cmUnpkRgrUePrdDlCqiCfg
4564 * Desc : Periodic CQI/PMI/RI configuration parameters information
4573 **********************************************************/
4575 S16 cmUnpkRgrUePrdDlCqiCfg
4577 RgrUePrdDlCqiCfg *param,
4581 S16 cmUnpkRgrUePrdDlCqiCfg(param, mBuf)
4582 RgrUePrdDlCqiCfg *param;
4588 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4589 CMCHKUNPK(cmUnpkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
4595 /***********************************************************
4597 * Func : cmPkRgrUeUlSrsSetupCfg
4600 * Desc : SRS configuration setup parameters information.
4601 Reference 36.313 SoundingRS-UL-Config
4610 **********************************************************/
4612 S16 cmPkRgrUeUlSrsSetupCfg
4614 RgrUeUlSrsSetupCfg *param,
4618 S16 cmPkRgrUeUlSrsSetupCfg(param, mBuf)
4619 RgrUeUlSrsSetupCfg *param;
4625 CMCHKPK(oduUnpackUInt8, param->fDomPosi, mBuf);
4626 CMCHKPK(oduUnpackUInt8, param->txComb, mBuf);
4627 CMCHKPK(oduUnpackUInt8, param->sANSrs, mBuf);
4628 CMCHKPK(oduUnpackUInt8, param->duration, mBuf);
4629 CMCHKPK(oduUnpackUInt32, param->cycShift, mBuf);
4630 CMCHKPK(oduUnpackUInt32, param->srsHopBw, mBuf);
4631 CMCHKPK(oduUnpackUInt32, param->srsBw, mBuf);
4632 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4633 CMCHKPK(oduUnpackUInt16, param->srsCfgIdx, mBuf);
4639 /***********************************************************
4641 * Func : cmUnpkRgrUeUlSrsSetupCfg
4644 * Desc : SRS configuration setup parameters information.
4645 Reference 36.313 SoundingRS-UL-Config
4654 **********************************************************/
4656 S16 cmUnpkRgrUeUlSrsSetupCfg
4658 RgrUeUlSrsSetupCfg *param,
4662 S16 cmUnpkRgrUeUlSrsSetupCfg(param, mBuf)
4663 RgrUeUlSrsSetupCfg *param;
4670 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4671 CMCHKUNPK(oduPackUInt16, ¶m->srsCfgIdx, mBuf);
4672 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4673 param->srsBw = (RgrUlSrsBwInfo) tmpEnum;
4674 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4675 param->srsHopBw = (RgrUlSrsHoBwInfo) tmpEnum;
4676 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4677 param->cycShift = (RgrUlSrsCycShiftInfo) tmpEnum;
4678 CMCHKUNPK(oduPackUInt8, ¶m->duration, mBuf);
4679 CMCHKUNPK(oduPackUInt8, ¶m->sANSrs, mBuf);
4680 CMCHKUNPK(oduPackUInt8, ¶m->txComb, mBuf);
4681 CMCHKUNPK(oduPackUInt8, ¶m->fDomPosi, mBuf);
4687 /***********************************************************
4689 * Func : cmPkRgrUeSrSetupCfg
4692 * Desc : SR Setup configuration parameters information
4701 **********************************************************/
4703 S16 cmPkRgrUeSrSetupCfg
4705 RgrUeSrSetupCfg *param,
4709 S16 cmPkRgrUeSrSetupCfg(param, mBuf)
4710 RgrUeSrSetupCfg *param;
4716 /* ccpu00131601:DEL - dTMax Packing removed since this param will not
4717 * be required by Scheduler*/
4718 CMCHKPK(oduUnpackUInt8, param->srCfgIdx, mBuf);
4719 CMCHKPK(oduUnpackUInt16, param->srResIdx, mBuf);
4725 /***********************************************************
4727 * Func : cmUnpkRgrUeSrSetupCfg
4730 * Desc : SR Setup configuration parameters information
4739 **********************************************************/
4741 S16 cmUnpkRgrUeSrSetupCfg
4743 RgrUeSrSetupCfg *param,
4747 S16 cmUnpkRgrUeSrSetupCfg(param, mBuf)
4748 RgrUeSrSetupCfg *param;
4753 CMCHKUNPK(oduPackUInt16, ¶m->srResIdx, mBuf);
4754 CMCHKUNPK(oduPackUInt8, ¶m->srCfgIdx, mBuf);
4755 /* ccpu00131601:DEL - dTMax UnPacking removed since this param will not
4756 * be required by Scheduler*/
4762 /***********************************************************
4764 * Func : cmPkRgrUeSrCfg
4767 * Desc : SR configuration parameters information
4776 **********************************************************/
4784 S16 cmPkRgrUeSrCfg(param, mBuf)
4791 CMCHKPK(cmPkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
4792 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4798 /***********************************************************
4800 * Func : cmUnpkRgrUeSrCfg
4803 * Desc : SR configuration parameters information
4812 **********************************************************/
4814 S16 cmUnpkRgrUeSrCfg
4820 S16 cmUnpkRgrUeSrCfg(param, mBuf)
4827 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4828 CMCHKUNPK(cmUnpkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
4834 /***********************************************************
4836 * Func : cmPkRgrUeUlSrsCfg
4839 * Desc : SRS configuration parameters information.
4840 Reference 36.313 SoundingRS-UL-Config
4849 **********************************************************/
4851 S16 cmPkRgrUeUlSrsCfg
4853 RgrUeUlSrsCfg *param,
4857 S16 cmPkRgrUeUlSrsCfg(param, mBuf)
4858 RgrUeUlSrsCfg *param;
4864 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4865 CMCHKPK(cmPkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
4866 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4872 /***********************************************************
4874 * Func : cmUnpkRgrUeUlSrsCfg
4877 * Desc : SRS configuration parameters information.
4878 Reference 36.313 SoundingRS-UL-Config
4887 **********************************************************/
4889 S16 cmUnpkRgrUeUlSrsCfg
4891 RgrUeUlSrsCfg *param,
4895 S16 cmUnpkRgrUeUlSrsCfg(param, mBuf)
4896 RgrUeUlSrsCfg *param;
4902 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4903 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4904 CMCHKUNPK(cmUnpkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
4909 #endif /*TFU_UPGRADE */
4912 /***********************************************************
4914 * Func : cmPkRgrUeDlCqiCfg
4917 * Desc : Downlink CQI reporting related configuration per UE
4926 **********************************************************/
4928 S16 cmPkRgrUeDlCqiCfg
4930 RgrUeDlCqiCfg *param,
4934 S16 cmPkRgrUeDlCqiCfg(param, mBuf)
4935 RgrUeDlCqiCfg *param;
4942 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4944 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4947 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4949 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4951 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
4957 /***********************************************************
4959 * Func : cmUnpkRgrUeDlCqiCfg
4962 * Desc : Downlink CQI reporting related configuration per UE
4971 **********************************************************/
4973 S16 cmUnpkRgrUeDlCqiCfg
4975 RgrUeDlCqiCfg *param,
4979 S16 cmUnpkRgrUeDlCqiCfg(param, mBuf)
4980 RgrUeDlCqiCfg *param;
4986 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
4987 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4993 /***********************************************************
4995 * Func : cmPkRgrUeMeasGapCfg
4998 * Desc : Measurement gap configuration for UE
5007 **********************************************************/
5009 S16 cmPkRgrUeMeasGapCfg
5011 RgrUeMeasGapCfg *param,
5015 S16 cmPkRgrUeMeasGapCfg(param, mBuf)
5016 RgrUeMeasGapCfg *param;
5022 CMCHKPK(oduUnpackUInt8, param->gapOffst, mBuf);
5023 CMCHKPK(oduUnpackUInt8, param->gapPrd, mBuf);
5024 CMCHKPK(oduUnpackUInt8, param->isMesGapEnabled, mBuf);
5030 /***********************************************************
5032 * Func : cmUnpkRgrUeMeasGapCfg
5035 * Desc : Measurement gap configuration for UE
5044 **********************************************************/
5046 S16 cmUnpkRgrUeMeasGapCfg
5048 RgrUeMeasGapCfg *param,
5052 S16 cmUnpkRgrUeMeasGapCfg(param, mBuf)
5053 RgrUeMeasGapCfg *param;
5059 CMCHKUNPK(oduPackUInt8, ¶m->isMesGapEnabled, mBuf);
5060 CMCHKUNPK(oduPackUInt8, ¶m->gapPrd, mBuf);
5061 CMCHKUNPK(oduPackUInt8, ¶m->gapOffst, mBuf);
5065 /*rgr_c_001.main_9 ADD DRX functionality under flag*/
5067 /***********************************************************
5069 * Func : cmPkRgrDrxLongCycleOffst
5072 * Desc : DRX Long Cycle Offset
5081 **********************************************************/
5083 S16 cmPkRgrDrxLongCycleOffst
5085 RgrDrxLongCycleOffst *param,
5089 S16 cmPkRgrDrxLongCycleOffst(param, mBuf)
5090 RgrDrxLongCycleOffst *param;
5096 CMCHKPK(oduUnpackUInt16, param->drxStartOffst, mBuf);
5097 CMCHKPK(oduUnpackUInt16, param->longDrxCycle, mBuf);
5103 /***********************************************************
5105 * Func : cmUnpkRgrDrxLongCycleOffst
5108 * Desc : DRX Long Cycle Offset
5117 **********************************************************/
5119 S16 cmUnpkRgrDrxLongCycleOffst
5121 RgrDrxLongCycleOffst *param,
5125 S16 cmUnpkRgrDrxLongCycleOffst(param, mBuf)
5126 RgrDrxLongCycleOffst *param;
5132 CMCHKUNPK(oduPackUInt16, ¶m->longDrxCycle, mBuf);
5133 CMCHKUNPK(oduPackUInt16, ¶m->drxStartOffst, mBuf);
5139 /***********************************************************
5141 * Func : cmPkRgrDrxShortDrx
5144 * Desc : DRX Short Cycle Offset
5153 **********************************************************/
5155 S16 cmPkRgrDrxShortDrx
5157 RgrDrxShortDrx *param,
5161 S16 cmPkRgrDrxShortDrx(param, mBuf)
5162 RgrDrxShortDrx *param;
5168 CMCHKPK(oduUnpackUInt8, param->drxShortCycleTmr, mBuf);
5169 CMCHKPK(oduUnpackUInt16, param->shortDrxCycle, mBuf);
5170 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5176 /***********************************************************
5178 * Func : cmUnpkRgrDrxShortDrx
5181 * Desc : DRX Short Cycle Offset
5190 **********************************************************/
5192 S16 cmUnpkRgrDrxShortDrx
5194 RgrDrxShortDrx *param,
5198 S16 cmUnpkRgrDrxShortDrx(param, mBuf)
5199 RgrDrxShortDrx *param;
5205 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5206 CMCHKUNPK(oduPackUInt16, ¶m->shortDrxCycle, mBuf);
5207 CMCHKUNPK(oduPackUInt8, ¶m->drxShortCycleTmr, mBuf);
5211 /***********************************************************
5213 * Func : cmPkRgrUeDrxCfg
5216 * Desc : DRX configuration for UE
5225 **********************************************************/
5233 S16 cmPkRgrUeDrxCfg(param, mBuf)
5240 CMCHKPK(cmPkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
5241 CMCHKPK(cmPkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
5242 CMCHKPK(oduUnpackUInt16, param->drxRetxTmr, mBuf);
5244 CMCHKPK(oduUnpackUInt8, param->drxRetxTmrR13Pres, mBuf);
5245 CMCHKPK(oduUnpackUInt8, param->drxOnDurTmrR13Pres, mBuf);
5246 CMCHKPK(oduUnpackUInt16, param->emtcDrxUlRetxTmr, mBuf);
5247 CMCHKPK(oduUnpackUInt8, param->isEmtcUe, mBuf);
5249 CMCHKPK(oduUnpackUInt16, param->drxInactvTmr, mBuf);
5250 CMCHKPK(oduUnpackUInt16, param->drxOnDurTmr, mBuf);
5251 /*rgr_c_001.main_9 ADD added changes for R9*/
5253 CMCHKPK(cmPkTknS32, ¶m->cqiMask, mBuf);
5260 /***********************************************************
5262 * Func : cmUnpkRgrUeDrxCfg
5265 * Desc : DRX configuration for UE
5274 **********************************************************/
5276 S16 cmUnpkRgrUeDrxCfg
5282 S16 cmUnpkRgrUeDrxCfg(param, mBuf)
5289 /*rgr_c_001.main_9 ADD added changes for R9*/
5291 CMCHKUNPK(cmUnpkTknS32, ¶m->cqiMask, mBuf);
5293 CMCHKUNPK(oduPackUInt16, ¶m->drxOnDurTmr, mBuf);
5294 CMCHKUNPK(oduPackUInt16, ¶m->drxInactvTmr, mBuf);
5296 CMCHKUNPK(oduPackUInt8, ¶m->isEmtcUe, mBuf);
5297 CMCHKUNPK(oduPackUInt16,¶m->emtcDrxUlRetxTmr, mBuf);
5298 CMCHKUNPK(oduPackUInt8, ¶m->drxOnDurTmrR13Pres, mBuf);
5299 CMCHKUNPK(oduPackUInt8, ¶m->drxRetxTmrR13Pres, mBuf);
5301 CMCHKUNPK(oduPackUInt16, ¶m->drxRetxTmr, mBuf);
5302 CMCHKUNPK(cmUnpkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
5303 CMCHKUNPK(cmUnpkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
5307 /*rgr_c_001.main_9 ADD added DRX changes under DRX*/
5309 /***********************************************************
5311 * Func : cmPkRgrUeCapCfg
5314 * Desc : RgrUeCapCfg
5323 **********************************************************/
5331 S16 cmPkRgrUeCapCfg(param, mBuf)
5338 CMCHKPK(oduUnpackUInt8, param->txAntSel, mBuf);
5339 CMCHKPK(oduUnpackUInt8, param->simCqiAckNack, mBuf);
5340 CMCHKPK(oduUnpackUInt8, param->resAloocType1, mBuf);
5341 CMCHKPK(oduUnpackUInt8, param->intraSfFeqHop, mBuf);
5342 CMCHKPK(oduUnpackUInt8, param->pwrClass, mBuf);
5348 /***********************************************************
5350 * Func : cmUnpkRgrUeCapCfg
5353 * Desc : RgrUeCapCfg
5362 **********************************************************/
5364 S16 cmUnpkRgrUeCapCfg
5370 S16 cmUnpkRgrUeCapCfg(param, mBuf)
5377 CMCHKUNPK(oduPackUInt8, ¶m->pwrClass, mBuf);
5378 CMCHKUNPK(oduPackUInt8, ¶m->intraSfFeqHop, mBuf);
5379 CMCHKUNPK(oduPackUInt8, ¶m->resAloocType1, mBuf);
5380 CMCHKUNPK(oduPackUInt8, ¶m->simCqiAckNack, mBuf);
5381 CMCHKUNPK(oduPackUInt8, ¶m->txAntSel, mBuf);
5387 /***********************************************************
5389 * Func : cmPkRgrUeAckNackRepCfg
5392 * Desc : rgrUeAckNackRepCfg
5401 **********************************************************/
5403 S16 cmPkRgrUeAckNackRepCfg
5405 RgrUeAckNackRepCfg *param,
5409 S16 cmPkRgrUeAckNackRepCfg(param, mBuf)
5410 RgrUeAckNackRepCfg *param;
5416 CMCHKPK(oduUnpackUInt32, param->ackNackRepFactor, mBuf);
5417 CMCHKPK(oduUnpackUInt16, param->pucchAckNackRep, mBuf);
5418 CMCHKPK(oduUnpackUInt8, param->isAckNackEnabled, mBuf);
5424 /***********************************************************
5426 * Func : cmUnpkRgrUeAckNackRepCfg
5429 * Desc : rgrUeAckNackRepCfg
5438 **********************************************************/
5440 S16 cmUnpkRgrUeAckNackRepCfg
5442 RgrUeAckNackRepCfg *param,
5446 S16 cmUnpkRgrUeAckNackRepCfg(param, mBuf)
5447 RgrUeAckNackRepCfg *param;
5454 CMCHKUNPK(oduPackUInt8, ¶m->isAckNackEnabled, mBuf);
5455 CMCHKUNPK(oduPackUInt16, ¶m->pucchAckNackRep, mBuf);
5456 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5457 param->ackNackRepFactor = (RgrAckNackRepFactor) tmpEnum;
5463 /***********************************************************
5465 * Func : cmPkRgrUeTxModeCfg
5468 * Desc : Transmission mode configuration per UE
5477 **********************************************************/
5479 S16 cmPkRgrUeTxModeCfg
5481 RgrUeTxModeCfg *param,
5485 S16 cmPkRgrUeTxModeCfg(param, mBuf)
5486 RgrUeTxModeCfg *param;
5492 CMCHKPK(oduUnpackUInt32, param->txModeEnum, mBuf);
5493 CMCHKPK(oduUnpackUInt32, param->tmTrnstnState, mBuf);
5494 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5501 /***********************************************************
5503 * Func : cmUnpkRgrUeTxModeCfg
5506 * Desc : Transmission mode configuration per UE
5515 **********************************************************/
5517 S16 cmUnpkRgrUeTxModeCfg
5519 RgrUeTxModeCfg *param,
5523 S16 cmUnpkRgrUeTxModeCfg(param, mBuf)
5524 RgrUeTxModeCfg *param;
5531 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5532 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5533 param->tmTrnstnState = (RgrTxModeTrnstn) tmpEnum;
5535 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5536 param->txModeEnum = (RgrTxMode) tmpEnum;
5542 /***********************************************************
5544 * Func : cmPkRgrUeUlHqCfg
5547 * Desc : Uplink HARQ configuration per UE
5556 **********************************************************/
5558 S16 cmPkRgrUeUlHqCfg
5560 RgrUeUlHqCfg *param,
5564 S16 cmPkRgrUeUlHqCfg(param, mBuf)
5565 RgrUeUlHqCfg *param;
5571 CMCHKPK(oduUnpackUInt8, param->deltaHqOffst, mBuf);
5572 CMCHKPK(oduUnpackUInt8, param->maxUlHqTx, mBuf);
5578 /***********************************************************
5580 * Func : cmUnpkRgrUeUlHqCfg
5583 * Desc : Uplink HARQ configuration per UE
5592 **********************************************************/
5594 S16 cmUnpkRgrUeUlHqCfg
5596 RgrUeUlHqCfg *param,
5600 S16 cmUnpkRgrUeUlHqCfg(param, mBuf)
5601 RgrUeUlHqCfg *param;
5607 CMCHKUNPK(oduPackUInt8, ¶m->maxUlHqTx, mBuf);
5608 CMCHKUNPK(oduPackUInt8, ¶m->deltaHqOffst, mBuf);
5614 /***********************************************************
5616 * Func : cmPkRgrUeGrpPwrCfg
5619 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
5628 **********************************************************/
5630 S16 cmPkRgrUeGrpPwrCfg
5632 RgrUeGrpPwrCfg *param,
5636 S16 cmPkRgrUeGrpPwrCfg(param, mBuf)
5637 RgrUeGrpPwrCfg *param;
5643 CMCHKPK(oduUnpackUInt8, param->idx, mBuf);
5644 CMCHKPK(cmPkLteRnti, param->tpcRnti, mBuf);
5645 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5651 /***********************************************************
5653 * Func : cmUnpkRgrUeGrpPwrCfg
5656 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
5665 **********************************************************/
5667 S16 cmUnpkRgrUeGrpPwrCfg
5669 RgrUeGrpPwrCfg *param,
5673 S16 cmUnpkRgrUeGrpPwrCfg(param, mBuf)
5674 RgrUeGrpPwrCfg *param;
5680 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5681 CMCHKUNPK(cmUnpkLteRnti, ¶m->tpcRnti, mBuf);
5682 CMCHKUNPK(oduPackUInt8, ¶m->idx, mBuf);
5686 /*rgr_c_001.main_7 - Added support for SPS*/
5689 /***********************************************************
5691 * Func : cmPkRgrUeSpsDlCfg
5694 * Desc : DL SPS configuration parameters per UE
5703 **********************************************************/
5705 S16 cmPkRgrUeSpsDlCfg
5707 RgrUeSpsDlCfg *param,
5711 S16 cmPkRgrUeSpsDlCfg(param, mBuf)
5712 RgrUeSpsDlCfg *param;
5718 CMCHKPK(oduUnpackUInt16, param->explicitRelCnt, mBuf);
5719 CMCHKPK(oduUnpackUInt32, param->dlSpsPrdctyEnum, mBuf);
5720 for (i=param->numPucchVal-1; i >= 0; i--) {
5721 CMCHKPK(oduUnpackUInt32, param->n1PucchVal[i], mBuf);
5723 CMCHKPK(oduUnpackUInt8, param->numPucchVal, mBuf);
5724 CMCHKPK(oduUnpackUInt8, param->numSpsHqProc, mBuf);
5725 CMCHKPK(oduUnpackUInt8, param->isDlSpsEnabled, mBuf);
5731 /***********************************************************
5733 * Func : cmUnpkRgrUeSpsDlCfg
5736 * Desc : DL SPS configuration parameters per UE
5745 **********************************************************/
5747 S16 cmUnpkRgrUeSpsDlCfg
5749 RgrUeSpsDlCfg *param,
5753 S16 cmUnpkRgrUeSpsDlCfg(param, mBuf)
5754 RgrUeSpsDlCfg *param;
5762 CMCHKUNPK(oduPackUInt8, ¶m->isDlSpsEnabled, mBuf);
5763 CMCHKUNPK(oduPackUInt8, ¶m->numSpsHqProc, mBuf);
5764 CMCHKUNPK(oduPackUInt8, ¶m->numPucchVal, mBuf);
5765 for (i=0; i<param->numPucchVal; i++) {
5766 CMCHKUNPK(oduPackUInt32, ¶m->n1PucchVal[i], mBuf);
5768 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5769 param->dlSpsPrdctyEnum = tmpEnum;
5770 CMCHKUNPK(oduPackUInt16, ¶m->explicitRelCnt, mBuf);
5776 /***********************************************************
5778 * Func : cmPkRgrUeSpsUlCfg
5781 * Desc : UL SPS configuration parameters per UE
5790 **********************************************************/
5792 S16 cmPkRgrUeSpsUlCfg
5794 RgrUeSpsUlCfg *param,
5798 S16 cmPkRgrUeSpsUlCfg(param, mBuf)
5799 RgrUeSpsUlCfg *param;
5806 CMCHKPK(oduUnpackUInt8, param->isLcSRMaskEnab, mBuf);
5807 for (i=param->lcCnt-1; i >= 0; i--) {
5808 /* SPS Changes starts */
5809 CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].isSpsEnabled, mBuf);
5810 CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].lcId, mBuf);
5811 /* SPS Changes ends */
5813 CMCHKPK(oduUnpackUInt8, param->lcCnt, mBuf);
5814 CMCHKPK(oduUnpackUInt32, param->ulSpsPrdctyEnum, mBuf);
5815 CMCHKPK(SPkS8, param->pwrCfg.p0UePuschVal, mBuf);
5816 CMCHKPK(SPkS8, param->pwrCfg.p0NominalPuschVal, mBuf);
5817 CMCHKPK(oduUnpackUInt8, param->pwrCfgPres, mBuf);
5820 CMCHKPK(oduUnpackUInt8, param->twoIntervalCfg, mBuf);
5823 CMCHKPK(oduUnpackUInt32, param->implicitRelCnt, mBuf);
5824 CMCHKPK(oduUnpackUInt8, param->isUlSpsEnabled, mBuf);
5830 /***********************************************************
5832 * Func : cmUnpkRgrUeSpsUlCfg
5835 * Desc : UL SPS configuration parameters per UE
5844 **********************************************************/
5846 S16 cmUnpkRgrUeSpsUlCfg
5848 RgrUeSpsUlCfg *param,
5852 S16 cmUnpkRgrUeSpsUlCfg(param, mBuf)
5853 RgrUeSpsUlCfg *param;
5861 CMCHKUNPK(oduPackUInt8, ¶m->isUlSpsEnabled, mBuf);
5862 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5863 param->implicitRelCnt = tmpEnum;
5866 CMCHKUNPK(oduPackUInt8, ¶m->twoIntervalCfg, mBuf);
5869 CMCHKUNPK(oduPackUInt8, ¶m->pwrCfgPres, mBuf);
5870 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0NominalPuschVal, mBuf);
5871 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0UePuschVal, mBuf);
5872 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5873 param->ulSpsPrdctyEnum = tmpEnum;
5874 CMCHKUNPK(oduPackUInt8, ¶m->lcCnt, mBuf);
5875 for (i=0; i<param->lcCnt; i++) {
5876 CMCHKUNPK(oduPackUInt8, ¶m->spsLcInfo[i].lcId, mBuf);
5877 CMCHKUNPK(oduPackUInt8, ¶m->spsLcInfo[i].isSpsEnabled, mBuf);
5879 CMCHKUNPK(oduPackUInt8, ¶m->isLcSRMaskEnab, mBuf);
5885 /***********************************************************
5887 * Func : cmPkRgrUeSpsCfg
5890 * Desc : SPS configuration parameters per UE
5899 **********************************************************/
5907 S16 cmPkRgrUeSpsCfg(param, mBuf)
5914 CMCHKPK(cmPkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
5915 CMCHKPK(cmPkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
5916 CMCHKPK(cmPkLteRnti, param->spsRnti, mBuf);
5922 /***********************************************************
5924 * Func : cmUnpkRgrUeSpsCfg
5927 * Desc : SPS configuration parameters per UE
5936 **********************************************************/
5938 S16 cmUnpkRgrUeSpsCfg
5944 S16 cmUnpkRgrUeSpsCfg(param, mBuf)
5951 CMCHKUNPK(cmUnpkLteRnti, ¶m->spsRnti, mBuf);
5952 CMCHKUNPK(cmUnpkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
5953 CMCHKUNPK(cmUnpkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
5958 /***********************************************************
5960 * Func : cmPkRgrUeUlPwrCfg
5963 * Desc : Uplink power configuration per UE
5972 **********************************************************/
5974 S16 cmPkRgrUeUlPwrCfg
5976 RgrUeUlPwrCfg *param,
5980 S16 cmPkRgrUeUlPwrCfg(param, mBuf)
5981 RgrUeUlPwrCfg *param;
5987 CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
5988 CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
5989 CMCHKPK(SPkS8, param->p0UePucch, mBuf);
5990 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
5991 CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
5992 CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
5993 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
5994 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
6000 /***********************************************************
6002 * Func : cmUnpkRgrUeUlPwrCfg
6005 * Desc : Uplink power configuration per UE
6014 **********************************************************/
6016 S16 cmUnpkRgrUeUlPwrCfg
6018 RgrUeUlPwrCfg *param,
6022 S16 cmUnpkRgrUeUlPwrCfg(param, mBuf)
6023 RgrUeUlPwrCfg *param;
6029 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
6030 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
6031 CMCHKUNPK(oduPackUInt8, ¶m->isAccumulated, mBuf);
6032 CMCHKUNPK(oduPackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
6033 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
6034 CMCHKUNPK(SUnpkS8, ¶m->p0UePucch, mBuf);
6035 CMCHKUNPK(oduPackUInt8, ¶m->pSRSOffset, mBuf);
6036 CMCHKUNPK(oduPackUInt8, ¶m->trgCqi, mBuf);
6042 /***********************************************************
6044 * Func : cmPkRgrUeQosCfg
6047 * Desc : Downlink/Uplink QoS configuration per UE
6056 **********************************************************/
6064 S16 cmPkRgrUeQosCfg(param, mBuf)
6071 CMCHKPK(oduUnpackUInt32, param->ueBr, mBuf);
6072 CMCHKPK(oduUnpackUInt32, param->dlAmbr, mBuf);
6073 CMCHKPK(oduUnpackUInt8, param->ambrPres, mBuf);
6079 /***********************************************************
6081 * Func : cmUnpkRgrUeQosCfg
6084 * Desc : Downlink/Uplink QoS configuration per UE
6093 **********************************************************/
6095 S16 cmUnpkRgrUeQosCfg
6101 S16 cmUnpkRgrUeQosCfg(param, mBuf)
6108 CMCHKUNPK(oduPackUInt8, ¶m->ambrPres, mBuf);
6109 CMCHKUNPK(oduPackUInt32, ¶m->dlAmbr, mBuf);
6110 CMCHKUNPK(oduPackUInt32, ¶m->ueBr, mBuf);
6114 /***********************************************************
6116 * Func : cmPkRgrUePuschDedCfg
6119 * Desc : PUSCH Config Dedication for UE
6128 **********************************************************/
6130 S16 cmPkRgrUePuschDedCfg
6132 RgrUePuschDedCfg *param,
6136 S16 cmPkRgrUePuschDedCfg(param, mBuf)
6137 RgrUePuschDedCfg *param;
6143 CMCHKPK(oduUnpackUInt8, param->bCQIIdx, mBuf);
6144 CMCHKPK(oduUnpackUInt8, param->bRIIdx, mBuf);
6145 CMCHKPK(oduUnpackUInt8, param->bACKIdx, mBuf);
6146 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6151 /***********************************************************
6153 * Func : cmUnpkRgrUePuschDedCfg
6156 * Desc : PUSCH Config Dedication for UE
6166 **********************************************************/
6168 S16 cmUnpkRgrUePuschDedCfg
6170 RgrUePuschDedCfg *param,
6174 S16 cmUnpkRgrUePuschDedCfg(param, mBuf)
6175 RgrUePuschDedCfg *param;
6181 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6182 CMCHKUNPK(oduPackUInt8, ¶m->bACKIdx, mBuf);
6183 CMCHKUNPK(oduPackUInt8, ¶m->bRIIdx, mBuf);
6184 CMCHKUNPK(oduPackUInt8, ¶m->bCQIIdx, mBuf);
6188 /***********************************************************
6190 * Func : cmPkRgrUeTxAntSelCfg
6193 * Desc : UE Transmit Antenna selection related configuration
6202 **********************************************************/
6204 S16 cmPkRgrUeTxAntSelCfg
6206 RgrUeTxAntSelCfg *param,
6210 S16 cmPkRgrUeTxAntSelCfg(param, mBuf)
6211 RgrUeTxAntSelCfg *param;
6217 CMCHKPK(oduUnpackUInt32, param->selType, mBuf);
6218 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6224 /***********************************************************
6226 * Func : cmUnpkRgrUeTxAntSelCfg
6229 * Desc : UE Transmit Antenna selection related configuration
6238 **********************************************************/
6240 S16 cmUnpkRgrUeTxAntSelCfg
6242 RgrUeTxAntSelCfg *param,
6246 S16 cmUnpkRgrUeTxAntSelCfg(param, mBuf)
6247 RgrUeTxAntSelCfg *param;
6254 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6255 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6256 param->selType = (RgrUeTxAntSelType) tmpEnum;
6261 /***********************************************************
6263 * Func : cmPkRgrUeTaTmrCfg
6266 * Desc : Time Alignment timer configuration per UE
6275 **********************************************************/
6277 S16 cmPkRgrUeTaTmrCfg
6279 RgrUeTaTmrCfg *param,
6283 S16 cmPkRgrUeTaTmrCfg(param, mBuf)
6284 RgrUeTaTmrCfg *param;
6290 CMCHKPK(oduUnpackUInt16, param->taTmr, mBuf);
6291 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6297 /***********************************************************
6299 * Func : cmUnpkRgrUeTaTmrCfg
6302 * Desc : Time Alignment timer configuration per UE
6311 **********************************************************/
6313 S16 cmUnpkRgrUeTaTmrCfg
6315 RgrUeTaTmrCfg *param,
6319 S16 cmUnpkRgrUeTaTmrCfg(param, mBuf)
6320 RgrUeTaTmrCfg *param;
6326 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6327 CMCHKUNPK(oduPackUInt16, ¶m->taTmr, mBuf);
6334 S16 cmUnpkRgrEmtcUeCfg
6336 RgrUeEmtcCfg *param,
6340 S16 cmUnpkRgrEmtcUeCfg(param, mBuf)
6341 RgrUeEmtcCfg *param;
6347 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
6348 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
6349 RgrEpdcchAddModLst *epdcchAddModLst;
6351 CMCHKUNPK(oduPackUInt8,¶m->pdschReptLevModeA,mBuf);
6352 /*UnPacking PUCCH Rep */
6353 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat2),mBuf);
6354 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat1),mBuf);
6355 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->isPucchRepPres),mBuf);
6359 for(indx = 0; indx < RGR_MAX_EPDCCH_SET; indx++)
6361 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6362 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->extaddgrp2.mpddchNB),mBuf);
6363 CMCHKUNPK(oduPackUInt16,&(epdcchAddModLst->extaddgrp2.mpdcchNumRep),mBuf);
6364 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD),mBuf);
6365 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpddchPdschHop),mBuf);
6366 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.csiNumRep),mBuf);
6367 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.pres),mBuf);
6368 CMCHKUNPK(cmUnpkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
6369 CMCHKUNPK(cmUnpkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
6370 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->pucchResStartoffset),mBuf);
6371 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->dmrsScrambSeq),mBuf);
6372 for(idx = 0; idx < 5; idx++)
6374 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.rbAssignment[idx]),mBuf);
6377 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.numPRBpairs),mBuf);
6378 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->transmissionType),mBuf);
6379 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->setConfigId),mBuf);
6382 CMCHKUNPK(cmUnpkTknUInt32,&(emtcEpdcchCfg->startSymbolr11),mBuf);
6383 for(indx = 0; indx < 5; indx++)
6385 CMCHKUNPK(oduPackUInt8,&(emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]),mBuf);
6387 CMCHKUNPK(oduPackUInt8, &(emtcEpdcchCfg->sfPtn.pres), mBuf);
6388 CMCHKUNPK(oduPackUInt8, &(param->pres), mBuf);
6389 CMCHKUNPK(oduPackUInt8, &(param->isHdFddEnbld), mBuf);
6391 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
6392 printf("\n EMTC RGR UE unpack\n");
6393 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
6395 for(indx = 0; indx < 5; indx++)
6397 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
6399 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
6400 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
6402 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
6404 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6405 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
6406 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);
6407 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
6408 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
6409 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
6410 for(idx = 0; idx < 5 ; idx++)
6412 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
6414 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
6415 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
6416 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
6417 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
6418 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
6419 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
6420 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
6421 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
6422 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
6423 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
6424 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
6425 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
6435 S16 cmPkRgrEmtcUeCfg
6437 RgrUeEmtcCfg *param,
6443 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
6444 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
6445 RgrEpdcchAddModLst *epdcchAddModLst;
6447 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
6448 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6449 CMCHKPK(oduUnpackUInt8, emtcEpdcchCfg->sfPtn.pres, mBuf);
6450 for(indx = 4; indx >=0; indx--)
6452 CMCHKPK(oduUnpackUInt8,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx],mBuf);
6454 CMCHKPK(cmPkTknUInt32,&emtcEpdcchCfg->startSymbolr11,mBuf);
6455 for(indx = RGR_MAX_EPDCCH_SET-1 ; indx >= 0; indx--)
6457 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6459 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->setConfigId,mBuf);
6460 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->transmissionType,mBuf);
6461 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.numPRBpairs,mBuf);
6462 for(idx = 4; idx >= 0; idx--)
6464 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.rbAssignment[idx],mBuf);
6466 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->dmrsScrambSeq,mBuf);
6467 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->pucchResStartoffset,mBuf);
6468 CMCHKPK(cmPkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
6469 CMCHKPK(cmPkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
6470 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.pres,mBuf);
6471 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.csiNumRep,mBuf);
6472 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpddchPdschHop,mBuf);
6473 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD,mBuf);
6474 CMCHKPK(oduUnpackUInt16,epdcchAddModLst->extaddgrp2.mpdcchNumRep,mBuf);
6475 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->extaddgrp2.mpddchNB,mBuf);
6478 /*Packing PUCCH Rep */
6479 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->isPucchRepPres, mBuf);
6480 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat1,mBuf);
6481 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat2,mBuf);
6482 CMCHKPK(oduUnpackUInt8,param->pdschReptLevModeA,mBuf);
6484 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
6485 printf("\n EMTC RGR UE pack\n");
6486 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
6488 for(indx = 0; indx < 5; indx++)
6490 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
6492 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
6493 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
6495 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
6497 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6498 /* printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
6499 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);*/
6500 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
6501 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
6502 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
6503 for(idx = 0; idx < 5 ; idx++)
6505 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
6507 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
6508 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
6509 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
6510 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
6511 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
6512 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
6513 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
6514 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
6515 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
6516 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
6517 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
6518 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
6530 S16 cmUnpkRgr5gtfUeCfg
6532 RgrUe5gtfCfg *param,
6536 CMCHKUNPK(oduPackUInt8, ¶m->grpId, mBuf);
6537 CMCHKUNPK(oduPackUInt8, ¶m->BeamId, mBuf);
6538 CMCHKUNPK(oduPackUInt8, ¶m->numCC, mBuf);
6539 CMCHKUNPK(oduPackUInt8, ¶m->mcs, mBuf);
6540 CMCHKUNPK(oduPackUInt8, ¶m->maxPrb, mBuf);
6544 S16 cmPkRgr5gtfUeCfg
6546 RgrUe5gtfCfg *param,
6550 CMCHKPK(oduUnpackUInt8, param->maxPrb, mBuf);
6551 CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
6552 CMCHKPK(oduUnpackUInt8, param->numCC, mBuf);
6553 CMCHKPK(oduUnpackUInt8, param->BeamId, mBuf);
6554 CMCHKPK(oduUnpackUInt8, param->grpId, mBuf);
6560 /***********************************************************
6562 * Func : cmPkRgrUeCfg
6565 * Desc : UE configuration
6574 **********************************************************/
6582 S16 cmPkRgrUeCfg(param, mBuf)
6589 CMCHKPK(cmPkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
6592 CMCHKPK(cmPkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
6594 CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
6596 CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
6597 /* LTE_ADV_FLAG_REMOVED_START */
6598 CMCHKPK(cmPkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
6599 /* LTE_ADV_FLAG_REMOVED_END */
6601 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
6602 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6604 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6605 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6607 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6609 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6611 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6612 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6614 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6616 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
6620 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
6621 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6626 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
6629 CMCHKPK(oduUnpackUInt32, param->ackNackModeEnum, mBuf);
6632 CMCHKPK(cmPkTknUInt8, ¶m->dedPreambleId, mBuf);
6633 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
6634 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
6635 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
6636 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
6637 CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
6638 /*rgr_c_001.main_9 ADD added changes for DRX*/
6640 /* Anshika - Pack only if DRX is enabled */
6641 if(TRUE == param->ueDrxCfg.isDrxEnabled)
6643 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
6645 CMCHKPK(oduUnpackUInt8, param->ueDrxCfg.isDrxEnabled, mBuf); /* This has to be packed even if
6647 CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
6649 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6651 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
6653 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
6654 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
6655 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
6656 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
6657 CMCHKPK(cmPkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
6658 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6659 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6660 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6666 /***********************************************************
6668 * Func : cmUnpkRgrUeCfg
6671 * Desc : UE configuration
6680 **********************************************************/
6688 S16 cmUnpkRgrUeCfg(param, mBuf)
6696 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6697 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6698 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6699 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
6700 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
6701 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
6702 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
6703 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
6705 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6707 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
6709 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6710 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
6711 /*rgr_c_001.main_9 ADD added changes for DRX*/
6713 /* Anshika - Unpack only if DRX is enabled */
6714 CMCHKUNPK(oduPackUInt8, ¶m->ueDrxCfg.isDrxEnabled, mBuf);
6715 if(TRUE == param->ueDrxCfg.isDrxEnabled)
6717 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
6719 CMCHKUNPK(oduPackUInt8, ¶m->isTtiBundlEnabled, mBuf);
6720 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
6721 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
6722 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
6723 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
6724 CMCHKUNPK(cmUnpkTknUInt8, ¶m->dedPreambleId, mBuf);
6727 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6728 param->ackNackModeEnum = tmpEnum;
6731 /*rgr_c_001.main_7 - Added support for SPS*/
6732 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
6734 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6736 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6737 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
6739 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6741 CMCHKUNPK(oduPackUInt8, ¶m->isHdFddEnbld, mBuf);
6743 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6744 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6745 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6746 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6748 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6751 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6753 /* LTE_ADV_FLAG_REMOVED_START */
6754 CMCHKUNPK(cmUnpkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
6755 /* LTE_ADV_FLAG_REMOVED_END */
6756 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->accessStratumRls, mBuf);
6757 CMCHKUNPK(oduPackUInt8, ¶m->csgMmbrSta, mBuf);
6760 CMCHKUNPK(cmUnpkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
6764 CMCHKUNPK(cmUnpkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
6772 /***********************************************************
6774 * Func : cmPkRgrLchQosCfg
6777 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
6786 **********************************************************/
6788 S16 cmPkRgrLchQosCfg
6790 RgrLchQosCfg *param,
6794 S16 cmPkRgrLchQosCfg(param, mBuf)
6795 RgrLchQosCfg *param;
6801 CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
6802 CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
6803 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
6809 /***********************************************************
6811 * Func : cmUnpkRgrLchQosCfg
6814 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
6823 **********************************************************/
6825 S16 cmUnpkRgrLchQosCfg
6827 RgrLchQosCfg *param,
6831 S16 cmUnpkRgrLchQosCfg(param, mBuf)
6832 RgrLchQosCfg *param;
6838 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
6839 CMCHKUNPK(oduPackUInt32, ¶m->gbr, mBuf);
6840 CMCHKUNPK(oduPackUInt32, ¶m->mbr, mBuf);
6843 /*rgr_c_001.main_7 - Added support for SPS*/
6846 /***********************************************************
6848 * Func : cmPkRgrLchSpsCfg
6851 * Desc : SPS related configuration for logical channels
6860 **********************************************************/
6862 S16 cmPkRgrLchSpsCfg
6864 RgrLchSpsCfg *param,
6868 S16 cmPkRgrLchSpsCfg(param, mBuf)
6869 RgrLchSpsCfg *param;
6876 CMCHKPK(oduUnpackUInt8, param->isSpsEnabled, mBuf);
6882 /***********************************************************
6884 * Func : cmUnpkRgrLchSpsCfg
6887 * Desc : SPS related configuration for logical channels
6896 **********************************************************/
6898 S16 cmUnpkRgrLchSpsCfg
6900 RgrLchSpsCfg *param,
6904 S16 cmUnpkRgrLchSpsCfg(param, mBuf)
6905 RgrLchSpsCfg *param;
6911 CMCHKUNPK(oduPackUInt8, ¶m->isSpsEnabled, mBuf);
6917 /***********************************************************
6919 * Func : cmPkRgrDlLchCfg
6922 * Desc : Logical channel configuration info for downlink logical channels
6931 **********************************************************/
6939 S16 cmPkRgrDlLchCfg(param, mBuf)
6945 /*rgr_c_001.main_7 - Added support for SPS*/
6947 CMCHKPK(oduUnpackUInt8, param->rlcReorderTmr, mBuf);
6948 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
6949 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlQos, mBuf);
6950 CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
6956 /***********************************************************
6958 * Func : cmUnpkRgrDlLchCfg
6961 * Desc : Logical channel configuration info for downlink logical channels
6970 **********************************************************/
6972 S16 cmUnpkRgrDlLchCfg
6978 S16 cmUnpkRgrDlLchCfg(param, mBuf)
6985 CMCHKUNPK(oduPackUInt8, ¶m->dlTrchType, mBuf);
6986 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlQos, mBuf);
6987 /*rgr_c_001.main_7 - Added support for SPs*/
6988 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
6989 CMCHKUNPK(oduPackUInt8, ¶m->rlcReorderTmr, mBuf);
6995 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6999 /***********************************************************
7001 * Func : cmPkRgrUlLchCfg
7004 * Desc : Logical channel configuration information for uplink logical channels
7013 **********************************************************/
7021 S16 cmPkRgrUlLchCfg(param, mBuf)
7028 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
7029 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
7035 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7036 /***********************************************************
7038 * Func : cmUnpkRgrUlLchCfg
7041 * Desc : Logical channel configuration information for uplink logical channels
7050 **********************************************************/
7052 S16 cmUnpkRgrUlLchCfg
7058 S16 cmUnpkRgrUlLchCfg(param, mBuf)
7065 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
7066 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
7073 /***********************************************************
7075 * Func : cmPkRgrUlLcgCfg
7078 * Desc : Logical channel configuration info for uplink logical channels
7087 **********************************************************/
7095 S16 cmPkRgrUlLcgCfg(param, mBuf)
7101 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7105 CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
7106 CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
7108 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7110 for (i = param->numLch - 1; i >= 0; i--)
7112 CMCHKPK(cmPkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
7114 CMCHKPK(oduUnpackUInt8, param->numLch, mBuf);
7116 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7122 /***********************************************************
7124 * Func : cmUnpkRgrUlLcgCfg
7127 * Desc : Logical channel configuration info for uplink logical channels
7136 **********************************************************/
7138 S16 cmUnpkRgrUlLcgCfg
7144 S16 cmUnpkRgrUlLcgCfg(param, mBuf)
7150 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7155 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7156 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7158 CMCHKUNPK(oduPackUInt8, ¶m->numLch, mBuf);
7159 for (i = 0; i< param->numLch; i++)
7161 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
7165 CMCHKUNPK(oduPackUInt32, ¶m->gbr, mBuf);
7166 CMCHKUNPK(oduPackUInt32, ¶m->mbr, mBuf);
7171 S16 cmPkRgrUlLchQciCfg
7173 RgrUlLchQciCfg *param,
7177 S16 cmPkRgrUlLchQciCfg (param, mBuf)
7178 RgrUlLchQciCfg *param;
7182 CMCHKPK(oduUnpackUInt8, param->lcId, mBuf);
7183 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
7184 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7188 S16 cmUnpkRgrUlLchQciCfg
7190 RgrUlLchQciCfg *param,
7194 S16 cmUnpkRgrUlLchQciCfg (param, mBuf)
7195 RgrUlLchQciCfg *param;
7199 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7200 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
7201 CMCHKUNPK(oduPackUInt8, ¶m->lcId, mBuf);
7206 /***********************************************************
7208 * Func : cmPkRgrLchCfg
7211 * Desc : Logical channel configuration info for dedicated channels
7220 **********************************************************/
7228 S16 cmPkRgrLchCfg(param, mBuf)
7234 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7235 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7236 CMCHKPK(cmPkRgrDlLchCfg, ¶m->dlInfo, mBuf);
7237 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
7238 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
7239 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7240 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7246 /***********************************************************
7248 * Func : cmUnpkRgrLchCfg
7251 * Desc : Logical channel configuration info for dedicated channels
7260 **********************************************************/
7268 S16 cmUnpkRgrLchCfg(param, mBuf)
7275 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7276 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7277 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
7278 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
7279 CMCHKUNPK(cmUnpkRgrDlLchCfg, ¶m->dlInfo, mBuf);
7280 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7281 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7293 S16 cmPkRgrLcgCfg(param, mBuf)
7300 CMCHKPK(cmPkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
7301 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7302 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7314 S16 cmUnpkRgrLcgCfg(param, mBuf)
7321 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7322 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7323 CMCHKUNPK(cmUnpkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
7329 /***********************************************************
7334 * Desc : Basic Configuration structure at RRM
7343 **********************************************************/
7351 S16 cmPkRgrCfg(param, mBuf)
7358 switch(param->cfgType) {
7360 CMCHKPK(cmPkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
7363 CMCHKPK(cmPkRgrLchCfg, ¶m->u.lchCfg, mBuf);
7366 CMCHKPK(cmPkRgrUeCfg, ¶m->u.ueCfg, mBuf);
7369 CMCHKPK(cmPkRgrCellCfg, ¶m->u.cellCfg, mBuf);
7372 CMCHKPK(cmPkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
7377 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
7383 /***********************************************************
7385 * Func : cmUnpkRgrCfg
7388 * Desc : Basic Configuration structure at RRM
7397 **********************************************************/
7405 S16 cmUnpkRgrCfg(param, mBuf)
7412 CMCHKUNPK(oduPackUInt8, ¶m->cfgType, mBuf);
7413 switch(param->cfgType) {
7415 CMCHKUNPK(cmUnpkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
7418 CMCHKUNPK(cmUnpkRgrCellCfg, ¶m->u.cellCfg, mBuf);
7421 CMCHKUNPK(cmUnpkRgrUeCfg, ¶m->u.ueCfg, mBuf);
7424 CMCHKUNPK(cmUnpkRgrLchCfg, ¶m->u.lchCfg, mBuf);
7427 CMCHKUNPK(cmUnpkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
7437 /***********************************************************
7439 * Func : cmPkRgrActvTime
7442 * Desc : Activation time information
7451 **********************************************************/
7459 S16 cmPkRgrActvTime(param, mBuf)
7466 CMCHKPK(cmPkLteTimingInfo, ¶m->actvTime, mBuf);
7467 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
7473 /***********************************************************
7475 * Func : cmUnpkRgrActvTime
7478 * Desc : Activation time information
7487 **********************************************************/
7489 S16 cmUnpkRgrActvTime
7495 S16 cmUnpkRgrActvTime(param, mBuf)
7502 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
7503 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvTime, mBuf);
7509 /***********************************************************
7511 * Func : cmPkRgrCellRecfg
7514 * Desc : Cell reconfiguration structure at RRM
7523 **********************************************************/
7525 S16 cmPkRgrCellRecfg
7527 RgrCellRecfg *param,
7531 S16 cmPkRgrCellRecfg(param, mBuf)
7532 RgrCellRecfg *param;
7537 CMCHKPK(cmPkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
7538 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
7539 CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
7540 CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
7541 /* LTE_ADV_FLAG_REMOVED_START */
7542 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
7543 /* LTE_ADV_FLAG_REMOVED_END */
7544 CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
7545 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
7547 CMCHKPK(cmPkRgrSiCfg, ¶m->siReCfg, mBuf);
7548 #endif /* RGR_SI_SCH */
7549 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
7550 CMCHKPK(cmPkRgrRachCfg, ¶m->rachRecfg, mBuf);
7551 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsRecfg, mBuf);
7552 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
7553 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
7554 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
7555 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
7556 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
7557 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
7558 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
7559 CMCHKPK(cmPkRgrActvTime, ¶m->recfgActvTime, mBuf);
7560 CMCHKPK(oduUnpackUInt32, param->recfgTypes, mBuf);
7561 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7567 /***********************************************************
7569 * Func : cmUnpkRgrCellRecfg
7572 * Desc : Cell reconfiguration structure at RRM
7581 **********************************************************/
7583 S16 cmUnpkRgrCellRecfg
7585 RgrCellRecfg *param,
7589 S16 cmUnpkRgrCellRecfg(param, mBuf)
7590 RgrCellRecfg *param;
7596 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7597 CMCHKUNPK(oduPackUInt32, ¶m->recfgTypes, mBuf);
7598 CMCHKUNPK(cmUnpkRgrActvTime, ¶m->recfgActvTime, mBuf);
7599 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
7600 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
7601 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
7602 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
7603 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
7604 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
7605 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
7606 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsRecfg, mBuf);
7607 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachRecfg, mBuf);
7608 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
7609 /* rgr_c_001.main_4-MOD-Modified for SI Enhancement. */
7611 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siReCfg, mBuf);
7612 #endif /* RGR_SI_SCH */
7613 CMCHKUNPK(oduPackUInt16, ¶m->t300TmrVal, mBuf);
7614 /* LTE_ADV_FLAG_REMOVED_START */
7615 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
7616 /* LTE_ADV_FLAG_REMOVED_END */
7617 CMCHKUNPK(oduPackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
7618 CMCHKUNPK(oduPackUInt8, ¶m->isDynCfiEnb, mBuf);
7619 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
7620 CMCHKUNPK(cmUnpkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
7627 /***********************************************************
7629 * Func : cmPkRgrUeRecfg
7632 * Desc : UE reconfiguration info
7641 **********************************************************/
7649 S16 cmPkRgrUeRecfg(param, mBuf)
7656 /* Note: As we add more members to emtcUeRecfg,
7657 create a new function for pkUnpk */
7658 CMCHKPK(oduUnpackUInt8, param->emtcUeRecfg.isHdFddEnbld, mBuf);
7660 CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
7662 CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
7664 CMCHKPK(oduUnpackUInt8, param->simulAckNackCQIFormat3, mBuf);
7665 CMCHKPK(cmPkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
7666 CMCHKPK(cmPkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
7668 /* LTE_ADV_FLAG_REMOVED_START */
7669 CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isUeCellEdge, mBuf);
7670 CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isAbsUe, mBuf);
7671 CMCHKPK(oduUnpackUInt32, param->ueLteAdvCfg.pres, mBuf);
7672 /* LTE_ADV_FLAG_REMOVED_END */
7673 /*ccpu00130497: Removed the duplicate packing*/
7675 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
7677 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
7678 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
7680 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
7683 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
7684 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
7686 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
7688 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
7692 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
7693 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
7694 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
7697 /*rgr_c_001.main_7 - Added support for SPS*/
7698 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
7699 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
7701 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
7702 CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
7704 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
7705 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
7706 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
7707 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
7708 CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
7709 /*rgr_c_001.main_9 ADD added changes for DRX*/
7711 /* Anshika - Pack only if DRX is enabled */
7712 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
7714 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
7716 CMCHKPK(oduUnpackUInt8, param->ueDrxRecfg.isDrxEnabled, mBuf); /* This has to be packed even if
7718 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
7720 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
7722 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
7724 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
7725 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
7726 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
7729 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
7732 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
7733 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
7734 /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
7735 /* LTE_ADV_FLAG_REMOVED_START */
7736 /* KW fix for LTE_ADV */
7737 CMCHKPK(oduUnpackUInt32, param->ueRecfgTypes, mBuf);
7738 /* LTE_ADV_FLAG_REMOVED_END */
7739 CMCHKPK(cmPkLteRnti, param->newCrnti, mBuf);
7740 CMCHKPK(cmPkLteRnti, param->oldCrnti, mBuf);
7741 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7747 /***********************************************************
7749 * Func : cmUnpkRgrUeRecfg
7752 * Desc : UE reconfiguration info
7761 **********************************************************/
7763 S16 cmUnpkRgrUeRecfg
7769 S16 cmUnpkRgrUeRecfg(param, mBuf)
7777 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7778 CMCHKUNPK(cmUnpkLteRnti, ¶m->oldCrnti, mBuf);
7779 CMCHKUNPK(cmUnpkLteRnti, ¶m->newCrnti, mBuf);
7780 /* LTE_ADV_FLAG_REMOVED_START */
7781 /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
7782 /* KW fix for LTE_ADV */
7783 CMCHKUNPK(oduPackUInt32, ¶m->ueRecfgTypes, mBuf);
7784 /* LTE_ADV_FLAG_REMOVED_END */
7785 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
7787 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
7790 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
7793 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
7794 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
7795 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
7797 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
7799 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
7801 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
7802 /*rgr_c_001.main_9 ADD added changes for DRX*/
7804 /* Anshika - Unpack only if DRX is enabled */
7805 CMCHKUNPK(oduPackUInt8, ¶m->ueDrxRecfg.isDrxEnabled, mBuf);
7806 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
7808 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
7810 CMCHKUNPK(oduPackUInt8, ¶m->isTtiBundlEnabled, mBuf);
7811 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
7812 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
7813 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
7814 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
7815 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
7816 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
7817 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
7818 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
7819 /*rgr_c_001.main_7 - Added support for SPS*/
7820 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
7822 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
7824 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
7825 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
7826 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
7829 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
7831 CMCHKUNPK(oduPackUInt8, ¶m->isHdFddEnbld, mBuf);
7834 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
7836 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
7837 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
7839 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
7842 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
7845 /* LTE_ADV_FLAG_REMOVED_START */
7846 CMCHKUNPK(oduPackUInt32, ¶m->ueLteAdvCfg.pres, mBuf);
7847 CMCHKUNPK(oduPackUInt8, ¶m->ueLteAdvCfg.isAbsUe, mBuf);
7848 CMCHKUNPK(oduPackUInt8, ¶m->ueLteAdvCfg.isUeCellEdge, mBuf);
7849 /* LTE_ADV_FLAG_REMOVED_END */
7851 CMCHKUNPK(cmUnpkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
7852 CMCHKUNPK(cmUnpkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
7853 CMCHKUNPK(oduPackUInt8, ¶m->simulAckNackCQIFormat3, mBuf);
7855 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->accessStratumRls, mBuf);
7857 CMCHKUNPK(oduPackUInt8, ¶m->csgMmbrSta, mBuf);
7859 CMCHKPK(oduPackUInt8, ¶m->emtcUeRecfg.isHdFddEnbld, mBuf);
7867 /***********************************************************
7869 * Func : cmPkRgrLchRecfg
7872 * Desc : Logical channel reconfiguration info for dedicated channels only
7881 **********************************************************/
7889 S16 cmPkRgrLchRecfg(param, mBuf)
7895 /*rgr_c_001.main_7 - Added support for SPS*/
7896 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7898 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7899 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
7901 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
7902 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
7903 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7904 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7910 /***********************************************************
7912 * Func : cmUnpkRgrLchRecfg
7915 * Desc : Logical channel reconfiguration info for dedicated channels only
7924 **********************************************************/
7926 S16 cmUnpkRgrLchRecfg
7932 S16 cmUnpkRgrLchRecfg(param, mBuf)
7939 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7940 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7941 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
7942 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
7943 /*rgr_c_001.main_7 - Added support for SPs*/
7944 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
7946 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7947 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7959 S16 cmPkRgrLcgRecfg(param, mBuf)
7968 CMCHKPK(oduUnpackUInt32, param->ulRecfg.mbr, mBuf);
7969 CMCHKPK(oduUnpackUInt32, param->ulRecfg.gbr, mBuf);
7971 for (i = param->ulRecfg.numLch - 1; i >= 0; i--)
7973 CMCHKPK(cmPkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
7975 CMCHKPK(oduUnpackUInt8, param->ulRecfg.numLch, mBuf);
7977 CMCHKPK(oduUnpackUInt8, param->ulRecfg.lcgId, mBuf);
7978 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7979 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7985 S16 cmUnpkRgrLcgRecfg
7991 S16 cmUnpkRgrLcgRecfg(param, mBuf)
8000 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8001 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8002 CMCHKUNPK(oduPackUInt8, ¶m->ulRecfg.lcgId, mBuf);
8005 CMCHKUNPK(oduPackUInt8, ¶m->ulRecfg.numLch, mBuf);
8006 for (i = 0; i < param->ulRecfg.numLch; i++)
8008 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
8011 CMCHKUNPK(oduPackUInt32, ¶m->ulRecfg.gbr, mBuf);
8012 CMCHKUNPK(oduPackUInt32, ¶m->ulRecfg.mbr, mBuf);
8019 /***********************************************************
8021 * Func : cmPkRgrRecfg
8024 * Desc : Basic reconfiguration structure at RRM
8033 **********************************************************/
8041 S16 cmPkRgrRecfg(param, mBuf)
8048 switch(param->recfgType) {
8050 CMCHKPK(cmPkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
8053 CMCHKPK(cmPkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
8056 CMCHKPK(cmPkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
8059 CMCHKPK(cmPkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
8064 CMCHKPK(oduUnpackUInt8, param->recfgType, mBuf);
8070 /***********************************************************
8072 * Func : cmUnpkRgrRecfg
8075 * Desc : Basic reconfiguration structure at RRM
8084 **********************************************************/
8092 S16 cmUnpkRgrRecfg(param, mBuf)
8099 CMCHKUNPK(oduPackUInt8, ¶m->recfgType, mBuf);
8100 switch(param->recfgType) {
8102 CMCHKUNPK(cmUnpkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
8105 CMCHKUNPK(cmUnpkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
8108 CMCHKUNPK(cmUnpkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
8111 CMCHKUNPK(cmUnpkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
8120 /***********************************************************
8122 * Func : cmPkRgrUeDlSecCellRelInfo
8125 * Desc : DL Secondary Cell information of the UE
8134 **********************************************************/
8136 S16 cmPkRgrUeDlSecCellRelInfo
8138 RgrUeDlSecCellRelInfo *param,
8142 static S16 cmPkRgrUeDlSecCellRelInfo(param, mBuf)
8143 RgrUeDlSecCellRelInfo *param;
8147 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
8148 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
8152 /***********************************************************
8154 * Func : cmPkRgrUeSecCellRelInfo
8157 * Desc : Secondary Cell Delete information of the UE
8166 **********************************************************/
8168 S16 cmPkRgrUeSecCellRelInfo
8170 RgrUeSecCellRelInfo *param,
8174 S16 cmPkRgrUeSecCellRelInfo(param, mBuf)
8175 RgrUeSecCellRelInfo *param;
8180 for(idx = param->numSCells - 1; idx >= 0; idx--)
8182 CMCHKPK(cmPkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[(uint8_t)idx],mBuf);
8184 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
8191 /***********************************************************
8196 * Desc : Basic Delete info for MAC
8205 **********************************************************/
8213 S16 cmPkRgrDel(param, mBuf)
8220 switch(param->delType) {
8222 CMCHKPK(oduUnpackUInt8, param->u.lcgDel.lcgId, mBuf);
8223 CMCHKPK(cmPkLteRnti, param->u.lcgDel.crnti, mBuf);
8224 CMCHKPK(cmPkLteCellId, param->u.lcgDel.cellId, mBuf);
8227 CMCHKPK(oduUnpackUInt8, param->u.lchDel.lcgId, mBuf);
8228 CMCHKPK(cmPkLteLcId, param->u.lchDel.lcId, mBuf);
8229 CMCHKPK(cmPkLteRnti, param->u.lchDel.crnti, mBuf);
8230 CMCHKPK(cmPkLteCellId, param->u.lchDel.cellId, mBuf);
8233 CMCHKPK(cmPkLteRnti, param->u.ueDel.crnti, mBuf);
8234 CMCHKPK(cmPkLteCellId, param->u.ueDel.cellId, mBuf);
8237 CMCHKPK(cmPkLteCellId, param->u.cellDel.cellId, mBuf);
8240 case RGR_SCELL_UE_CFG:
8241 CMCHKPK(cmPkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
8242 CMCHKPK(oduUnpackUInt32, param->u.ueScellRel.ueDelTypes, mBuf);
8243 CMCHKPK(cmPkLteRnti, param->u.ueScellRel.crnti, mBuf);
8244 CMCHKPK(cmPkLteCellId, param->u.ueScellRel.cellId, mBuf);
8250 CMCHKPK(oduUnpackUInt8, param->delType, mBuf);
8257 /***********************************************************
8259 * Func : cmUnpkRgrUeDlSecCellRelInfo
8262 * Desc : DL Secondary Cell information of the UE
8271 **********************************************************/
8273 S16 cmUnpkRgrUeDlSecCellRelInfo
8275 RgrUeDlSecCellRelInfo *param,
8279 static S16 cmUnpkRgrUeDlSecCellRelInfo(param, mBuf)
8280 RgrUeDlSecCellRelInfo *param;
8284 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
8285 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
8290 /***********************************************************
8292 * Func : cmUnpkRgrUeSecCellRelInfo
8295 * Desc : Secondary Cell information of the UE
8304 **********************************************************/
8306 S16 cmUnpkRgrUeSecCellRelInfo
8308 RgrUeSecCellRelInfo *param,
8312 S16 cmUnpkRgrUeSecCellRelInfo(param, mBuf)
8313 RgrUeSecCellRelInfo *param;
8319 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
8321 for(idx = 0; idx < param->numSCells;idx++)
8323 CMCHKUNPK(cmUnpkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[idx],mBuf);
8329 /***********************************************************
8331 * Func : cmUnpkRgrDel
8334 * Desc : Basic Delete info for MAC
8343 **********************************************************/
8351 S16 cmUnpkRgrDel(param, mBuf)
8358 CMCHKUNPK(oduPackUInt8, ¶m->delType, mBuf);
8359 switch(param->delType) {
8361 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.cellDel.cellId, mBuf);
8364 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueDel.cellId, mBuf);
8365 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueDel.crnti, mBuf);
8368 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lchDel.cellId, mBuf);
8369 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lchDel.crnti, mBuf);
8370 CMCHKUNPK(cmUnpkLteLcId, ¶m->u.lchDel.lcId, mBuf);
8371 CMCHKUNPK(oduPackUInt8, ¶m->u.lchDel.lcgId, mBuf);
8374 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lcgDel.cellId, mBuf);
8375 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lcgDel.crnti, mBuf);
8376 CMCHKUNPK(oduPackUInt8, ¶m->u.lcgDel.lcgId, mBuf);
8379 case RGR_SCELL_UE_CFG:
8380 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueScellRel.cellId, mBuf);
8381 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueScellRel.crnti, mBuf);
8382 CMCHKUNPK(oduPackUInt32, ¶m->u.ueScellRel.ueDelTypes, mBuf);
8383 CMCHKUNPK(cmUnpkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
8391 /***********************************************************
8393 * Func : cmPkRgrSonPrbCfg
8396 * Desc : SON PRB Configuration info for MAC
8405 **********************************************************/
8407 S16 cmPkRgrSonPrbCfg
8413 S16 cmPkRgrSonPrbCfg(param, mBuf)
8419 for(count = RGR_SCH_MAX_PA_PER_PRB - 1; count >= 0; count --)
8421 CMCHKPK(oduUnpackUInt32, param->paLevelPerPrb[count], mBuf);
8423 for(count = param->numCellCentreUEs - 1; count >= 0; count --)
8425 CMCHKPK(cmPkLteRnti, param->cellCentreUe[count], mBuf);
8427 for(count = param->numCellEdgeUEs - 1; count >= 0; count --)
8429 CMCHKPK(cmPkLteRnti, param->cellEdgeUe[count], mBuf);
8431 CMCHKPK(oduUnpackUInt8, param->numCellCentreUEs, mBuf);
8432 CMCHKPK(oduUnpackUInt8, param->numCellEdgeUEs, mBuf);
8433 CMCHKPK(oduUnpackUInt8, param->isSonIcicEnable, mBuf);
8437 /***********************************************************
8439 * Func : cmUnpkRgrSon
8442 * Desc : SON configuration info for MAC
8451 **********************************************************/
8453 S16 cmUnpkRgrSonPrbCfg
8459 S16 cmUnpkRgrSonPrbCfg(param, mBuf)
8465 CMCHKUNPK(oduPackUInt8, ¶m->isSonIcicEnable, mBuf);
8466 CMCHKUNPK(oduPackUInt8, ¶m->numCellEdgeUEs, mBuf);
8467 CMCHKUNPK(oduPackUInt8, ¶m->numCellCentreUEs, mBuf);
8468 for (count = 0; count < param->numCellEdgeUEs; count++)
8470 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellEdgeUe[count], mBuf);
8472 for (count = 0; count < param->numCellCentreUEs; count++)
8474 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellCentreUe[count], mBuf);
8476 for(count = 0; count < RGR_SCH_MAX_PA_PER_PRB; count ++)
8478 CMCHKUNPK(oduPackUInt32,(uint32_t *) ¶m->paLevelPerPrb[count], mBuf);
8482 /***********************************************************
8484 * Func : cmPkRgrSonCfg
8487 * Desc : SON Configuration info for MAC
8496 **********************************************************/
8504 S16 cmPkRgrSonCfg(param, mBuf)
8510 switch(param->cfgType)
8512 case RGR_SON_PRB_CFG :
8513 CMCHKPK(cmPkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
8518 CMCHKPK(oduUnpackUInt32, param->cfgType, mBuf);
8522 /***********************************************************
8524 * Func : cmUnpkRgrSon
8527 * Desc : SON configuration info for MAC
8536 **********************************************************/
8544 S16 cmUnpkRgrSonCfg(param, mBuf)
8550 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->cfgType, mBuf);
8551 switch(param->cfgType)
8553 case RGR_SON_PRB_CFG :
8555 CMCHKUNPK(cmUnpkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
8565 /***********************************************************
8570 * Desc : UE RESET info for MAC
8579 **********************************************************/
8587 S16 cmPkRgrRst(param, mBuf)
8594 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
8595 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
8601 /***********************************************************
8603 * Func : cmUnpkRgrRst
8606 * Desc : UE RESET info for MAC
8615 **********************************************************/
8623 S16 cmUnpkRgrRst(param, mBuf)
8630 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8631 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8635 /***********************************************************
8637 * Func : cmUnPkRgrSCellActDeactInfo
8640 * Desc : SCell Activation information of the UE
8649 **********************************************************/
8651 static S16 cmUnPkRgrSCellActDeactInfo
8653 RgrSCellActDeactInfo *param,
8657 static S16 cmUnPkRgrSCellActInfo(param, mBuf)
8658 RgrSCellActDeactInfo *param;
8663 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
8667 /***********************************************************
8669 * Func : cmUnPkRgrSCellActDeactEvnt
8672 * Desc : SCell Activation Configuration structure to SCH
8681 **********************************************************/
8683 S16 cmUnPkRgrSCellActDeactEvnt
8685 RgrSCellActDeactEvnt *param,
8689 S16 cmUnPkRgrSCellActDeactEvnt(param, mBuf)
8690 RgrSCellActDeactEvnt *param;
8697 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8698 CMCHKUNPK(oduPackUInt8, ¶m->numOfSCells, mBuf);
8700 for(idx = 0; idx < param->numOfSCells;idx++)
8702 CMCHKUNPK(cmUnPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[idx],mBuf);
8709 /***********************************************************
8711 * Func : cmPkRgrSCellActInfo
8714 * Desc : SCell Activation information of the UE
8723 **********************************************************/
8725 static S16 cmPkRgrSCellActDeactInfo
8727 RgrSCellActDeactInfo *param,
8731 static S16 cmPkRgrSCellActDeactInfo(param, mBuf)
8732 RgrSCellActDeactInfo *param;
8737 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
8742 /***********************************************************
8744 * Func : cmPkRgrSCellActDeactEvnt
8747 * Desc : Basic Configuration structure at SCH
8756 **********************************************************/
8758 S16 cmPkRgrSCellActDeactEvnt
8760 RgrSCellActDeactEvnt *param,
8764 S16 cmPkRgrSCellActDeactEvnt(param, mBuf)
8765 RgrSCellActDeactEvnt *param;
8772 for(idx = param->numOfSCells - 1; idx >= 0; idx--)
8774 CMCHKPK(cmPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[(uint8_t)idx], mBuf);
8777 CMCHKPK(oduUnpackUInt8, param->numOfSCells, mBuf);
8778 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
8784 #endif /* LTE_ADV */
8786 /***********************************************************
8788 * Func : cmPkRgrCfgReqInfo
8791 * Desc : Basic RGR configuration/reconfiguration info at RRM
8800 **********************************************************/
8802 S16 cmPkRgrCfgReqInfo
8804 RgrCfgReqInfo *param,
8808 S16 cmPkRgrCfgReqInfo(param, mBuf)
8809 RgrCfgReqInfo *param;
8815 switch(param->action) {
8817 CMCHKPK(cmPkRgrSonCfg, ¶m->u.sonCfg, mBuf);
8820 CMCHKPK(cmPkRgrRst, ¶m->u.rstInfo, mBuf);
8823 CMCHKPK(cmPkRgrDel, ¶m->u.delInfo, mBuf);
8826 CMCHKPK(cmPkRgrRecfg, ¶m->u.recfgInfo, mBuf);
8829 CMCHKPK(cmPkRgrCfg, ¶m->u.cfgInfo, mBuf);
8833 case RGR_SCELL_DEACT:
8834 case RGR_SCELL_READY:
8835 CMCHKPK(cmPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
8841 CMCHKPK(oduUnpackUInt8, param->action, mBuf);
8847 /***********************************************************
8849 * Func : cmUnpkRgrCfgReqInfo
8852 * Desc : Basic RGR configuration/reconfiguration info at RRM
8861 **********************************************************/
8863 S16 cmUnpkRgrCfgReqInfo
8865 RgrCfgReqInfo *param,
8869 S16 cmUnpkRgrCfgReqInfo(param, mBuf)
8870 RgrCfgReqInfo *param;
8876 CMCHKUNPK(oduPackUInt8, ¶m->action, mBuf);
8877 switch(param->action) {
8879 CMCHKUNPK(cmUnpkRgrCfg, ¶m->u.cfgInfo, mBuf);
8882 CMCHKUNPK(cmUnpkRgrRecfg, ¶m->u.recfgInfo, mBuf);
8885 CMCHKUNPK(cmUnpkRgrDel, ¶m->u.delInfo, mBuf);
8888 CMCHKUNPK(cmUnpkRgrRst, ¶m->u.rstInfo, mBuf);
8891 CMCHKUNPK(cmUnpkRgrSonCfg, ¶m->u.sonCfg, mBuf);
8895 case RGR_SCELL_DEACT:
8896 case RGR_SCELL_READY:
8897 CMCHKUNPK(cmUnPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
8899 #endif /* LTE_ADV */
8906 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
8908 /***********************************************************
8910 * Func : cmPkRgrUeBsrTmrCfg
8913 * Desc : BSR timer configuration per UE
8922 **********************************************************/
8924 S16 cmPkRgrUeBsrTmrCfg
8926 RgrUeBsrTmrCfg *param,
8930 S16 cmPkRgrUeBsrTmrCfg(param, mBuf)
8931 RgrUeBsrTmrCfg *param;
8937 CMCHKPK(oduUnpackUInt16, param->prdBsrTmr, mBuf);
8938 CMCHKPK(oduUnpackUInt16, param->retxBsrTmr, mBuf);
8939 CMCHKPK(oduUnpackUInt8, param->isPrdBsrTmrPres, mBuf);
8943 /***********************************************************
8945 * Func : cmUnpkRgrUeBsrTmrCfg
8948 * Desc : BSR timer configuration per UE
8957 **********************************************************/
8959 S16 cmUnpkRgrUeBsrTmrCfg
8961 RgrUeBsrTmrCfg *param,
8965 S16 cmUnpkRgrUeBsrTmrCfg(param, mBuf)
8966 RgrUeBsrTmrCfg *param;
8972 CMCHKUNPK(oduPackUInt8, ¶m->isPrdBsrTmrPres, mBuf);
8973 CMCHKUNPK(oduPackUInt16, ¶m->retxBsrTmr, mBuf);
8974 CMCHKUNPK(oduPackUInt16, ¶m->prdBsrTmr, mBuf);
8978 /* rgr_c_001.main_4-ADD-Added for SI Enhancement. */
8980 /***********************************************************
8982 * Func : cmPkRgrSiCfgReq
8985 * Desc : SI Configuration Request from RRM to MAC for
8995 **********************************************************/
9001 RgrCfgTransId transId,
9002 RgrSiCfgReqInfo * cfgReqInfo
9005 S16 cmPkRgrSiCfgReq(pst, spId, transId, cfgReqInfo)
9008 RgrCfgTransId transId;
9009 RgrSiCfgReqInfo * cfgReqInfo;
9012 Buffer *mBuf = NULLP;
9015 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9017 #if (ERRCLASS & ERRCLS_ADD_RES)
9018 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9019 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9020 (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
9022 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9023 sizeof(RgrSiCfgReqInfo));
9026 if (cmPkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
9027 #if (ERRCLASS & ERRCLS_ADD_RES)
9028 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9029 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9030 (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
9032 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9033 sizeof(RgrSiCfgReqInfo));
9037 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
9038 #if (ERRCLASS & ERRCLS_ADD_RES)
9039 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9040 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9041 (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
9043 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9044 sizeof(RgrSiCfgReqInfo));
9048 if (SPkS16(spId, mBuf) != ROK) {
9049 #if (ERRCLASS & ERRCLS_ADD_RES)
9050 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9051 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9052 (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
9054 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9055 sizeof(RgrSiCfgReqInfo));
9059 if (SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9060 sizeof(RgrSiCfgReqInfo)) != ROK) {
9061 #if (ERRCLASS & ERRCLS_ADD_RES)
9062 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9063 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9064 (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
9070 pst->event = (Event) EVTRGRSICFGREQ;
9071 return (SPstTsk(pst,mBuf));
9074 /***********************************************************
9076 * Func : cmUnpkRgrSiCfgReq
9079 * Desc : SI Configuration Request from RRM to MAC for
9089 **********************************************************/
9091 S16 cmUnpkRgrSiCfgReq
9098 S16 cmUnpkRgrSiCfgReq(func, pst, mBuf)
9105 RgrCfgTransId transId;
9106 RgrSiCfgReqInfo *cfgReqInfo;
9109 if (SUnpkS16(&spId, mBuf) != ROK) {
9111 #if (ERRCLASS & ERRCLS_ADD_RES)
9112 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9113 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9114 (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
9118 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
9120 #if (ERRCLASS & ERRCLS_ADD_RES)
9121 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9122 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9123 (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
9127 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo,
9128 sizeof(RgrSiCfgReqInfo))) != ROK) {
9129 #if (ERRCLASS & ERRCLS_ADD_RES)
9130 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9131 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9132 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
9137 memset(cfgReqInfo, 0, sizeof(RgrSiCfgReqInfo));
9138 if (pst->selector == ODU_SELECTOR_LC)
9139 if (cmUnpkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
9140 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9141 sizeof(RgrSiCfgReqInfo));
9143 #if (ERRCLASS & ERRCLS_ADD_RES)
9144 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9145 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9146 (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
9152 return ((*func)(pst, spId, transId, cfgReqInfo));
9155 /***********************************************************
9157 * Func : cmPkRgrSiCfgReqInfo
9160 * Desc : Basic SI configuration/reconfiguration info at RRM
9169 **********************************************************/
9171 S16 cmPkRgrSiCfgReqInfo
9173 RgrSiCfgReqInfo *param,
9177 S16 cmPkRgrSiCfgReqInfo(param, mBuf)
9178 RgrSiCfgReqInfo *param;
9182 /* ccpu00111328: S16 is renamed as MsgLen */
9186 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
9187 CMCHKPK(SPkS32, param->cfgType, mBuf);
9188 CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
9190 if(NULLP != param->pdu)
9192 if (SFndLenMsg(param->pdu, &msgLen) != ROK)
9194 if (SCatMsg(mBuf, param->pdu, M1M2) != ROK)
9196 SPutMsg(param->pdu);
9197 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
9202 CMCHKPK(cmPkMsgLen, 0, mBuf);
9208 /***********************************************************
9210 * Func : cmUnpkRgrSiCfgReqInfo
9213 * Desc : Basic SI configuration/reconfiguration info at RRM
9222 **********************************************************/
9224 S16 cmUnpkRgrSiCfgReqInfo
9226 RgrSiCfgReqInfo *param,
9230 S16 cmUnpkRgrSiCfgReqInfo(param, mBuf)
9231 RgrSiCfgReqInfo *param;
9235 MsgLen msgLen, totalMsgLen;
9236 /*Merge from Mohit Changes*/
9240 SFndLenMsg(mBuf, &msgLen);
9243 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
9247 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
9249 if (SSegMsg(mBuf, totalMsgLen-msgLen, ¶m->pdu) != ROK)
9258 CMCHKUNPK(oduPackUInt8, ¶m->siId, mBuf);
9259 /*CMCHKUNPK(SUnpkS32, (S32 *)¶m->cfgType, mBuf);*/
9260 /*Merge from Mohit Changes*/
9261 CMCHKUNPK(SUnpkS32,(S32 *)&cfgType, mBuf);
9262 param->cfgType = (RgrSiCfgType) cfgType;
9263 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
9270 /***********************************************************
9272 * Func : cmPkRgrWarningSiCfgReq
9275 * Desc : SI Configuration Request from RRM to MAC for
9276 * configuring warning SI
9285 **********************************************************/
9287 S16 cmPkRgrWarningSiCfgReq
9291 RgrCfgTransId transId,
9292 RgrWarningSiCfgReqInfo * warningSiCfgReqInfo
9295 S16 cmPkRgrWarningSiCfgReq(pst, spId, transId, warningSiCfgReqInfo)
9298 RgrCfgTransId transId;
9299 RgrWarningSiCfgReqInfo * warningSiCfgReqInfo;
9302 Buffer *mBuf = NULLP;
9305 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9307 #if (ERRCLASS & ERRCLS_ADD_RES)
9308 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9309 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9310 (ErrVal)ERGR061, (ErrVal)0, "Packing failed");
9312 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9313 sizeof(RgrWarningSiCfgReqInfo));
9317 if (cmPkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK)
9319 #if (ERRCLASS & ERRCLS_ADD_RES)
9320 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9321 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9322 (ErrVal)ERGR062, (ErrVal)0, "Packing failed");
9324 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9325 sizeof(RgrWarningSiCfgReqInfo));
9330 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
9332 #if (ERRCLASS & ERRCLS_ADD_RES)
9333 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9334 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9335 (ErrVal)ERGR063, (ErrVal)0, "Packing failed");
9337 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9338 sizeof(RgrWarningSiCfgReqInfo));
9343 if (SPkS16(spId, mBuf) != ROK)
9345 #if (ERRCLASS & ERRCLS_ADD_RES)
9346 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9347 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9348 (ErrVal)ERGR064, (ErrVal)0, "Packing failed");
9350 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9351 sizeof(RgrWarningSiCfgReqInfo));
9356 /* if the application wants to retain this structure, the below
9357 * code should be removed */
9358 if (SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9359 sizeof(RgrWarningSiCfgReqInfo)) != ROK)
9361 #if (ERRCLASS & ERRCLS_ADD_RES)
9362 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9363 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9364 (ErrVal)ERGR065, (ErrVal)0, "Packing failed");
9370 pst->event = (Event) EVTRGRWARNINGSICFGREQ;
9371 return (SPstTsk(pst,mBuf));
9372 }/*cmPkRgrWarningSiCfgReq*/
9375 /***********************************************************
9377 * Func : cmUnpkRgrWarningSiCfgReq
9380 * Desc : SI Configuration Request from RRM to MAC for
9381 * configuring warning SI
9390 **********************************************************/
9392 S16 cmUnpkRgrWarningSiCfgReq
9394 RgrWarningSiCfgReq func,
9399 S16 cmUnpkRgrWarningSiCfgReq(func, pst, mBuf)
9400 RgrWarningSiCfgReq func;
9406 RgrCfgTransId transId;
9407 RgrWarningSiCfgReqInfo *warningSiCfgReqInfo;
9410 if (SUnpkS16(&spId, mBuf) != ROK)
9413 #if (ERRCLASS & ERRCLS_ADD_RES)
9414 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9415 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9416 (ErrVal)ERGR066, (ErrVal)0, "Packing failed");
9421 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
9424 #if (ERRCLASS & ERRCLS_ADD_RES)
9425 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9426 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9427 (ErrVal)ERGR067, (ErrVal)0, "Packing failed");
9432 if ((SGetSBuf(pst->region, pst->pool, (Data **)&warningSiCfgReqInfo,
9433 sizeof(RgrWarningSiCfgReqInfo))) != ROK)
9435 #if (ERRCLASS & ERRCLS_ADD_RES)
9436 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9437 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9438 (ErrVal)ERGR068, (ErrVal)0, "Packing failed");
9445 if (pst->selector == ODU_SELECTOR_LC)
9447 if (cmUnpkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK)
9449 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9450 sizeof(RgrWarningSiCfgReqInfo));
9452 #if (ERRCLASS & ERRCLS_ADD_RES)
9453 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9454 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9455 (ErrVal)ERGR069, (ErrVal)0, "Packing failed");
9462 return ((*func)(pst, spId, transId, warningSiCfgReqInfo));
9463 } /* cmUnpkRgrWarningSiCfgReq */
9466 /***********************************************************
9468 * Func : cmPkRgrWarningSiCfgReqInfo
9471 * Desc : Basic warning SI configuration/reconfiguration
9481 **********************************************************/
9483 S16 cmPkRgrWarningSiCfgReqInfo
9486 RgrWarningSiCfgReqInfo *param,
9490 S16 cmPkRgrWarningSiCfgReqInfo(pst, param, mBuf)
9492 RgrWarningSiCfgReqInfo *param;
9498 CmLList *node, *prevNode;
9499 RgrSegmentInfo *pdu;
9502 CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
9504 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
9505 CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
9507 count = param->siPduLst.count;
9508 node = param->siPduLst.last;
9511 pdu = (RgrSegmentInfo *)node->node;
9512 prevNode= node->prev;
9515 if (SFndLenMsg(pdu->pdu, &msgLen) != ROK)
9517 if (SCatMsg(mBuf, pdu->pdu, M1M2) != ROK)
9519 /* The PDU is not Released. This has to be done by
9520 * the caller of the packing function */
9521 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
9524 cmLListDelFrm(¶m->siPduLst, node);
9525 SPutSBuf(pst->region, pst->pool, (Data *)node, sizeof(RgrSegmentInfo));
9528 CMCHKPK(oduUnpackUInt32, count, mBuf);
9533 /***********************************************************
9535 * Func : cmUnpkRgrWarningSiCfgReqInfo
9538 * Desc : Unpack warning SI configuration info at SCH
9547 **********************************************************/
9549 S16 cmUnpkRgrWarningSiCfgReqInfo
9552 RgrWarningSiCfgReqInfo *param,
9556 S16 cmUnpkRgrWarningSiCfgReqInfo(pst, param, mBuf)
9558 RgrWarningSiCfgReqInfo *param;
9562 MsgLen msgLen, totalMsgLen;
9563 uint32_t count, loopCnt;
9568 cmLListInit(¶m->siPduLst);
9569 CMCHKUNPK(oduPackUInt32, &count, mBuf);
9570 for (loopCnt=0; loopCnt<count; loopCnt++)
9572 if(SFndLenMsg(mBuf, &msgLen) != ROK)
9579 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
9580 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
9584 if (SSegMsg(mBuf, totalMsgLen-msgLen, &pdu) != ROK)
9593 if ((SGetSBuf(pst->region, pst->pool, (Data **)&node,
9594 sizeof(CmLList))) != ROK)
9596 node->node = (PTR)pdu;
9597 cmLListAdd2Tail(¶m->siPduLst, node);
9600 CMCHKUNPK(oduPackUInt8, ¶m->siId, mBuf);
9601 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
9602 CMCHKPK(oduPackUInt8, ¶m->emtcEnable, mBuf);
9608 /***********************************************************
9610 * Func : cmPkRgrWarningSiStopReq
9612 * Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
9619 **********************************************************/
9621 S16 cmPkRgrWarningSiStopReq
9625 RgrCfgTransId transId,
9629 S16 cmPkRgrWarningSiStopReq(pst,spId, transId, siId)
9632 RgrCfgTransId transId;
9636 Buffer *mBuf = NULLP;
9639 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9641 #if (ERRCLASS & ERRCLS_ADD_RES)
9642 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9643 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9644 (ErrVal)ERGR070, (ErrVal)0, "Packing failed");
9649 CMCHKPK(oduUnpackUInt8, siId, mBuf);
9652 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
9654 #if (ERRCLASS & ERRCLS_ADD_RES)
9655 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9656 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9657 (ErrVal)ERGR082, (ErrVal)0, "Packing failed");
9664 if (SPkS16(spId, mBuf) != ROK)
9666 #if (ERRCLASS & ERRCLS_ADD_RES)
9667 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9668 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9669 (ErrVal)ERGR071, (ErrVal)0, "Packing failed");
9675 pst->event = (Event) EVTRGRWARNINGSISTOPREQ;
9676 return (SPstTsk(pst,mBuf));
9677 }/*cmPkRgrWarningSiStopReq */
9680 /***********************************************************
9682 * Func : cmUnpkRgrWarningSiStopReq
9684 * Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
9691 **********************************************************/
9693 S16 cmUnpkRgrWarningSiStopReq
9695 RgrWarningSiStopReq func,
9700 S16 cmUnpkRgrWarningSiStopReq(param, mBuf)
9701 RgrWarningSiStopReq func;
9708 RgrCfgTransId transId;
9711 if (SUnpkS16(&spId, mBuf) != ROK)
9714 #if (ERRCLASS & ERRCLS_ADD_RES)
9715 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9716 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9717 (ErrVal)ERGR072, (ErrVal)0, "Packing failed");
9722 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
9725 #if (ERRCLASS & ERRCLS_ADD_RES)
9726 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9727 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9728 (ErrVal)ERGR083, (ErrVal)0, "Packing failed");
9733 CMCHKUNPK(oduPackUInt8, &siId, mBuf);
9737 return ((*func)(pst, spId, transId, siId));
9738 } /*cmUnpkRgrWarningSiStopReq */
9741 /***********************************************************
9743 * Func : cmPkRgrWarningSiCfgCfm
9746 * Desc : Warning SI Configuration Confirm from MAC to RRM
9755 **********************************************************/
9757 S16 cmPkRgrWarningSiCfgCfm
9761 RgrCfgTransId transId,
9766 S16 cmPkRgrWarningSiCfgCfm(pst, suId, transId, siId, status)
9769 RgrCfgTransId transId;
9774 Buffer *mBuf = NULLP;
9777 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9779 #if (ERRCLASS & ERRCLS_ADD_RES)
9780 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9781 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9782 (ErrVal)ERGR073, (ErrVal)0, "Packing failed");
9787 if (oduUnpackUInt8(status, mBuf) != ROK)
9789 #if (ERRCLASS & ERRCLS_ADD_RES)
9790 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9791 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9792 (ErrVal)ERGR074, (ErrVal)0, "Packing failed");
9798 if (oduUnpackUInt8(siId, mBuf) != ROK)
9800 #if (ERRCLASS & ERRCLS_ADD_RES)
9801 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9802 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9803 (ErrVal)ERGR075, (ErrVal)0, "Packing failed");
9809 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
9811 #if (ERRCLASS & ERRCLS_ADD_RES)
9812 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9813 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9814 (ErrVal)ERGR076, (ErrVal)0, "Packing failed");
9820 if (SPkS16(suId, mBuf) != ROK)
9822 #if (ERRCLASS & ERRCLS_ADD_RES)
9823 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9824 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9825 (ErrVal)ERGR077, (ErrVal)0, "Packing failed");
9831 pst->event = (Event) EVTRGRWARNINGSICFGCFM;
9832 return (SPstTsk(pst,mBuf));
9833 } /* cmPkRgrWarningSiCfgCfm */
9836 /***********************************************************
9838 * Func : cmUnpkRgrwarningSiCfgCfm
9841 * Desc : Warning SI Configuration Confirm from MAC to RRM
9850 **********************************************************/
9852 S16 cmUnpkRgrWarningSiCfgCfm
9854 RgrWarningSiCfgCfm func,
9859 S16 cmUnpkRgrWarningSiCfgCfm(func, pst, mBuf)
9860 RgrWarningSiCfgCfm func;
9867 RgrCfgTransId transId;
9871 if (SUnpkS16(&suId, mBuf) != ROK)
9874 #if (ERRCLASS & ERRCLS_ADD_RES)
9875 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9876 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9877 (ErrVal)ERGR078, (ErrVal)0, "Packing failed");
9882 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
9885 #if (ERRCLASS & ERRCLS_ADD_RES)
9886 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9887 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9888 (ErrVal)ERGR079, (ErrVal)0, "Packing failed");
9893 if (oduPackUInt8(&siId, mBuf) != ROK)
9896 #if (ERRCLASS & ERRCLS_ADD_RES)
9897 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9898 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9899 (ErrVal)ERGR080, (ErrVal)0, "Packing failed");
9904 if (oduPackUInt8(&status, mBuf) != ROK)
9907 #if (ERRCLASS & ERRCLS_ADD_RES)
9908 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9909 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9910 (ErrVal)ERGR081, (ErrVal)0, "Packing failed");
9915 return ((*func)(pst, suId, transId, siId, status));
9916 }/* cmUnpkRgrwarningSiCfgCfm */
9917 #endif/*RGR_SI_SCH*/
9919 /* LTE_ADV_FLAG_REMOVED_START */
9920 /***********************************************************
9922 * Func : cmPkRgrLoadInfReq
9925 * Desc : LOAD INF Configuration Request from RRM to MAC for
9926 * configuring RNTP, ABS etc
9935 **********************************************************/
9937 S16 cmPkRgrLoadInfReq
9941 RgrCfgTransId transId,
9942 RgrLoadInfReqInfo * loadInfReq
9945 S16 cmPkRgrLoadInfReq(pst, spId, transId, loadInfReq)
9948 RgrCfgTransId transId;
9949 RgrLoadInfReqInfo * loadInfReq;
9952 Buffer *mBuf = NULLP;
9955 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9957 #if (ERRCLASS & ERRCLS_ADD_RES)
9958 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9959 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9960 (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
9962 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9963 sizeof(RgrLoadInfReqInfo));
9966 if (cmPkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
9967 #if (ERRCLASS & ERRCLS_ADD_RES)
9968 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9969 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9970 (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
9972 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9973 sizeof(RgrLoadInfReqInfo));
9977 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
9978 #if (ERRCLASS & ERRCLS_ADD_RES)
9979 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9980 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9981 (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
9983 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9984 sizeof(RgrLoadInfReqInfo));
9988 if (SPkS16(spId, mBuf) != ROK) {
9989 #if (ERRCLASS & ERRCLS_ADD_RES)
9990 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9991 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9992 (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
9994 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9995 sizeof(RgrLoadInfReqInfo));
9999 if (SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
10000 sizeof(RgrLoadInfReqInfo)) != ROK) {
10001 #if (ERRCLASS & ERRCLS_ADD_RES)
10002 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10003 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10004 (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
10010 pst->event = (Event) EVTRGRLOADINFREQ;
10011 return (SPstTsk(pst,mBuf));
10014 /***********************************************************
10016 * Func : cmUnpkRgrLoadInfReq
10019 * Desc : LOAD INF Configuration Request from RRM to MAC for
10020 * configuring RNTP, ABS etc
10029 **********************************************************/
10031 S16 cmUnpkRgrLoadInfReq
10033 RgrLoadInfReq func,
10038 S16 cmUnpkRgrLoadInfReq(func, pst, mBuf)
10039 RgrLoadInfReq func;
10045 RgrCfgTransId transId;
10046 RgrLoadInfReqInfo *loadInfReq;
10049 if (SUnpkS16(&spId, mBuf) != ROK) {
10051 #if (ERRCLASS & ERRCLS_ADD_RES)
10052 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10053 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10054 (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
10059 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
10061 #if (ERRCLASS & ERRCLS_ADD_RES)
10062 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10063 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10064 (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
10069 if ((SGetSBuf(pst->region, pst->pool, (Data **)&loadInfReq,
10070 sizeof(RgrLoadInfReqInfo))) != ROK) {
10071 #if (ERRCLASS & ERRCLS_ADD_RES)
10072 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10073 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10074 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
10080 memset(loadInfReq, 0, sizeof(RgrLoadInfReqInfo));
10082 if (pst->selector == ODU_SELECTOR_LC)
10083 if (cmUnpkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
10084 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
10085 sizeof(RgrLoadInfReqInfo));
10087 #if (ERRCLASS & ERRCLS_ADD_RES)
10088 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10089 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10090 (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
10096 return ((*func)(pst, spId, transId, loadInfReq));
10099 /***********************************************************
10101 * Func : cmPkRgrLoadInfReqInfo
10104 * Desc : Basic LOAD INF configuration/reconfiguration info at RRM
10113 **********************************************************/
10115 S16 cmPkRgrLoadInfReqInfo
10117 RgrLoadInfReqInfo *param,
10121 S16 cmPkRgrLoadInfReqInfo(param, mBuf)
10122 RgrLoadInfReqInfo *param;
10127 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10128 CMCHKPK(oduUnpackUInt8, param->rgrCcPHighStartRb, mBuf);
10129 CMCHKPK(oduUnpackUInt8, param->rgrCcPHighEndRb, mBuf);
10134 /***********************************************************
10136 * Func : cmUnpkRgrLoadInfReqInfo
10139 * Desc : Basic LOAD INF configuration/reconfiguration info at RRM
10148 **********************************************************/
10150 S16 cmUnpkRgrLoadInfReqInfo
10152 RgrLoadInfReqInfo *param,
10156 S16 cmUnpkRgrLoadInfReqInfo(param, mBuf)
10157 RgrLoadInfReqInfo *param;
10162 CMCHKUNPK(oduPackUInt8, ¶m->rgrCcPHighEndRb, mBuf);
10163 CMCHKUNPK(oduPackUInt8, ¶m->rgrCcPHighStartRb, mBuf);
10164 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10168 /* LTE_ADV_FLAG_REMOVED_END */
10170 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
10171 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
10172 #ifdef RGR_CQI_REPT
10174 /***********************************************************
10176 * Func : cmPkRgrUeCqiReptCfg
10179 * Desc : Transaction ID between MAC and RRM
10188 **********************************************************/
10190 S16 cmPkRgrUeCqiReptCfg
10192 RgrUeCqiReptCfg *param,
10196 S16 cmPkRgrUeCqiReptCfg(param, mBuf)
10197 RgrUeCqiReptCfg *param;
10202 CMCHKPK(oduUnpackUInt8, param->numColltdCqiRept, mBuf);
10208 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10209 /***********************************************************
10211 * Func : cmUnpkRgrUeCqiReptCfg
10214 * Desc : Transaction ID between MAC and RRM
10223 **********************************************************/
10225 S16 cmUnpkRgrUeCqiReptCfg
10227 RgrUeCqiReptCfg *param,
10231 S16 cmUnpkRgrUeCqiReptCfg(param, mBuf)
10232 RgrUeCqiReptCfg *param;
10237 CMCHKUNPK(oduPackUInt8, ¶m->numColltdCqiRept, mBuf);
10243 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10244 /***********************************************************
10246 * Func : cmPkRgrStaInd
10249 * Desc : Packing Sta Indication sent to RRM
10258 **********************************************************/
10264 RgrStaIndInfo* staInd
10267 S16 cmPkRgrStaInd(pst, suId, staInd)
10270 RgrStaIndInfo* staInd;
10273 Buffer *mBuf = NULLP;
10275 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
10277 #if (ERRCLASS & ERRCLS_ADD_RES)
10278 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10279 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10280 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
10282 SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10283 sizeof(RgrStaIndInfo));
10287 if (cmPkRgrStaIndInfo(staInd, mBuf) != ROK)
10289 #if (ERRCLASS & ERRCLS_ADD_RES)
10290 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10291 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10292 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
10294 SPutSBuf(pst->region, pst->pool, (Data *)staInd, sizeof(RgrStaIndInfo));
10299 if (SPkS16(suId, mBuf) != ROK)
10301 #if (ERRCLASS & ERRCLS_ADD_RES)
10302 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10303 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10304 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
10306 SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10307 sizeof(RgrStaIndInfo));
10312 if (SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10313 sizeof(RgrStaIndInfo)) != ROK)
10315 #if (ERRCLASS & ERRCLS_ADD_RES)
10316 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10317 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10318 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
10324 pst->event = (Event) EVTRGRSTAIND;
10325 return (SPstTsk(pst,mBuf));
10328 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10329 /***********************************************************
10331 * Func : cmUnpkRgrStaInd
10334 * Desc : Unpacking Sta Indication sent to RRM
10342 **********************************************************/
10344 S16 cmUnpkRgrStaInd
10351 S16 cmUnpkRgrStaInd(func, pst, mBuf)
10358 RgrStaIndInfo *staInd;
10361 if (SUnpkS16(&suId, mBuf) != ROK)
10364 #if (ERRCLASS & ERRCLS_ADD_RES)
10365 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10366 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10367 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
10372 if ((SGetSBuf(pst->region, pst->pool, (Data **)&staInd,
10373 sizeof(RgrStaIndInfo))) != ROK)
10375 #if (ERRCLASS & ERRCLS_ADD_RES)
10376 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10377 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10378 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
10384 if (cmUnpkRgrStaIndInfo(staInd, mBuf) != ROK)
10386 SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10387 sizeof(RgrStaIndInfo));
10389 #if (ERRCLASS & ERRCLS_ADD_RES)
10390 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10391 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10392 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
10398 return ((*func)(pst, suId, staInd));
10401 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10402 /***********************************************************
10404 * Func : cmPkRgrStaIndInfo
10407 * Desc : Packing of StaIndInfo structure
10415 **********************************************************/
10417 S16 cmPkRgrStaIndInfo
10419 RgrStaIndInfo *param,
10423 S16 cmPkRgrStaIndInfo(param, mBuf)
10424 RgrStaIndInfo *param;
10430 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10431 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
10432 CMCHKPK(cmPkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
10436 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10437 /***********************************************************
10439 * Func : cmUnpkRgrStaIndInfo
10442 * Desc : Unpacking of StaIndInfo structure
10450 **********************************************************/
10452 S16 cmUnpkRgrStaIndInfo
10454 RgrStaIndInfo *param,
10458 S16 cmUnpkRgrStaIndInfo(param, mBuf)
10459 RgrStaIndInfo *param;
10465 CMCHKUNPK(cmUnpkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
10466 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
10467 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10471 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10472 /***********************************************************
10474 * Func : cmPkRgrUeCqiInfo
10477 * Desc : Packing of StaIndInfo structure
10485 **********************************************************/
10487 S16 cmPkRgrUeCqiInfo
10489 RgrUeCqiInfo *param,
10493 S16 cmPkRgrUeCqiInfo(param, mBuf)
10494 RgrUeCqiInfo *param;
10501 for (idx = param->numCqiRept - 1; idx >= 0; idx--)
10503 CMCHKPK(cmPkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
10505 CMCHKPK(oduUnpackUInt8, param->numCqiRept, mBuf);
10508 } /* cmPkRgrUeCqiInfo */
10510 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10511 /***********************************************************
10513 * Func : cmUnpkRgrUeCqiInfo
10516 * Desc : Packing of StaIndInfo structure
10524 **********************************************************/
10526 S16 cmUnpkRgrUeCqiInfo
10528 RgrUeCqiInfo *param,
10532 S16 cmUnpkRgrUeCqiInfo(param, mBuf)
10533 RgrUeCqiInfo *param;
10540 CMCHKUNPK(oduPackUInt8, ¶m->numCqiRept, mBuf);
10541 for (idx = 0; idx < param->numCqiRept; idx++)
10543 CMCHKUNPK(cmUnpkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
10547 } /* cmUnpkRgrUeCqiInfo */
10549 /***********************************************************
10551 * Func : cmPkRgrSubBandCqiInfo
10554 * Desc : Packing ofcmPkRgrSubBandCqiInfo structure
10562 **********************************************************/
10564 S16 cmPkRgrSubBandCqiInfo
10566 RgrSubBandCqiInfo *param,
10570 S16 cmPkRgrSubBandCqiInfo(param, mBuf)
10571 RgrSubBandCqiInfo *param;
10577 CMCHKPK(oduUnpackUInt8, param->cqi[0], mBuf);
10578 CMCHKPK(oduUnpackUInt8, param->cqi[1], mBuf);
10579 CMCHKPK(oduUnpackUInt8, param->subBandIdx, mBuf);
10582 } /* cmPkRgrSubBandCqiInfo */
10584 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10585 /***********************************************************
10587 * Func : cmPkRgrUeCqiRept
10590 * Desc : Packing of StaIndInfo structure
10598 **********************************************************/
10600 S16 cmPkRgrUeCqiRept
10602 RgrUeCqiRept *param,
10606 S16 cmPkRgrUeCqiRept(param, mBuf)
10607 RgrUeCqiRept *param;
10615 CMCHKPK(oduUnpackUInt8, param->cqi[0], mBuf);
10616 CMCHKPK(oduUnpackUInt8, param->cqi[1], mBuf);
10617 CMCHKPK(oduUnpackUInt8, param->cqiMode, mBuf);
10618 for (idx = param->numSubBand - 1; idx >= 0; idx--)
10621 CMCHKPK(cmPkRgrSubBandCqiInfo, ¶m->sbCqiInfo[count], mBuf);
10623 CMCHKPK(oduUnpackUInt8, param->numSubBand, mBuf);
10625 } /* cmPkRgrUeCqiRept */
10627 /***********************************************************
10629 * Func :cmUnpkRgrSubBandCqiInfo
10632 * Desc : Packing of cmUnpkRgrSubBandCqiInfo structure
10640 **********************************************************/
10642 S16 cmUnpkRgrSubBandCqiInfo
10644 RgrSubBandCqiInfo *param,
10648 S16 cmUnpkRgrSubBandCqiInfo(param, mBuf)
10649 RgrSubBandCqiInfo *param;
10655 CMCHKUNPK(oduPackUInt8, ¶m->subBandIdx, mBuf);
10656 CMCHKUNPK(oduPackUInt8, ¶m->cqi[1], mBuf);
10657 CMCHKUNPK(oduPackUInt8, ¶m->cqi[0], mBuf);
10660 } /* cmUnpkRgrSubBandCqiInfo*/
10662 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10663 /***********************************************************
10665 * Func : cmUnpkRgrUeCqiRept
10668 * Desc : Packing of StaIndInfo structure
10676 **********************************************************/
10678 S16 cmUnpkRgrUeCqiRept
10680 RgrUeCqiRept *param,
10684 S16 cmUnpkRgrUeCqiRept(param, mBuf)
10685 RgrUeCqiRept *param;
10691 CMCHKUNPK(oduPackUInt8, ¶m->numSubBand, mBuf);
10692 for (idx = 0; idx < param->numSubBand; idx++)
10694 CMCHKUNPK(cmUnpkRgrSubBandCqiInfo, ¶m->sbCqiInfo[idx], mBuf);
10696 CMCHKUNPK(oduPackUInt8, ¶m->cqiMode, mBuf);
10697 CMCHKUNPK(oduPackUInt8, ¶m->cqi[1], mBuf);
10698 CMCHKUNPK(oduPackUInt8, ¶m->cqi[0], mBuf);
10701 } /* cmUnpkRgrUeCqiRept */
10702 #endif /* End of ifdef RGR_CQI_REPT */
10704 /* LTE_ADV_FLAG_REMOVED_START */
10705 /***********************************************************
10707 * Func : cmPkRgrLoadInfInd
10710 * Desc : Packing LOAD INFORMATION Indication sent to RRM
10719 **********************************************************/
10721 S16 cmPkRgrLoadInfInd
10725 RgrLoadInfIndInfo* loadInfInd
10728 S16 cmPkRgrLoadInfInd(pst, suId, loadInfInd)
10731 RgrLoadInfIndInfo* loadInfInd;
10734 Buffer *mBuf = NULLP;
10736 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
10738 #if (ERRCLASS & ERRCLS_ADD_RES)
10739 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10740 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10741 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
10743 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10744 sizeof(RgrLoadInfIndInfo));
10748 if (cmPkRgrLoadInfIndInfo(loadInfInd, mBuf) != ROK)
10750 #if (ERRCLASS & ERRCLS_ADD_RES)
10751 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10752 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10753 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
10755 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10756 sizeof(RgrLoadInfIndInfo));
10762 if (SPkS16(suId, mBuf) != ROK)
10764 #if (ERRCLASS & ERRCLS_ADD_RES)
10765 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10766 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10767 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
10769 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10770 sizeof(RgrLoadInfIndInfo));
10775 if (SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10776 sizeof(RgrLoadInfIndInfo)) != ROK)
10778 #if (ERRCLASS & ERRCLS_ADD_RES)
10779 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10780 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10781 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
10787 pst->event = (Event) EVTRGRLOADINFIND;
10788 return (SPstTsk(pst,mBuf));
10791 /***********************************************************
10793 * Func : cmUnpkRgrLoadInfInd
10796 * Desc : Unpacking LOAD INFORMATION Indication sent to RRM
10804 **********************************************************/
10806 S16 cmUnpkRgrLoadInfInd
10808 RgrLoadInfInd func,
10813 S16 cmUnpkRgrLoadInfInd(func, pst, mBuf)
10814 RgrLoadInfInd func;
10820 RgrLoadInfIndInfo *loadInfInd = NULLP; /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
10823 if (SUnpkS16(&suId, mBuf) != ROK)
10826 #if (ERRCLASS & ERRCLS_ADD_RES)
10827 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10828 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10829 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
10834 if ((SGetSBuf(pst->region, pst->pool, (Data **)&loadInfInd,
10835 sizeof(RgrLoadInfIndInfo))) != ROK)
10837 #if (ERRCLASS & ERRCLS_ADD_RES)
10838 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10839 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10840 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
10846 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
10847 if (cmUnpkRgrLoadInfIndInfo(loadInfInd, pst, mBuf) != ROK)
10849 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10850 sizeof(RgrLoadInfIndInfo));
10852 #if (ERRCLASS & ERRCLS_ADD_RES)
10853 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10854 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10855 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
10861 return ((*func)(pst, suId, loadInfInd));
10865 /***********************************************************
10867 * Func : cmPkRgrLoadInfIndInfo
10870 * Desc : Packing of LoadInfIndInfo structure
10878 **********************************************************/
10880 S16 cmPkRgrLoadInfIndInfo
10882 RgrLoadInfIndInfo *param,
10886 S16 cmPkRgrLoadInfIndInfo(param, mBuf)
10887 RgrLoadInfIndInfo *param;
10893 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10894 CMCHKPK(oduUnpackUInt16, param->bw, mBuf);
10895 if(RGR_ABS == param->type)
10897 for(idx = 0; idx < RGR_ABS_PATTERN_LEN; idx++)
10899 CMCHKPK(oduUnpackUInt32, param->u.absLoadInfo[idx], mBuf);
10904 CMCHKPK(cmPkTknStrOSXL, ¶m->u.rntpInfo, mBuf);
10907 CMCHKPK(oduUnpackUInt32, param->type, mBuf);
10912 /***********************************************************
10914 * Func : cmUnpkRgrLoadInfIndInfo
10917 * Desc : Unpacking of LoadInfIndInfo structure
10925 **********************************************************/
10927 S16 cmUnpkRgrLoadInfIndInfo
10929 RgrLoadInfIndInfo *param,
10934 S16 cmUnpkRgrLoadInfIndInfo(param, pst, mBuf)
10935 RgrLoadInfIndInfo *param;
10942 /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
10943 TknStrOSXL *tknStr;
10947 CMCHKUNPK(oduPackUInt32, ¶m->type, mBuf);
10948 if(RGR_ABS == param->type)
10950 for(idx = RGR_ABS_PATTERN_LEN -1 ; idx >= 0; idx--)
10952 CMCHKUNPK(oduPackUInt32, ¶m->u.absLoadInfo[(uint8_t)idx], mBuf);
10958 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** Start */
10959 tknStr = ¶m->u.rntpInfo;
10961 CMCHKUNPK(oduPackUInt8, &tknStr->pres, mBuf);
10966 CMCHKUNPK(oduPackUInt16, &tknStr->len, mBuf);
10968 if ((SGetSBuf(pst->region, pst->pool, (Data **)&tknStr->val,tknStr->len)) != ROK) {
10969 #if (ERRCLASS & ERRCLS_ADD_RES)
10970 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10971 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10972 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
10979 for (ndx = 1; ndx <= tknStr->len; ndx++)
10981 CMCHKUNPK(oduPackUInt8, &tknStr->val[tknStr->len - ndx], mBuf);
10985 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** End */
10987 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
10988 CMCHKUNPK(oduPackUInt16, ¶m->bw, mBuf);
10990 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10994 /* LTE_ADV_FLAG_REMOVED_END */
10997 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10998 /***********************************************************
11000 * Func : cmPkRgrUepACfg
11003 * Desc : Transaction ID between MAC and RRM
11012 **********************************************************/
11020 S16 cmPkRgrUepACfg(param, mBuf)
11028 CMCHKPK(oduUnpackUInt32, param->pA, mBuf);
11030 CMCHKPK(oduUnpackUInt8, param->pAPrsnt, mBuf);
11036 /*rgr_c_001.main_9 ADD added changes for CQI management*/
11037 /***********************************************************
11039 * Func : cmUnpkRgrUepACfg
11042 * Desc : Transaction ID between MAC and RRM
11051 **********************************************************/
11053 S16 cmUnpkRgrUepACfg
11059 S16 cmUnpkRgrUepACfg(param, mBuf)
11066 CMCHKUNPK(oduPackUInt8, (uint8_t *)¶m->pAPrsnt, mBuf);
11067 if (param->pAPrsnt)
11069 CMCHKUNPK(oduPackUInt32, (uint32_t*)&tmpEnum, mBuf);
11070 param->pA = (RgrUeDlPwrCntrlPaCfg) tmpEnum;
11076 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
11077 /***********************************************************
11079 * Func : cmPkRgrUePdschDedCfg
11082 * Desc : Transaction ID between MAC and RRM
11091 **********************************************************/
11093 S16 cmPkRgrUePdschDedCfg
11095 RgrUePdschDedCfg *param,
11099 S16 cmPkRgrUePdschDedCfg(param, mBuf)
11100 RgrUePdschDedCfg *param;
11105 CMCHKPK(cmPkRgrUepACfg, ¶m->uepACfg, mBuf);
11111 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
11112 /***********************************************************
11114 * Func : cmUnpkRgrUePdschDedCfg
11117 * Desc : Transaction ID between MAC and RRM
11126 **********************************************************/
11128 S16 cmUnpkRgrUePdschDedCfg
11130 RgrUePdschDedCfg *param,
11134 S16 cmUnpkRgrUePdschDedCfg(param, mBuf)
11135 RgrUePdschDedCfg *param;
11140 CMCHKUNPK(cmUnpkRgrUepACfg, ¶m->uepACfg, mBuf);
11149 /***********************************************************
11151 * Func : cmPkRgrUeUlPwrDedSCellCfg
11154 * Desc : DL Secondary Cell UL PC Info
11163 **********************************************************/
11165 static S16 cmPkRgrUeUlPwrDedSCellCfg
11167 RgrUeUlPwrDedSCellCfg *param,
11171 static S16 cmPkRgrUeUlPwrDedSCellCfg(param, mBuf)
11172 RgrUeUlPwrDedSCellCfg *param;
11176 CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
11177 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
11178 CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
11179 CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
11184 /***********************************************************
11186 * Func : cmUnpkRgrUeUlPwrDedSCellCfg
11189 * Desc : Uplink power configuration per UE
11198 **********************************************************/
11200 static S16 cmUnpkRgrUeUlPwrDedSCellCfg
11202 RgrUeUlPwrDedSCellCfg *param,
11206 static S16 cmUnpkRgrUeUlPwrDedSCellCfg(param, mBuf)
11207 RgrUeUlPwrDedSCellCfg *param;
11213 CMCHKUNPK(oduPackUInt8, ¶m->isAccumulated, mBuf);
11214 CMCHKUNPK(oduPackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
11215 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
11216 CMCHKUNPK(oduPackUInt8, ¶m->pSRSOffset, mBuf);
11223 /***********************************************************
11225 * Func : cmPkRgrUeSecCellCfg
11228 * Desc : DL Secondary Cell information of the UE
11237 **********************************************************/
11239 static S16 cmPkRgrUeSecCellCfg
11241 RgrUeSecCellCfg *param,
11245 static S16 cmPkRgrUeSecCellCfg(param, mBuf)
11246 RgrUeSecCellCfg *param;
11250 CMCHKPK(cmPkRgrUeUlPwrDedSCellCfg,¶m->ueSCellUlDedPwrCfg, mBuf);
11251 CMCHKPK(oduUnpackUInt8, param->isUlCaEnabled, mBuf);
11252 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
11254 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
11255 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
11257 CMCHKPK(cmPkRgrUeDlCqiCfg,¶m->ueSCellDlCqiCfg, mBuf);
11258 CMCHKPK(cmPkTknUInt32, ¶m->sCellDeActTmr, mBuf);
11259 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
11260 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
11267 /***********************************************************
11269 * Func : cmPkRgrUeSecCellInfo
11272 * Desc : Secondary Cell information of the UE
11281 **********************************************************/
11283 S16 cmPkRgrUeSecCellInfo
11285 RgrUeSecCellInfo *param,
11289 S16 cmPkRgrUeSecCellInfo(param, mBuf)
11290 RgrUeSecCellInfo *param;
11295 for(idx = param->numSCells - 1; idx >= 0; idx--)
11297 CMCHKPK(cmPkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[(uint8_t)idx],mBuf);
11300 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
11302 CMCHKPK(oduUnpackUInt8, param->useExtBSRSizes, mBuf);
11308 /***********************************************************
11310 * Func : cmUnpkRgrUeSecCellCfg
11313 * Desc : DL Secondary Cell information of the UE
11322 **********************************************************/
11324 static S16 cmUnpkRgrUeSecCellCfg
11326 RgrUeSecCellCfg *param,
11330 static S16 cmUnpkRgrUeSecCellCfg(param, mBuf)
11331 RgrUeSecCellCfg *param;
11335 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
11336 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
11337 CMCHKUNPK(cmUnpkTknUInt32, ¶m->sCellDeActTmr, mBuf);
11338 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueSCellDlCqiCfg, mBuf);
11340 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
11342 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
11343 CMCHKUNPK(oduPackUInt8, ¶m->isUlCaEnabled, mBuf);
11344 CMCHKUNPK(cmUnpkRgrUeUlPwrDedSCellCfg, ¶m->ueSCellUlDedPwrCfg, mBuf);
11352 /***********************************************************
11354 * Func : cmUnpkRgrUeSecCellInfo
11357 * Desc : Secondary Cell information of the UE
11366 **********************************************************/
11368 S16 cmUnpkRgrUeSecCellInfo
11370 RgrUeSecCellInfo *param,
11374 S16 cmUnpkRgrUeSecCellInfo(param, mBuf)
11375 RgrUeSecCellInfo *param;
11381 CMCHKUNPK(oduPackUInt8, ¶m->useExtBSRSizes, mBuf);
11382 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
11384 for(idx = 0; idx < param->numSCells;idx++)
11386 CMCHKUNPK(cmUnpkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[idx],mBuf);
11392 /***********************************************************
11394 * Func : cmPkRgrUeSCellAckPucchCfg
11397 * Desc : PUCCH Configuration information of the UE
11406 **********************************************************/
11408 S16 cmPkRgrUeSCellAckPucchCfg
11410 RgrUeSCellAckPucchCfg *param,
11414 S16 cmPkRgrUeSCellAckPucchCfg(param, mBuf)
11415 RgrUeSCellAckPucchCfg *param;
11421 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
11423 for(idx = param->u.format1Bcs.sCellAckN1ResTb2Count - 1; idx >=0 ;idx--)
11425 CMCHKPK(oduUnpackUInt16, param->u.format1Bcs.sCellAckN1ResTb2[(uint8_t)idx], mBuf);
11428 CMCHKPK(oduUnpackUInt8, param->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
11430 for(idx = param->u.format1Bcs.sCellAckN1ResTb1Count - 1; idx >=0 ;idx--)
11432 CMCHKPK(oduUnpackUInt16, param->u.format1Bcs.sCellAckN1ResTb1[(uint8_t)idx], mBuf);
11435 CMCHKPK(oduUnpackUInt8, param->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
11439 for(idx = param->u.format3.sCellAckN3ResAntP1Count - 1; idx >=0 ;idx--)
11441 CMCHKPK(oduUnpackUInt16, param->u.format3.sCellAckN3ResAntP1[(uint8_t)idx], mBuf);
11444 CMCHKPK(oduUnpackUInt8, param->u.format3.sCellAckN3ResAntP1Count, mBuf);
11446 for(idx = param->u.format3.sCellAckN3ResAntP0Count- 1; idx >=0 ;idx--)
11448 CMCHKPK(oduUnpackUInt16, param->u.format3.sCellAckN3ResAntP0[(uint8_t)idx], mBuf);
11451 CMCHKPK(oduUnpackUInt8, param->u.format3.sCellAckN3ResAntP0Count, mBuf);
11453 CMCHKPK(oduUnpackUInt32, param->pucchFormatType, mBuf);
11458 /***********************************************************
11460 * Func : cmUnpkRgrUeSCellAckPucchCfg
11463 * Desc : PUCCH Configuration information of the UE
11472 **********************************************************/
11474 S16 cmUnpkRgrUeSCellAckPucchCfg
11476 RgrUeSCellAckPucchCfg *param,
11480 S16 cmUnpkRgrUeSCellAckPucchCfg(param, mBuf)
11481 RgrUeSCellAckPucchCfg *param;
11488 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->pucchFormatType, mBuf);
11489 //if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS)
11490 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
11492 CMCHKUNPK(oduPackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
11494 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb1Count; idx++)
11496 CMCHKUNPK(oduPackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb1[idx], mBuf);
11499 CMCHKUNPK(oduPackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
11501 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb2Count; idx++)
11503 CMCHKUNPK(oduPackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb2[idx], mBuf);
11508 CMCHKUNPK(oduPackUInt8, ¶m->u.format3.sCellAckN3ResAntP0Count, mBuf);
11510 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP0Count; idx++)
11512 CMCHKUNPK(oduPackUInt16, ¶m->u.format3.sCellAckN3ResAntP0[idx], mBuf);
11515 CMCHKUNPK(oduPackUInt8, ¶m->u.format3.sCellAckN3ResAntP1Count, mBuf);
11517 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP1Count; idx++)
11519 CMCHKUNPK(oduPackUInt16, ¶m->u.format3.sCellAckN3ResAntP1[idx], mBuf);
11532 /***********************************************************
11534 * Func : cmPkRgrUeStaInd
11537 * Desc : Packing Ue Sta Indication sent to RRM
11546 **********************************************************/
11548 S16 cmPkRgrUeStaInd
11552 RgrUeStaIndInfo* ueStaInd
11555 S16 cmPkRgrUeStaInd(pst, suId, ueStaInd)
11558 RgrUeStaIndInfo* ueStaInd;
11561 Buffer *mBuf = NULLP;
11562 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
11564 #if (ERRCLASS & ERRCLS_ADD_RES)
11565 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11566 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11567 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
11569 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11570 sizeof(RgrUeStaIndInfo));
11574 if (cmPkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
11576 #if (ERRCLASS & ERRCLS_ADD_RES)
11577 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11578 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11579 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
11581 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11582 sizeof(RgrUeStaIndInfo));
11587 if (SPkS16(suId, mBuf) != ROK)
11589 #if (ERRCLASS & ERRCLS_ADD_RES)
11590 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11591 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11592 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
11594 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11595 sizeof(RgrUeStaIndInfo));
11600 if (SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11601 sizeof(RgrUeStaIndInfo)) != ROK)
11603 #if (ERRCLASS & ERRCLS_ADD_RES)
11604 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11605 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11606 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
11612 pst->event = (Event) EVTRGRUESTAIND;
11613 return (SPstTsk(pst,mBuf));
11616 /*rgr_c_001.main_9 ADD added changes for CQI management*/
11617 /***********************************************************
11619 * Func : cmUnpkRgrUeStaInd
11622 * Desc : Unpacking Sta Indication sent to RRM
11630 **********************************************************/
11632 S16 cmUnpkRgrUeStaInd
11639 S16 cmUnpkRgrUeStaInd(func, pst, mBuf)
11646 RgrUeStaIndInfo *ueStaInd;
11649 if (SUnpkS16(&suId, mBuf) != ROK)
11652 #if (ERRCLASS & ERRCLS_ADD_RES)
11653 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11654 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11655 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
11660 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueStaInd,
11661 sizeof(RgrUeStaIndInfo))) != ROK)
11663 #if (ERRCLASS & ERRCLS_ADD_RES)
11664 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11665 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11666 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
11672 if (cmUnpkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
11674 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11675 sizeof(RgrUeStaIndInfo));
11677 #if (ERRCLASS & ERRCLS_ADD_RES)
11678 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11679 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11680 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
11686 return ((*func)(pst, suId, ueStaInd));
11689 /***********************************************************
11691 * Func : cmPkRgrUeStaIndInfo
11694 * Desc : Packing of UeStaIndInfo structure
11702 **********************************************************/
11704 S16 cmPkRgrUeStaIndInfo
11706 RgrUeStaIndInfo *param,
11710 S16 cmPkRgrUeStaIndInfo(param, mBuf)
11711 RgrUeStaIndInfo *param;
11717 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
11718 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
11719 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
11723 /***********************************************************
11725 * Func : cmUnpkRgrUeStaIndInfo
11728 * Desc : Unpacking of UeStaIndInfo structure
11736 **********************************************************/
11738 S16 cmUnpkRgrUeStaIndInfo
11740 RgrUeStaIndInfo *param,
11744 S16 cmUnpkRgrUeStaIndInfo(param, mBuf)
11745 RgrUeStaIndInfo *param;
11751 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
11752 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
11753 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
11759 /***********************************************************
11761 * Func : cmPkRgrCellCsgParamCfg
11764 * Desc : CSG Parameter configuration
11773 **********************************************************/
11775 S16 cmPkRgrCellCsgParamCfg
11777 RgrCellCsgParamCfg *param,
11781 S16 cmPkRgrCellCsgParamCfg(param, mBuf)
11782 RgrCellCsgParamCfg *param;
11788 CMCHKPK(oduUnpackUInt8, param->minUlResNonCsg, mBuf);
11789 CMCHKPK(oduUnpackUInt8, param->minDlResNonCsg, mBuf);
11794 /***********************************************************
11796 * Func : cmUnpkRgrCellCsgParamCfg
11799 * Desc : Unpacking of RgrCellCsgParamCfg structure
11807 **********************************************************/
11809 S16 cmUnpkRgrCellCsgParamCfg
11811 RgrCellCsgParamCfg *param,
11815 S16 cmUnpkRgrCellCsgParamCfg(param, mBuf)
11816 RgrCellCsgParamCfg *param;
11822 CMCHKUNPK(oduPackUInt8, ¶m->minDlResNonCsg, mBuf);
11823 CMCHKUNPK(oduPackUInt8, ¶m->minUlResNonCsg, mBuf);
11828 /***********************************************************
11830 * Func : cmPkRgrCellCntrlCmdCfg
11833 * Desc : Packing of RgrCellCntrlCmdCfg structure
11841 **********************************************************/
11843 S16 cmPkRgrCellCntrlCmdCfg
11845 RgrCellCntrlCmdCfg *param,
11849 S16 cmPkRgrCellCntrlCmdCfg(param, mBuf)
11850 RgrCellCntrlCmdCfg *param;
11855 switch(param->cmdType)
11857 case RGR_CNTRL_CMD_RACH_OVRLD:
11858 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.rachOvrLd.backOffVal, mBuf);
11859 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.rachOvrLd.backOffEnb, mBuf);
11861 case RGR_CNTRL_CMD_CPU_OVRLD:
11862 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.cpuOvrLd.instruction, mBuf);
11867 CMCHKUNPK(oduUnpackUInt32, param->cmdType, mBuf);
11871 /***********************************************************
11873 * Func : cmUnpkRgrCellCntrlCmdCfg
11876 * Desc : Unpacking of RgrCellCntrlCmdCfg structure
11884 **********************************************************/
11886 S16 cmUnpkRgrCellCntrlCmdCfg
11888 RgrCellCntrlCmdCfg *param,
11892 S16 cmUnpkRgrCellCntrlCmdCfg(param, mBuf)
11893 RgrCellCntrlCmdCfg *param;
11900 CMCHKUNPK(oduPackUInt32, &tmpEnum, mBuf);
11901 param->cmdType = (RgrCellCntrlCmdType) tmpEnum;
11902 switch(param->cmdType)
11904 case RGR_CNTRL_CMD_RACH_OVRLD:
11905 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.rachOvrLd.backOffEnb, mBuf);
11906 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.rachOvrLd.backOffVal, mBuf);
11908 case RGR_CNTRL_CMD_CPU_OVRLD:
11909 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.cpuOvrLd.instruction, mBuf);
11917 #endif /* End of if defined(LCRGR) */
11919 /**********************************************************************
11921 **********************************************************************/