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++) {
1895 CMCHKUNPK(oduPackUInt32,(U32*)&tmpEnum,mBuf);
1896 param->siPeriodicity[i] = (RgrSiPeriodicity) tmpEnum;
1899 for (i=0; i < param->numSi ; i++) {
1900 CMCHKUNPK(oduPackUInt16, ¶m->schdInfo[i].emtcSiTbs, mBuf);
1901 CMCHKUNPK(oduPackUInt8, ¶m->schdInfo[i].emtcSiNarrowBand, mBuf);
1903 //CMCHKUNPK(oduPackUInt16, ¶m->fddDlOrTddSfBitmapBR, mBuf);
1904 CMCHKUNPK(oduPackUInt8, ¶m->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1905 /*Changes by SIMRAN*/
1906 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
1908 CMCHKUNPK(oduPackUInt16, ¶m->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
1912 for (i=1; i>=0; i--) {
1913 CMCHKUNPK(oduPackUInt32, ¶m->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1917 CMCHKUNPK(oduPackUInt16, ¶m->startSymbolLc, mBuf);
1918 CMCHKUNPK(oduPackUInt8, ¶m->siRepetition, mBuf);
1919 CMCHKUNPK(oduPackUInt8, ¶m->sib1Repetition, mBuf);
1920 CMCHKUNPK(oduPackUInt8, ¶m->siWinSizeBr, mBuf);
1921 CMCHKUNPK(oduPackUInt32, (U32*)&tmpEnum, mBuf);
1922 param->modPrd = (RgrModPeriodicity) tmpEnum;
1923 CMCHKUNPK(oduPackUInt8, ¶m->siHoppingEnable, mBuf);
1932 S16 cmUnpkRgrEmtcRachCfg
1934 RgrEmtcRachCfg *param,
1938 S16 cmUnpkRgrEmtcRachCfg(param, mBuf)
1939 RgrEmtcRachCfg *param;
1945 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
1946 CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.lastPreamble), mBuf);
1947 CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.firstPreamble), mBuf);
1948 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].emtcPreambleTransMax), mBuf);
1949 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcContResTmr), mBuf);
1950 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcWinSize), mBuf);
1951 CMCHKUNPK(oduPackUInt8,&(param->ceLevelInfo[i].emtcRarHopping), mBuf);
1953 CMCHKUNPK(oduPackUInt8, ¶m->emtcCeLvlSupported, mBuf);
1959 S16 cmUnpkRgrEmtcPdschCfg
1961 RgrEmtcPdschCfg*param,
1965 S16 cmUnpkRgrEmtcPdschCfg(param, mBuf)
1966 RgrEmtcPdschCfg *param;
1971 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1972 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1977 S16 cmUnpkRgrEmtcPuschCfg
1979 RgrEmtcPuschCfg*param,
1983 S16 cmUnpkRgrEmtcPuschCfg(param, mBuf)
1984 RgrEmtcPuschCfg *param;
1988 CMCHKUNPK(oduPackUInt8, ¶m->emtcHoppingOffset, mBuf);
1989 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1990 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1997 S16 cmUnpkRgrEmtcPucchCfg
1999 RgrEmtcPucchCfg *param,
2003 S16 cmUnpkRgrEmtcPucchCfg(param, mBuf)
2004 RgrEmtcPucchCfg *param;
2012 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl3, mBuf);
2013 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl2, mBuf);
2014 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl1, mBuf);
2015 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl0, mBuf);
2017 for (i=0; i < RGR_MAX_CE_LEVEL ; i++) {
2018 CMCHKUNPK(oduPackUInt16, ¶m->emtcN1pucchAnInfoLst[i], mBuf);
2025 S16 cmUnpkRgrEmtcPrachCeParamCfg
2027 RgrEmtcPrachCEParamLst *param,
2031 S16 cmUnpkRgrEmtcPrachCeParamCfg(param, mBuf)
2032 RgrEmtcPrachCEParamLst *param;
2036 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachHoppingCfg, mBuf);
2037 CMCHKUNPK(oduPackUInt16, ¶m->emtcMpdcchNumRep, mBuf);
2038 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNBtoMonitor[1], mBuf);
2039 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNBtoMonitor[0], mBuf);
2040 CMCHKUNPK(oduPackUInt8, ¶m->emtcNumMpdcchNBtoMonitor, mBuf);
2041 CMCHKUNPK(oduPackUInt8, ¶m->emtcNumRepPerPreambleAtt, mBuf);
2042 CMCHKUNPK(oduPackUInt8, ¶m->emtcMaxPremAttemptCE, mBuf);
2043 CMCHKUNPK(oduPackUInt16, ¶m->emtcPrachStartSubFrame, mBuf);
2044 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachFreqOffset, mBuf);
2045 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachCfgIdx, mBuf);
2052 S16 cmUnpkRgrEmtcPrachCfg
2054 RgrEmtcPrachCfg *param,
2058 S16 cmUnpkRgrEmtcPrachCfg(param, mBuf)
2059 RgrEmtcPrachCfg *param;
2065 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
2066 CMCHKUNPK(cmUnpkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
2068 CMCHKUNPK(oduPackUInt8, ¶m->emtcInitialCElevel, mBuf);
2069 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachHopingOffset, mBuf);
2070 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchStartSFCssRaFdd, mBuf);
2076 S16 cmUnpkRgrEmtcCfg
2078 RgrEmtcCellCfg *param,
2082 S16 cmUnpkRgrEmtcCfg(param, mBuf)
2083 RgrEmtcCellCfg *param;
2088 CMCHKUNPK(oduPackUInt8, ¶m->emtcPuschNbIdx, mBuf);
2089 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNbIdx, mBuf);
2090 CMCHKUNPK(oduPackUInt8, ¶m->emtcPdschNbIdx, mBuf);
2091 CMCHKUNPK(cmUnpkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
2092 CMCHKUNPK(cmUnpkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
2093 CMCHKUNPK(cmUnpkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
2094 CMCHKUNPK(cmUnpkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
2095 CMCHKUNPK(cmUnpkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
2096 CMCHKUNPK(cmUnpkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
2097 CMCHKUNPK(cmUnpkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
2098 CMCHKUNPK(oduPackUInt32,¶m->emtcT301Tmr, mBuf);
2099 CMCHKUNPK(oduPackUInt32, ¶m->emtcT300Tmr, mBuf);
2100 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
2109 /* EMTC related unpack changes end*/
2115 /***********************************************************
2117 * Func : cmUnpkRgrBwCfg
2120 * Desc : Bandwidth configuration per cell
2129 **********************************************************/
2137 S16 cmUnpkRgrBwCfg(param, mBuf)
2143 CMCHKUNPK(oduPackUInt8, ¶m->dlTotalBw, mBuf);
2144 CMCHKUNPK(oduPackUInt8, ¶m->ulTotalBw, mBuf);
2150 /***********************************************************
2152 * Func : cmPkRgrPhichCfg
2155 * Desc : PHICH configuration per cell
2164 **********************************************************/
2172 S16 cmPkRgrPhichCfg(param, mBuf)
2178 CMCHKPK(oduUnpackUInt8, param->isDurExtend, mBuf);
2179 CMCHKPK(oduUnpackUInt32, param->ngEnum, mBuf);
2185 /***********************************************************
2187 * Func : cmUnpkRgrPhichCfg
2190 * Desc : PHICH configuration per cell
2199 **********************************************************/
2201 S16 cmUnpkRgrPhichCfg
2207 S16 cmUnpkRgrPhichCfg(param, mBuf)
2215 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2216 param->ngEnum = (RgrPhichNg) tmpEnum;
2217 CMCHKUNPK(oduPackUInt8, ¶m->isDurExtend, mBuf);
2223 /***********************************************************
2225 * Func : cmPkRgrPucchCfg
2228 * Desc : PUCCH configuration per cell
2237 **********************************************************/
2245 S16 cmPkRgrPucchCfg(param, mBuf)
2251 CMCHKPK(oduUnpackUInt8, param->maxPucchRb, mBuf);
2252 CMCHKPK(oduUnpackUInt8, param->cyclicShift, mBuf);
2253 CMCHKPK(oduUnpackUInt8, param->deltaShift, mBuf);
2254 CMCHKPK(oduUnpackUInt16, param->n1PucchAn, mBuf);
2255 CMCHKPK(oduUnpackUInt8, param->resourceSize, mBuf);
2262 /***********************************************************
2264 * Func : cmUnpkRgrPucchCfg
2267 * Desc : PUCCH configuration per cell
2276 **********************************************************/
2278 S16 cmUnpkRgrPucchCfg
2284 S16 cmUnpkRgrPucchCfg(param, mBuf)
2291 CMCHKUNPK(oduPackUInt8, ¶m->resourceSize, mBuf);
2292 CMCHKUNPK(oduPackUInt16, ¶m->n1PucchAn, mBuf);
2293 CMCHKUNPK(oduPackUInt8, ¶m->deltaShift, mBuf);
2294 CMCHKUNPK(oduPackUInt8, ¶m->cyclicShift, mBuf);
2295 CMCHKUNPK(oduPackUInt8, ¶m->maxPucchRb, mBuf);
2302 /***********************************************************
2304 * Func : cmPkRgrSrsCfg
2307 * Desc : SRS configuration per cell
2316 **********************************************************/
2324 S16 cmPkRgrSrsCfg(param, mBuf)
2331 CMCHKPK(oduUnpackUInt8, param->srsSubFrameCfg, mBuf);
2332 CMCHKPK(oduUnpackUInt32, param->srsBwEnum, mBuf);
2333 CMCHKPK(oduUnpackUInt32, param->srsCfgPrdEnum, mBuf);
2334 CMCHKPK(oduUnpackUInt8, param->isSrsCfgSetup, mBuf);
2340 /***********************************************************
2342 * Func : cmUnpkRgrSrsCfg
2345 * Desc : SRS configuration per cell
2354 **********************************************************/
2362 S16 cmUnpkRgrSrsCfg(param, mBuf)
2370 CMCHKUNPK(oduPackUInt8, ¶m->isSrsCfgSetup, mBuf);
2371 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2372 param->srsCfgPrdEnum = (RgrSrsCfgPrd) tmpEnum;
2373 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2374 param->srsBwEnum = (RgrSrsBwCfg) tmpEnum;
2375 CMCHKUNPK(oduPackUInt8, ¶m->srsSubFrameCfg, mBuf);
2381 /***********************************************************
2383 * Func : cmPkRgrRachCfg
2386 * Desc : RACH configuration per cell
2395 **********************************************************/
2403 S16 cmPkRgrRachCfg(param, mBuf)
2411 CMCHKPK(oduUnpackUInt8, param->prachResource, mBuf);
2412 CMCHKPK(oduUnpackUInt16, param->msgSizeGrpA, mBuf);
2413 CMCHKPK(oduUnpackUInt8, param->sizeRaPreambleGrpA, mBuf);
2414 CMCHKPK(oduUnpackUInt8, param->numRaPreamble, mBuf);
2415 CMCHKPK(oduUnpackUInt8, param->maxMsg3Tx, mBuf);
2416 for (i=param->raOccasion.size-1; i >= 0; i--) {
2417 CMCHKPK(oduUnpackUInt8, param->raOccasion.subFrameNum[i], mBuf);
2419 CMCHKPK(oduUnpackUInt32, param->raOccasion.sfnEnum, mBuf);
2420 CMCHKPK(oduUnpackUInt8, param->raOccasion.size, mBuf);
2421 CMCHKPK(oduUnpackUInt8, param->raWinSize, mBuf);
2422 CMCHKPK(oduUnpackUInt8, param->preambleFormat, mBuf);
2424 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
2425 * timer configuration */
2426 CMCHKPK(oduUnpackUInt8, param->contResTmr, mBuf);
2433 /***********************************************************
2435 * Func : cmUnpkRgrRachCfg
2438 * Desc : RACH configuration per cell
2447 **********************************************************/
2449 S16 cmUnpkRgrRachCfg
2455 S16 cmUnpkRgrRachCfg(param, mBuf)
2464 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
2465 * timer configuration */
2466 CMCHKUNPK(oduPackUInt8, ¶m->contResTmr, mBuf);
2468 CMCHKUNPK(oduPackUInt8, ¶m->preambleFormat, mBuf);
2469 CMCHKUNPK(oduPackUInt8, ¶m->raWinSize, mBuf);
2470 CMCHKUNPK(oduPackUInt8, ¶m->raOccasion.size, mBuf);
2471 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2472 param->raOccasion.sfnEnum = (RgrRaSfn) tmpEnum;
2473 for (i=0; i<param->raOccasion.size; i++) {
2474 CMCHKUNPK(oduPackUInt8, ¶m->raOccasion.subFrameNum[i], mBuf);
2476 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg3Tx, mBuf);
2477 CMCHKUNPK(oduPackUInt8, ¶m->numRaPreamble, mBuf);
2478 CMCHKUNPK(oduPackUInt8, ¶m->sizeRaPreambleGrpA, mBuf);
2479 CMCHKUNPK(oduPackUInt16, ¶m->msgSizeGrpA, mBuf);
2480 CMCHKUNPK(oduPackUInt8, ¶m->prachResource, mBuf);
2486 /***********************************************************
2488 * Func : cmPkRgrSiCfg
2491 * Desc : SI Configuration per cell
2500 **********************************************************/
2508 S16 cmPkRgrSiCfg(param, mBuf)
2513 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
2516 #endif/*RGR_SI_SCH*/
2520 if(param->numSi > sizeof(param->siPeriodicity)/
2521 sizeof(param->siPeriodicity[0]))
2522 param->numSi = sizeof(param->siPeriodicity)/
2523 sizeof(param->siPeriodicity[0]);
2525 for (idx=param->numSi-1; idx >= 0; idx--) {
2526 /* Enum to be packed/unpacked as U32 instead of S32 */
2527 CMCHKPK(oduUnpackUInt32, param->siPeriodicity[idx], mBuf);
2529 CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
2530 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
2531 CMCHKPK(oduUnpackUInt32, (U32)param->modPrd, mBuf);
2532 #endif/*RGR_SI_SCH*/
2533 CMCHKPK(oduUnpackUInt8, param->retxCnt, mBuf);
2534 CMCHKPK(oduUnpackUInt8, param->siWinSize, mBuf);
2540 /***********************************************************
2542 * Func : cmUnpkRgrSiCfg
2545 * Desc : SI Configuration per cell
2554 **********************************************************/
2562 S16 cmUnpkRgrSiCfg(param, mBuf)
2568 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
2571 #endif/*RGR_SI_SCH*/
2574 CMCHKUNPK(oduPackUInt8, ¶m->siWinSize, mBuf);
2575 CMCHKUNPK(oduPackUInt8, ¶m->retxCnt, mBuf);
2577 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
2578 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2579 param->modPrd = (RgrModPeriodicity) tmpEnum;
2580 CMCHKUNPK(oduPackUInt8, ¶m->numSi, mBuf);
2582 if(param->numSi > sizeof(param->siPeriodicity)/
2583 sizeof(param->siPeriodicity[0]))
2584 param->numSi = sizeof(param->siPeriodicity)/
2585 sizeof(param->siPeriodicity[0]);
2587 /* Enum to be packed/unpacked as U32 instead of S32 */
2588 for (idx=0; idx < param->numSi; idx++) {
2589 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2590 param->siPeriodicity[idx] = (RgrSiPeriodicity) tmpEnum;
2592 #endif/*RGR_SI_SCH*/
2599 /***********************************************************
2601 * Func : cmPkRgrTpcRntiCfg
2604 * Desc : TPC RNTI Range
2613 **********************************************************/
2615 S16 cmPkRgrTpcRntiCfg
2617 RgrTpcRntiCfg *param,
2621 S16 cmPkRgrTpcRntiCfg(param, mBuf)
2622 RgrTpcRntiCfg *param;
2628 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
2629 CMCHKPK(cmPkLteRnti, param->startTpcRnti, mBuf);
2635 /***********************************************************
2637 * Func : cmUnpkRgrTpcRntiCfg
2640 * Desc : TPC RNTI Range
2649 **********************************************************/
2651 S16 cmUnpkRgrTpcRntiCfg
2653 RgrTpcRntiCfg *param,
2657 S16 cmUnpkRgrTpcRntiCfg(param, mBuf)
2658 RgrTpcRntiCfg *param;
2664 CMCHKUNPK(cmUnpkLteRnti, ¶m->startTpcRnti, mBuf);
2665 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
2671 /***********************************************************
2673 * Func : cmPkRgrUlPwrCfg
2676 * Desc : Cell specific power configuration
2685 **********************************************************/
2693 S16 cmPkRgrUlPwrCfg(param, mBuf)
2700 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
2701 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
2702 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
2703 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
2704 CMCHKPK(SPkS8, param->deltaPreambleMsg3, mBuf);
2705 CMCHKPK(SPkS8, param->p0NominalPucch, mBuf);
2706 CMCHKPK(oduUnpackUInt32, param->alpha, mBuf);
2707 CMCHKPK(SPkS8, param->p0NominalPusch, mBuf);
2713 /***********************************************************
2715 * Func : cmUnpkRgrUlPwrCfg
2718 * Desc : Cell specific power configuration
2727 **********************************************************/
2729 S16 cmUnpkRgrUlPwrCfg
2735 S16 cmUnpkRgrUlPwrCfg(param, mBuf)
2743 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPusch, mBuf);
2744 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
2745 param->alpha = (RgrPwrAlpha) tmpEnum;
2746 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPucch, mBuf);
2747 CMCHKUNPK(SUnpkS8, ¶m->deltaPreambleMsg3, mBuf);
2748 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
2749 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
2750 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
2751 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
2757 /***********************************************************
2759 * Func : cmPkRgrPuschCfg
2762 * Desc : brief cell specific hopping configuration
2771 **********************************************************/
2779 S16 cmPkRgrPuschCfg(param, mBuf)
2786 CMCHKPK(oduUnpackUInt8, param->hopOffst, mBuf);
2787 CMCHKPK(oduUnpackUInt8, param->isIntraHop, mBuf);
2788 CMCHKPK(oduUnpackUInt8, param->numSubBands, mBuf);
2794 /***********************************************************
2796 * Func : cmUnpkRgrPuschCfg
2799 * Desc : brief cell specific hopping configuration
2808 **********************************************************/
2810 S16 cmUnpkRgrPuschCfg
2816 S16 cmUnpkRgrPuschCfg(param, mBuf)
2823 CMCHKUNPK(oduPackUInt8, ¶m->numSubBands, mBuf);
2824 CMCHKUNPK(oduPackUInt8, ¶m->isIntraHop, mBuf);
2825 CMCHKUNPK(oduPackUInt8, ¶m->hopOffst, mBuf);
2831 /***********************************************************
2833 * Func : cmPkRgrCodeBookRstCfg
2836 * Desc : Number of bits in code book for different transmission modes
2845 **********************************************************/
2847 S16 cmPkRgrCodeBookRstCfg
2849 RgrCodeBookRstCfg *param,
2853 S16 cmPkRgrCodeBookRstCfg(param, mBuf)
2854 RgrCodeBookRstCfg *param;
2861 for (i=1-1; i >= 0; i--) {
2862 CMCHKPK(oduUnpackUInt32, param->pmiBitMap[i], mBuf);
2864 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
2870 /***********************************************************
2872 * Func : cmUnpkRgrCodeBookRstCfg
2875 * Desc : Number of bits in code book for different transmission modes
2884 **********************************************************/
2886 S16 cmUnpkRgrCodeBookRstCfg
2888 RgrCodeBookRstCfg *param,
2892 S16 cmUnpkRgrCodeBookRstCfg(param, mBuf)
2893 RgrCodeBookRstCfg *param;
2900 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
2901 for (i=0; i<1; i++) {
2902 CMCHKUNPK(oduPackUInt32, ¶m->pmiBitMap[i], mBuf);
2909 /***********************************************************
2911 * Func : cmPkRgrPreambleSetCfg
2914 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2923 **********************************************************/
2925 S16 cmPkRgrPreambleSetCfg
2927 RgrPreambleSetCfg *param,
2931 S16 cmPkRgrPreambleSetCfg(param, mBuf)
2932 RgrPreambleSetCfg *param;
2938 CMCHKPK(oduUnpackUInt8, param->size, mBuf);
2939 CMCHKPK(oduUnpackUInt8, param->start, mBuf);
2940 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
2946 /***********************************************************
2948 * Func : cmUnpkRgrPreambleSetCfg
2951 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2960 **********************************************************/
2962 S16 cmUnpkRgrPreambleSetCfg
2964 RgrPreambleSetCfg *param,
2968 S16 cmUnpkRgrPreambleSetCfg(param, mBuf)
2969 RgrPreambleSetCfg *param;
2975 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
2976 CMCHKUNPK(oduPackUInt8, ¶m->start, mBuf);
2977 CMCHKUNPK(oduPackUInt8, ¶m->size, mBuf);
2983 /***********************************************************
2985 * Func : cmPkRgrCmnLchCfg
2988 * Desc : Logical channel configuration info for common channels
2997 **********************************************************/
2999 S16 cmPkRgrCmnLchCfg
3001 RgrCmnLchCfg *param,
3005 S16 cmPkRgrCmnLchCfg(param, mBuf)
3006 RgrCmnLchCfg *param;
3012 CMCHKPK(oduUnpackUInt8, param->ulTrchType, mBuf);
3013 CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
3014 CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
3015 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
3016 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
3022 /***********************************************************
3024 * Func : cmUnpkRgrCmnLchCfg
3027 * Desc : Logical channel configuration info for common channels
3036 **********************************************************/
3038 S16 cmUnpkRgrCmnLchCfg
3040 RgrCmnLchCfg *param,
3044 S16 cmUnpkRgrCmnLchCfg(param, mBuf)
3045 RgrCmnLchCfg *param;
3051 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
3052 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
3053 CMCHKUNPK(oduPackUInt8, ¶m->dir, mBuf);
3054 CMCHKUNPK(oduPackUInt8, ¶m->dlTrchType, mBuf);
3055 CMCHKUNPK(oduPackUInt8, ¶m->ulTrchType, mBuf);
3061 /***********************************************************
3063 * Func : cmPkRgrDlfsCfg
3066 * Desc : RGR configuration for DLFS scheduler
3075 **********************************************************/
3083 S16 cmPkRgrDlfsCfg(param, mBuf)
3090 CMCHKPK(oduUnpackUInt8, param->thresholdCqi, mBuf);
3091 CMCHKPK(oduUnpackUInt8, param->isDlFreqSel, mBuf);
3097 /***********************************************************
3099 * Func : cmUnpkRgrDlfsCfg
3102 * Desc : RGR configuration for DLFS scheduler
3111 **********************************************************/
3113 S16 cmUnpkRgrDlfsCfg
3119 S16 cmUnpkRgrDlfsCfg(param, mBuf)
3126 CMCHKUNPK(oduPackUInt8, ¶m->isDlFreqSel, mBuf);
3127 CMCHKUNPK(oduPackUInt8, ¶m->thresholdCqi, mBuf);
3137 /***********************************************************
3139 * Func : cmPkRgrTddPrachInfo
3142 * Desc : PRACH resource information for TDD
3151 **********************************************************/
3153 S16 cmPkRgrTddPrachInfo
3155 RgrTddPrachInfo *param,
3159 S16 cmPkRgrTddPrachInfo(param, mBuf)
3160 RgrTddPrachInfo *param;
3166 CMCHKPK(oduUnpackUInt8, param->ulStartSfIdx, mBuf);
3167 CMCHKPK(oduUnpackUInt8, param->halfFrm, mBuf);
3168 CMCHKPK(oduUnpackUInt32, param->sfn, mBuf);
3169 CMCHKPK(oduUnpackUInt8, param->freqIdx, mBuf);
3175 /***********************************************************
3177 * Func : cmUnpkRgrTddPrachInfo
3180 * Desc : PRACH resource information for TDD
3189 **********************************************************/
3191 S16 cmUnpkRgrTddPrachInfo
3193 RgrTddPrachInfo *param,
3197 S16 cmUnpkRgrTddPrachInfo(param, mBuf)
3198 RgrTddPrachInfo *param;
3205 CMCHKUNPK(oduPackUInt8, ¶m->freqIdx, mBuf);
3206 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
3207 param->sfn = tmpEnum;
3208 CMCHKUNPK(oduPackUInt8, ¶m->halfFrm, mBuf);
3209 CMCHKUNPK(oduPackUInt8, ¶m->ulStartSfIdx, mBuf);
3215 /***********************************************************
3217 * Func : cmPkRgrTddPrachRscInfo
3220 * Desc : Set of PRACH Information for TDD
3229 **********************************************************/
3231 S16 cmPkRgrTddPrachRscInfo
3233 RgrTddPrachRscInfo *param,
3237 S16 cmPkRgrTddPrachRscInfo(param, mBuf)
3238 RgrTddPrachRscInfo *param;
3245 for (i=param->numRsc-1; i >= 0; i--) {
3246 CMCHKPK(cmPkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
3248 CMCHKPK(oduUnpackUInt8, param->numRsc, mBuf);
3254 /***********************************************************
3256 * Func : cmUnpkRgrTddPrachRscInfo
3259 * Desc : Set of PRACH Information for TDD
3268 **********************************************************/
3270 S16 cmUnpkRgrTddPrachRscInfo
3272 RgrTddPrachRscInfo *param,
3276 S16 cmUnpkRgrTddPrachRscInfo(param, mBuf)
3277 RgrTddPrachRscInfo *param;
3284 CMCHKUNPK(oduPackUInt8, ¶m->numRsc, mBuf);
3285 for (i=0; i<param->numRsc; i++) {
3286 CMCHKUNPK(cmUnpkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
3297 /***********************************************************
3299 * Func : cmPkRgrEnbPfs
3302 * Desc : PFS Configuration
3311 **********************************************************/
3319 S16 cmPkRgrEnbPfs(param, mBuf)
3325 for(idx = RGR_MAX_NUM_QCI-1; idx >= 0; idx--)
3327 CMCHKPK(oduUnpackUInt32, param->qciWgt[idx], mBuf);
3329 CMCHKPK(oduUnpackUInt8, param->fairCoeffi, mBuf);
3330 CMCHKPK(oduUnpackUInt8, param->tptCoeffi, mBuf);
3337 /***********************************************************
3339 * Func : cmUnpkRgrEnbPfs
3342 * Desc : PFS Configuration
3351 **********************************************************/
3359 S16 cmUnpkRgrEnbPfs(param, mBuf)
3366 CMCHKUNPK(oduPackUInt8, ¶m->tptCoeffi, mBuf);
3367 CMCHKUNPK(oduPackUInt8, ¶m->fairCoeffi, mBuf);
3368 for(idx = 0; idx < RGR_MAX_NUM_QCI; idx++)
3370 CMCHKUNPK(oduPackUInt32, ¶m->qciWgt[idx], mBuf);
3375 /*rgr_c_001.main_7 - Added support for SPS*/
3377 /***********************************************************
3379 * Func : cmPkRgrSpsCellCfg
3382 * Desc : DL SPS configuration parameters per UE
3383 TODO: Check if this is to be added to re-configuration as well
3392 **********************************************************/
3394 S16 cmPkRgrSpsCellCfg
3396 RgrSpsCellCfg *param,
3400 S16 cmPkRgrSpsCellCfg(param, mBuf)
3401 RgrSpsCellCfg *param;
3406 CMCHKPK(oduUnpackUInt16, param->maxSpsUePerUlSf, mBuf);
3407 CMCHKPK(oduUnpackUInt16, param->maxSpsUePerDlSf, mBuf);
3408 CMCHKPK(oduUnpackUInt8, param->maxSpsDlBw, mBuf);
3415 /***********************************************************
3417 * Func : cmUnpkRgrSpsDlCellCfg
3420 * Desc : DL SPS configuration parameters per UE
3421 TODO: Check if this is to be added to re-configuration as well
3430 **********************************************************/
3432 S16 cmUnpkRgrSpsDlCellCfg
3434 RgrSpsCellCfg *param,
3438 S16 cmUnpkRgrSpsDlCellCfg(param, mBuf)
3439 RgrSpsCellCfg *param;
3445 CMCHKUNPK(oduPackUInt8, ¶m->maxSpsDlBw, mBuf);
3446 CMCHKUNPK(oduPackUInt16, ¶m->maxSpsUePerDlSf, mBuf);
3447 CMCHKUNPK(oduPackUInt16, ¶m->maxSpsUePerUlSf, mBuf);
3453 S16 cmPkRgr5gtfCellCfg
3455 Rgr5gtfCellCfg *param,
3460 for (idx = MAX_5GTF_SUBFRAME_INFO - 1; idx >= 0 ;--idx)
3463 CMCHKPK(oduUnpackUInt32, param->dynConfig[(U8)idx], mBuf);
3465 CMCHKPK(oduUnpackUInt8, param->uePerGrp, mBuf);
3466 CMCHKPK(oduUnpackUInt8, param->ueGrpPerTti, mBuf);
3467 CMCHKPK(oduUnpackUInt8, param->numUes, mBuf);
3468 CMCHKPK(oduUnpackUInt8, param->numOfCC, mBuf);
3469 CMCHKPK(oduUnpackUInt8, param->bwPerCC, mBuf);
3470 CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
3474 S16 cmUnPkRgr5gtfCellCfg
3476 Rgr5gtfCellCfg *param,
3482 CMCHKUNPK(oduPackUInt8, ¶m->cfi, mBuf);
3483 CMCHKUNPK(oduPackUInt8, ¶m->bwPerCC, mBuf);
3484 CMCHKUNPK(oduPackUInt8, ¶m->numOfCC, mBuf);
3485 CMCHKUNPK(oduPackUInt8, ¶m->numUes, mBuf);
3486 CMCHKUNPK(oduPackUInt8, ¶m->ueGrpPerTti, mBuf);
3487 CMCHKUNPK(oduPackUInt8, ¶m->uePerGrp, mBuf);
3488 for (idx = 0; idx < MAX_5GTF_SUBFRAME_INFO ; ++idx)
3491 CMCHKUNPK(oduPackUInt32, ¶m->dynConfig[(U8)idx], mBuf);
3498 /*LAA : functions to pack and unpack LAA params*/
3499 /***********************************************************
3501 * Func : cmPkRgrLteUCellCfg
3504 * Desc : LAA configuration for the Cell
3513 **********************************************************/
3515 PRIVATE S16 cmPkRgrLteUCellCfg
3521 PRIVATE S16 cmPkRgrLteUCellCfg(param, mBuf)
3527 CMCHKPK(oduUnpackUInt8, param->isLaaCell, mBuf);
3532 /***********************************************************
3534 * Func : cmUnpkRgrLteUCellCfg
3537 * Desc : LAA configuration for the cell
3546 **********************************************************/
3548 PRIVATE S16 cmUnpkRgrLteUCellCfg
3554 PRIVATE S16 cmUnpkRgrLteUCellCfg(param, mBuf)
3561 CMCHKUNPK(oduPackUInt8, ¶m->isLaaCell, mBuf);
3566 /* LTE_ADV_FLAG_REMOVED_START */
3567 /***********************************************************
3569 * Func : cmPkRgrLteAdvancedUeConfig
3572 * Desc : PAcks LteAdvancedUeConfig
3581 **********************************************************/
3583 S16 cmPkRgrLteAdvancedUeConfig
3585 RgrLteAdvancedUeConfig *param,
3589 S16 cmPkRgrLteAdvancedUeConfig(param, mBuf)
3590 RgrLteAdvancedUeConfig *param;
3595 CMCHKPK(oduUnpackUInt8, param->isUeCellEdge, mBuf);
3596 CMCHKPK(oduUnpackUInt8, param->isAbsUe, mBuf);
3597 CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
3601 /***********************************************************
3603 * Func : cmUnpkRgrLteAdvancedUeConfig
3606 * Desc : unpacks LteAdvancedUeConfig
3615 **********************************************************/
3617 S16 cmUnpkRgrLteAdvancedUeConfig
3619 RgrLteAdvancedUeConfig *param,
3623 S16 cmUnpkRgrLteAdvancedUeConfig(param, mBuf)
3624 RgrLteAdvancedUeConfig *param;
3629 CMCHKUNPK(oduPackUInt32, ¶m->pres, mBuf);
3630 CMCHKUNPK(oduPackUInt8, ¶m->isAbsUe, mBuf);
3631 CMCHKUNPK(oduPackUInt8, ¶m->isUeCellEdge, mBuf);
3635 /***********************************************************
3637 * Func : cmPkRgrAbsConfig
3640 * Desc : Packs RgrAbsConfig
3649 **********************************************************/
3651 S16 cmPkRgrAbsConfig
3653 RgrAbsConfig *param,
3657 S16 cmPkRgrAbsConfig(param, mBuf)
3658 RgrAbsConfig *param;
3664 CMCHKPK(oduUnpackUInt32, (U32)param->status, mBuf);
3665 for (indx = RGR_ABS_PATTERN_LEN-1; indx >= 0; indx--)
3667 CMCHKPK(oduUnpackUInt8, param->absPattern[(U8)indx], mBuf);
3670 CMCHKPK(oduUnpackUInt32, param->absPatternType, mBuf);
3671 CMCHKPK(oduUnpackUInt32, param->absLoadPeriodicity, mBuf);
3676 /***********************************************************
3678 * Func : cmPkRgrSfrConfig
3681 * Desc : Packs RgrSfrConfig
3690 **********************************************************/
3692 S16 cmPkRgrSfrConfig
3694 RgrSfrConfig *param,
3698 S16 cmPkRgrSfrConfig(param, mBuf)
3699 RgrSfrConfig *param;
3704 CMCHKPK(oduUnpackUInt32, (U32)param->status, mBuf);
3706 CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pHigh, mBuf);
3707 CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pLow, mBuf);
3709 CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.endRb, mBuf);
3710 CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.startRb, mBuf);
3717 /***********************************************************
3719 * Func : cmPkRgrDsfrConfig
3722 * Desc : Packs RgrDsfrConfig
3727 * Notes: AIRSPAN_LTE_ADV_DSFR
3731 **********************************************************/
3733 S16 cmPkRgrDsfrConfig
3735 RgrDsfrConfig *param,
3739 S16 cmPkRgrDsfrConfig(param, mBuf)
3740 RgrDsfrConfig *param;
3745 CMCHKPK(oduUnpackUInt32, (U32)param->status, mBuf);
3752 /***********************************************************
3754 * Func : cmUnpkRgrDsfrConfig
3757 * Desc : UnPacks RgrDsfrConfig
3762 * Notes: AIRSPAN_LTE_ADV_DSFR
3766 **********************************************************/
3768 S16 cmUnpkRgrDsfrConfig
3770 RgrDsfrConfig *param,
3774 S16 cmUnpkRgrDsfrConfig(param, mBuf)
3775 RgrDsfrConfig *param;
3780 CMCHKUNPK(oduPackUInt32, (U32 *)¶m->status, mBuf);
3786 /***********************************************************
3788 * Func : cmPkRgrCellLteAdvancedFeatureCfg
3791 * Desc : Cell LteAdvancedFeatureCfg
3800 **********************************************************/
3802 S16 cmPkRgrCellLteAdvancedFeatureCfg
3804 RgrLteAdvancedCellConfig *param,
3808 S16 cmPkRgrCellLteAdvancedFeatureCfg(param, mBuf)
3809 RgrLteAdvancedCellConfig *param;
3814 CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
3815 CMCHKPK(cmPkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
3816 CMCHKPK(cmPkRgrSfrConfig, ¶m->sfrCfg, mBuf);
3817 CMCHKPK(cmPkRgrAbsConfig, ¶m->absCfg, mBuf);
3824 /***********************************************************
3826 * Func : cmUnpkRgrAbsConfig
3829 * Desc : Unpacks AbsConfig
3838 **********************************************************/
3840 S16 cmUnpkRgrAbsConfig
3842 RgrAbsConfig *param,
3846 S16 cmUnpkRgrAbsConfig(param, mBuf)
3847 RgrAbsConfig *param;
3854 CMCHKUNPK(oduPackUInt32, ¶m->absLoadPeriodicity, mBuf);
3855 CMCHKUNPK(oduPackUInt32, ¶m->absPatternType, mBuf);
3856 for (indx = 0; indx <RGR_ABS_PATTERN_LEN; indx++)
3858 CMCHKUNPK(oduPackUInt8, ¶m->absPattern[(U8)indx], mBuf);
3860 CMCHKUNPK(oduPackUInt32, (U32*)¶m->status, mBuf);
3866 /***********************************************************
3868 * Func : cmUnpkRgrSfrConfig
3871 * Desc : Unpacks SfrConfig
3880 **********************************************************/
3882 S16 cmUnpkRgrSfrConfig
3884 RgrSfrConfig *param,
3888 S16 cmUnpkRgrSfrConfig(param, mBuf)
3889 RgrSfrConfig *param;
3895 CMCHKUNPK(oduPackUInt8, ¶m->cellEdgeRbRange.startRb, mBuf);
3896 CMCHKUNPK(oduPackUInt8, ¶m->cellEdgeRbRange.endRb, mBuf);
3898 CMCHKUNPK(oduPackUInt32, (U32*)¶m->pwrThreshold.pLow, mBuf);
3899 CMCHKUNPK(oduPackUInt32, (U32*)¶m->pwrThreshold.pHigh, mBuf);
3901 CMCHKUNPK(oduPackUInt32, (U32*)¶m->status, mBuf);
3906 /***********************************************************
3908 * Func : cmUnpkRgrCellLteAdvancedFeatureCfg
3911 * Desc : unpacks LteAdvancedFeatureCfg per cell
3920 **********************************************************/
3922 S16 cmUnpkRgrCellLteAdvancedFeatureCfg
3924 RgrLteAdvancedCellConfig *param,
3928 S16 cmUnpkRgrCellLteAdvancedFeatureCfg(param, mBuf)
3929 RgrLteAdvancedCellConfig *param;
3934 CMCHKUNPK(cmUnpkRgrAbsConfig, ¶m->absCfg, mBuf);
3935 CMCHKUNPK(cmUnpkRgrSfrConfig, ¶m->sfrCfg, mBuf);
3936 CMCHKUNPK(cmUnpkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
3937 CMCHKUNPK(oduPackUInt32, ¶m->pres, mBuf);
3942 /* LTE_ADV_FLAG_REMOVED_END */
3944 /***********************************************************
3946 * Func : cmPkMacSchedGnbCfg
3948 * Desc : SCH GNB Configurations
3956 **********************************************************/
3958 S16 cmPkMacSchedGnbCfg
3960 MacSchedGnbCfg *param,
3964 S16 cmPkMacSchedGnbCfg(param, mBuf)
3965 RgrSchedEnbCfg *param;
3970 CMCHKPK(oduUnpackUInt8, param->maxDlUePerTti, mBuf);
3971 CMCHKPK(oduUnpackUInt8, param->maxUlUePerTti, mBuf);
3972 CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
3973 CMCHKPK(oduUnpackUInt8, param->dlSchdType, mBuf);
3974 CMCHKPK(oduUnpackUInt8, param->ulSchdType, mBuf);
3975 CMCHKPK(oduUnpackUInt8, param->numTxAntPorts, mBuf);
3977 } /* cmPkRgrSchedEnbCfg */
3979 /***********************************************************
3981 * Func : cmUnpkMacSchedGnbCfg
3984 * Desc : SCH Gnodeb Configuration to SCH
3993 **********************************************************/
3995 S16 cmUnpkMacSchedGnbCfg
3997 MacSchedGnbCfg *param,
4001 S16 cmUnpkMacSchedGnbCfg(param, mBuf)
4002 MacSchedGnbCfg *param;
4008 CMCHKUNPK(oduPackUInt8, ¶m->numTxAntPorts, mBuf);
4009 CMCHKUNPK(oduPackUInt8, ¶m->ulSchdType, mBuf);
4010 CMCHKUNPK(oduPackUInt8, ¶m->dlSchdType, mBuf);
4011 CMCHKUNPK(oduPackUInt8, ¶m->numCells, mBuf);
4012 CMCHKUNPK(oduPackUInt8, ¶m->maxUlUePerTti, mBuf);
4013 CMCHKUNPK(oduPackUInt8, ¶m->maxDlUePerTti, mBuf);
4015 } /* cmUnpkMacSchedGnbCfg */
4018 /***********************************************************
4020 * Func : cmPkRgrCellCfg
4023 * Desc : Cell Configuration at RRM
4032 **********************************************************/
4040 S16 cmPkRgrCellCfg(param, mBuf)
4049 /* EMTC related changes start*/
4052 /* EMTC related changes ends*/
4056 CMCHKPK(cmPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
4059 CMCHKPK(oduUnpackUInt8, param->isPucchFormat3Sptd, mBuf);
4061 /*LAA: Pack LAA params*/
4062 CMCHKPK(cmPkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
4063 CMCHKPK(oduUnpackUInt32, param->msg4pAVal, mBuf);
4064 CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
4065 CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
4066 CMCHKPK(oduUnpackUInt16, param->phichTxPwrOffset, mBuf);
4067 CMCHKPK(oduUnpackUInt16, param->rarTxPwrOffset, mBuf);
4068 CMCHKPK(oduUnpackUInt16, param->pcchTxPwrOffset, mBuf);
4069 CMCHKPK(oduUnpackUInt16, param->bcchTxPwrOffset, mBuf);
4071 CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
4072 /*rgr_c_001.main_7 - Added support for SPS*/
4073 CMCHKPK(cmPkRgrSpsCellCfg, ¶m->spsCfg, mBuf);
4075 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
4076 CMCHKPK(oduUnpackUInt8, param->rrmTtiIndPrd, mBuf);
4078 CMCHKPK(cmPkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
4079 CMCHKPK(oduUnpackUInt8, param->spclSfCfgIdx, mBuf);
4080 CMCHKPK(oduUnpackUInt8, param->ulDlCfgIdx, mBuf);
4083 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
4084 for (i=param->numCmnLcs-1; i >= 0; i--) {
4085 CMCHKPK(cmPkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
4087 CMCHKPK(oduUnpackUInt8, param->numCmnLcs, mBuf);
4088 CMCHKPK(cmPkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
4089 CMCHKPK(cmPkRgrPuschCfg, ¶m->puschCfg, mBuf);
4090 CMCHKPK(cmPkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
4091 CMCHKPK(cmPkRgrSiCfg, ¶m->siCfg, mBuf);
4092 CMCHKPK(cmPkRgrRachCfg, ¶m->rachCfg, mBuf);
4093 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsCfg, mBuf);
4094 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchCfg, mBuf);
4095 CMCHKPK(cmPkRgrPhichCfg, ¶m->phichCfg, mBuf);
4096 /* LTE_ADV_FLAG_REMOVED_START */
4097 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
4098 /* LTE_ADV_FLAG_REMOVED_END */
4099 CMCHKPK(cmPkRgrBwCfg, ¶m->bwCfg, mBuf);
4100 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
4101 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
4102 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
4103 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
4104 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
4105 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiCfg, mBuf);
4106 CMCHKPK(cmPkRgrRntiCfg, ¶m->macRnti, mBuf);
4107 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
4108 CMCHKPK(oduUnpackUInt8, param->dlfsSchdType, mBuf);
4110 CMCHKPK(SPkS8, param->pMax, mBuf);
4111 CMCHKPK(oduUnpackUInt8, param->cellModSchm, mBuf);
4112 CMCHKPK(oduUnpackUInt8, param->isCpDlExtend, mBuf);
4113 CMCHKPK(oduUnpackUInt8, param->isCpUlExtend, mBuf);
4114 CMCHKPK(oduUnpackUInt8, param->maxUlUeNewTxPerTti, mBuf);
4115 CMCHKPK(oduUnpackUInt8, param->maxDlUeNewTxPerTti, mBuf);
4116 CMCHKPK(oduUnpackUInt8, param->maxDlRetxBw, mBuf);
4117 CMCHKPK(oduUnpackUInt8, param->maxDlBwPerUe, mBuf);
4118 CMCHKPK(oduUnpackUInt8, param->maxUlBwPerUe, mBuf);
4119 CMCHKPK(oduUnpackUInt8, param->maxCcchPerDlSf, mBuf);
4120 CMCHKPK(oduUnpackUInt8, param->maxUePerDlSf, mBuf);
4121 CMCHKPK(oduUnpackUInt8, param->maxUePerUlSf, mBuf);
4123 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
4125 CMCHKPK(oduUnpackUInt8, param->maxMsg3PerUlSf, mBuf);
4127 CMCHKPK(oduUnpackUInt8, param->macInst, mBuf);
4128 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4131 /* EMTC related changes start*/
4132 CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
4133 CMCHKPK(cmPkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
4134 /* EMTC related changes ends*/
4142 /***********************************************************
4144 * Func : cmUnpkRgrCellCfg
4147 * Desc : Cell Configuration at RRM
4156 **********************************************************/
4158 S16 cmUnpkRgrCellCfg
4164 S16 cmUnpkRgrCellCfg(param, mBuf)
4173 /* EMTC related changes start*/
4174 CMCHKUNPK(cmUnpkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
4175 CMCHKUNPK(oduPackUInt8, ¶m->emtcEnable, mBuf);
4176 /* EMTC related changes ends*/
4179 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4180 CMCHKUNPK(oduPackUInt8, ¶m->macInst, mBuf);
4182 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
4184 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg3PerUlSf, mBuf);
4186 CMCHKUNPK(oduPackUInt8, ¶m->maxUePerUlSf, mBuf);
4187 CMCHKUNPK(oduPackUInt8, ¶m->maxUePerDlSf, mBuf);
4188 CMCHKUNPK(oduPackUInt8, ¶m->maxCcchPerDlSf, mBuf);
4189 CMCHKUNPK(oduPackUInt8, ¶m->maxUlBwPerUe, mBuf);
4190 CMCHKUNPK(oduPackUInt8, ¶m->maxDlBwPerUe, mBuf);
4191 CMCHKUNPK(oduPackUInt8, ¶m->maxDlRetxBw, mBuf);
4192 CMCHKUNPK(oduPackUInt8, ¶m->maxDlUeNewTxPerTti, mBuf);
4193 CMCHKUNPK(oduPackUInt8, ¶m->maxUlUeNewTxPerTti, mBuf);
4194 CMCHKUNPK(oduPackUInt8, ¶m->isCpUlExtend, mBuf);
4195 CMCHKUNPK(oduPackUInt8, ¶m->isCpDlExtend, mBuf);
4196 CMCHKUNPK(oduPackUInt8, ¶m->cellModSchm, mBuf);
4197 CMCHKUNPK(SUnpkS8, ¶m->pMax, mBuf);
4198 CMCHKUNPK(oduPackUInt8, ¶m->dlfsSchdType, mBuf);
4199 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
4200 CMCHKUNPK(cmUnpkRgrRntiCfg, ¶m->macRnti, mBuf);
4201 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiCfg, mBuf);
4202 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
4203 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
4204 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
4205 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
4206 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
4207 CMCHKUNPK(cmUnpkRgrBwCfg, ¶m->bwCfg, mBuf);
4208 /* LTE_ADV_FLAG_REMOVED_START */
4209 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
4210 /* LTE_ADV_FLAG_REMOVED_END */
4211 CMCHKUNPK(cmUnpkRgrPhichCfg, ¶m->phichCfg, mBuf);
4212 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchCfg, mBuf);
4213 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsCfg, mBuf);
4214 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachCfg, mBuf);
4215 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siCfg, mBuf);
4216 CMCHKUNPK(cmUnpkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
4217 CMCHKUNPK(cmUnpkRgrPuschCfg, ¶m->puschCfg, mBuf);
4218 CMCHKUNPK(cmUnpkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
4219 CMCHKUNPK(oduPackUInt8, ¶m->numCmnLcs, mBuf);
4220 for (i=0; i<param->numCmnLcs; i++) {
4221 CMCHKUNPK(cmUnpkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
4223 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
4226 CMCHKUNPK(oduPackUInt8, ¶m->ulDlCfgIdx, mBuf);
4227 CMCHKUNPK(oduPackUInt8, ¶m->spclSfCfgIdx, mBuf);
4228 CMCHKUNPK(cmUnpkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
4231 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
4232 CMCHKUNPK(oduPackUInt8, ¶m->rrmTtiIndPrd, mBuf);
4233 /*rgr_c_001.main_7 - Added support for SPS*/
4234 CMCHKUNPK(cmUnpkRgrSpsDlCellCfg, ¶m->spsCfg, mBuf);
4236 CMCHKUNPK(oduPackUInt16, ¶m->t300TmrVal, mBuf);
4237 CMCHKPK(oduPackUInt16, ¶m->bcchTxPwrOffset, mBuf);
4238 CMCHKPK(oduPackUInt16, ¶m->pcchTxPwrOffset, mBuf);
4239 CMCHKPK(oduPackUInt16, ¶m->rarTxPwrOffset, mBuf);
4240 CMCHKPK(oduPackUInt16, ¶m->phichTxPwrOffset, mBuf);
4241 CMCHKUNPK(oduPackUInt8, ¶m->isDynCfiEnb, mBuf);
4242 CMCHKUNPK(oduPackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
4243 CMCHKPK(oduPackUInt32, (U32*)¶m->msg4pAVal, mBuf);
4244 /*LAA: Unpack LAA Cell params*/
4245 CMCHKUNPK(cmUnpkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
4247 CMCHKUNPK(oduPackUInt8, ¶m->isPucchFormat3Sptd, mBuf);
4250 CMCHKUNPK(cmUnPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
4257 /***********************************************************
4259 * Func : cmPkRgrUeAprdDlCqiCfg
4262 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
4271 **********************************************************/
4273 S16 cmPkRgrUeAprdDlCqiCfg
4275 RgrUeAprdDlCqiCfg *param,
4279 S16 cmPkRgrUeAprdDlCqiCfg(param, mBuf)
4280 RgrUeAprdDlCqiCfg *param;
4285 /*Pack Aperiodic Trigger List only for Pcell */
4287 CMCHKPK(oduUnpackUInt8, param->triggerSet2, mBuf);
4288 CMCHKPK(oduUnpackUInt8, param->triggerSet1, mBuf);
4291 CMCHKPK(oduUnpackUInt32, param->aprdModeEnum, mBuf);
4292 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4298 /***********************************************************
4300 * Func : cmUnpkRgrUeAprdDlCqiCfg
4303 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
4312 **********************************************************/
4314 S16 cmUnpkRgrUeAprdDlCqiCfg
4316 RgrUeAprdDlCqiCfg *param,
4320 S16 cmUnpkRgrUeAprdDlCqiCfg(param, mBuf)
4321 RgrUeAprdDlCqiCfg *param;
4328 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4329 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4330 param->aprdModeEnum = (RgrAprdCqiMode) tmpEnum;
4333 CMCHKUNPK(oduPackUInt8, ¶m->triggerSet1, mBuf);
4334 CMCHKUNPK(oduPackUInt8, ¶m->triggerSet2, mBuf);
4341 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4345 /***********************************************************
4347 * Func : cmPkRgrUePrdDlCqiCfg
4350 * Desc : Downlink Periodic CQI reporting related configuration per UE
4359 **********************************************************/
4361 S16 cmPkRgrUePrdDlCqiCfg
4363 RgrUePrdDlCqiCfg *param,
4367 S16 cmPkRgrUePrdDlCqiCfg(param, mBuf)
4368 RgrUePrdDlCqiCfg *param;
4374 CMCHKPK(oduUnpackUInt16, param->cqiPmiCfgIdx, mBuf);
4375 CMCHKPK(oduUnpackUInt8, param->k, mBuf);
4376 CMCHKPK(SPkS8, param->cqiOffst, mBuf);
4377 CMCHKPK(oduUnpackUInt8, param->subframeOffst, mBuf);
4378 CMCHKPK(oduUnpackUInt32, param->prdicityEnum, mBuf);
4379 CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
4380 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4386 /***********************************************************
4388 * Func : cmUnpkRgrUePrdDlCqiCfg
4391 * Desc : Downlink Periodic CQI reporting related configuration per UE
4400 **********************************************************/
4402 S16 cmUnpkRgrUePrdDlCqiCfg
4404 RgrUePrdDlCqiCfg *param,
4408 S16 cmUnpkRgrUePrdDlCqiCfg(param, mBuf)
4409 RgrUePrdDlCqiCfg *param;
4416 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4417 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4418 param->prdModeEnum = tmpEnum;
4419 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4420 param->prdicityEnum = tmpEnum;
4421 CMCHKUNPK(oduPackUInt8, ¶m->subframeOffst, mBuf);
4422 CMCHKUNPK(SUnpkS8, ¶m->cqiOffst, mBuf);
4423 CMCHKUNPK(oduPackUInt8, ¶m->k, mBuf);
4424 CMCHKUNPK(oduPackUInt16, ¶m->cqiPmiCfgIdx, mBuf);
4431 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4433 /***********************************************************
4435 * Func : cmPkRgrUeDlPCqiSetup
4438 * Desc : Periodic CQI Setup configuration parameters information
4447 **********************************************************/
4449 S16 cmPkRgrUeDlPCqiSetup
4451 RgrUeDlPCqiSetup *param,
4455 S16 cmPkRgrUeDlPCqiSetup(param, mBuf)
4456 RgrUeDlPCqiSetup *param;
4462 CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
4463 CMCHKPK(oduUnpackUInt8, param->sANCQI, mBuf);
4464 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4465 CMCHKPK(oduUnpackUInt16, param->riCfgIdx, mBuf);
4466 CMCHKPK(oduUnpackUInt8, param->riEna, mBuf);
4467 CMCHKPK(oduUnpackUInt8, param->k, mBuf);
4468 CMCHKPK(oduUnpackUInt8, param->cqiRepType, mBuf);
4469 CMCHKPK(oduUnpackUInt16, param->cqiPCfgIdx, mBuf);
4470 CMCHKPK(oduUnpackUInt16, param->cqiPResIdx, mBuf);
4476 /***********************************************************
4478 * Func : cmUnpkRgrUeDlPCqiSetup
4481 * Desc : Periodic CQI Setup configuration parameters information
4490 **********************************************************/
4492 S16 cmUnpkRgrUeDlPCqiSetup
4494 RgrUeDlPCqiSetup *param,
4498 S16 cmUnpkRgrUeDlPCqiSetup(param, mBuf)
4499 RgrUeDlPCqiSetup *param;
4506 CMCHKUNPK(oduPackUInt16, ¶m->cqiPResIdx, mBuf);
4507 CMCHKUNPK(oduPackUInt16, ¶m->cqiPCfgIdx, mBuf);
4508 CMCHKUNPK(oduPackUInt8, ¶m->cqiRepType, mBuf);
4509 CMCHKUNPK(oduPackUInt8, ¶m->k, mBuf);
4510 CMCHKUNPK(oduPackUInt8, ¶m->riEna, mBuf);
4511 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4512 CMCHKUNPK(oduPackUInt16, ¶m->riCfgIdx, mBuf);
4513 CMCHKUNPK(oduPackUInt8, ¶m->sANCQI, mBuf);
4514 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4515 param->prdModeEnum = (RgrPrdCqiMode) tmpEnum;
4521 /***********************************************************
4523 * Func : cmPkRgrUePrdDlCqiCfg
4526 * Desc : Periodic CQI/PMI/RI configuration parameters information
4535 **********************************************************/
4537 S16 cmPkRgrUePrdDlCqiCfg
4539 RgrUePrdDlCqiCfg *param,
4543 S16 cmPkRgrUePrdDlCqiCfg(param, mBuf)
4544 RgrUePrdDlCqiCfg *param;
4550 CMCHKPK(cmPkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
4551 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4557 /***********************************************************
4559 * Func : cmUnpkRgrUePrdDlCqiCfg
4562 * Desc : Periodic CQI/PMI/RI configuration parameters information
4571 **********************************************************/
4573 S16 cmUnpkRgrUePrdDlCqiCfg
4575 RgrUePrdDlCqiCfg *param,
4579 S16 cmUnpkRgrUePrdDlCqiCfg(param, mBuf)
4580 RgrUePrdDlCqiCfg *param;
4586 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4587 CMCHKUNPK(cmUnpkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
4593 /***********************************************************
4595 * Func : cmPkRgrUeUlSrsSetupCfg
4598 * Desc : SRS configuration setup parameters information.
4599 Reference 36.313 SoundingRS-UL-Config
4608 **********************************************************/
4610 S16 cmPkRgrUeUlSrsSetupCfg
4612 RgrUeUlSrsSetupCfg *param,
4616 S16 cmPkRgrUeUlSrsSetupCfg(param, mBuf)
4617 RgrUeUlSrsSetupCfg *param;
4623 CMCHKPK(oduUnpackUInt8, param->fDomPosi, mBuf);
4624 CMCHKPK(oduUnpackUInt8, param->txComb, mBuf);
4625 CMCHKPK(oduUnpackUInt8, param->sANSrs, mBuf);
4626 CMCHKPK(oduUnpackUInt8, param->duration, mBuf);
4627 CMCHKPK(oduUnpackUInt32, param->cycShift, mBuf);
4628 CMCHKPK(oduUnpackUInt32, param->srsHopBw, mBuf);
4629 CMCHKPK(oduUnpackUInt32, param->srsBw, mBuf);
4630 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4631 CMCHKPK(oduUnpackUInt16, param->srsCfgIdx, mBuf);
4637 /***********************************************************
4639 * Func : cmUnpkRgrUeUlSrsSetupCfg
4642 * Desc : SRS configuration setup parameters information.
4643 Reference 36.313 SoundingRS-UL-Config
4652 **********************************************************/
4654 S16 cmUnpkRgrUeUlSrsSetupCfg
4656 RgrUeUlSrsSetupCfg *param,
4660 S16 cmUnpkRgrUeUlSrsSetupCfg(param, mBuf)
4661 RgrUeUlSrsSetupCfg *param;
4668 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4669 CMCHKUNPK(oduPackUInt16, ¶m->srsCfgIdx, mBuf);
4670 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4671 param->srsBw = (RgrUlSrsBwInfo) tmpEnum;
4672 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4673 param->srsHopBw = (RgrUlSrsHoBwInfo) tmpEnum;
4674 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
4675 param->cycShift = (RgrUlSrsCycShiftInfo) tmpEnum;
4676 CMCHKUNPK(oduPackUInt8, ¶m->duration, mBuf);
4677 CMCHKUNPK(oduPackUInt8, ¶m->sANSrs, mBuf);
4678 CMCHKUNPK(oduPackUInt8, ¶m->txComb, mBuf);
4679 CMCHKUNPK(oduPackUInt8, ¶m->fDomPosi, mBuf);
4685 /***********************************************************
4687 * Func : cmPkRgrUeSrSetupCfg
4690 * Desc : SR Setup configuration parameters information
4699 **********************************************************/
4701 S16 cmPkRgrUeSrSetupCfg
4703 RgrUeSrSetupCfg *param,
4707 S16 cmPkRgrUeSrSetupCfg(param, mBuf)
4708 RgrUeSrSetupCfg *param;
4714 /* ccpu00131601:DEL - dTMax Packing removed since this param will not
4715 * be required by Scheduler*/
4716 CMCHKPK(oduUnpackUInt8, param->srCfgIdx, mBuf);
4717 CMCHKPK(oduUnpackUInt16, param->srResIdx, mBuf);
4723 /***********************************************************
4725 * Func : cmUnpkRgrUeSrSetupCfg
4728 * Desc : SR Setup configuration parameters information
4737 **********************************************************/
4739 S16 cmUnpkRgrUeSrSetupCfg
4741 RgrUeSrSetupCfg *param,
4745 S16 cmUnpkRgrUeSrSetupCfg(param, mBuf)
4746 RgrUeSrSetupCfg *param;
4751 CMCHKUNPK(oduPackUInt16, ¶m->srResIdx, mBuf);
4752 CMCHKUNPK(oduPackUInt8, ¶m->srCfgIdx, mBuf);
4753 /* ccpu00131601:DEL - dTMax UnPacking removed since this param will not
4754 * be required by Scheduler*/
4760 /***********************************************************
4762 * Func : cmPkRgrUeSrCfg
4765 * Desc : SR configuration parameters information
4774 **********************************************************/
4782 S16 cmPkRgrUeSrCfg(param, mBuf)
4789 CMCHKPK(cmPkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
4790 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4796 /***********************************************************
4798 * Func : cmUnpkRgrUeSrCfg
4801 * Desc : SR configuration parameters information
4810 **********************************************************/
4812 S16 cmUnpkRgrUeSrCfg
4818 S16 cmUnpkRgrUeSrCfg(param, mBuf)
4825 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4826 CMCHKUNPK(cmUnpkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
4832 /***********************************************************
4834 * Func : cmPkRgrUeUlSrsCfg
4837 * Desc : SRS configuration parameters information.
4838 Reference 36.313 SoundingRS-UL-Config
4847 **********************************************************/
4849 S16 cmPkRgrUeUlSrsCfg
4851 RgrUeUlSrsCfg *param,
4855 S16 cmPkRgrUeUlSrsCfg(param, mBuf)
4856 RgrUeUlSrsCfg *param;
4862 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4863 CMCHKPK(cmPkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
4864 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4870 /***********************************************************
4872 * Func : cmUnpkRgrUeUlSrsCfg
4875 * Desc : SRS configuration parameters information.
4876 Reference 36.313 SoundingRS-UL-Config
4885 **********************************************************/
4887 S16 cmUnpkRgrUeUlSrsCfg
4889 RgrUeUlSrsCfg *param,
4893 S16 cmUnpkRgrUeUlSrsCfg(param, mBuf)
4894 RgrUeUlSrsCfg *param;
4900 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4901 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4902 CMCHKUNPK(cmUnpkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
4907 #endif /*TFU_UPGRADE */
4910 /***********************************************************
4912 * Func : cmPkRgrUeDlCqiCfg
4915 * Desc : Downlink CQI reporting related configuration per UE
4924 **********************************************************/
4926 S16 cmPkRgrUeDlCqiCfg
4928 RgrUeDlCqiCfg *param,
4932 S16 cmPkRgrUeDlCqiCfg(param, mBuf)
4933 RgrUeDlCqiCfg *param;
4940 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4942 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4945 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4947 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4949 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
4955 /***********************************************************
4957 * Func : cmUnpkRgrUeDlCqiCfg
4960 * Desc : Downlink CQI reporting related configuration per UE
4969 **********************************************************/
4971 S16 cmUnpkRgrUeDlCqiCfg
4973 RgrUeDlCqiCfg *param,
4977 S16 cmUnpkRgrUeDlCqiCfg(param, mBuf)
4978 RgrUeDlCqiCfg *param;
4984 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
4985 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4991 /***********************************************************
4993 * Func : cmPkRgrUeMeasGapCfg
4996 * Desc : Measurement gap configuration for UE
5005 **********************************************************/
5007 S16 cmPkRgrUeMeasGapCfg
5009 RgrUeMeasGapCfg *param,
5013 S16 cmPkRgrUeMeasGapCfg(param, mBuf)
5014 RgrUeMeasGapCfg *param;
5020 CMCHKPK(oduUnpackUInt8, param->gapOffst, mBuf);
5021 CMCHKPK(oduUnpackUInt8, param->gapPrd, mBuf);
5022 CMCHKPK(oduUnpackUInt8, param->isMesGapEnabled, mBuf);
5028 /***********************************************************
5030 * Func : cmUnpkRgrUeMeasGapCfg
5033 * Desc : Measurement gap configuration for UE
5042 **********************************************************/
5044 S16 cmUnpkRgrUeMeasGapCfg
5046 RgrUeMeasGapCfg *param,
5050 S16 cmUnpkRgrUeMeasGapCfg(param, mBuf)
5051 RgrUeMeasGapCfg *param;
5057 CMCHKUNPK(oduPackUInt8, ¶m->isMesGapEnabled, mBuf);
5058 CMCHKUNPK(oduPackUInt8, ¶m->gapPrd, mBuf);
5059 CMCHKUNPK(oduPackUInt8, ¶m->gapOffst, mBuf);
5063 /*rgr_c_001.main_9 ADD DRX functionality under flag*/
5065 /***********************************************************
5067 * Func : cmPkRgrDrxLongCycleOffst
5070 * Desc : DRX Long Cycle Offset
5079 **********************************************************/
5081 S16 cmPkRgrDrxLongCycleOffst
5083 RgrDrxLongCycleOffst *param,
5087 S16 cmPkRgrDrxLongCycleOffst(param, mBuf)
5088 RgrDrxLongCycleOffst *param;
5094 CMCHKPK(oduUnpackUInt16, param->drxStartOffst, mBuf);
5095 CMCHKPK(oduUnpackUInt16, param->longDrxCycle, mBuf);
5101 /***********************************************************
5103 * Func : cmUnpkRgrDrxLongCycleOffst
5106 * Desc : DRX Long Cycle Offset
5115 **********************************************************/
5117 S16 cmUnpkRgrDrxLongCycleOffst
5119 RgrDrxLongCycleOffst *param,
5123 S16 cmUnpkRgrDrxLongCycleOffst(param, mBuf)
5124 RgrDrxLongCycleOffst *param;
5130 CMCHKUNPK(oduPackUInt16, ¶m->longDrxCycle, mBuf);
5131 CMCHKUNPK(oduPackUInt16, ¶m->drxStartOffst, mBuf);
5137 /***********************************************************
5139 * Func : cmPkRgrDrxShortDrx
5142 * Desc : DRX Short Cycle Offset
5151 **********************************************************/
5153 S16 cmPkRgrDrxShortDrx
5155 RgrDrxShortDrx *param,
5159 S16 cmPkRgrDrxShortDrx(param, mBuf)
5160 RgrDrxShortDrx *param;
5166 CMCHKPK(oduUnpackUInt8, param->drxShortCycleTmr, mBuf);
5167 CMCHKPK(oduUnpackUInt16, param->shortDrxCycle, mBuf);
5168 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5174 /***********************************************************
5176 * Func : cmUnpkRgrDrxShortDrx
5179 * Desc : DRX Short Cycle Offset
5188 **********************************************************/
5190 S16 cmUnpkRgrDrxShortDrx
5192 RgrDrxShortDrx *param,
5196 S16 cmUnpkRgrDrxShortDrx(param, mBuf)
5197 RgrDrxShortDrx *param;
5203 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5204 CMCHKUNPK(oduPackUInt16, ¶m->shortDrxCycle, mBuf);
5205 CMCHKUNPK(oduPackUInt8, ¶m->drxShortCycleTmr, mBuf);
5209 /***********************************************************
5211 * Func : cmPkRgrUeDrxCfg
5214 * Desc : DRX configuration for UE
5223 **********************************************************/
5231 S16 cmPkRgrUeDrxCfg(param, mBuf)
5238 CMCHKPK(cmPkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
5239 CMCHKPK(cmPkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
5240 CMCHKPK(oduUnpackUInt16, param->drxRetxTmr, mBuf);
5242 CMCHKPK(oduUnpackUInt8, param->drxRetxTmrR13Pres, mBuf);
5243 CMCHKPK(oduUnpackUInt8, param->drxOnDurTmrR13Pres, mBuf);
5244 CMCHKPK(oduUnpackUInt16, param->emtcDrxUlRetxTmr, mBuf);
5245 CMCHKPK(oduUnpackUInt8, param->isEmtcUe, mBuf);
5247 CMCHKPK(oduUnpackUInt16, param->drxInactvTmr, mBuf);
5248 CMCHKPK(oduUnpackUInt16, param->drxOnDurTmr, mBuf);
5249 /*rgr_c_001.main_9 ADD added changes for R9*/
5251 CMCHKPK(cmPkTknS32, ¶m->cqiMask, mBuf);
5258 /***********************************************************
5260 * Func : cmUnpkRgrUeDrxCfg
5263 * Desc : DRX configuration for UE
5272 **********************************************************/
5274 S16 cmUnpkRgrUeDrxCfg
5280 S16 cmUnpkRgrUeDrxCfg(param, mBuf)
5287 /*rgr_c_001.main_9 ADD added changes for R9*/
5289 CMCHKUNPK(cmUnpkTknS32, ¶m->cqiMask, mBuf);
5291 CMCHKUNPK(oduPackUInt16, ¶m->drxOnDurTmr, mBuf);
5292 CMCHKUNPK(oduPackUInt16, ¶m->drxInactvTmr, mBuf);
5294 CMCHKUNPK(oduPackUInt8, ¶m->isEmtcUe, mBuf);
5295 CMCHKUNPK(oduPackUInt16,¶m->emtcDrxUlRetxTmr, mBuf);
5296 CMCHKUNPK(oduPackUInt8, ¶m->drxOnDurTmrR13Pres, mBuf);
5297 CMCHKUNPK(oduPackUInt8, ¶m->drxRetxTmrR13Pres, mBuf);
5299 CMCHKUNPK(oduPackUInt16, ¶m->drxRetxTmr, mBuf);
5300 CMCHKUNPK(cmUnpkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
5301 CMCHKUNPK(cmUnpkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
5305 /*rgr_c_001.main_9 ADD added DRX changes under DRX*/
5307 /***********************************************************
5309 * Func : cmPkRgrUeCapCfg
5312 * Desc : RgrUeCapCfg
5321 **********************************************************/
5329 S16 cmPkRgrUeCapCfg(param, mBuf)
5336 CMCHKPK(oduUnpackUInt8, param->txAntSel, mBuf);
5337 CMCHKPK(oduUnpackUInt8, param->simCqiAckNack, mBuf);
5338 CMCHKPK(oduUnpackUInt8, param->resAloocType1, mBuf);
5339 CMCHKPK(oduUnpackUInt8, param->intraSfFeqHop, mBuf);
5340 CMCHKPK(oduUnpackUInt8, param->pwrClass, mBuf);
5346 /***********************************************************
5348 * Func : cmUnpkRgrUeCapCfg
5351 * Desc : RgrUeCapCfg
5360 **********************************************************/
5362 S16 cmUnpkRgrUeCapCfg
5368 S16 cmUnpkRgrUeCapCfg(param, mBuf)
5375 CMCHKUNPK(oduPackUInt8, ¶m->pwrClass, mBuf);
5376 CMCHKUNPK(oduPackUInt8, ¶m->intraSfFeqHop, mBuf);
5377 CMCHKUNPK(oduPackUInt8, ¶m->resAloocType1, mBuf);
5378 CMCHKUNPK(oduPackUInt8, ¶m->simCqiAckNack, mBuf);
5379 CMCHKUNPK(oduPackUInt8, ¶m->txAntSel, mBuf);
5385 /***********************************************************
5387 * Func : cmPkRgrUeAckNackRepCfg
5390 * Desc : rgrUeAckNackRepCfg
5399 **********************************************************/
5401 S16 cmPkRgrUeAckNackRepCfg
5403 RgrUeAckNackRepCfg *param,
5407 S16 cmPkRgrUeAckNackRepCfg(param, mBuf)
5408 RgrUeAckNackRepCfg *param;
5414 CMCHKPK(oduUnpackUInt32, param->ackNackRepFactor, mBuf);
5415 CMCHKPK(oduUnpackUInt16, param->pucchAckNackRep, mBuf);
5416 CMCHKPK(oduUnpackUInt8, param->isAckNackEnabled, mBuf);
5422 /***********************************************************
5424 * Func : cmUnpkRgrUeAckNackRepCfg
5427 * Desc : rgrUeAckNackRepCfg
5436 **********************************************************/
5438 S16 cmUnpkRgrUeAckNackRepCfg
5440 RgrUeAckNackRepCfg *param,
5444 S16 cmUnpkRgrUeAckNackRepCfg(param, mBuf)
5445 RgrUeAckNackRepCfg *param;
5452 CMCHKUNPK(oduPackUInt8, ¶m->isAckNackEnabled, mBuf);
5453 CMCHKUNPK(oduPackUInt16, ¶m->pucchAckNackRep, mBuf);
5454 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
5455 param->ackNackRepFactor = (RgrAckNackRepFactor) tmpEnum;
5461 /***********************************************************
5463 * Func : cmPkRgrUeTxModeCfg
5466 * Desc : Transmission mode configuration per UE
5475 **********************************************************/
5477 S16 cmPkRgrUeTxModeCfg
5479 RgrUeTxModeCfg *param,
5483 S16 cmPkRgrUeTxModeCfg(param, mBuf)
5484 RgrUeTxModeCfg *param;
5490 CMCHKPK(oduUnpackUInt32, param->txModeEnum, mBuf);
5491 CMCHKPK(oduUnpackUInt32, param->tmTrnstnState, mBuf);
5492 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5499 /***********************************************************
5501 * Func : cmUnpkRgrUeTxModeCfg
5504 * Desc : Transmission mode configuration per UE
5513 **********************************************************/
5515 S16 cmUnpkRgrUeTxModeCfg
5517 RgrUeTxModeCfg *param,
5521 S16 cmUnpkRgrUeTxModeCfg(param, mBuf)
5522 RgrUeTxModeCfg *param;
5529 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5530 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
5531 param->tmTrnstnState = (RgrTxModeTrnstn) tmpEnum;
5533 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
5534 param->txModeEnum = (RgrTxMode) tmpEnum;
5540 /***********************************************************
5542 * Func : cmPkRgrUeUlHqCfg
5545 * Desc : Uplink HARQ configuration per UE
5554 **********************************************************/
5556 S16 cmPkRgrUeUlHqCfg
5558 RgrUeUlHqCfg *param,
5562 S16 cmPkRgrUeUlHqCfg(param, mBuf)
5563 RgrUeUlHqCfg *param;
5569 CMCHKPK(oduUnpackUInt8, param->deltaHqOffst, mBuf);
5570 CMCHKPK(oduUnpackUInt8, param->maxUlHqTx, mBuf);
5576 /***********************************************************
5578 * Func : cmUnpkRgrUeUlHqCfg
5581 * Desc : Uplink HARQ configuration per UE
5590 **********************************************************/
5592 S16 cmUnpkRgrUeUlHqCfg
5594 RgrUeUlHqCfg *param,
5598 S16 cmUnpkRgrUeUlHqCfg(param, mBuf)
5599 RgrUeUlHqCfg *param;
5605 CMCHKUNPK(oduPackUInt8, ¶m->maxUlHqTx, mBuf);
5606 CMCHKUNPK(oduPackUInt8, ¶m->deltaHqOffst, mBuf);
5612 /***********************************************************
5614 * Func : cmPkRgrUeGrpPwrCfg
5617 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
5626 **********************************************************/
5628 S16 cmPkRgrUeGrpPwrCfg
5630 RgrUeGrpPwrCfg *param,
5634 S16 cmPkRgrUeGrpPwrCfg(param, mBuf)
5635 RgrUeGrpPwrCfg *param;
5641 CMCHKPK(oduUnpackUInt8, param->idx, mBuf);
5642 CMCHKPK(cmPkLteRnti, param->tpcRnti, mBuf);
5643 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5649 /***********************************************************
5651 * Func : cmUnpkRgrUeGrpPwrCfg
5654 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
5663 **********************************************************/
5665 S16 cmUnpkRgrUeGrpPwrCfg
5667 RgrUeGrpPwrCfg *param,
5671 S16 cmUnpkRgrUeGrpPwrCfg(param, mBuf)
5672 RgrUeGrpPwrCfg *param;
5678 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5679 CMCHKUNPK(cmUnpkLteRnti, ¶m->tpcRnti, mBuf);
5680 CMCHKUNPK(oduPackUInt8, ¶m->idx, mBuf);
5684 /*rgr_c_001.main_7 - Added support for SPS*/
5687 /***********************************************************
5689 * Func : cmPkRgrUeSpsDlCfg
5692 * Desc : DL SPS configuration parameters per UE
5701 **********************************************************/
5703 S16 cmPkRgrUeSpsDlCfg
5705 RgrUeSpsDlCfg *param,
5709 S16 cmPkRgrUeSpsDlCfg(param, mBuf)
5710 RgrUeSpsDlCfg *param;
5716 CMCHKPK(oduUnpackUInt16, param->explicitRelCnt, mBuf);
5717 CMCHKPK(oduUnpackUInt32, param->dlSpsPrdctyEnum, mBuf);
5718 for (i=param->numPucchVal-1; i >= 0; i--) {
5719 CMCHKPK(oduUnpackUInt32, param->n1PucchVal[i], mBuf);
5721 CMCHKPK(oduUnpackUInt8, param->numPucchVal, mBuf);
5722 CMCHKPK(oduUnpackUInt8, param->numSpsHqProc, mBuf);
5723 CMCHKPK(oduUnpackUInt8, param->isDlSpsEnabled, mBuf);
5729 /***********************************************************
5731 * Func : cmUnpkRgrUeSpsDlCfg
5734 * Desc : DL SPS configuration parameters per UE
5743 **********************************************************/
5745 S16 cmUnpkRgrUeSpsDlCfg
5747 RgrUeSpsDlCfg *param,
5751 S16 cmUnpkRgrUeSpsDlCfg(param, mBuf)
5752 RgrUeSpsDlCfg *param;
5760 CMCHKUNPK(oduPackUInt8, ¶m->isDlSpsEnabled, mBuf);
5761 CMCHKUNPK(oduPackUInt8, ¶m->numSpsHqProc, mBuf);
5762 CMCHKUNPK(oduPackUInt8, ¶m->numPucchVal, mBuf);
5763 for (i=0; i<param->numPucchVal; i++) {
5764 CMCHKUNPK(oduPackUInt32, ¶m->n1PucchVal[i], mBuf);
5766 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
5767 param->dlSpsPrdctyEnum = tmpEnum;
5768 CMCHKUNPK(oduPackUInt16, ¶m->explicitRelCnt, mBuf);
5774 /***********************************************************
5776 * Func : cmPkRgrUeSpsUlCfg
5779 * Desc : UL SPS configuration parameters per UE
5788 **********************************************************/
5790 S16 cmPkRgrUeSpsUlCfg
5792 RgrUeSpsUlCfg *param,
5796 S16 cmPkRgrUeSpsUlCfg(param, mBuf)
5797 RgrUeSpsUlCfg *param;
5804 CMCHKPK(oduUnpackUInt8, param->isLcSRMaskEnab, mBuf);
5805 for (i=param->lcCnt-1; i >= 0; i--) {
5806 /* SPS Changes starts */
5807 CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].isSpsEnabled, mBuf);
5808 CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].lcId, mBuf);
5809 /* SPS Changes ends */
5811 CMCHKPK(oduUnpackUInt8, param->lcCnt, mBuf);
5812 CMCHKPK(oduUnpackUInt32, param->ulSpsPrdctyEnum, mBuf);
5813 CMCHKPK(SPkS8, param->pwrCfg.p0UePuschVal, mBuf);
5814 CMCHKPK(SPkS8, param->pwrCfg.p0NominalPuschVal, mBuf);
5815 CMCHKPK(oduUnpackUInt8, param->pwrCfgPres, mBuf);
5818 CMCHKPK(oduUnpackUInt8, param->twoIntervalCfg, mBuf);
5821 CMCHKPK(oduUnpackUInt32, param->implicitRelCnt, mBuf);
5822 CMCHKPK(oduUnpackUInt8, param->isUlSpsEnabled, mBuf);
5828 /***********************************************************
5830 * Func : cmUnpkRgrUeSpsUlCfg
5833 * Desc : UL SPS configuration parameters per UE
5842 **********************************************************/
5844 S16 cmUnpkRgrUeSpsUlCfg
5846 RgrUeSpsUlCfg *param,
5850 S16 cmUnpkRgrUeSpsUlCfg(param, mBuf)
5851 RgrUeSpsUlCfg *param;
5859 CMCHKUNPK(oduPackUInt8, ¶m->isUlSpsEnabled, mBuf);
5860 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
5861 param->implicitRelCnt = tmpEnum;
5864 CMCHKUNPK(oduPackUInt8, ¶m->twoIntervalCfg, mBuf);
5867 CMCHKUNPK(oduPackUInt8, ¶m->pwrCfgPres, mBuf);
5868 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0NominalPuschVal, mBuf);
5869 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0UePuschVal, mBuf);
5870 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
5871 param->ulSpsPrdctyEnum = tmpEnum;
5872 CMCHKUNPK(oduPackUInt8, ¶m->lcCnt, mBuf);
5873 for (i=0; i<param->lcCnt; i++) {
5874 CMCHKUNPK(oduPackUInt8, ¶m->spsLcInfo[i].lcId, mBuf);
5875 CMCHKUNPK(oduPackUInt8, ¶m->spsLcInfo[i].isSpsEnabled, mBuf);
5877 CMCHKUNPK(oduPackUInt8, ¶m->isLcSRMaskEnab, mBuf);
5883 /***********************************************************
5885 * Func : cmPkRgrUeSpsCfg
5888 * Desc : SPS configuration parameters per UE
5897 **********************************************************/
5905 S16 cmPkRgrUeSpsCfg(param, mBuf)
5912 CMCHKPK(cmPkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
5913 CMCHKPK(cmPkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
5914 CMCHKPK(cmPkLteRnti, param->spsRnti, mBuf);
5920 /***********************************************************
5922 * Func : cmUnpkRgrUeSpsCfg
5925 * Desc : SPS configuration parameters per UE
5934 **********************************************************/
5936 S16 cmUnpkRgrUeSpsCfg
5942 S16 cmUnpkRgrUeSpsCfg(param, mBuf)
5949 CMCHKUNPK(cmUnpkLteRnti, ¶m->spsRnti, mBuf);
5950 CMCHKUNPK(cmUnpkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
5951 CMCHKUNPK(cmUnpkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
5956 /***********************************************************
5958 * Func : cmPkRgrUeUlPwrCfg
5961 * Desc : Uplink power configuration per UE
5970 **********************************************************/
5972 S16 cmPkRgrUeUlPwrCfg
5974 RgrUeUlPwrCfg *param,
5978 S16 cmPkRgrUeUlPwrCfg(param, mBuf)
5979 RgrUeUlPwrCfg *param;
5985 CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
5986 CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
5987 CMCHKPK(SPkS8, param->p0UePucch, mBuf);
5988 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
5989 CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
5990 CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
5991 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
5992 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
5998 /***********************************************************
6000 * Func : cmUnpkRgrUeUlPwrCfg
6003 * Desc : Uplink power configuration per UE
6012 **********************************************************/
6014 S16 cmUnpkRgrUeUlPwrCfg
6016 RgrUeUlPwrCfg *param,
6020 S16 cmUnpkRgrUeUlPwrCfg(param, mBuf)
6021 RgrUeUlPwrCfg *param;
6027 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
6028 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
6029 CMCHKUNPK(oduPackUInt8, ¶m->isAccumulated, mBuf);
6030 CMCHKUNPK(oduPackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
6031 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
6032 CMCHKUNPK(SUnpkS8, ¶m->p0UePucch, mBuf);
6033 CMCHKUNPK(oduPackUInt8, ¶m->pSRSOffset, mBuf);
6034 CMCHKUNPK(oduPackUInt8, ¶m->trgCqi, mBuf);
6040 /***********************************************************
6042 * Func : cmPkRgrUeQosCfg
6045 * Desc : Downlink/Uplink QoS configuration per UE
6054 **********************************************************/
6062 S16 cmPkRgrUeQosCfg(param, mBuf)
6069 CMCHKPK(oduUnpackUInt32, param->ueBr, mBuf);
6070 CMCHKPK(oduUnpackUInt32, param->dlAmbr, mBuf);
6071 CMCHKPK(oduUnpackUInt8, param->ambrPres, mBuf);
6077 /***********************************************************
6079 * Func : cmUnpkRgrUeQosCfg
6082 * Desc : Downlink/Uplink QoS configuration per UE
6091 **********************************************************/
6093 S16 cmUnpkRgrUeQosCfg
6099 S16 cmUnpkRgrUeQosCfg(param, mBuf)
6106 CMCHKUNPK(oduPackUInt8, ¶m->ambrPres, mBuf);
6107 CMCHKUNPK(oduPackUInt32, ¶m->dlAmbr, mBuf);
6108 CMCHKUNPK(oduPackUInt32, ¶m->ueBr, mBuf);
6112 /***********************************************************
6114 * Func : cmPkRgrUePuschDedCfg
6117 * Desc : PUSCH Config Dedication for UE
6126 **********************************************************/
6128 S16 cmPkRgrUePuschDedCfg
6130 RgrUePuschDedCfg *param,
6134 S16 cmPkRgrUePuschDedCfg(param, mBuf)
6135 RgrUePuschDedCfg *param;
6141 CMCHKPK(oduUnpackUInt8, param->bCQIIdx, mBuf);
6142 CMCHKPK(oduUnpackUInt8, param->bRIIdx, mBuf);
6143 CMCHKPK(oduUnpackUInt8, param->bACKIdx, mBuf);
6144 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6149 /***********************************************************
6151 * Func : cmUnpkRgrUePuschDedCfg
6154 * Desc : PUSCH Config Dedication for UE
6164 **********************************************************/
6166 S16 cmUnpkRgrUePuschDedCfg
6168 RgrUePuschDedCfg *param,
6172 S16 cmUnpkRgrUePuschDedCfg(param, mBuf)
6173 RgrUePuschDedCfg *param;
6179 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6180 CMCHKUNPK(oduPackUInt8, ¶m->bACKIdx, mBuf);
6181 CMCHKUNPK(oduPackUInt8, ¶m->bRIIdx, mBuf);
6182 CMCHKUNPK(oduPackUInt8, ¶m->bCQIIdx, mBuf);
6186 /***********************************************************
6188 * Func : cmPkRgrUeTxAntSelCfg
6191 * Desc : UE Transmit Antenna selection related configuration
6200 **********************************************************/
6202 S16 cmPkRgrUeTxAntSelCfg
6204 RgrUeTxAntSelCfg *param,
6208 S16 cmPkRgrUeTxAntSelCfg(param, mBuf)
6209 RgrUeTxAntSelCfg *param;
6215 CMCHKPK(oduUnpackUInt32, param->selType, mBuf);
6216 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6222 /***********************************************************
6224 * Func : cmUnpkRgrUeTxAntSelCfg
6227 * Desc : UE Transmit Antenna selection related configuration
6236 **********************************************************/
6238 S16 cmUnpkRgrUeTxAntSelCfg
6240 RgrUeTxAntSelCfg *param,
6244 S16 cmUnpkRgrUeTxAntSelCfg(param, mBuf)
6245 RgrUeTxAntSelCfg *param;
6252 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6253 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
6254 param->selType = (RgrUeTxAntSelType) tmpEnum;
6259 /***********************************************************
6261 * Func : cmPkRgrUeTaTmrCfg
6264 * Desc : Time Alignment timer configuration per UE
6273 **********************************************************/
6275 S16 cmPkRgrUeTaTmrCfg
6277 RgrUeTaTmrCfg *param,
6281 S16 cmPkRgrUeTaTmrCfg(param, mBuf)
6282 RgrUeTaTmrCfg *param;
6288 CMCHKPK(oduUnpackUInt16, param->taTmr, mBuf);
6289 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6295 /***********************************************************
6297 * Func : cmUnpkRgrUeTaTmrCfg
6300 * Desc : Time Alignment timer configuration per UE
6309 **********************************************************/
6311 S16 cmUnpkRgrUeTaTmrCfg
6313 RgrUeTaTmrCfg *param,
6317 S16 cmUnpkRgrUeTaTmrCfg(param, mBuf)
6318 RgrUeTaTmrCfg *param;
6324 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6325 CMCHKUNPK(oduPackUInt16, ¶m->taTmr, mBuf);
6332 S16 cmUnpkRgrEmtcUeCfg
6334 RgrUeEmtcCfg *param,
6338 S16 cmUnpkRgrEmtcUeCfg(param, mBuf)
6339 RgrUeEmtcCfg *param;
6345 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
6346 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
6347 RgrEpdcchAddModLst *epdcchAddModLst;
6349 CMCHKUNPK(oduPackUInt8,¶m->pdschReptLevModeA,mBuf);
6350 /*UnPacking PUCCH Rep */
6351 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat2),mBuf);
6352 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat1),mBuf);
6353 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->isPucchRepPres),mBuf);
6357 for(indx = 0; indx < RGR_MAX_EPDCCH_SET; indx++)
6359 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6360 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->extaddgrp2.mpddchNB),mBuf);
6361 CMCHKUNPK(oduPackUInt16,&(epdcchAddModLst->extaddgrp2.mpdcchNumRep),mBuf);
6362 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD),mBuf);
6363 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpddchPdschHop),mBuf);
6364 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.csiNumRep),mBuf);
6365 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.pres),mBuf);
6366 CMCHKUNPK(cmUnpkTknU8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
6367 CMCHKUNPK(cmUnpkTknU32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
6368 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->pucchResStartoffset),mBuf);
6369 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->dmrsScrambSeq),mBuf);
6370 for(idx = 0; idx < 5; idx++)
6372 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.rbAssignment[idx]),mBuf);
6375 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.numPRBpairs),mBuf);
6376 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->transmissionType),mBuf);
6377 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->setConfigId),mBuf);
6380 CMCHKUNPK(cmUnpkTknU32,&(emtcEpdcchCfg->startSymbolr11),mBuf);
6381 for(indx = 0; indx < 5; indx++)
6383 CMCHKUNPK(oduPackUInt8,&(emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]),mBuf);
6385 CMCHKUNPK(oduPackUInt8, &(emtcEpdcchCfg->sfPtn.pres), mBuf);
6386 CMCHKUNPK(oduPackUInt8, &(param->pres), mBuf);
6387 CMCHKUNPK(oduPackUInt8, &(param->isHdFddEnbld), mBuf);
6389 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
6390 printf("\n EMTC RGR UE unpack\n");
6391 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
6393 for(indx = 0; indx < 5; indx++)
6395 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
6397 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
6398 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
6400 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
6402 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6403 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
6404 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);
6405 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
6406 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
6407 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
6408 for(idx = 0; idx < 5 ; idx++)
6410 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
6412 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
6413 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
6414 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
6415 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
6416 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
6417 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
6418 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
6419 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
6420 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
6421 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
6422 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
6423 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
6433 S16 cmPkRgrEmtcUeCfg
6435 RgrUeEmtcCfg *param,
6441 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
6442 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
6443 RgrEpdcchAddModLst *epdcchAddModLst;
6445 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
6446 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6447 CMCHKPK(oduUnpackUInt8, emtcEpdcchCfg->sfPtn.pres, mBuf);
6448 for(indx = 4; indx >=0; indx--)
6450 CMCHKPK(oduUnpackUInt8,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx],mBuf);
6452 CMCHKPK(cmPkTknU32,&emtcEpdcchCfg->startSymbolr11,mBuf);
6453 for(indx = RGR_MAX_EPDCCH_SET-1 ; indx >= 0; indx--)
6455 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6457 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->setConfigId,mBuf);
6458 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->transmissionType,mBuf);
6459 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.numPRBpairs,mBuf);
6460 for(idx = 4; idx >= 0; idx--)
6462 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.rbAssignment[idx],mBuf);
6464 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->dmrsScrambSeq,mBuf);
6465 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->pucchResStartoffset,mBuf);
6466 CMCHKPK(cmPkTknU32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
6467 CMCHKPK(cmPkTknU8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
6468 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.pres,mBuf);
6469 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.csiNumRep,mBuf);
6470 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpddchPdschHop,mBuf);
6471 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD,mBuf);
6472 CMCHKPK(oduUnpackUInt16,epdcchAddModLst->extaddgrp2.mpdcchNumRep,mBuf);
6473 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->extaddgrp2.mpddchNB,mBuf);
6476 /*Packing PUCCH Rep */
6477 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->isPucchRepPres, mBuf);
6478 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat1,mBuf);
6479 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat2,mBuf);
6480 CMCHKPK(oduUnpackUInt8,param->pdschReptLevModeA,mBuf);
6482 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
6483 printf("\n EMTC RGR UE pack\n");
6484 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
6486 for(indx = 0; indx < 5; indx++)
6488 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
6490 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
6491 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
6493 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
6495 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
6496 /* printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
6497 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);*/
6498 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
6499 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
6500 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
6501 for(idx = 0; idx < 5 ; idx++)
6503 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
6505 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
6506 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
6507 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
6508 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
6509 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
6510 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
6511 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
6512 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
6513 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
6514 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
6515 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
6516 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
6528 S16 cmUnpkRgr5gtfUeCfg
6530 RgrUe5gtfCfg *param,
6534 CMCHKUNPK(oduPackUInt8, ¶m->grpId, mBuf);
6535 CMCHKUNPK(oduPackUInt8, ¶m->BeamId, mBuf);
6536 CMCHKUNPK(oduPackUInt8, ¶m->numCC, mBuf);
6537 CMCHKUNPK(oduPackUInt8, ¶m->mcs, mBuf);
6538 CMCHKUNPK(oduPackUInt8, ¶m->maxPrb, mBuf);
6542 S16 cmPkRgr5gtfUeCfg
6544 RgrUe5gtfCfg *param,
6548 CMCHKPK(oduUnpackUInt8, param->maxPrb, mBuf);
6549 CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
6550 CMCHKPK(oduUnpackUInt8, param->numCC, mBuf);
6551 CMCHKPK(oduUnpackUInt8, param->BeamId, mBuf);
6552 CMCHKPK(oduUnpackUInt8, param->grpId, mBuf);
6558 /***********************************************************
6560 * Func : cmPkRgrUeCfg
6563 * Desc : UE configuration
6572 **********************************************************/
6580 S16 cmPkRgrUeCfg(param, mBuf)
6587 CMCHKPK(cmPkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
6590 CMCHKPK(cmPkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
6592 CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
6594 CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
6595 /* LTE_ADV_FLAG_REMOVED_START */
6596 CMCHKPK(cmPkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
6597 /* LTE_ADV_FLAG_REMOVED_END */
6599 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
6600 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6602 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6603 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6605 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6607 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6609 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6610 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6612 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6614 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
6618 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
6619 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6624 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
6627 CMCHKPK(oduUnpackUInt32, param->ackNackModeEnum, mBuf);
6630 CMCHKPK(cmPkTknU8, ¶m->dedPreambleId, mBuf);
6631 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
6632 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
6633 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
6634 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
6635 CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
6636 /*rgr_c_001.main_9 ADD added changes for DRX*/
6638 /* Anshika - Pack only if DRX is enabled */
6639 if(TRUE == param->ueDrxCfg.isDrxEnabled)
6641 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
6643 CMCHKPK(oduUnpackUInt8, param->ueDrxCfg.isDrxEnabled, mBuf); /* This has to be packed even if
6645 CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
6647 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6649 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
6651 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
6652 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
6653 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
6654 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
6655 CMCHKPK(cmPkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
6656 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6657 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6658 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6664 /***********************************************************
6666 * Func : cmUnpkRgrUeCfg
6669 * Desc : UE configuration
6678 **********************************************************/
6686 S16 cmUnpkRgrUeCfg(param, mBuf)
6694 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6695 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6696 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6697 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
6698 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
6699 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
6700 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
6701 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
6703 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6705 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
6707 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
6708 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
6709 /*rgr_c_001.main_9 ADD added changes for DRX*/
6711 /* Anshika - Unpack only if DRX is enabled */
6712 CMCHKUNPK(oduPackUInt8, ¶m->ueDrxCfg.isDrxEnabled, mBuf);
6713 if(TRUE == param->ueDrxCfg.isDrxEnabled)
6715 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
6717 CMCHKUNPK(oduPackUInt8, ¶m->isTtiBundlEnabled, mBuf);
6718 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
6719 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
6720 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
6721 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
6722 CMCHKUNPK(cmUnpkTknU8, ¶m->dedPreambleId, mBuf);
6725 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
6726 param->ackNackModeEnum = tmpEnum;
6729 /*rgr_c_001.main_7 - Added support for SPS*/
6730 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
6732 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6734 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6735 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
6737 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6739 CMCHKUNPK(oduPackUInt8, ¶m->isHdFddEnbld, mBuf);
6741 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6742 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6743 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6744 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6746 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6749 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6751 /* LTE_ADV_FLAG_REMOVED_START */
6752 CMCHKUNPK(cmUnpkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
6753 /* LTE_ADV_FLAG_REMOVED_END */
6754 CMCHKUNPK(oduPackUInt32, (U32 *)¶m->accessStratumRls, mBuf);
6755 CMCHKUNPK(oduPackUInt8, ¶m->csgMmbrSta, mBuf);
6758 CMCHKUNPK(cmUnpkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
6762 CMCHKUNPK(cmUnpkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
6770 /***********************************************************
6772 * Func : cmPkRgrLchQosCfg
6775 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
6784 **********************************************************/
6786 S16 cmPkRgrLchQosCfg
6788 RgrLchQosCfg *param,
6792 S16 cmPkRgrLchQosCfg(param, mBuf)
6793 RgrLchQosCfg *param;
6799 CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
6800 CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
6801 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
6807 /***********************************************************
6809 * Func : cmUnpkRgrLchQosCfg
6812 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
6821 **********************************************************/
6823 S16 cmUnpkRgrLchQosCfg
6825 RgrLchQosCfg *param,
6829 S16 cmUnpkRgrLchQosCfg(param, mBuf)
6830 RgrLchQosCfg *param;
6836 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
6837 CMCHKUNPK(oduPackUInt32, ¶m->gbr, mBuf);
6838 CMCHKUNPK(oduPackUInt32, ¶m->mbr, mBuf);
6841 /*rgr_c_001.main_7 - Added support for SPS*/
6844 /***********************************************************
6846 * Func : cmPkRgrLchSpsCfg
6849 * Desc : SPS related configuration for logical channels
6858 **********************************************************/
6860 S16 cmPkRgrLchSpsCfg
6862 RgrLchSpsCfg *param,
6866 S16 cmPkRgrLchSpsCfg(param, mBuf)
6867 RgrLchSpsCfg *param;
6874 CMCHKPK(oduUnpackUInt8, param->isSpsEnabled, mBuf);
6880 /***********************************************************
6882 * Func : cmUnpkRgrLchSpsCfg
6885 * Desc : SPS related configuration for logical channels
6894 **********************************************************/
6896 S16 cmUnpkRgrLchSpsCfg
6898 RgrLchSpsCfg *param,
6902 S16 cmUnpkRgrLchSpsCfg(param, mBuf)
6903 RgrLchSpsCfg *param;
6909 CMCHKUNPK(oduPackUInt8, ¶m->isSpsEnabled, mBuf);
6915 /***********************************************************
6917 * Func : cmPkRgrDlLchCfg
6920 * Desc : Logical channel configuration info for downlink logical channels
6929 **********************************************************/
6937 S16 cmPkRgrDlLchCfg(param, mBuf)
6943 /*rgr_c_001.main_7 - Added support for SPS*/
6945 CMCHKPK(oduUnpackUInt8, param->rlcReorderTmr, mBuf);
6946 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
6947 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlQos, mBuf);
6948 CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
6954 /***********************************************************
6956 * Func : cmUnpkRgrDlLchCfg
6959 * Desc : Logical channel configuration info for downlink logical channels
6968 **********************************************************/
6970 S16 cmUnpkRgrDlLchCfg
6976 S16 cmUnpkRgrDlLchCfg(param, mBuf)
6983 CMCHKUNPK(oduPackUInt8, ¶m->dlTrchType, mBuf);
6984 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlQos, mBuf);
6985 /*rgr_c_001.main_7 - Added support for SPs*/
6986 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
6987 CMCHKUNPK(oduPackUInt8, ¶m->rlcReorderTmr, mBuf);
6993 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6997 /***********************************************************
6999 * Func : cmPkRgrUlLchCfg
7002 * Desc : Logical channel configuration information for uplink logical channels
7011 **********************************************************/
7019 S16 cmPkRgrUlLchCfg(param, mBuf)
7026 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
7027 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
7033 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7034 /***********************************************************
7036 * Func : cmUnpkRgrUlLchCfg
7039 * Desc : Logical channel configuration information for uplink logical channels
7048 **********************************************************/
7050 S16 cmUnpkRgrUlLchCfg
7056 S16 cmUnpkRgrUlLchCfg(param, mBuf)
7063 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
7064 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
7071 /***********************************************************
7073 * Func : cmPkRgrUlLcgCfg
7076 * Desc : Logical channel configuration info for uplink logical channels
7085 **********************************************************/
7093 S16 cmPkRgrUlLcgCfg(param, mBuf)
7099 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7103 CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
7104 CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
7106 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7108 for (i = param->numLch - 1; i >= 0; i--)
7110 CMCHKPK(cmPkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
7112 CMCHKPK(oduUnpackUInt8, param->numLch, mBuf);
7114 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7120 /***********************************************************
7122 * Func : cmUnpkRgrUlLcgCfg
7125 * Desc : Logical channel configuration info for uplink logical channels
7134 **********************************************************/
7136 S16 cmUnpkRgrUlLcgCfg
7142 S16 cmUnpkRgrUlLcgCfg(param, mBuf)
7148 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7153 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7154 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
7156 CMCHKUNPK(oduPackUInt8, ¶m->numLch, mBuf);
7157 for (i = 0; i< param->numLch; i++)
7159 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
7163 CMCHKUNPK(oduPackUInt32, ¶m->gbr, mBuf);
7164 CMCHKUNPK(oduPackUInt32, ¶m->mbr, mBuf);
7169 S16 cmPkRgrUlLchQciCfg
7171 RgrUlLchQciCfg *param,
7175 S16 cmPkRgrUlLchQciCfg (param, mBuf)
7176 RgrUlLchQciCfg *param;
7180 CMCHKPK(oduUnpackUInt8, param->lcId, mBuf);
7181 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
7182 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7186 S16 cmUnpkRgrUlLchQciCfg
7188 RgrUlLchQciCfg *param,
7192 S16 cmUnpkRgrUlLchQciCfg (param, mBuf)
7193 RgrUlLchQciCfg *param;
7197 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7198 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
7199 CMCHKUNPK(oduPackUInt8, ¶m->lcId, mBuf);
7204 /***********************************************************
7206 * Func : cmPkRgrLchCfg
7209 * Desc : Logical channel configuration info for dedicated channels
7218 **********************************************************/
7226 S16 cmPkRgrLchCfg(param, mBuf)
7232 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7233 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7234 CMCHKPK(cmPkRgrDlLchCfg, ¶m->dlInfo, mBuf);
7235 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
7236 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
7237 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7238 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7244 /***********************************************************
7246 * Func : cmUnpkRgrLchCfg
7249 * Desc : Logical channel configuration info for dedicated channels
7258 **********************************************************/
7266 S16 cmUnpkRgrLchCfg(param, mBuf)
7273 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7274 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7275 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
7276 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
7277 CMCHKUNPK(cmUnpkRgrDlLchCfg, ¶m->dlInfo, mBuf);
7278 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7279 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7291 S16 cmPkRgrLcgCfg(param, mBuf)
7298 CMCHKPK(cmPkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
7299 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7300 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7312 S16 cmUnpkRgrLcgCfg(param, mBuf)
7319 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7320 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7321 CMCHKUNPK(cmUnpkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
7327 /***********************************************************
7332 * Desc : Basic Configuration structure at RRM
7341 **********************************************************/
7349 S16 cmPkRgrCfg(param, mBuf)
7356 switch(param->cfgType) {
7358 CMCHKPK(cmPkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
7361 CMCHKPK(cmPkRgrLchCfg, ¶m->u.lchCfg, mBuf);
7364 CMCHKPK(cmPkRgrUeCfg, ¶m->u.ueCfg, mBuf);
7367 CMCHKPK(cmPkRgrCellCfg, ¶m->u.cellCfg, mBuf);
7370 CMCHKPK(cmPkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
7375 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
7381 /***********************************************************
7383 * Func : cmUnpkRgrCfg
7386 * Desc : Basic Configuration structure at RRM
7395 **********************************************************/
7403 S16 cmUnpkRgrCfg(param, mBuf)
7410 CMCHKUNPK(oduPackUInt8, ¶m->cfgType, mBuf);
7411 switch(param->cfgType) {
7413 CMCHKUNPK(cmUnpkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
7416 CMCHKUNPK(cmUnpkRgrCellCfg, ¶m->u.cellCfg, mBuf);
7419 CMCHKUNPK(cmUnpkRgrUeCfg, ¶m->u.ueCfg, mBuf);
7422 CMCHKUNPK(cmUnpkRgrLchCfg, ¶m->u.lchCfg, mBuf);
7425 CMCHKUNPK(cmUnpkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
7435 /***********************************************************
7437 * Func : cmPkRgrActvTime
7440 * Desc : Activation time information
7449 **********************************************************/
7457 S16 cmPkRgrActvTime(param, mBuf)
7464 CMCHKPK(cmPkLteTimingInfo, ¶m->actvTime, mBuf);
7465 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
7471 /***********************************************************
7473 * Func : cmUnpkRgrActvTime
7476 * Desc : Activation time information
7485 **********************************************************/
7487 S16 cmUnpkRgrActvTime
7493 S16 cmUnpkRgrActvTime(param, mBuf)
7500 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
7501 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvTime, mBuf);
7507 /***********************************************************
7509 * Func : cmPkRgrCellRecfg
7512 * Desc : Cell reconfiguration structure at RRM
7521 **********************************************************/
7523 S16 cmPkRgrCellRecfg
7525 RgrCellRecfg *param,
7529 S16 cmPkRgrCellRecfg(param, mBuf)
7530 RgrCellRecfg *param;
7535 CMCHKPK(cmPkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
7536 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
7537 CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
7538 CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
7539 /* LTE_ADV_FLAG_REMOVED_START */
7540 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
7541 /* LTE_ADV_FLAG_REMOVED_END */
7542 CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
7543 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
7545 CMCHKPK(cmPkRgrSiCfg, ¶m->siReCfg, mBuf);
7546 #endif /* RGR_SI_SCH */
7547 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
7548 CMCHKPK(cmPkRgrRachCfg, ¶m->rachRecfg, mBuf);
7549 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsRecfg, mBuf);
7550 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
7551 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
7552 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
7553 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
7554 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
7555 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
7556 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
7557 CMCHKPK(cmPkRgrActvTime, ¶m->recfgActvTime, mBuf);
7558 CMCHKPK(oduUnpackUInt32, param->recfgTypes, mBuf);
7559 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7565 /***********************************************************
7567 * Func : cmUnpkRgrCellRecfg
7570 * Desc : Cell reconfiguration structure at RRM
7579 **********************************************************/
7581 S16 cmUnpkRgrCellRecfg
7583 RgrCellRecfg *param,
7587 S16 cmUnpkRgrCellRecfg(param, mBuf)
7588 RgrCellRecfg *param;
7594 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7595 CMCHKUNPK(oduPackUInt32, ¶m->recfgTypes, mBuf);
7596 CMCHKUNPK(cmUnpkRgrActvTime, ¶m->recfgActvTime, mBuf);
7597 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
7598 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
7599 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
7600 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
7601 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
7602 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
7603 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
7604 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsRecfg, mBuf);
7605 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachRecfg, mBuf);
7606 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
7607 /* rgr_c_001.main_4-MOD-Modified for SI Enhancement. */
7609 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siReCfg, mBuf);
7610 #endif /* RGR_SI_SCH */
7611 CMCHKUNPK(oduPackUInt16, ¶m->t300TmrVal, mBuf);
7612 /* LTE_ADV_FLAG_REMOVED_START */
7613 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
7614 /* LTE_ADV_FLAG_REMOVED_END */
7615 CMCHKUNPK(oduPackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
7616 CMCHKUNPK(oduPackUInt8, ¶m->isDynCfiEnb, mBuf);
7617 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
7618 CMCHKUNPK(cmUnpkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
7625 /***********************************************************
7627 * Func : cmPkRgrUeRecfg
7630 * Desc : UE reconfiguration info
7639 **********************************************************/
7647 S16 cmPkRgrUeRecfg(param, mBuf)
7654 /* Note: As we add more members to emtcUeRecfg,
7655 create a new function for pkUnpk */
7656 CMCHKPK(oduUnpackUInt8, param->emtcUeRecfg.isHdFddEnbld, mBuf);
7658 CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
7660 CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
7662 CMCHKPK(oduUnpackUInt8, param->simulAckNackCQIFormat3, mBuf);
7663 CMCHKPK(cmPkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
7664 CMCHKPK(cmPkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
7666 /* LTE_ADV_FLAG_REMOVED_START */
7667 CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isUeCellEdge, mBuf);
7668 CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isAbsUe, mBuf);
7669 CMCHKPK(oduUnpackUInt32, param->ueLteAdvCfg.pres, mBuf);
7670 /* LTE_ADV_FLAG_REMOVED_END */
7671 /*ccpu00130497: Removed the duplicate packing*/
7673 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
7675 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
7676 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
7678 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
7681 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
7682 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
7684 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
7686 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
7690 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
7691 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
7692 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
7695 /*rgr_c_001.main_7 - Added support for SPS*/
7696 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
7697 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
7699 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
7700 CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
7702 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
7703 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
7704 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
7705 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
7706 CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
7707 /*rgr_c_001.main_9 ADD added changes for DRX*/
7709 /* Anshika - Pack only if DRX is enabled */
7710 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
7712 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
7714 CMCHKPK(oduUnpackUInt8, param->ueDrxRecfg.isDrxEnabled, mBuf); /* This has to be packed even if
7716 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
7718 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
7720 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
7722 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
7723 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
7724 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
7727 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
7730 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
7731 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
7732 /*rgr_c_001.main_9: changing ueRecfgTypes to U32 */
7733 /* LTE_ADV_FLAG_REMOVED_START */
7734 /* KW fix for LTE_ADV */
7735 CMCHKPK(oduUnpackUInt32, param->ueRecfgTypes, mBuf);
7736 /* LTE_ADV_FLAG_REMOVED_END */
7737 CMCHKPK(cmPkLteRnti, param->newCrnti, mBuf);
7738 CMCHKPK(cmPkLteRnti, param->oldCrnti, mBuf);
7739 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7745 /***********************************************************
7747 * Func : cmUnpkRgrUeRecfg
7750 * Desc : UE reconfiguration info
7759 **********************************************************/
7761 S16 cmUnpkRgrUeRecfg
7767 S16 cmUnpkRgrUeRecfg(param, mBuf)
7775 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7776 CMCHKUNPK(cmUnpkLteRnti, ¶m->oldCrnti, mBuf);
7777 CMCHKUNPK(cmUnpkLteRnti, ¶m->newCrnti, mBuf);
7778 /* LTE_ADV_FLAG_REMOVED_START */
7779 /*rgr_c_001.main_9: changing ueRecfgTypes to U32 */
7780 /* KW fix for LTE_ADV */
7781 CMCHKUNPK(oduPackUInt32, ¶m->ueRecfgTypes, mBuf);
7782 /* LTE_ADV_FLAG_REMOVED_END */
7783 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
7785 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
7788 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
7791 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
7792 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
7793 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
7795 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
7797 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
7799 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
7800 /*rgr_c_001.main_9 ADD added changes for DRX*/
7802 /* Anshika - Unpack only if DRX is enabled */
7803 CMCHKUNPK(oduPackUInt8, ¶m->ueDrxRecfg.isDrxEnabled, mBuf);
7804 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
7806 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
7808 CMCHKUNPK(oduPackUInt8, ¶m->isTtiBundlEnabled, mBuf);
7809 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
7810 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
7811 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
7812 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
7813 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
7814 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpEnum, mBuf);
7815 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
7816 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
7817 /*rgr_c_001.main_7 - Added support for SPS*/
7818 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
7820 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
7822 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
7823 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
7824 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
7827 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
7829 CMCHKUNPK(oduPackUInt8, ¶m->isHdFddEnbld, mBuf);
7832 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
7834 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
7835 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
7837 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
7840 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
7843 /* LTE_ADV_FLAG_REMOVED_START */
7844 CMCHKUNPK(oduPackUInt32, ¶m->ueLteAdvCfg.pres, mBuf);
7845 CMCHKUNPK(oduPackUInt8, ¶m->ueLteAdvCfg.isAbsUe, mBuf);
7846 CMCHKUNPK(oduPackUInt8, ¶m->ueLteAdvCfg.isUeCellEdge, mBuf);
7847 /* LTE_ADV_FLAG_REMOVED_END */
7849 CMCHKUNPK(cmUnpkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
7850 CMCHKUNPK(cmUnpkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
7851 CMCHKUNPK(oduPackUInt8, ¶m->simulAckNackCQIFormat3, mBuf);
7853 CMCHKUNPK(oduPackUInt32, (U32 *)¶m->accessStratumRls, mBuf);
7855 CMCHKUNPK(oduPackUInt8, ¶m->csgMmbrSta, mBuf);
7857 CMCHKPK(oduPackUInt8, ¶m->emtcUeRecfg.isHdFddEnbld, mBuf);
7865 /***********************************************************
7867 * Func : cmPkRgrLchRecfg
7870 * Desc : Logical channel reconfiguration info for dedicated channels only
7879 **********************************************************/
7887 S16 cmPkRgrLchRecfg(param, mBuf)
7893 /*rgr_c_001.main_7 - Added support for SPS*/
7894 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
7896 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7897 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
7899 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
7900 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
7901 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7902 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7908 /***********************************************************
7910 * Func : cmUnpkRgrLchRecfg
7913 * Desc : Logical channel reconfiguration info for dedicated channels only
7922 **********************************************************/
7924 S16 cmUnpkRgrLchRecfg
7930 S16 cmUnpkRgrLchRecfg(param, mBuf)
7937 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7938 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7939 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
7940 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
7941 /*rgr_c_001.main_7 - Added support for SPs*/
7942 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
7944 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
7945 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
7957 S16 cmPkRgrLcgRecfg(param, mBuf)
7966 CMCHKPK(oduUnpackUInt32, param->ulRecfg.mbr, mBuf);
7967 CMCHKPK(oduUnpackUInt32, param->ulRecfg.gbr, mBuf);
7969 for (i = param->ulRecfg.numLch - 1; i >= 0; i--)
7971 CMCHKPK(cmPkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
7973 CMCHKPK(oduUnpackUInt8, param->ulRecfg.numLch, mBuf);
7975 CMCHKPK(oduUnpackUInt8, param->ulRecfg.lcgId, mBuf);
7976 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7977 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7983 S16 cmUnpkRgrLcgRecfg
7989 S16 cmUnpkRgrLcgRecfg(param, mBuf)
7998 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7999 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8000 CMCHKUNPK(oduPackUInt8, ¶m->ulRecfg.lcgId, mBuf);
8003 CMCHKUNPK(oduPackUInt8, ¶m->ulRecfg.numLch, mBuf);
8004 for (i = 0; i < param->ulRecfg.numLch; i++)
8006 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
8009 CMCHKUNPK(oduPackUInt32, ¶m->ulRecfg.gbr, mBuf);
8010 CMCHKUNPK(oduPackUInt32, ¶m->ulRecfg.mbr, mBuf);
8017 /***********************************************************
8019 * Func : cmPkRgrRecfg
8022 * Desc : Basic reconfiguration structure at RRM
8031 **********************************************************/
8039 S16 cmPkRgrRecfg(param, mBuf)
8046 switch(param->recfgType) {
8048 CMCHKPK(cmPkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
8051 CMCHKPK(cmPkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
8054 CMCHKPK(cmPkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
8057 CMCHKPK(cmPkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
8062 CMCHKPK(oduUnpackUInt8, param->recfgType, mBuf);
8068 /***********************************************************
8070 * Func : cmUnpkRgrRecfg
8073 * Desc : Basic reconfiguration structure at RRM
8082 **********************************************************/
8090 S16 cmUnpkRgrRecfg(param, mBuf)
8097 CMCHKUNPK(oduPackUInt8, ¶m->recfgType, mBuf);
8098 switch(param->recfgType) {
8100 CMCHKUNPK(cmUnpkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
8103 CMCHKUNPK(cmUnpkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
8106 CMCHKUNPK(cmUnpkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
8109 CMCHKUNPK(cmUnpkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
8118 /***********************************************************
8120 * Func : cmPkRgrUeDlSecCellRelInfo
8123 * Desc : DL Secondary Cell information of the UE
8132 **********************************************************/
8134 S16 cmPkRgrUeDlSecCellRelInfo
8136 RgrUeDlSecCellRelInfo *param,
8140 PRIVATE S16 cmPkRgrUeDlSecCellRelInfo(param, mBuf)
8141 RgrUeDlSecCellRelInfo *param;
8145 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
8146 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
8150 /***********************************************************
8152 * Func : cmPkRgrUeSecCellRelInfo
8155 * Desc : Secondary Cell Delete information of the UE
8164 **********************************************************/
8166 S16 cmPkRgrUeSecCellRelInfo
8168 RgrUeSecCellRelInfo *param,
8172 S16 cmPkRgrUeSecCellRelInfo(param, mBuf)
8173 RgrUeSecCellRelInfo *param;
8178 for(idx = param->numSCells - 1; idx >= 0; idx--)
8180 CMCHKPK(cmPkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[(U8)idx],mBuf);
8182 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
8189 /***********************************************************
8194 * Desc : Basic Delete info for MAC
8203 **********************************************************/
8211 S16 cmPkRgrDel(param, mBuf)
8218 switch(param->delType) {
8220 CMCHKPK(oduUnpackUInt8, param->u.lcgDel.lcgId, mBuf);
8221 CMCHKPK(cmPkLteRnti, param->u.lcgDel.crnti, mBuf);
8222 CMCHKPK(cmPkLteCellId, param->u.lcgDel.cellId, mBuf);
8225 CMCHKPK(oduUnpackUInt8, param->u.lchDel.lcgId, mBuf);
8226 CMCHKPK(cmPkLteLcId, param->u.lchDel.lcId, mBuf);
8227 CMCHKPK(cmPkLteRnti, param->u.lchDel.crnti, mBuf);
8228 CMCHKPK(cmPkLteCellId, param->u.lchDel.cellId, mBuf);
8231 CMCHKPK(cmPkLteRnti, param->u.ueDel.crnti, mBuf);
8232 CMCHKPK(cmPkLteCellId, param->u.ueDel.cellId, mBuf);
8235 CMCHKPK(cmPkLteCellId, param->u.cellDel.cellId, mBuf);
8238 case RGR_SCELL_UE_CFG:
8239 CMCHKPK(cmPkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
8240 CMCHKPK(oduUnpackUInt32, param->u.ueScellRel.ueDelTypes, mBuf);
8241 CMCHKPK(cmPkLteRnti, param->u.ueScellRel.crnti, mBuf);
8242 CMCHKPK(cmPkLteCellId, param->u.ueScellRel.cellId, mBuf);
8248 CMCHKPK(oduUnpackUInt8, param->delType, mBuf);
8255 /***********************************************************
8257 * Func : cmUnpkRgrUeDlSecCellRelInfo
8260 * Desc : DL Secondary Cell information of the UE
8269 **********************************************************/
8271 S16 cmUnpkRgrUeDlSecCellRelInfo
8273 RgrUeDlSecCellRelInfo *param,
8277 PRIVATE S16 cmUnpkRgrUeDlSecCellRelInfo(param, mBuf)
8278 RgrUeDlSecCellRelInfo *param;
8282 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
8283 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
8288 /***********************************************************
8290 * Func : cmUnpkRgrUeSecCellRelInfo
8293 * Desc : Secondary Cell information of the UE
8302 **********************************************************/
8304 S16 cmUnpkRgrUeSecCellRelInfo
8306 RgrUeSecCellRelInfo *param,
8310 S16 cmUnpkRgrUeSecCellRelInfo(param, mBuf)
8311 RgrUeSecCellRelInfo *param;
8317 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
8319 for(idx = 0; idx < param->numSCells;idx++)
8321 CMCHKUNPK(cmUnpkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[idx],mBuf);
8327 /***********************************************************
8329 * Func : cmUnpkRgrDel
8332 * Desc : Basic Delete info for MAC
8341 **********************************************************/
8349 S16 cmUnpkRgrDel(param, mBuf)
8356 CMCHKUNPK(oduPackUInt8, ¶m->delType, mBuf);
8357 switch(param->delType) {
8359 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.cellDel.cellId, mBuf);
8362 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueDel.cellId, mBuf);
8363 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueDel.crnti, mBuf);
8366 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lchDel.cellId, mBuf);
8367 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lchDel.crnti, mBuf);
8368 CMCHKUNPK(cmUnpkLteLcId, ¶m->u.lchDel.lcId, mBuf);
8369 CMCHKUNPK(oduPackUInt8, ¶m->u.lchDel.lcgId, mBuf);
8372 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lcgDel.cellId, mBuf);
8373 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lcgDel.crnti, mBuf);
8374 CMCHKUNPK(oduPackUInt8, ¶m->u.lcgDel.lcgId, mBuf);
8377 case RGR_SCELL_UE_CFG:
8378 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueScellRel.cellId, mBuf);
8379 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueScellRel.crnti, mBuf);
8380 CMCHKUNPK(oduPackUInt32, ¶m->u.ueScellRel.ueDelTypes, mBuf);
8381 CMCHKUNPK(cmUnpkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
8389 /***********************************************************
8391 * Func : cmPkRgrSonPrbCfg
8394 * Desc : SON PRB Configuration info for MAC
8403 **********************************************************/
8405 S16 cmPkRgrSonPrbCfg
8411 S16 cmPkRgrSonPrbCfg(param, mBuf)
8417 for(count = RGR_SCH_MAX_PA_PER_PRB - 1; count >= 0; count --)
8419 CMCHKPK(oduUnpackUInt32, param->paLevelPerPrb[count], mBuf);
8421 for(count = param->numCellCentreUEs - 1; count >= 0; count --)
8423 CMCHKPK(cmPkLteRnti, param->cellCentreUe[count], mBuf);
8425 for(count = param->numCellEdgeUEs - 1; count >= 0; count --)
8427 CMCHKPK(cmPkLteRnti, param->cellEdgeUe[count], mBuf);
8429 CMCHKPK(oduUnpackUInt8, param->numCellCentreUEs, mBuf);
8430 CMCHKPK(oduUnpackUInt8, param->numCellEdgeUEs, mBuf);
8431 CMCHKPK(oduUnpackUInt8, param->isSonIcicEnable, mBuf);
8435 /***********************************************************
8437 * Func : cmUnpkRgrSon
8440 * Desc : SON configuration info for MAC
8449 **********************************************************/
8451 S16 cmUnpkRgrSonPrbCfg
8457 S16 cmUnpkRgrSonPrbCfg(param, mBuf)
8463 CMCHKUNPK(oduPackUInt8, ¶m->isSonIcicEnable, mBuf);
8464 CMCHKUNPK(oduPackUInt8, ¶m->numCellEdgeUEs, mBuf);
8465 CMCHKUNPK(oduPackUInt8, ¶m->numCellCentreUEs, mBuf);
8466 for (count = 0; count < param->numCellEdgeUEs; count++)
8468 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellEdgeUe[count], mBuf);
8470 for (count = 0; count < param->numCellCentreUEs; count++)
8472 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellCentreUe[count], mBuf);
8474 for(count = 0; count < RGR_SCH_MAX_PA_PER_PRB; count ++)
8476 CMCHKUNPK(oduPackUInt32,(U32 *) ¶m->paLevelPerPrb[count], mBuf);
8480 /***********************************************************
8482 * Func : cmPkRgrSonCfg
8485 * Desc : SON Configuration info for MAC
8494 **********************************************************/
8502 S16 cmPkRgrSonCfg(param, mBuf)
8508 switch(param->cfgType)
8510 case RGR_SON_PRB_CFG :
8511 CMCHKPK(cmPkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
8516 CMCHKPK(oduUnpackUInt32, param->cfgType, mBuf);
8520 /***********************************************************
8522 * Func : cmUnpkRgrSon
8525 * Desc : SON configuration info for MAC
8534 **********************************************************/
8542 S16 cmUnpkRgrSonCfg(param, mBuf)
8548 CMCHKUNPK(oduPackUInt32, (U32 *)¶m->cfgType, mBuf);
8549 switch(param->cfgType)
8551 case RGR_SON_PRB_CFG :
8553 CMCHKUNPK(cmUnpkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
8563 /***********************************************************
8568 * Desc : UE RESET info for MAC
8577 **********************************************************/
8585 S16 cmPkRgrRst(param, mBuf)
8592 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
8593 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
8599 /***********************************************************
8601 * Func : cmUnpkRgrRst
8604 * Desc : UE RESET info for MAC
8613 **********************************************************/
8621 S16 cmUnpkRgrRst(param, mBuf)
8628 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8629 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8633 /***********************************************************
8635 * Func : cmUnPkRgrSCellActDeactInfo
8638 * Desc : SCell Activation information of the UE
8647 **********************************************************/
8649 PRIVATE S16 cmUnPkRgrSCellActDeactInfo
8651 RgrSCellActDeactInfo *param,
8655 PRIVATE S16 cmUnPkRgrSCellActInfo(param, mBuf)
8656 RgrSCellActDeactInfo *param;
8661 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
8665 /***********************************************************
8667 * Func : cmUnPkRgrSCellActDeactEvnt
8670 * Desc : SCell Activation Configuration structure to SCH
8679 **********************************************************/
8681 S16 cmUnPkRgrSCellActDeactEvnt
8683 RgrSCellActDeactEvnt *param,
8687 S16 cmUnPkRgrSCellActDeactEvnt(param, mBuf)
8688 RgrSCellActDeactEvnt *param;
8695 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
8696 CMCHKUNPK(oduPackUInt8, ¶m->numOfSCells, mBuf);
8698 for(idx = 0; idx < param->numOfSCells;idx++)
8700 CMCHKUNPK(cmUnPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[idx],mBuf);
8707 /***********************************************************
8709 * Func : cmPkRgrSCellActInfo
8712 * Desc : SCell Activation information of the UE
8721 **********************************************************/
8723 PRIVATE S16 cmPkRgrSCellActDeactInfo
8725 RgrSCellActDeactInfo *param,
8729 PRIVATE S16 cmPkRgrSCellActDeactInfo(param, mBuf)
8730 RgrSCellActDeactInfo *param;
8735 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
8740 /***********************************************************
8742 * Func : cmPkRgrSCellActDeactEvnt
8745 * Desc : Basic Configuration structure at SCH
8754 **********************************************************/
8756 S16 cmPkRgrSCellActDeactEvnt
8758 RgrSCellActDeactEvnt *param,
8762 S16 cmPkRgrSCellActDeactEvnt(param, mBuf)
8763 RgrSCellActDeactEvnt *param;
8770 for(idx = param->numOfSCells - 1; idx >= 0; idx--)
8772 CMCHKPK(cmPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[(U8)idx], mBuf);
8775 CMCHKPK(oduUnpackUInt8, param->numOfSCells, mBuf);
8776 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
8782 #endif /* LTE_ADV */
8784 /***********************************************************
8786 * Func : cmPkRgrCfgReqInfo
8789 * Desc : Basic RGR configuration/reconfiguration info at RRM
8798 **********************************************************/
8800 S16 cmPkRgrCfgReqInfo
8802 RgrCfgReqInfo *param,
8806 S16 cmPkRgrCfgReqInfo(param, mBuf)
8807 RgrCfgReqInfo *param;
8813 switch(param->action) {
8815 CMCHKPK(cmPkRgrSonCfg, ¶m->u.sonCfg, mBuf);
8818 CMCHKPK(cmPkRgrRst, ¶m->u.rstInfo, mBuf);
8821 CMCHKPK(cmPkRgrDel, ¶m->u.delInfo, mBuf);
8824 CMCHKPK(cmPkRgrRecfg, ¶m->u.recfgInfo, mBuf);
8827 CMCHKPK(cmPkRgrCfg, ¶m->u.cfgInfo, mBuf);
8831 case RGR_SCELL_DEACT:
8832 case RGR_SCELL_READY:
8833 CMCHKPK(cmPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
8839 CMCHKPK(oduUnpackUInt8, param->action, mBuf);
8845 /***********************************************************
8847 * Func : cmUnpkRgrCfgReqInfo
8850 * Desc : Basic RGR configuration/reconfiguration info at RRM
8859 **********************************************************/
8861 S16 cmUnpkRgrCfgReqInfo
8863 RgrCfgReqInfo *param,
8867 S16 cmUnpkRgrCfgReqInfo(param, mBuf)
8868 RgrCfgReqInfo *param;
8874 CMCHKUNPK(oduPackUInt8, ¶m->action, mBuf);
8875 switch(param->action) {
8877 CMCHKUNPK(cmUnpkRgrCfg, ¶m->u.cfgInfo, mBuf);
8880 CMCHKUNPK(cmUnpkRgrRecfg, ¶m->u.recfgInfo, mBuf);
8883 CMCHKUNPK(cmUnpkRgrDel, ¶m->u.delInfo, mBuf);
8886 CMCHKUNPK(cmUnpkRgrRst, ¶m->u.rstInfo, mBuf);
8889 CMCHKUNPK(cmUnpkRgrSonCfg, ¶m->u.sonCfg, mBuf);
8893 case RGR_SCELL_DEACT:
8894 case RGR_SCELL_READY:
8895 CMCHKUNPK(cmUnPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
8897 #endif /* LTE_ADV */
8904 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
8906 /***********************************************************
8908 * Func : cmPkRgrUeBsrTmrCfg
8911 * Desc : BSR timer configuration per UE
8920 **********************************************************/
8922 S16 cmPkRgrUeBsrTmrCfg
8924 RgrUeBsrTmrCfg *param,
8928 S16 cmPkRgrUeBsrTmrCfg(param, mBuf)
8929 RgrUeBsrTmrCfg *param;
8935 CMCHKPK(oduUnpackUInt16, param->prdBsrTmr, mBuf);
8936 CMCHKPK(oduUnpackUInt16, param->retxBsrTmr, mBuf);
8937 CMCHKPK(oduUnpackUInt8, param->isPrdBsrTmrPres, mBuf);
8941 /***********************************************************
8943 * Func : cmUnpkRgrUeBsrTmrCfg
8946 * Desc : BSR timer configuration per UE
8955 **********************************************************/
8957 S16 cmUnpkRgrUeBsrTmrCfg
8959 RgrUeBsrTmrCfg *param,
8963 S16 cmUnpkRgrUeBsrTmrCfg(param, mBuf)
8964 RgrUeBsrTmrCfg *param;
8970 CMCHKUNPK(oduPackUInt8, ¶m->isPrdBsrTmrPres, mBuf);
8971 CMCHKUNPK(oduPackUInt16, ¶m->retxBsrTmr, mBuf);
8972 CMCHKUNPK(oduPackUInt16, ¶m->prdBsrTmr, mBuf);
8976 /* rgr_c_001.main_4-ADD-Added for SI Enhancement. */
8978 /***********************************************************
8980 * Func : cmPkRgrSiCfgReq
8983 * Desc : SI Configuration Request from RRM to MAC for
8993 **********************************************************/
8999 RgrCfgTransId transId,
9000 RgrSiCfgReqInfo * cfgReqInfo
9003 S16 cmPkRgrSiCfgReq(pst, spId, transId, cfgReqInfo)
9006 RgrCfgTransId transId;
9007 RgrSiCfgReqInfo * cfgReqInfo;
9010 Buffer *mBuf = NULLP;
9013 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9015 #if (ERRCLASS & ERRCLS_ADD_RES)
9016 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9017 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9018 (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
9020 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9021 sizeof(RgrSiCfgReqInfo));
9024 if (cmPkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
9025 #if (ERRCLASS & ERRCLS_ADD_RES)
9026 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9027 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9028 (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
9030 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9031 sizeof(RgrSiCfgReqInfo));
9035 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
9036 #if (ERRCLASS & ERRCLS_ADD_RES)
9037 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9038 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9039 (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
9041 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9042 sizeof(RgrSiCfgReqInfo));
9046 if (SPkS16(spId, mBuf) != ROK) {
9047 #if (ERRCLASS & ERRCLS_ADD_RES)
9048 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9049 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9050 (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
9052 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9053 sizeof(RgrSiCfgReqInfo));
9057 if (SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9058 sizeof(RgrSiCfgReqInfo)) != ROK) {
9059 #if (ERRCLASS & ERRCLS_ADD_RES)
9060 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9061 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9062 (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
9068 pst->event = (Event) EVTRGRSICFGREQ;
9069 return (SPstTsk(pst,mBuf));
9072 /***********************************************************
9074 * Func : cmUnpkRgrSiCfgReq
9077 * Desc : SI Configuration Request from RRM to MAC for
9087 **********************************************************/
9089 S16 cmUnpkRgrSiCfgReq
9096 S16 cmUnpkRgrSiCfgReq(func, pst, mBuf)
9103 RgrCfgTransId transId;
9104 RgrSiCfgReqInfo *cfgReqInfo;
9107 if (SUnpkS16(&spId, mBuf) != ROK) {
9109 #if (ERRCLASS & ERRCLS_ADD_RES)
9110 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9111 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9112 (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
9116 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
9118 #if (ERRCLASS & ERRCLS_ADD_RES)
9119 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9120 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9121 (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
9125 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo,
9126 sizeof(RgrSiCfgReqInfo))) != ROK) {
9127 #if (ERRCLASS & ERRCLS_ADD_RES)
9128 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9129 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9130 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
9135 memset(cfgReqInfo, 0, sizeof(RgrSiCfgReqInfo));
9136 if (pst->selector == ODU_SELECTOR_LC)
9137 if (cmUnpkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
9138 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo,
9139 sizeof(RgrSiCfgReqInfo));
9141 #if (ERRCLASS & ERRCLS_ADD_RES)
9142 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9143 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9144 (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
9150 return ((*func)(pst, spId, transId, cfgReqInfo));
9153 /***********************************************************
9155 * Func : cmPkRgrSiCfgReqInfo
9158 * Desc : Basic SI configuration/reconfiguration info at RRM
9167 **********************************************************/
9169 S16 cmPkRgrSiCfgReqInfo
9171 RgrSiCfgReqInfo *param,
9175 S16 cmPkRgrSiCfgReqInfo(param, mBuf)
9176 RgrSiCfgReqInfo *param;
9180 /* ccpu00111328: S16 is renamed as MsgLen */
9184 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
9185 CMCHKPK(SPkS32, param->cfgType, mBuf);
9186 CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
9188 if(NULLP != param->pdu)
9190 if (SFndLenMsg(param->pdu, &msgLen) != ROK)
9192 if (SCatMsg(mBuf, param->pdu, M1M2) != ROK)
9194 SPutMsg(param->pdu);
9195 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
9200 CMCHKPK(cmPkMsgLen, 0, mBuf);
9206 /***********************************************************
9208 * Func : cmUnpkRgrSiCfgReqInfo
9211 * Desc : Basic SI configuration/reconfiguration info at RRM
9220 **********************************************************/
9222 S16 cmUnpkRgrSiCfgReqInfo
9224 RgrSiCfgReqInfo *param,
9228 S16 cmUnpkRgrSiCfgReqInfo(param, mBuf)
9229 RgrSiCfgReqInfo *param;
9233 MsgLen msgLen, totalMsgLen;
9234 /*Merge from Mohit Changes*/
9238 SFndLenMsg(mBuf, &msgLen);
9241 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
9245 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
9247 if (SSegMsg(mBuf, totalMsgLen-msgLen, ¶m->pdu) != ROK)
9256 CMCHKUNPK(oduPackUInt8, ¶m->siId, mBuf);
9257 /*CMCHKUNPK(SUnpkS32, (S32 *)¶m->cfgType, mBuf);*/
9258 /*Merge from Mohit Changes*/
9259 CMCHKUNPK(SUnpkS32,(S32 *)&cfgType, mBuf);
9260 param->cfgType = (RgrSiCfgType) cfgType;
9261 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
9268 /***********************************************************
9270 * Func : cmPkRgrWarningSiCfgReq
9273 * Desc : SI Configuration Request from RRM to MAC for
9274 * configuring warning SI
9283 **********************************************************/
9285 S16 cmPkRgrWarningSiCfgReq
9289 RgrCfgTransId transId,
9290 RgrWarningSiCfgReqInfo * warningSiCfgReqInfo
9293 S16 cmPkRgrWarningSiCfgReq(pst, spId, transId, warningSiCfgReqInfo)
9296 RgrCfgTransId transId;
9297 RgrWarningSiCfgReqInfo * warningSiCfgReqInfo;
9300 Buffer *mBuf = NULLP;
9303 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9305 #if (ERRCLASS & ERRCLS_ADD_RES)
9306 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9307 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9308 (ErrVal)ERGR061, (ErrVal)0, "Packing failed");
9310 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9311 sizeof(RgrWarningSiCfgReqInfo));
9315 if (cmPkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK)
9317 #if (ERRCLASS & ERRCLS_ADD_RES)
9318 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9319 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9320 (ErrVal)ERGR062, (ErrVal)0, "Packing failed");
9322 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9323 sizeof(RgrWarningSiCfgReqInfo));
9328 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
9330 #if (ERRCLASS & ERRCLS_ADD_RES)
9331 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9332 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9333 (ErrVal)ERGR063, (ErrVal)0, "Packing failed");
9335 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9336 sizeof(RgrWarningSiCfgReqInfo));
9341 if (SPkS16(spId, mBuf) != ROK)
9343 #if (ERRCLASS & ERRCLS_ADD_RES)
9344 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9345 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9346 (ErrVal)ERGR064, (ErrVal)0, "Packing failed");
9348 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9349 sizeof(RgrWarningSiCfgReqInfo));
9354 /* if the application wants to retain this structure, the below
9355 * code should be removed */
9356 if (SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9357 sizeof(RgrWarningSiCfgReqInfo)) != ROK)
9359 #if (ERRCLASS & ERRCLS_ADD_RES)
9360 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9361 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9362 (ErrVal)ERGR065, (ErrVal)0, "Packing failed");
9368 pst->event = (Event) EVTRGRWARNINGSICFGREQ;
9369 return (SPstTsk(pst,mBuf));
9370 }/*cmPkRgrWarningSiCfgReq*/
9373 /***********************************************************
9375 * Func : cmUnpkRgrWarningSiCfgReq
9378 * Desc : SI Configuration Request from RRM to MAC for
9379 * configuring warning SI
9388 **********************************************************/
9390 S16 cmUnpkRgrWarningSiCfgReq
9392 RgrWarningSiCfgReq func,
9397 S16 cmUnpkRgrWarningSiCfgReq(func, pst, mBuf)
9398 RgrWarningSiCfgReq func;
9404 RgrCfgTransId transId;
9405 RgrWarningSiCfgReqInfo *warningSiCfgReqInfo;
9408 if (SUnpkS16(&spId, mBuf) != ROK)
9411 #if (ERRCLASS & ERRCLS_ADD_RES)
9412 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9413 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9414 (ErrVal)ERGR066, (ErrVal)0, "Packing failed");
9419 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
9422 #if (ERRCLASS & ERRCLS_ADD_RES)
9423 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9424 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9425 (ErrVal)ERGR067, (ErrVal)0, "Packing failed");
9430 if ((SGetSBuf(pst->region, pst->pool, (Data **)&warningSiCfgReqInfo,
9431 sizeof(RgrWarningSiCfgReqInfo))) != ROK)
9433 #if (ERRCLASS & ERRCLS_ADD_RES)
9434 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9435 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9436 (ErrVal)ERGR068, (ErrVal)0, "Packing failed");
9443 if (pst->selector == ODU_SELECTOR_LC)
9445 if (cmUnpkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK)
9447 SPutSBuf(pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
9448 sizeof(RgrWarningSiCfgReqInfo));
9450 #if (ERRCLASS & ERRCLS_ADD_RES)
9451 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9452 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9453 (ErrVal)ERGR069, (ErrVal)0, "Packing failed");
9460 return ((*func)(pst, spId, transId, warningSiCfgReqInfo));
9461 } /* cmUnpkRgrWarningSiCfgReq */
9464 /***********************************************************
9466 * Func : cmPkRgrWarningSiCfgReqInfo
9469 * Desc : Basic warning SI configuration/reconfiguration
9479 **********************************************************/
9481 S16 cmPkRgrWarningSiCfgReqInfo
9484 RgrWarningSiCfgReqInfo *param,
9488 S16 cmPkRgrWarningSiCfgReqInfo(pst, param, mBuf)
9490 RgrWarningSiCfgReqInfo *param;
9496 CmLList *node, *prevNode;
9497 RgrSegmentInfo *pdu;
9500 CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
9502 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
9503 CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
9505 count = param->siPduLst.count;
9506 node = param->siPduLst.last;
9509 pdu = (RgrSegmentInfo *)node->node;
9510 prevNode= node->prev;
9513 if (SFndLenMsg(pdu->pdu, &msgLen) != ROK)
9515 if (SCatMsg(mBuf, pdu->pdu, M1M2) != ROK)
9517 /* The PDU is not Released. This has to be done by
9518 * the caller of the packing function */
9519 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
9522 cmLListDelFrm(¶m->siPduLst, node);
9523 SPutSBuf(pst->region, pst->pool, (Data *)node, sizeof(RgrSegmentInfo));
9526 CMCHKPK(oduUnpackUInt32, count, mBuf);
9531 /***********************************************************
9533 * Func : cmUnpkRgrWarningSiCfgReqInfo
9536 * Desc : Unpack warning SI configuration info at SCH
9545 **********************************************************/
9547 S16 cmUnpkRgrWarningSiCfgReqInfo
9550 RgrWarningSiCfgReqInfo *param,
9554 S16 cmUnpkRgrWarningSiCfgReqInfo(pst, param, mBuf)
9556 RgrWarningSiCfgReqInfo *param;
9560 MsgLen msgLen, totalMsgLen;
9566 cmLListInit(¶m->siPduLst);
9567 CMCHKUNPK(oduPackUInt32, &count, mBuf);
9568 for (loopCnt=0; loopCnt<count; loopCnt++)
9570 if(SFndLenMsg(mBuf, &msgLen) != ROK)
9577 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
9578 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
9582 if (SSegMsg(mBuf, totalMsgLen-msgLen, &pdu) != ROK)
9591 if ((SGetSBuf(pst->region, pst->pool, (Data **)&node,
9592 sizeof(CmLList))) != ROK)
9594 node->node = (PTR)pdu;
9595 cmLListAdd2Tail(¶m->siPduLst, node);
9598 CMCHKUNPK(oduPackUInt8, ¶m->siId, mBuf);
9599 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
9600 CMCHKPK(oduPackUInt8, ¶m->emtcEnable, mBuf);
9606 /***********************************************************
9608 * Func : cmPkRgrWarningSiStopReq
9610 * Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
9617 **********************************************************/
9619 S16 cmPkRgrWarningSiStopReq
9623 RgrCfgTransId transId,
9627 S16 cmPkRgrWarningSiStopReq(pst,spId, transId, siId)
9630 RgrCfgTransId transId;
9634 Buffer *mBuf = NULLP;
9637 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9639 #if (ERRCLASS & ERRCLS_ADD_RES)
9640 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9641 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9642 (ErrVal)ERGR070, (ErrVal)0, "Packing failed");
9647 CMCHKPK(oduUnpackUInt8, siId, mBuf);
9650 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
9652 #if (ERRCLASS & ERRCLS_ADD_RES)
9653 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9654 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9655 (ErrVal)ERGR082, (ErrVal)0, "Packing failed");
9662 if (SPkS16(spId, mBuf) != ROK)
9664 #if (ERRCLASS & ERRCLS_ADD_RES)
9665 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9666 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9667 (ErrVal)ERGR071, (ErrVal)0, "Packing failed");
9673 pst->event = (Event) EVTRGRWARNINGSISTOPREQ;
9674 return (SPstTsk(pst,mBuf));
9675 }/*cmPkRgrWarningSiStopReq */
9678 /***********************************************************
9680 * Func : cmUnpkRgrWarningSiStopReq
9682 * Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
9689 **********************************************************/
9691 S16 cmUnpkRgrWarningSiStopReq
9693 RgrWarningSiStopReq func,
9698 S16 cmUnpkRgrWarningSiStopReq(param, mBuf)
9699 RgrWarningSiStopReq func;
9706 RgrCfgTransId transId;
9709 if (SUnpkS16(&spId, mBuf) != ROK)
9712 #if (ERRCLASS & ERRCLS_ADD_RES)
9713 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9714 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9715 (ErrVal)ERGR072, (ErrVal)0, "Packing failed");
9720 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
9723 #if (ERRCLASS & ERRCLS_ADD_RES)
9724 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9725 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9726 (ErrVal)ERGR083, (ErrVal)0, "Packing failed");
9731 CMCHKUNPK(oduPackUInt8, &siId, mBuf);
9735 return ((*func)(pst, spId, transId, siId));
9736 } /*cmUnpkRgrWarningSiStopReq */
9739 /***********************************************************
9741 * Func : cmPkRgrWarningSiCfgCfm
9744 * Desc : Warning SI Configuration Confirm from MAC to RRM
9753 **********************************************************/
9755 S16 cmPkRgrWarningSiCfgCfm
9759 RgrCfgTransId transId,
9764 S16 cmPkRgrWarningSiCfgCfm(pst, suId, transId, siId, status)
9767 RgrCfgTransId transId;
9772 Buffer *mBuf = NULLP;
9775 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9777 #if (ERRCLASS & ERRCLS_ADD_RES)
9778 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9779 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9780 (ErrVal)ERGR073, (ErrVal)0, "Packing failed");
9785 if (oduUnpackUInt8(status, mBuf) != ROK)
9787 #if (ERRCLASS & ERRCLS_ADD_RES)
9788 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9789 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9790 (ErrVal)ERGR074, (ErrVal)0, "Packing failed");
9796 if (oduUnpackUInt8(siId, mBuf) != ROK)
9798 #if (ERRCLASS & ERRCLS_ADD_RES)
9799 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9800 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9801 (ErrVal)ERGR075, (ErrVal)0, "Packing failed");
9807 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
9809 #if (ERRCLASS & ERRCLS_ADD_RES)
9810 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9811 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9812 (ErrVal)ERGR076, (ErrVal)0, "Packing failed");
9818 if (SPkS16(suId, mBuf) != ROK)
9820 #if (ERRCLASS & ERRCLS_ADD_RES)
9821 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9822 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9823 (ErrVal)ERGR077, (ErrVal)0, "Packing failed");
9829 pst->event = (Event) EVTRGRWARNINGSICFGCFM;
9830 return (SPstTsk(pst,mBuf));
9831 } /* cmPkRgrWarningSiCfgCfm */
9834 /***********************************************************
9836 * Func : cmUnpkRgrwarningSiCfgCfm
9839 * Desc : Warning SI Configuration Confirm from MAC to RRM
9848 **********************************************************/
9850 S16 cmUnpkRgrWarningSiCfgCfm
9852 RgrWarningSiCfgCfm func,
9857 S16 cmUnpkRgrWarningSiCfgCfm(func, pst, mBuf)
9858 RgrWarningSiCfgCfm func;
9865 RgrCfgTransId transId;
9869 if (SUnpkS16(&suId, mBuf) != ROK)
9872 #if (ERRCLASS & ERRCLS_ADD_RES)
9873 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9874 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9875 (ErrVal)ERGR078, (ErrVal)0, "Packing failed");
9880 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
9883 #if (ERRCLASS & ERRCLS_ADD_RES)
9884 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9885 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9886 (ErrVal)ERGR079, (ErrVal)0, "Packing failed");
9891 if (oduPackUInt8(&siId, mBuf) != ROK)
9894 #if (ERRCLASS & ERRCLS_ADD_RES)
9895 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9896 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9897 (ErrVal)ERGR080, (ErrVal)0, "Packing failed");
9902 if (oduPackUInt8(&status, mBuf) != ROK)
9905 #if (ERRCLASS & ERRCLS_ADD_RES)
9906 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9907 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9908 (ErrVal)ERGR081, (ErrVal)0, "Packing failed");
9913 return ((*func)(pst, suId, transId, siId, status));
9914 }/* cmUnpkRgrwarningSiCfgCfm */
9915 #endif/*RGR_SI_SCH*/
9917 /* LTE_ADV_FLAG_REMOVED_START */
9918 /***********************************************************
9920 * Func : cmPkRgrLoadInfReq
9923 * Desc : LOAD INF Configuration Request from RRM to MAC for
9924 * configuring RNTP, ABS etc
9933 **********************************************************/
9935 S16 cmPkRgrLoadInfReq
9939 RgrCfgTransId transId,
9940 RgrLoadInfReqInfo * loadInfReq
9943 S16 cmPkRgrLoadInfReq(pst, spId, transId, loadInfReq)
9946 RgrCfgTransId transId;
9947 RgrLoadInfReqInfo * loadInfReq;
9950 Buffer *mBuf = NULLP;
9953 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9955 #if (ERRCLASS & ERRCLS_ADD_RES)
9956 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9957 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9958 (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
9960 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9961 sizeof(RgrLoadInfReqInfo));
9964 if (cmPkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
9965 #if (ERRCLASS & ERRCLS_ADD_RES)
9966 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9967 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9968 (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
9970 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9971 sizeof(RgrLoadInfReqInfo));
9975 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
9976 #if (ERRCLASS & ERRCLS_ADD_RES)
9977 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9978 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9979 (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
9981 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9982 sizeof(RgrLoadInfReqInfo));
9986 if (SPkS16(spId, mBuf) != ROK) {
9987 #if (ERRCLASS & ERRCLS_ADD_RES)
9988 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9989 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9990 (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
9992 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9993 sizeof(RgrLoadInfReqInfo));
9997 if (SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
9998 sizeof(RgrLoadInfReqInfo)) != ROK) {
9999 #if (ERRCLASS & ERRCLS_ADD_RES)
10000 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10001 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10002 (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
10008 pst->event = (Event) EVTRGRLOADINFREQ;
10009 return (SPstTsk(pst,mBuf));
10012 /***********************************************************
10014 * Func : cmUnpkRgrLoadInfReq
10017 * Desc : LOAD INF Configuration Request from RRM to MAC for
10018 * configuring RNTP, ABS etc
10027 **********************************************************/
10029 S16 cmUnpkRgrLoadInfReq
10031 RgrLoadInfReq func,
10036 S16 cmUnpkRgrLoadInfReq(func, pst, mBuf)
10037 RgrLoadInfReq func;
10043 RgrCfgTransId transId;
10044 RgrLoadInfReqInfo *loadInfReq;
10047 if (SUnpkS16(&spId, mBuf) != ROK) {
10049 #if (ERRCLASS & ERRCLS_ADD_RES)
10050 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10051 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10052 (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
10057 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
10059 #if (ERRCLASS & ERRCLS_ADD_RES)
10060 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10061 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10062 (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
10067 if ((SGetSBuf(pst->region, pst->pool, (Data **)&loadInfReq,
10068 sizeof(RgrLoadInfReqInfo))) != ROK) {
10069 #if (ERRCLASS & ERRCLS_ADD_RES)
10070 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10071 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10072 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
10078 memset(loadInfReq, 0, sizeof(RgrLoadInfReqInfo));
10080 if (pst->selector == ODU_SELECTOR_LC)
10081 if (cmUnpkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
10082 SPutSBuf(pst->region, pst->pool, (Data *)loadInfReq,
10083 sizeof(RgrLoadInfReqInfo));
10085 #if (ERRCLASS & ERRCLS_ADD_RES)
10086 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10087 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10088 (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
10094 return ((*func)(pst, spId, transId, loadInfReq));
10097 /***********************************************************
10099 * Func : cmPkRgrLoadInfReqInfo
10102 * Desc : Basic LOAD INF configuration/reconfiguration info at RRM
10111 **********************************************************/
10113 S16 cmPkRgrLoadInfReqInfo
10115 RgrLoadInfReqInfo *param,
10119 S16 cmPkRgrLoadInfReqInfo(param, mBuf)
10120 RgrLoadInfReqInfo *param;
10125 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10126 CMCHKPK(oduUnpackUInt8, param->rgrCcPHighStartRb, mBuf);
10127 CMCHKPK(oduUnpackUInt8, param->rgrCcPHighEndRb, mBuf);
10132 /***********************************************************
10134 * Func : cmUnpkRgrLoadInfReqInfo
10137 * Desc : Basic LOAD INF configuration/reconfiguration info at RRM
10146 **********************************************************/
10148 S16 cmUnpkRgrLoadInfReqInfo
10150 RgrLoadInfReqInfo *param,
10154 S16 cmUnpkRgrLoadInfReqInfo(param, mBuf)
10155 RgrLoadInfReqInfo *param;
10160 CMCHKUNPK(oduPackUInt8, ¶m->rgrCcPHighEndRb, mBuf);
10161 CMCHKUNPK(oduPackUInt8, ¶m->rgrCcPHighStartRb, mBuf);
10162 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10166 /* LTE_ADV_FLAG_REMOVED_END */
10168 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
10169 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
10170 #ifdef RGR_CQI_REPT
10172 /***********************************************************
10174 * Func : cmPkRgrUeCqiReptCfg
10177 * Desc : Transaction ID between MAC and RRM
10186 **********************************************************/
10188 S16 cmPkRgrUeCqiReptCfg
10190 RgrUeCqiReptCfg *param,
10194 S16 cmPkRgrUeCqiReptCfg(param, mBuf)
10195 RgrUeCqiReptCfg *param;
10200 CMCHKPK(oduUnpackUInt8, param->numColltdCqiRept, mBuf);
10206 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10207 /***********************************************************
10209 * Func : cmUnpkRgrUeCqiReptCfg
10212 * Desc : Transaction ID between MAC and RRM
10221 **********************************************************/
10223 S16 cmUnpkRgrUeCqiReptCfg
10225 RgrUeCqiReptCfg *param,
10229 S16 cmUnpkRgrUeCqiReptCfg(param, mBuf)
10230 RgrUeCqiReptCfg *param;
10235 CMCHKUNPK(oduPackUInt8, ¶m->numColltdCqiRept, mBuf);
10241 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10242 /***********************************************************
10244 * Func : cmPkRgrStaInd
10247 * Desc : Packing Sta Indication sent to RRM
10256 **********************************************************/
10262 RgrStaIndInfo* staInd
10265 S16 cmPkRgrStaInd(pst, suId, staInd)
10268 RgrStaIndInfo* staInd;
10271 Buffer *mBuf = NULLP;
10273 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
10275 #if (ERRCLASS & ERRCLS_ADD_RES)
10276 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10277 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10278 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
10280 SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10281 sizeof(RgrStaIndInfo));
10285 if (cmPkRgrStaIndInfo(staInd, mBuf) != ROK)
10287 #if (ERRCLASS & ERRCLS_ADD_RES)
10288 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10289 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10290 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
10292 SPutSBuf(pst->region, pst->pool, (Data *)staInd, sizeof(RgrStaIndInfo));
10297 if (SPkS16(suId, mBuf) != ROK)
10299 #if (ERRCLASS & ERRCLS_ADD_RES)
10300 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10301 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10302 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
10304 SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10305 sizeof(RgrStaIndInfo));
10310 if (SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10311 sizeof(RgrStaIndInfo)) != ROK)
10313 #if (ERRCLASS & ERRCLS_ADD_RES)
10314 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10315 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10316 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
10322 pst->event = (Event) EVTRGRSTAIND;
10323 return (SPstTsk(pst,mBuf));
10326 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10327 /***********************************************************
10329 * Func : cmUnpkRgrStaInd
10332 * Desc : Unpacking Sta Indication sent to RRM
10340 **********************************************************/
10342 S16 cmUnpkRgrStaInd
10349 S16 cmUnpkRgrStaInd(func, pst, mBuf)
10356 RgrStaIndInfo *staInd;
10359 if (SUnpkS16(&suId, mBuf) != ROK)
10362 #if (ERRCLASS & ERRCLS_ADD_RES)
10363 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10364 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10365 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
10370 if ((SGetSBuf(pst->region, pst->pool, (Data **)&staInd,
10371 sizeof(RgrStaIndInfo))) != ROK)
10373 #if (ERRCLASS & ERRCLS_ADD_RES)
10374 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10375 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10376 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
10382 if (cmUnpkRgrStaIndInfo(staInd, mBuf) != ROK)
10384 SPutSBuf(pst->region, pst->pool, (Data *)staInd,
10385 sizeof(RgrStaIndInfo));
10387 #if (ERRCLASS & ERRCLS_ADD_RES)
10388 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10389 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10390 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
10396 return ((*func)(pst, suId, staInd));
10399 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10400 /***********************************************************
10402 * Func : cmPkRgrStaIndInfo
10405 * Desc : Packing of StaIndInfo structure
10413 **********************************************************/
10415 S16 cmPkRgrStaIndInfo
10417 RgrStaIndInfo *param,
10421 S16 cmPkRgrStaIndInfo(param, mBuf)
10422 RgrStaIndInfo *param;
10428 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10429 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
10430 CMCHKPK(cmPkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
10434 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10435 /***********************************************************
10437 * Func : cmUnpkRgrStaIndInfo
10440 * Desc : Unpacking of StaIndInfo structure
10448 **********************************************************/
10450 S16 cmUnpkRgrStaIndInfo
10452 RgrStaIndInfo *param,
10456 S16 cmUnpkRgrStaIndInfo(param, mBuf)
10457 RgrStaIndInfo *param;
10463 CMCHKUNPK(cmUnpkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
10464 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
10465 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10469 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10470 /***********************************************************
10472 * Func : cmPkRgrUeCqiInfo
10475 * Desc : Packing of StaIndInfo structure
10483 **********************************************************/
10485 S16 cmPkRgrUeCqiInfo
10487 RgrUeCqiInfo *param,
10491 S16 cmPkRgrUeCqiInfo(param, mBuf)
10492 RgrUeCqiInfo *param;
10499 for (idx = param->numCqiRept - 1; idx >= 0; idx--)
10501 CMCHKPK(cmPkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
10503 CMCHKPK(oduUnpackUInt8, param->numCqiRept, mBuf);
10506 } /* cmPkRgrUeCqiInfo */
10508 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10509 /***********************************************************
10511 * Func : cmUnpkRgrUeCqiInfo
10514 * Desc : Packing of StaIndInfo structure
10522 **********************************************************/
10524 S16 cmUnpkRgrUeCqiInfo
10526 RgrUeCqiInfo *param,
10530 S16 cmUnpkRgrUeCqiInfo(param, mBuf)
10531 RgrUeCqiInfo *param;
10538 CMCHKUNPK(oduPackUInt8, ¶m->numCqiRept, mBuf);
10539 for (idx = 0; idx < param->numCqiRept; idx++)
10541 CMCHKUNPK(cmUnpkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
10545 } /* cmUnpkRgrUeCqiInfo */
10547 /***********************************************************
10549 * Func : cmPkRgrSubBandCqiInfo
10552 * Desc : Packing ofcmPkRgrSubBandCqiInfo structure
10560 **********************************************************/
10562 S16 cmPkRgrSubBandCqiInfo
10564 RgrSubBandCqiInfo *param,
10568 S16 cmPkRgrSubBandCqiInfo(param, mBuf)
10569 RgrSubBandCqiInfo *param;
10575 CMCHKPK(oduUnpackUInt8, param->cqi[0], mBuf);
10576 CMCHKPK(oduUnpackUInt8, param->cqi[1], mBuf);
10577 CMCHKPK(oduUnpackUInt8, param->subBandIdx, mBuf);
10580 } /* cmPkRgrSubBandCqiInfo */
10582 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10583 /***********************************************************
10585 * Func : cmPkRgrUeCqiRept
10588 * Desc : Packing of StaIndInfo structure
10596 **********************************************************/
10598 S16 cmPkRgrUeCqiRept
10600 RgrUeCqiRept *param,
10604 S16 cmPkRgrUeCqiRept(param, mBuf)
10605 RgrUeCqiRept *param;
10613 CMCHKPK(oduUnpackUInt8, param->cqi[0], mBuf);
10614 CMCHKPK(oduUnpackUInt8, param->cqi[1], mBuf);
10615 CMCHKPK(oduUnpackUInt8, param->cqiMode, mBuf);
10616 for (idx = param->numSubBand - 1; idx >= 0; idx--)
10619 CMCHKPK(cmPkRgrSubBandCqiInfo, ¶m->sbCqiInfo[count], mBuf);
10621 CMCHKPK(oduUnpackUInt8, param->numSubBand, mBuf);
10623 } /* cmPkRgrUeCqiRept */
10625 /***********************************************************
10627 * Func :cmUnpkRgrSubBandCqiInfo
10630 * Desc : Packing of cmUnpkRgrSubBandCqiInfo structure
10638 **********************************************************/
10640 S16 cmUnpkRgrSubBandCqiInfo
10642 RgrSubBandCqiInfo *param,
10646 S16 cmUnpkRgrSubBandCqiInfo(param, mBuf)
10647 RgrSubBandCqiInfo *param;
10653 CMCHKUNPK(oduPackUInt8, ¶m->subBandIdx, mBuf);
10654 CMCHKUNPK(oduPackUInt8, ¶m->cqi[1], mBuf);
10655 CMCHKUNPK(oduPackUInt8, ¶m->cqi[0], mBuf);
10658 } /* cmUnpkRgrSubBandCqiInfo*/
10660 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10661 /***********************************************************
10663 * Func : cmUnpkRgrUeCqiRept
10666 * Desc : Packing of StaIndInfo structure
10674 **********************************************************/
10676 S16 cmUnpkRgrUeCqiRept
10678 RgrUeCqiRept *param,
10682 S16 cmUnpkRgrUeCqiRept(param, mBuf)
10683 RgrUeCqiRept *param;
10689 CMCHKUNPK(oduPackUInt8, ¶m->numSubBand, mBuf);
10690 for (idx = 0; idx < param->numSubBand; idx++)
10692 CMCHKUNPK(cmUnpkRgrSubBandCqiInfo, ¶m->sbCqiInfo[idx], mBuf);
10694 CMCHKUNPK(oduPackUInt8, ¶m->cqiMode, mBuf);
10695 CMCHKUNPK(oduPackUInt8, ¶m->cqi[1], mBuf);
10696 CMCHKUNPK(oduPackUInt8, ¶m->cqi[0], mBuf);
10699 } /* cmUnpkRgrUeCqiRept */
10700 #endif /* End of ifdef RGR_CQI_REPT */
10702 /* LTE_ADV_FLAG_REMOVED_START */
10703 /***********************************************************
10705 * Func : cmPkRgrLoadInfInd
10708 * Desc : Packing LOAD INFORMATION Indication sent to RRM
10717 **********************************************************/
10719 S16 cmPkRgrLoadInfInd
10723 RgrLoadInfIndInfo* loadInfInd
10726 S16 cmPkRgrLoadInfInd(pst, suId, loadInfInd)
10729 RgrLoadInfIndInfo* loadInfInd;
10732 Buffer *mBuf = NULLP;
10734 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
10736 #if (ERRCLASS & ERRCLS_ADD_RES)
10737 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10738 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10739 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
10741 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10742 sizeof(RgrLoadInfIndInfo));
10746 if (cmPkRgrLoadInfIndInfo(loadInfInd, mBuf) != ROK)
10748 #if (ERRCLASS & ERRCLS_ADD_RES)
10749 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10750 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10751 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
10753 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10754 sizeof(RgrLoadInfIndInfo));
10760 if (SPkS16(suId, mBuf) != ROK)
10762 #if (ERRCLASS & ERRCLS_ADD_RES)
10763 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10764 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10765 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
10767 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10768 sizeof(RgrLoadInfIndInfo));
10773 if (SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10774 sizeof(RgrLoadInfIndInfo)) != ROK)
10776 #if (ERRCLASS & ERRCLS_ADD_RES)
10777 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10778 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10779 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
10785 pst->event = (Event) EVTRGRLOADINFIND;
10786 return (SPstTsk(pst,mBuf));
10789 /***********************************************************
10791 * Func : cmUnpkRgrLoadInfInd
10794 * Desc : Unpacking LOAD INFORMATION Indication sent to RRM
10802 **********************************************************/
10804 S16 cmUnpkRgrLoadInfInd
10806 RgrLoadInfInd func,
10811 S16 cmUnpkRgrLoadInfInd(func, pst, mBuf)
10812 RgrLoadInfInd func;
10818 RgrLoadInfIndInfo *loadInfInd = NULLP; /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
10821 if (SUnpkS16(&suId, mBuf) != ROK)
10824 #if (ERRCLASS & ERRCLS_ADD_RES)
10825 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10826 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10827 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
10832 if ((SGetSBuf(pst->region, pst->pool, (Data **)&loadInfInd,
10833 sizeof(RgrLoadInfIndInfo))) != ROK)
10835 #if (ERRCLASS & ERRCLS_ADD_RES)
10836 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10837 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10838 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
10844 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
10845 if (cmUnpkRgrLoadInfIndInfo(loadInfInd, pst, mBuf) != ROK)
10847 SPutSBuf(pst->region, pst->pool, (Data *)loadInfInd,
10848 sizeof(RgrLoadInfIndInfo));
10850 #if (ERRCLASS & ERRCLS_ADD_RES)
10851 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10852 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10853 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
10859 return ((*func)(pst, suId, loadInfInd));
10863 /***********************************************************
10865 * Func : cmPkRgrLoadInfIndInfo
10868 * Desc : Packing of LoadInfIndInfo structure
10876 **********************************************************/
10878 S16 cmPkRgrLoadInfIndInfo
10880 RgrLoadInfIndInfo *param,
10884 S16 cmPkRgrLoadInfIndInfo(param, mBuf)
10885 RgrLoadInfIndInfo *param;
10891 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10892 CMCHKPK(oduUnpackUInt16, param->bw, mBuf);
10893 if(RGR_ABS == param->type)
10895 for(idx = 0; idx < RGR_ABS_PATTERN_LEN; idx++)
10897 CMCHKPK(oduUnpackUInt32, param->u.absLoadInfo[idx], mBuf);
10902 CMCHKPK(cmPkTknStrOSXL, ¶m->u.rntpInfo, mBuf);
10905 CMCHKPK(oduUnpackUInt32, param->type, mBuf);
10910 /***********************************************************
10912 * Func : cmUnpkRgrLoadInfIndInfo
10915 * Desc : Unpacking of LoadInfIndInfo structure
10923 **********************************************************/
10925 S16 cmUnpkRgrLoadInfIndInfo
10927 RgrLoadInfIndInfo *param,
10932 S16 cmUnpkRgrLoadInfIndInfo(param, pst, mBuf)
10933 RgrLoadInfIndInfo *param;
10940 /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
10941 TknStrOSXL *tknStr;
10945 CMCHKUNPK(oduPackUInt32, ¶m->type, mBuf);
10946 if(RGR_ABS == param->type)
10948 for(idx = RGR_ABS_PATTERN_LEN -1 ; idx >= 0; idx--)
10950 CMCHKUNPK(oduPackUInt32, ¶m->u.absLoadInfo[(U8)idx], mBuf);
10956 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** Start */
10957 tknStr = ¶m->u.rntpInfo;
10959 CMCHKUNPK(oduPackUInt8, &tknStr->pres, mBuf);
10964 CMCHKUNPK(oduPackUInt16, &tknStr->len, mBuf);
10966 if ((SGetSBuf(pst->region, pst->pool, (Data **)&tknStr->val,tknStr->len)) != ROK) {
10967 #if (ERRCLASS & ERRCLS_ADD_RES)
10968 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10969 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10970 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
10977 for (ndx = 1; ndx <= tknStr->len; ndx++)
10979 CMCHKUNPK(oduPackUInt8, &tknStr->val[tknStr->len - ndx], mBuf);
10983 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** End */
10985 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
10986 CMCHKUNPK(oduPackUInt16, ¶m->bw, mBuf);
10988 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10992 /* LTE_ADV_FLAG_REMOVED_END */
10995 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10996 /***********************************************************
10998 * Func : cmPkRgrUepACfg
11001 * Desc : Transaction ID between MAC and RRM
11010 **********************************************************/
11018 S16 cmPkRgrUepACfg(param, mBuf)
11026 CMCHKPK(oduUnpackUInt32, param->pA, mBuf);
11028 CMCHKPK(oduUnpackUInt8, param->pAPrsnt, mBuf);
11034 /*rgr_c_001.main_9 ADD added changes for CQI management*/
11035 /***********************************************************
11037 * Func : cmUnpkRgrUepACfg
11040 * Desc : Transaction ID between MAC and RRM
11049 **********************************************************/
11051 S16 cmUnpkRgrUepACfg
11057 S16 cmUnpkRgrUepACfg(param, mBuf)
11064 CMCHKUNPK(oduPackUInt8, (U8 *)¶m->pAPrsnt, mBuf);
11065 if (param->pAPrsnt)
11067 CMCHKUNPK(oduPackUInt32, (U32*)&tmpEnum, mBuf);
11068 param->pA = (RgrUeDlPwrCntrlPaCfg) tmpEnum;
11074 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
11075 /***********************************************************
11077 * Func : cmPkRgrUePdschDedCfg
11080 * Desc : Transaction ID between MAC and RRM
11089 **********************************************************/
11091 S16 cmPkRgrUePdschDedCfg
11093 RgrUePdschDedCfg *param,
11097 S16 cmPkRgrUePdschDedCfg(param, mBuf)
11098 RgrUePdschDedCfg *param;
11103 CMCHKPK(cmPkRgrUepACfg, ¶m->uepACfg, mBuf);
11109 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
11110 /***********************************************************
11112 * Func : cmUnpkRgrUePdschDedCfg
11115 * Desc : Transaction ID between MAC and RRM
11124 **********************************************************/
11126 S16 cmUnpkRgrUePdschDedCfg
11128 RgrUePdschDedCfg *param,
11132 S16 cmUnpkRgrUePdschDedCfg(param, mBuf)
11133 RgrUePdschDedCfg *param;
11138 CMCHKUNPK(cmUnpkRgrUepACfg, ¶m->uepACfg, mBuf);
11147 /***********************************************************
11149 * Func : cmPkRgrUeUlPwrDedSCellCfg
11152 * Desc : DL Secondary Cell UL PC Info
11161 **********************************************************/
11163 PRIVATE S16 cmPkRgrUeUlPwrDedSCellCfg
11165 RgrUeUlPwrDedSCellCfg *param,
11169 PRIVATE S16 cmPkRgrUeUlPwrDedSCellCfg(param, mBuf)
11170 RgrUeUlPwrDedSCellCfg *param;
11174 CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
11175 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
11176 CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
11177 CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
11182 /***********************************************************
11184 * Func : cmUnpkRgrUeUlPwrDedSCellCfg
11187 * Desc : Uplink power configuration per UE
11196 **********************************************************/
11198 PRIVATE S16 cmUnpkRgrUeUlPwrDedSCellCfg
11200 RgrUeUlPwrDedSCellCfg *param,
11204 PRIVATE S16 cmUnpkRgrUeUlPwrDedSCellCfg(param, mBuf)
11205 RgrUeUlPwrDedSCellCfg *param;
11211 CMCHKUNPK(oduPackUInt8, ¶m->isAccumulated, mBuf);
11212 CMCHKUNPK(oduPackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
11213 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
11214 CMCHKUNPK(oduPackUInt8, ¶m->pSRSOffset, mBuf);
11221 /***********************************************************
11223 * Func : cmPkRgrUeSecCellCfg
11226 * Desc : DL Secondary Cell information of the UE
11235 **********************************************************/
11237 PRIVATE S16 cmPkRgrUeSecCellCfg
11239 RgrUeSecCellCfg *param,
11243 PRIVATE S16 cmPkRgrUeSecCellCfg(param, mBuf)
11244 RgrUeSecCellCfg *param;
11248 CMCHKPK(cmPkRgrUeUlPwrDedSCellCfg,¶m->ueSCellUlDedPwrCfg, mBuf);
11249 CMCHKPK(oduUnpackUInt8, param->isUlCaEnabled, mBuf);
11250 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
11252 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
11253 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
11255 CMCHKPK(cmPkRgrUeDlCqiCfg,¶m->ueSCellDlCqiCfg, mBuf);
11256 CMCHKPK(cmPkTknU32, ¶m->sCellDeActTmr, mBuf);
11257 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
11258 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
11265 /***********************************************************
11267 * Func : cmPkRgrUeSecCellInfo
11270 * Desc : Secondary Cell information of the UE
11279 **********************************************************/
11281 S16 cmPkRgrUeSecCellInfo
11283 RgrUeSecCellInfo *param,
11287 S16 cmPkRgrUeSecCellInfo(param, mBuf)
11288 RgrUeSecCellInfo *param;
11293 for(idx = param->numSCells - 1; idx >= 0; idx--)
11295 CMCHKPK(cmPkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[(U8)idx],mBuf);
11298 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
11300 CMCHKPK(oduUnpackUInt8, param->useExtBSRSizes, mBuf);
11306 /***********************************************************
11308 * Func : cmUnpkRgrUeSecCellCfg
11311 * Desc : DL Secondary Cell information of the UE
11320 **********************************************************/
11322 PRIVATE S16 cmUnpkRgrUeSecCellCfg
11324 RgrUeSecCellCfg *param,
11328 PRIVATE S16 cmUnpkRgrUeSecCellCfg(param, mBuf)
11329 RgrUeSecCellCfg *param;
11333 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
11334 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
11335 CMCHKUNPK(cmUnpkTknU32, ¶m->sCellDeActTmr, mBuf);
11336 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueSCellDlCqiCfg, mBuf);
11338 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
11340 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
11341 CMCHKUNPK(oduPackUInt8, ¶m->isUlCaEnabled, mBuf);
11342 CMCHKUNPK(cmUnpkRgrUeUlPwrDedSCellCfg, ¶m->ueSCellUlDedPwrCfg, mBuf);
11350 /***********************************************************
11352 * Func : cmUnpkRgrUeSecCellInfo
11355 * Desc : Secondary Cell information of the UE
11364 **********************************************************/
11366 S16 cmUnpkRgrUeSecCellInfo
11368 RgrUeSecCellInfo *param,
11372 S16 cmUnpkRgrUeSecCellInfo(param, mBuf)
11373 RgrUeSecCellInfo *param;
11379 CMCHKUNPK(oduPackUInt8, ¶m->useExtBSRSizes, mBuf);
11380 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
11382 for(idx = 0; idx < param->numSCells;idx++)
11384 CMCHKUNPK(cmUnpkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[idx],mBuf);
11390 /***********************************************************
11392 * Func : cmPkRgrUeSCellAckPucchCfg
11395 * Desc : PUCCH Configuration information of the UE
11404 **********************************************************/
11406 S16 cmPkRgrUeSCellAckPucchCfg
11408 RgrUeSCellAckPucchCfg *param,
11412 S16 cmPkRgrUeSCellAckPucchCfg(param, mBuf)
11413 RgrUeSCellAckPucchCfg *param;
11419 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
11421 for(idx = param->u.format1Bcs.sCellAckN1ResTb2Count - 1; idx >=0 ;idx--)
11423 CMCHKPK(oduUnpackUInt16, param->u.format1Bcs.sCellAckN1ResTb2[(U8)idx], mBuf);
11426 CMCHKPK(oduUnpackUInt8, param->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
11428 for(idx = param->u.format1Bcs.sCellAckN1ResTb1Count - 1; idx >=0 ;idx--)
11430 CMCHKPK(oduUnpackUInt16, param->u.format1Bcs.sCellAckN1ResTb1[(U8)idx], mBuf);
11433 CMCHKPK(oduUnpackUInt8, param->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
11437 for(idx = param->u.format3.sCellAckN3ResAntP1Count - 1; idx >=0 ;idx--)
11439 CMCHKPK(oduUnpackUInt16, param->u.format3.sCellAckN3ResAntP1[(U8)idx], mBuf);
11442 CMCHKPK(oduUnpackUInt8, param->u.format3.sCellAckN3ResAntP1Count, mBuf);
11444 for(idx = param->u.format3.sCellAckN3ResAntP0Count- 1; idx >=0 ;idx--)
11446 CMCHKPK(oduUnpackUInt16, param->u.format3.sCellAckN3ResAntP0[(U8)idx], mBuf);
11449 CMCHKPK(oduUnpackUInt8, param->u.format3.sCellAckN3ResAntP0Count, mBuf);
11451 CMCHKPK(oduUnpackUInt32, param->pucchFormatType, mBuf);
11456 /***********************************************************
11458 * Func : cmUnpkRgrUeSCellAckPucchCfg
11461 * Desc : PUCCH Configuration information of the UE
11470 **********************************************************/
11472 S16 cmUnpkRgrUeSCellAckPucchCfg
11474 RgrUeSCellAckPucchCfg *param,
11478 S16 cmUnpkRgrUeSCellAckPucchCfg(param, mBuf)
11479 RgrUeSCellAckPucchCfg *param;
11486 CMCHKUNPK(oduPackUInt32, (U32*)¶m->pucchFormatType, mBuf);
11487 //if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS)
11488 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
11490 CMCHKUNPK(oduPackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
11492 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb1Count; idx++)
11494 CMCHKUNPK(oduPackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb1[idx], mBuf);
11497 CMCHKUNPK(oduPackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
11499 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb2Count; idx++)
11501 CMCHKUNPK(oduPackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb2[idx], mBuf);
11506 CMCHKUNPK(oduPackUInt8, ¶m->u.format3.sCellAckN3ResAntP0Count, mBuf);
11508 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP0Count; idx++)
11510 CMCHKUNPK(oduPackUInt16, ¶m->u.format3.sCellAckN3ResAntP0[idx], mBuf);
11513 CMCHKUNPK(oduPackUInt8, ¶m->u.format3.sCellAckN3ResAntP1Count, mBuf);
11515 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP1Count; idx++)
11517 CMCHKUNPK(oduPackUInt16, ¶m->u.format3.sCellAckN3ResAntP1[idx], mBuf);
11530 /***********************************************************
11532 * Func : cmPkRgrUeStaInd
11535 * Desc : Packing Ue Sta Indication sent to RRM
11544 **********************************************************/
11546 S16 cmPkRgrUeStaInd
11550 RgrUeStaIndInfo* ueStaInd
11553 S16 cmPkRgrUeStaInd(pst, suId, ueStaInd)
11556 RgrUeStaIndInfo* ueStaInd;
11559 Buffer *mBuf = NULLP;
11560 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
11562 #if (ERRCLASS & ERRCLS_ADD_RES)
11563 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11564 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11565 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
11567 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11568 sizeof(RgrUeStaIndInfo));
11572 if (cmPkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
11574 #if (ERRCLASS & ERRCLS_ADD_RES)
11575 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11576 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11577 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
11579 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11580 sizeof(RgrUeStaIndInfo));
11585 if (SPkS16(suId, mBuf) != ROK)
11587 #if (ERRCLASS & ERRCLS_ADD_RES)
11588 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11589 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11590 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
11592 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11593 sizeof(RgrUeStaIndInfo));
11598 if (SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11599 sizeof(RgrUeStaIndInfo)) != ROK)
11601 #if (ERRCLASS & ERRCLS_ADD_RES)
11602 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11603 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11604 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
11610 pst->event = (Event) EVTRGRUESTAIND;
11611 return (SPstTsk(pst,mBuf));
11614 /*rgr_c_001.main_9 ADD added changes for CQI management*/
11615 /***********************************************************
11617 * Func : cmUnpkRgrUeStaInd
11620 * Desc : Unpacking Sta Indication sent to RRM
11628 **********************************************************/
11630 S16 cmUnpkRgrUeStaInd
11637 S16 cmUnpkRgrUeStaInd(func, pst, mBuf)
11644 RgrUeStaIndInfo *ueStaInd;
11647 if (SUnpkS16(&suId, mBuf) != ROK)
11650 #if (ERRCLASS & ERRCLS_ADD_RES)
11651 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11652 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11653 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
11658 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueStaInd,
11659 sizeof(RgrUeStaIndInfo))) != ROK)
11661 #if (ERRCLASS & ERRCLS_ADD_RES)
11662 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11663 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11664 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
11670 if (cmUnpkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
11672 SPutSBuf(pst->region, pst->pool, (Data *)ueStaInd,
11673 sizeof(RgrUeStaIndInfo));
11675 #if (ERRCLASS & ERRCLS_ADD_RES)
11676 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
11677 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
11678 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
11684 return ((*func)(pst, suId, ueStaInd));
11687 /***********************************************************
11689 * Func : cmPkRgrUeStaIndInfo
11692 * Desc : Packing of UeStaIndInfo structure
11700 **********************************************************/
11702 S16 cmPkRgrUeStaIndInfo
11704 RgrUeStaIndInfo *param,
11708 S16 cmPkRgrUeStaIndInfo(param, mBuf)
11709 RgrUeStaIndInfo *param;
11715 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
11716 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
11717 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
11721 /***********************************************************
11723 * Func : cmUnpkRgrUeStaIndInfo
11726 * Desc : Unpacking of UeStaIndInfo structure
11734 **********************************************************/
11736 S16 cmUnpkRgrUeStaIndInfo
11738 RgrUeStaIndInfo *param,
11742 S16 cmUnpkRgrUeStaIndInfo(param, mBuf)
11743 RgrUeStaIndInfo *param;
11749 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
11750 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
11751 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
11757 /***********************************************************
11759 * Func : cmPkRgrCellCsgParamCfg
11762 * Desc : CSG Parameter configuration
11771 **********************************************************/
11773 S16 cmPkRgrCellCsgParamCfg
11775 RgrCellCsgParamCfg *param,
11779 S16 cmPkRgrCellCsgParamCfg(param, mBuf)
11780 RgrCellCsgParamCfg *param;
11786 CMCHKPK(oduUnpackUInt8, param->minUlResNonCsg, mBuf);
11787 CMCHKPK(oduUnpackUInt8, param->minDlResNonCsg, mBuf);
11792 /***********************************************************
11794 * Func : cmUnpkRgrCellCsgParamCfg
11797 * Desc : Unpacking of RgrCellCsgParamCfg structure
11805 **********************************************************/
11807 S16 cmUnpkRgrCellCsgParamCfg
11809 RgrCellCsgParamCfg *param,
11813 S16 cmUnpkRgrCellCsgParamCfg(param, mBuf)
11814 RgrCellCsgParamCfg *param;
11820 CMCHKUNPK(oduPackUInt8, ¶m->minDlResNonCsg, mBuf);
11821 CMCHKUNPK(oduPackUInt8, ¶m->minUlResNonCsg, mBuf);
11826 /***********************************************************
11828 * Func : cmPkRgrCellCntrlCmdCfg
11831 * Desc : Packing of RgrCellCntrlCmdCfg structure
11839 **********************************************************/
11841 S16 cmPkRgrCellCntrlCmdCfg
11843 RgrCellCntrlCmdCfg *param,
11847 S16 cmPkRgrCellCntrlCmdCfg(param, mBuf)
11848 RgrCellCntrlCmdCfg *param;
11853 switch(param->cmdType)
11855 case RGR_CNTRL_CMD_RACH_OVRLD:
11856 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.rachOvrLd.backOffVal, mBuf);
11857 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.rachOvrLd.backOffEnb, mBuf);
11859 case RGR_CNTRL_CMD_CPU_OVRLD:
11860 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.cpuOvrLd.instruction, mBuf);
11865 CMCHKUNPK(oduUnpackUInt32, param->cmdType, mBuf);
11869 /***********************************************************
11871 * Func : cmUnpkRgrCellCntrlCmdCfg
11874 * Desc : Unpacking of RgrCellCntrlCmdCfg structure
11882 **********************************************************/
11884 S16 cmUnpkRgrCellCntrlCmdCfg
11886 RgrCellCntrlCmdCfg *param,
11890 S16 cmUnpkRgrCellCntrlCmdCfg(param, mBuf)
11891 RgrCellCntrlCmdCfg *param;
11898 CMCHKUNPK(oduPackUInt32, &tmpEnum, mBuf);
11899 param->cmdType = (RgrCellCntrlCmdType) tmpEnum;
11900 switch(param->cmdType)
11902 case RGR_CNTRL_CMD_RACH_OVRLD:
11903 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.rachOvrLd.backOffEnb, mBuf);
11904 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.rachOvrLd.backOffVal, mBuf);
11906 case RGR_CNTRL_CMD_CPU_OVRLD:
11907 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.cpuOvrLd.instruction, mBuf);
11915 #endif /* End of if defined(LCRGR) */
11917 /**********************************************************************
11919 **********************************************************************/