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 **********************************************************/
69 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
70 #if (ERRCLASS & ERRCLS_ADD_RES)
71 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
72 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
73 (ErrVal)ERGR001, (ErrVal)0, "Packing failed");
77 if (SPkS16(spId, mBuf) != ROK) {
78 #if (ERRCLASS & ERRCLS_ADD_RES)
79 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
80 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
81 (ErrVal)ERGR002, (ErrVal)0, "Packing failed");
86 if (SPkS16(suId, mBuf) != ROK) {
87 #if (ERRCLASS & ERRCLS_ADD_RES)
88 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
89 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
90 (ErrVal)ERGR003, (ErrVal)0, "Packing failed");
95 pst->event = (Event) EVTRGRBNDREQ;
96 return (SPstTsk(pst,mBuf));
100 /***********************************************************
102 * Func : cmUnpkRgrBndReq
105 * Desc : Request from RRM to MAC to bind the interface saps
114 **********************************************************/
126 if (SUnpkS16(&suId, mBuf) != ROK) {
128 #if (ERRCLASS & ERRCLS_ADD_RES)
129 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
130 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
131 (ErrVal)ERGR004, (ErrVal)0, "Packing failed");
135 if (SUnpkS16(&spId, mBuf) != ROK) {
137 #if (ERRCLASS & ERRCLS_ADD_RES)
138 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
139 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
140 (ErrVal)ERGR005, (ErrVal)0, "Packing failed");
145 return ((*func)(pst, suId, spId));
149 /***********************************************************
151 * Func : cmPkRgrBndCfm
154 * Desc : Confirmation from MAC to RRM for the bind/Unbind
155 * request for the interface saps
164 **********************************************************/
172 Buffer *mBuf = NULLP;
174 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
175 #if (ERRCLASS & ERRCLS_ADD_RES)
176 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
177 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
178 (ErrVal)ERGR006, (ErrVal)0, "Packing failed");
182 if (oduUnpackUInt8(status, mBuf) != ROK) {
183 #if (ERRCLASS & ERRCLS_ADD_RES)
184 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
185 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
186 (ErrVal)ERGR007, (ErrVal)0, "Packing failed");
191 if (SPkS16(suId, mBuf) != ROK) {
192 #if (ERRCLASS & ERRCLS_ADD_RES)
193 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
194 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
195 (ErrVal)ERGR008, (ErrVal)0, "Packing failed");
200 pst->event = (Event) EVTRGRBNDCFM;
201 return (SPstTsk(pst,mBuf));
205 /***********************************************************
207 * Func : cmUnpkRgrBndCfm
210 * Desc : Confirmation from MAC to RRM for the bind/Unbind
211 * request for the interface saps
220 **********************************************************/
232 if (SUnpkS16(&suId, mBuf) != ROK) {
234 #if (ERRCLASS & ERRCLS_ADD_RES)
235 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
236 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
237 (ErrVal)ERGR009, (ErrVal)0, "Packing failed");
241 if (oduPackUInt8(&status, mBuf) != ROK) {
243 #if (ERRCLASS & ERRCLS_ADD_RES)
244 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
245 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
246 (ErrVal)ERGR010, (ErrVal)0, "Packing failed");
251 return ((*func)(pst, suId, status));
255 /***********************************************************
257 * Func : cmPkRgrUbndReq
260 * Desc : Request from RRM to MAC to Unbind the interface saps
269 **********************************************************/
277 Buffer *mBuf = NULLP;
279 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
280 #if (ERRCLASS & ERRCLS_ADD_RES)
281 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
282 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
283 (ErrVal)ERGR011, (ErrVal)0, "Packing failed");
287 if (SPkS16(reason, mBuf) != ROK) {
288 #if (ERRCLASS & ERRCLS_ADD_RES)
289 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
290 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
291 (ErrVal)ERGR012, (ErrVal)0, "Packing failed");
296 if (SPkS16(spId, mBuf) != ROK) {
297 #if (ERRCLASS & ERRCLS_ADD_RES)
298 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
299 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
300 (ErrVal)ERGR013, (ErrVal)0, "Packing failed");
305 pst->event = (Event) EVTRGRUBNDREQ;
306 return (SPstTsk(pst,mBuf));
310 /***********************************************************
312 * Func : cmUnpkRgrUbndReq
315 * Desc : Request from RRM to MAC to Unbind the interface saps
324 **********************************************************/
336 if (SUnpkS16(&spId, mBuf) != ROK) {
338 #if (ERRCLASS & ERRCLS_ADD_RES)
339 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
340 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
341 (ErrVal)ERGR014, (ErrVal)0, "Packing failed");
345 if (SUnpkS16(&reason, mBuf) != ROK) {
347 #if (ERRCLASS & ERRCLS_ADD_RES)
348 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
349 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
350 (ErrVal)ERGR015, (ErrVal)0, "Packing failed");
355 return ((*func)(pst, spId, reason));
359 /***********************************************************
361 * Func : cmUnpkRgrCfgReq
364 * Desc : Configuration Request from RRM to MAC for
365 * configuring Cell/Ue/Lc
374 **********************************************************/
382 RgrCfgTransId transId;
383 RgrCfgReqInfo *cfgReqInfo;
386 if (SUnpkS16(&spId, mBuf) != ROK) {
388 #if (ERRCLASS & ERRCLS_ADD_RES)
389 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
390 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
391 (ErrVal)ERGR021, (ErrVal)0, "Packing failed");
397 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
399 #if (ERRCLASS & ERRCLS_ADD_RES)
400 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
401 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
402 (ErrVal)ERGR022, (ErrVal)0, "Packing failed");
406 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&cfgReqInfo,sizeof(RgrCfgReqInfo))) != ROK) {
407 #if (ERRCLASS & ERRCLS_ADD_RES)
408 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
409 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
410 (ErrVal)ERGR023, (ErrVal)0, "Packing failed");
415 memset(cfgReqInfo, 0, sizeof(RgrCfgReqInfo));
416 if (pst->selector == ODU_SELECTOR_LC)
417 if (cmUnpkRgrCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
418 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(RgrCfgReqInfo));
420 #if (ERRCLASS & ERRCLS_ADD_RES)
421 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
422 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
423 (ErrVal)ERGR024, (ErrVal)0, "Packing failed");
428 return ((*func)(pst, transId, cfgReqInfo));
431 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
433 /***********************************************************
435 * Func : cmPkRgrTtiIndInfo
438 * Desc : Packs the TTI indication information.
447 **********************************************************/
448 S16 cmPkRgrTtiIndInfo
450 RgrTtiIndInfo *param,
454 CMCHKPK(oduUnpackUInt16, param->sfn, mBuf);
455 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
459 /***********************************************************
461 * Func : cmUnpkRgrTtiIndInfo
464 * Desc : Unpacking for RgrTtiIndInfo
472 **********************************************************/
473 S16 cmUnpkRgrTtiIndInfo
475 RgrTtiIndInfo *param,
480 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
481 CMCHKUNPK(oduPackUInt16, ¶m->sfn, mBuf);
486 /***********************************************************
488 * Func : cmPkRgrTtiInd
491 * Desc : TTI indication from MAC to RRM
500 **********************************************************/
505 RgrTtiIndInfo *ttiInd
508 Buffer *mBuf = NULLP;
510 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
511 #if (ERRCLASS & ERRCLS_ADD_RES)
512 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
513 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
514 (ErrVal)ERGR025, (ErrVal)0, "Packing failed");
518 if (cmPkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
519 #if (ERRCLASS & ERRCLS_ADD_RES)
520 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
521 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
522 (ErrVal)ERGR026, (ErrVal)0, "Packing failed");
524 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
528 if (SPkS16(suId, mBuf) != ROK) {
529 #if (ERRCLASS & ERRCLS_ADD_RES)
530 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
531 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
532 (ErrVal)ERGR027, (ErrVal)0, "Packing failed");
534 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
538 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd, sizeof(RgrTtiIndInfo));
539 pst->event = (Event) EVTRGRTTIIND;
540 return (SPstTsk(pst,mBuf));
544 /***********************************************************
546 * Func : cmUnpkRgrTtiInd
549 * Desc : TTI indication from MAC to RRM
558 **********************************************************/
567 RgrTtiIndInfo *ttiInd;
570 if (SUnpkS16(&suId, mBuf) != ROK) {
572 #if (ERRCLASS & ERRCLS_ADD_RES)
573 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
574 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
575 (ErrVal)ERGR028, (ErrVal)0, "Packing failed");
579 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ttiInd, sizeof(RgrTtiIndInfo))) != ROK)
581 #if (ERRCLASS & ERRCLS_ADD_RES)
582 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
583 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
584 (ErrVal)ERGR029, (ErrVal)0, "UnPacking failed");
590 if (cmUnpkRgrTtiIndInfo(ttiInd, mBuf) != ROK) {
591 /*ccpu00114888- Memory Leak issue- Start*/
592 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ttiInd,
593 sizeof(RgrTtiIndInfo));
594 /*ccpu00114888- Memory Leak issue- End*/
596 #if (ERRCLASS & ERRCLS_ADD_RES)
597 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
598 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
599 (ErrVal)ERGR030, (ErrVal)0, "Packing failed");
604 return ((*func)(pst, suId, ttiInd));
608 /***********************************************************
610 * Func : cmPkRgrCfgCfm
613 * Desc : Configuration Confirm from MAC to RRM
622 **********************************************************/
626 RgrCfgTransId transId,
630 Buffer *mBuf = NULLP;
632 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
633 #if (ERRCLASS & ERRCLS_ADD_RES)
634 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
635 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
636 (ErrVal)ERGR031, (ErrVal)0, "Packing failed");
640 if (oduUnpackUInt8(status, mBuf) != ROK) {
641 #if (ERRCLASS & ERRCLS_ADD_RES)
642 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
643 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
644 (ErrVal)ERGR032, (ErrVal)0, "Packing failed");
649 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
650 #if (ERRCLASS & ERRCLS_ADD_RES)
651 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
652 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
653 (ErrVal)ERGR033, (ErrVal)0, "Packing failed");
658 pst->event = (Event) EVTMACSCHCFGCFM;
659 return (SPstTsk(pst,mBuf));
663 /***********************************************************
665 * Func : cmUnpkRgrCfgCfm
668 * Desc : Configuration Confirm from MAC to RRM
677 **********************************************************/
685 RgrCfgTransId transId;
689 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
691 #if (ERRCLASS & ERRCLS_ADD_RES)
692 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
693 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
694 (ErrVal)ERGR036, (ErrVal)0, "Packing failed");
698 if (oduPackUInt8(&status, mBuf) != ROK) {
700 #if (ERRCLASS & ERRCLS_ADD_RES)
701 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
702 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
703 (ErrVal)ERGR037, (ErrVal)0, "Packing failed");
708 return ((*func)(pst, transId, status));
711 /* rgr_c_001.main_4: ADD-Added for SI Enhancement. */
713 /***********************************************************
715 * Func : cmPkRgrSiCfgCfm
718 * Desc : SI Configuration Confirm from MAC to RRM
727 **********************************************************/
732 RgrCfgTransId transId,
736 Buffer *mBuf = NULLP;
739 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
740 #if (ERRCLASS & ERRCLS_ADD_RES)
741 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
742 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
743 (ErrVal)ERGR038, (ErrVal)0, "Packing failed");
747 if (oduUnpackUInt8(status, mBuf) != ROK) {
748 #if (ERRCLASS & ERRCLS_ADD_RES)
749 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
750 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
751 (ErrVal)ERGR039, (ErrVal)0, "Packing failed");
756 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
757 #if (ERRCLASS & ERRCLS_ADD_RES)
758 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
759 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
760 (ErrVal)ERGR040, (ErrVal)0, "Packing failed");
765 if (SPkS16(suId, mBuf) != ROK) {
766 #if (ERRCLASS & ERRCLS_ADD_RES)
767 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
768 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
769 (ErrVal)ERGR041, (ErrVal)0, "Packing failed");
775 pst->event = (Event) EVTRGRSICFGCFM;
776 return (SPstTsk(pst,mBuf));
780 /***********************************************************
782 * Func : cmUnpkRgrSiCfgCfm
785 * Desc : Configuration Confirm from MAC to RRM
794 **********************************************************/
795 S16 cmUnpkRgrSiCfgCfm
803 RgrCfgTransId transId;
807 if (SUnpkS16(&suId, mBuf) != ROK) {
809 #if (ERRCLASS & ERRCLS_ADD_RES)
810 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
811 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
812 (ErrVal)ERGR042, (ErrVal)0, "Packing failed");
816 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
818 #if (ERRCLASS & ERRCLS_ADD_RES)
819 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
820 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
821 (ErrVal)ERGR043, (ErrVal)0, "Packing failed");
825 if (oduPackUInt8(&status, mBuf) != ROK) {
827 #if (ERRCLASS & ERRCLS_ADD_RES)
828 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
829 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
830 (ErrVal)ERGR044, (ErrVal)0, "Packing failed");
835 return ((*func)(pst, suId, transId, status));
840 /***********************************************************
842 * Func : cmPkRgrCfgTransId
845 * Desc : Transaction ID between MAC and RRM
854 **********************************************************/
855 S16 cmPkRgrCfgTransId
857 RgrCfgTransId *param,
864 for (i=RGR_CFG_TRANSID_SIZE-1; i >= 0; i--) {
865 CMCHKPK(oduUnpackUInt8, param->trans[i], mBuf);
872 /***********************************************************
874 * Func : cmUnpkRgrCfgTransId
877 * Desc : Transaction ID between MAC and RRM
886 **********************************************************/
887 S16 cmUnpkRgrCfgTransId
889 RgrCfgTransId *param,
896 for (i=0; i<RGR_CFG_TRANSID_SIZE; i++) {
897 CMCHKUNPK(oduPackUInt8, ¶m->trans[i], mBuf);
904 /***********************************************************
906 * Func : cmPkRgrDlHqCfg
909 * Desc : Downlink HARQ configuration per Cell
918 **********************************************************/
927 CMCHKPK(oduUnpackUInt8, param->maxMsg4HqTx, mBuf);
928 CMCHKPK(oduUnpackUInt8, param->maxDlHqTx, mBuf);
934 /***********************************************************
936 * Func : cmUnpkRgrDlHqCfg
939 * Desc : Downlink HARQ configuration per Cell
948 **********************************************************/
957 CMCHKUNPK(oduPackUInt8, ¶m->maxDlHqTx, mBuf);
958 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg4HqTx, mBuf);
964 /***********************************************************
966 * Func : cmPkRgrRntiCfg
969 * Desc : Range of RNTIs managed by MAC
978 **********************************************************/
986 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
987 CMCHKPK(cmPkLteRnti, param->startRnti, mBuf);
993 /***********************************************************
995 * Func : cmUnpkRgrRntiCfg
998 * Desc : Range of RNTIs managed by MAC
1007 **********************************************************/
1008 S16 cmUnpkRgrRntiCfg
1016 CMCHKUNPK(cmUnpkLteRnti, ¶m->startRnti, mBuf);
1017 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
1022 /***********************************************************
1024 * Func : cmPkRgrEmtcRntiCfg
1027 * Desc : Range of Emtc RNTIs managed by MAC
1036 **********************************************************/
1037 S16 cmPkRgrEmtcRntiCfg
1039 RgrEmtcRntiCfg *param,
1045 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
1046 CMCHKPK(cmPkLteRnti, param->rntiCeModeBRange, mBuf);
1047 CMCHKPK(cmPkLteRnti, param->rntiCeModeBStart, mBuf);
1048 CMCHKPK(cmPkLteRnti, param->rntiCeModeARange, mBuf);
1049 CMCHKPK(cmPkLteRnti, param->rntiCeModeAStart, mBuf);
1055 /***********************************************************
1057 * Func : cmUnpkRgrEmtcRntiCfg
1060 * Desc : Range of Emtc RNTIs managed by MAC
1069 **********************************************************/
1070 S16 cmUnpkRgrEmtcRntiCfg
1072 RgrEmtcRntiCfg *param,
1078 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeAStart, mBuf);
1079 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeARange, mBuf);
1080 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeBStart, mBuf);
1081 CMCHKUNPK(cmUnpkLteRnti, ¶m->rntiCeModeBRange, mBuf);
1082 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
1089 /***********************************************************
1091 * Func : cmPkRgrDlCmnCodeRateCfg
1094 * Desc : Downlink common channel code rate configuration per cell
1103 **********************************************************/
1104 S16 cmPkRgrDlCmnCodeRateCfg
1106 RgrDlCmnCodeRateCfg *param,
1111 CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
1112 CMCHKPK(oduUnpackUInt16, param->pdcchCodeRate, mBuf);
1113 CMCHKPK(oduUnpackUInt16, param->bcchPchRaCodeRate, mBuf);
1119 /***********************************************************
1121 * Func : cmUnpkRgrDlCmnCodeRateCfg
1124 * Desc : Downlink common channel code rate configuration per cell
1133 **********************************************************/
1134 S16 cmUnpkRgrDlCmnCodeRateCfg
1136 RgrDlCmnCodeRateCfg *param,
1141 CMCHKUNPK(oduPackUInt16, ¶m->bcchPchRaCodeRate, mBuf);
1142 CMCHKUNPK(oduPackUInt16, ¶m->pdcchCodeRate, mBuf);
1143 CMCHKUNPK(oduPackUInt8, ¶m->ccchCqi, mBuf);
1149 /***********************************************************
1151 * Func : cmPkRgrCfiCfg
1154 * Desc : Control Format Indicator (CFI) configuration per cell
1163 **********************************************************/
1170 CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
1176 /***********************************************************
1178 * Func : cmUnpkRgrCfiCfg
1181 * Desc : Control Format Indicator (CFI) configuration per cell
1190 **********************************************************/
1198 CMCHKUNPK(oduPackUInt8, ¶m->cfi, mBuf);
1204 /***********************************************************
1206 * Func : cmPkRgrPuschSubBandCfg
1209 * Desc : PUSCH sub-band configuration per cell
1218 **********************************************************/
1219 S16 cmPkRgrPuschSubBandCfg
1221 RgrPuschSubBandCfg *param,
1228 for (i=param->numSubbands-1; i >= 0; i--) {
1229 CMCHKPK(oduUnpackUInt8, param->dmrs[i], mBuf);
1231 CMCHKPK(oduUnpackUInt8, param->size, mBuf);
1232 CMCHKPK(oduUnpackUInt8, param->numSubbands, mBuf);
1233 CMCHKPK(oduUnpackUInt8, param->subbandStart, mBuf);
1239 /***********************************************************
1241 * Func : cmUnpkRgrPuschSubBandCfg
1244 * Desc : PUSCH sub-band configuration per cell
1253 **********************************************************/
1254 S16 cmUnpkRgrPuschSubBandCfg
1256 RgrPuschSubBandCfg *param,
1262 CMCHKUNPK(oduPackUInt8, ¶m->subbandStart, mBuf);
1263 CMCHKUNPK(oduPackUInt8, ¶m->numSubbands, mBuf);
1264 CMCHKUNPK(oduPackUInt8, ¶m->size, mBuf);
1265 for (i=0; i<param->numSubbands; i++) {
1266 CMCHKUNPK(oduPackUInt8, ¶m->dmrs[i], mBuf);
1273 /***********************************************************
1275 * Func : cmPkRgrUlCmnCodeRateCfg
1278 * Desc : Uplink common channel code rate configuration per cell
1287 **********************************************************/
1288 S16 cmPkRgrUlCmnCodeRateCfg
1290 RgrUlCmnCodeRateCfg *param,
1294 CMCHKPK(oduUnpackUInt8, param->ccchCqi, mBuf);
1300 /***********************************************************
1302 * Func : cmUnpkRgrUlCmnCodeRateCfg
1305 * Desc : Uplink common channel code rate configuration per cell
1314 **********************************************************/
1315 S16 cmUnpkRgrUlCmnCodeRateCfg
1317 RgrUlCmnCodeRateCfg *param,
1322 CMCHKUNPK(oduPackUInt8, ¶m->ccchCqi, mBuf);
1328 /***********************************************************
1330 * Func : cmPkRgrUlTrgCqiCfg
1333 * Desc : Target Uplink CQI to achieve through group power control configured per cell
1342 **********************************************************/
1343 S16 cmPkRgrUlTrgCqiCfg
1345 RgrUlTrgCqiCfg *param,
1349 CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
1355 /***********************************************************
1357 * Func : cmUnpkRgrUlTrgCqiCfg
1360 * Desc : Target Uplink CQI to achieve through group power control configured per cell
1369 **********************************************************/
1370 S16 cmUnpkRgrUlTrgCqiCfg
1372 RgrUlTrgCqiCfg *param,
1377 CMCHKUNPK(oduPackUInt8, ¶m->trgCqi, mBuf);
1383 /***********************************************************
1385 * Func : cmPkRgrBwCfg
1388 * Desc : Bandwidth configuration per cell
1397 **********************************************************/
1405 CMCHKPK(oduUnpackUInt8, param->ulTotalBw, mBuf);
1406 CMCHKPK(oduUnpackUInt8, param->dlTotalBw, mBuf);
1412 /* EMTC related pack changes start*/
1414 S16 cmPkRgrEmtcSiCfg
1416 RgrEmtcSiCfg *param,
1423 CMCHKPK(oduUnpackUInt8, param->siHoppingEnable, mBuf);
1424 CMCHKPK(oduUnpackUInt32, param->modPrd, mBuf);
1425 CMCHKPK(oduUnpackUInt8, param->siWinSizeBr, mBuf);
1426 CMCHKPK(oduUnpackUInt8, param->sib1Repetition, mBuf);
1427 CMCHKPK(oduUnpackUInt8, param->siRepetition, mBuf);
1429 CMCHKPK(oduUnpackUInt16, param->startSymbolLc, mBuf);
1430 //CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1431 /*Changes by SIMRAN*/
1432 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
1434 CMCHKPK(oduUnpackUInt16, param->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
1438 //CMCHKPK(SPkU64,param->fddDLOrTddSfBitmapLC.u.ptn40, mBuf);
1439 for (i=0; i<2; i++) {
1440 CMCHKPK(oduUnpackUInt32, param->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1444 CMCHKPK(oduUnpackUInt8, param->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1445 //CMCHKPK(oduUnpackUInt16, param->fddDlOrTddSfBitmapBR, mBuf);
1447 for (i= (param->numSi-1); i >= 0; i--) {
1448 CMCHKPK(oduUnpackUInt8, param->schdInfo[i].emtcSiNarrowBand, mBuf);
1449 CMCHKPK(oduUnpackUInt16, param->schdInfo[i].emtcSiTbs, mBuf);
1452 for (i= (param->numSi-1); i >= 0; i--) {
1453 CMCHKPK(oduUnpackUInt32, param->siPeriodicity[i], mBuf);
1456 CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
1464 S16 cmPkRgrEmtcRachCfg
1466 RgrEmtcRachCfg *param,
1473 CMCHKPK(oduUnpackUInt8, param->emtcCeLvlSupported, mBuf);
1475 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1476 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcRarHopping, mBuf);
1477 CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcWinSize, mBuf);
1478 CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].raEmtcContResTmr, mBuf);
1479 CMCHKPK(oduUnpackUInt16, param->ceLevelInfo[i].emtcPreambleTransMax, mBuf);
1480 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.firstPreamble, mBuf);
1481 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcPreambleMap.lastPreamble, mBuf);
1488 S16 cmPkRgrEmtcPdschCfg
1490 RgrEmtcPdschCfg*param,
1495 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
1496 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
1501 S16 cmPkRgrEmtcPuschCfg
1503 RgrEmtcPuschCfg*param,
1507 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeA, mBuf);
1508 CMCHKPK(oduUnpackUInt16, param->emtcMaxRepCeModeB, mBuf);
1509 CMCHKPK(oduUnpackUInt8, param->emtcHoppingOffset, mBuf);
1515 S16 cmPkRgrEmtcPucchCfg
1517 RgrEmtcPucchCfg *param,
1523 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--)
1525 CMCHKPK(oduUnpackUInt16, param->emtcN1pucchAnInfoLst[i], mBuf);
1528 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl0, mBuf);
1529 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl1, mBuf);
1530 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl2, mBuf);
1531 CMCHKPK(oduUnpackUInt8, param->emtcPucchNumRepCEMsg4Lvl3, mBuf);
1537 S16 cmPkRgrEmtcPrachCeParamCfg
1539 RgrEmtcPrachCEParamLst *param,
1543 CMCHKPK(oduUnpackUInt8, param->emtcPrachCfgIdx, mBuf);
1544 CMCHKPK(oduUnpackUInt8, param->emtcPrachFreqOffset, mBuf);
1545 CMCHKPK(oduUnpackUInt16, param->emtcPrachStartSubFrame, mBuf);
1546 CMCHKPK(oduUnpackUInt8, param->emtcMaxPremAttemptCE, mBuf);
1547 CMCHKPK(oduUnpackUInt8, param->emtcNumRepPerPreambleAtt, mBuf);
1548 CMCHKPK(oduUnpackUInt8, param->emtcNumMpdcchNBtoMonitor, mBuf);
1549 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNBtoMonitor[0], mBuf);
1550 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNBtoMonitor[1], mBuf);
1551 CMCHKPK(oduUnpackUInt16, param->emtcMpdcchNumRep, mBuf);
1552 CMCHKPK(oduUnpackUInt8, param->emtcPrachHoppingCfg, mBuf);
1558 S16 cmPkRgrEmtcPrachCfg
1560 RgrEmtcPrachCfg *param,
1566 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchStartSFCssRaFdd, mBuf);
1567 CMCHKPK(oduUnpackUInt8, param->emtcPrachHopingOffset, mBuf);
1568 CMCHKPK(oduUnpackUInt8, param->emtcInitialCElevel, mBuf);
1569 for (i=RGR_MAX_CE_LEVEL-1; i >= 0; i--) {
1570 CMCHKPK(cmPkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
1581 RgrEmtcCellCfg *param,
1585 CMCHKPK(oduUnpackUInt16, param->pci, mBuf);
1586 CMCHKPK(oduUnpackUInt32, param->emtcT300Tmr, mBuf);
1587 CMCHKPK(oduUnpackUInt32, param->emtcT301Tmr, mBuf);
1588 CMCHKPK(cmPkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
1589 CMCHKPK(cmPkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
1590 CMCHKPK(cmPkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
1591 CMCHKPK(cmPkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
1592 CMCHKPK(cmPkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
1593 CMCHKPK(cmPkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
1594 CMCHKPK(cmPkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
1595 CMCHKPK(oduUnpackUInt8, param->emtcPdschNbIdx, mBuf);
1596 CMCHKPK(oduUnpackUInt8, param->emtcMpdcchNbIdx, mBuf);
1597 CMCHKPK(oduUnpackUInt8, param->emtcPuschNbIdx, mBuf);
1602 /* EMTC related pack changes end*/
1604 /* EMTC related unpack changes start*/
1606 S16 cmUnpkRgrEmtcSiCfg
1608 RgrEmtcSiCfg *param,
1615 CMCHKUNPK(oduPackUInt8, ¶m->numSi, mBuf);
1617 for (i=0; i < param->numSi ; i++)
1619 CMCHKUNPK(oduPackUInt32,(uint32_t*)&tmpEnum,mBuf);
1620 param->siPeriodicity[i] = (RgrSiPeriodicity) tmpEnum;
1623 for (i=0; i < param->numSi ; i++)
1625 CMCHKUNPK(oduPackUInt16, ¶m->schdInfo[i].emtcSiTbs, mBuf);
1626 CMCHKUNPK(oduPackUInt8, ¶m->schdInfo[i].emtcSiNarrowBand, mBuf);
1628 //CMCHKUNPK(oduPackUInt16, ¶m->fddDlOrTddSfBitmapBR, mBuf);
1629 CMCHKUNPK(oduPackUInt8, ¶m->fddDLOrTddSfBitmapLC.sfnPtnChoice, mBuf);
1630 /*Changes by SIMRAN*/
1631 if(!(param->fddDLOrTddSfBitmapLC.sfnPtnChoice))
1633 CMCHKUNPK(oduPackUInt16, ¶m->fddDLOrTddSfBitmapLC.u.ptn10, mBuf);
1637 for (i=1; i>=0; i--) {
1638 CMCHKUNPK(oduPackUInt32, ¶m->fddDLOrTddSfBitmapLC.u.ptn40[i], mBuf);
1642 CMCHKUNPK(oduPackUInt16, ¶m->startSymbolLc, mBuf);
1643 CMCHKUNPK(oduPackUInt8, ¶m->siRepetition, mBuf);
1644 CMCHKUNPK(oduPackUInt8, ¶m->sib1Repetition, mBuf);
1645 CMCHKUNPK(oduPackUInt8, ¶m->siWinSizeBr, mBuf);
1646 CMCHKUNPK(oduPackUInt32, (uint32_t*)&tmpEnum, mBuf);
1647 param->modPrd = (RgrModPeriodicity) tmpEnum;
1648 CMCHKUNPK(oduPackUInt8, ¶m->siHoppingEnable, mBuf);
1656 S16 cmUnpkRgrEmtcRachCfg
1658 RgrEmtcRachCfg *param,
1664 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
1665 CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.lastPreamble), mBuf);
1666 CMCHKUNPK(oduPackUInt8, &(param->ceLevelInfo[i].emtcPreambleMap.firstPreamble), mBuf);
1667 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].emtcPreambleTransMax), mBuf);
1668 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcContResTmr), mBuf);
1669 CMCHKUNPK(oduPackUInt16, &(param->ceLevelInfo[i].raEmtcWinSize), mBuf);
1670 CMCHKUNPK(oduPackUInt8,&(param->ceLevelInfo[i].emtcRarHopping), mBuf);
1672 CMCHKUNPK(oduPackUInt8, ¶m->emtcCeLvlSupported, mBuf);
1677 S16 cmUnpkRgrEmtcPdschCfg
1679 RgrEmtcPdschCfg*param,
1684 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1685 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1689 S16 cmUnpkRgrEmtcPuschCfg
1691 RgrEmtcPuschCfg*param,
1695 CMCHKUNPK(oduPackUInt8, ¶m->emtcHoppingOffset, mBuf);
1696 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeB, mBuf);
1697 CMCHKUNPK(oduPackUInt16, ¶m->emtcMaxRepCeModeA, mBuf);
1703 S16 cmUnpkRgrEmtcPucchCfg
1705 RgrEmtcPucchCfg *param,
1713 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl3, mBuf);
1714 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl2, mBuf);
1715 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl1, mBuf);
1716 CMCHKUNPK(oduPackUInt8, ¶m->emtcPucchNumRepCEMsg4Lvl0, mBuf);
1718 for (i=0; i < RGR_MAX_CE_LEVEL ; i++) {
1719 CMCHKUNPK(oduPackUInt16, ¶m->emtcN1pucchAnInfoLst[i], mBuf);
1725 S16 cmUnpkRgrEmtcPrachCeParamCfg
1727 RgrEmtcPrachCEParamLst *param,
1731 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachHoppingCfg, mBuf);
1732 CMCHKUNPK(oduPackUInt16, ¶m->emtcMpdcchNumRep, mBuf);
1733 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNBtoMonitor[1], mBuf);
1734 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNBtoMonitor[0], mBuf);
1735 CMCHKUNPK(oduPackUInt8, ¶m->emtcNumMpdcchNBtoMonitor, mBuf);
1736 CMCHKUNPK(oduPackUInt8, ¶m->emtcNumRepPerPreambleAtt, mBuf);
1737 CMCHKUNPK(oduPackUInt8, ¶m->emtcMaxPremAttemptCE, mBuf);
1738 CMCHKUNPK(oduPackUInt16, ¶m->emtcPrachStartSubFrame, mBuf);
1739 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachFreqOffset, mBuf);
1740 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachCfgIdx, mBuf);
1746 S16 cmUnpkRgrEmtcPrachCfg
1748 RgrEmtcPrachCfg *param,
1754 for (i=0; i < RGR_MAX_CE_LEVEL; i++) {
1755 CMCHKUNPK(cmUnpkRgrEmtcPrachCeParamCfg, ¶m->emtcPrachCEparmLst[i], mBuf);
1757 CMCHKUNPK(oduPackUInt8, ¶m->emtcInitialCElevel, mBuf);
1758 CMCHKUNPK(oduPackUInt8, ¶m->emtcPrachHopingOffset, mBuf);
1759 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchStartSFCssRaFdd, mBuf);
1764 S16 cmUnpkRgrEmtcCfg
1766 RgrEmtcCellCfg *param,
1771 CMCHKUNPK(oduPackUInt8, ¶m->emtcPuschNbIdx, mBuf);
1772 CMCHKUNPK(oduPackUInt8, ¶m->emtcMpdcchNbIdx, mBuf);
1773 CMCHKUNPK(oduPackUInt8, ¶m->emtcPdschNbIdx, mBuf);
1774 CMCHKUNPK(cmUnpkRgrEmtcRntiCfg, ¶m->emtcMacRnti, mBuf);
1775 CMCHKUNPK(cmUnpkRgrEmtcPucchCfg, ¶m->emtcPucchCfg, mBuf);
1776 CMCHKUNPK(cmUnpkRgrEmtcPrachCfg, ¶m->emtcPrachCfg, mBuf);
1777 CMCHKUNPK(cmUnpkRgrEmtcPuschCfg, ¶m->emtcPuschCfg, mBuf);
1778 CMCHKUNPK(cmUnpkRgrEmtcPdschCfg, ¶m->emtcPdschCfg, mBuf);
1779 CMCHKUNPK(cmUnpkRgrEmtcRachCfg, ¶m->emtcRachCfg, mBuf);
1780 CMCHKUNPK(cmUnpkRgrEmtcSiCfg, ¶m->emtcSiCfg, mBuf);
1781 CMCHKUNPK(oduPackUInt32,¶m->emtcT301Tmr, mBuf);
1782 CMCHKUNPK(oduPackUInt32, ¶m->emtcT300Tmr, mBuf);
1783 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
1792 /* EMTC related unpack changes end*/
1798 /***********************************************************
1800 * Func : cmUnpkRgrBwCfg
1803 * Desc : Bandwidth configuration per cell
1812 **********************************************************/
1820 CMCHKUNPK(oduPackUInt8, ¶m->dlTotalBw, mBuf);
1821 CMCHKUNPK(oduPackUInt8, ¶m->ulTotalBw, mBuf);
1827 /***********************************************************
1829 * Func : cmPkRgrPhichCfg
1832 * Desc : PHICH configuration per cell
1841 **********************************************************/
1849 CMCHKPK(oduUnpackUInt8, param->isDurExtend, mBuf);
1850 CMCHKPK(oduUnpackUInt32, param->ngEnum, mBuf);
1856 /***********************************************************
1858 * Func : cmUnpkRgrPhichCfg
1861 * Desc : PHICH configuration per cell
1870 **********************************************************/
1871 S16 cmUnpkRgrPhichCfg
1880 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
1881 param->ngEnum = (RgrPhichNg) tmpEnum;
1882 CMCHKUNPK(oduPackUInt8, ¶m->isDurExtend, mBuf);
1888 /***********************************************************
1890 * Func : cmPkRgrPucchCfg
1893 * Desc : PUCCH configuration per cell
1902 **********************************************************/
1910 CMCHKPK(oduUnpackUInt8, param->maxPucchRb, mBuf);
1911 CMCHKPK(oduUnpackUInt8, param->cyclicShift, mBuf);
1912 CMCHKPK(oduUnpackUInt8, param->deltaShift, mBuf);
1913 CMCHKPK(oduUnpackUInt16, param->n1PucchAn, mBuf);
1914 CMCHKPK(oduUnpackUInt8, param->resourceSize, mBuf);
1921 /***********************************************************
1923 * Func : cmUnpkRgrPucchCfg
1926 * Desc : PUCCH configuration per cell
1935 **********************************************************/
1936 S16 cmUnpkRgrPucchCfg
1943 CMCHKUNPK(oduPackUInt8, ¶m->resourceSize, mBuf);
1944 CMCHKUNPK(oduPackUInt16, ¶m->n1PucchAn, mBuf);
1945 CMCHKUNPK(oduPackUInt8, ¶m->deltaShift, mBuf);
1946 CMCHKUNPK(oduPackUInt8, ¶m->cyclicShift, mBuf);
1947 CMCHKUNPK(oduPackUInt8, ¶m->maxPucchRb, mBuf);
1954 /***********************************************************
1956 * Func : cmPkRgrSrsCfg
1959 * Desc : SRS configuration per cell
1968 **********************************************************/
1977 CMCHKPK(oduUnpackUInt8, param->srsSubFrameCfg, mBuf);
1978 CMCHKPK(oduUnpackUInt32, param->srsBwEnum, mBuf);
1979 CMCHKPK(oduUnpackUInt32, param->srsCfgPrdEnum, mBuf);
1980 CMCHKPK(oduUnpackUInt8, param->isSrsCfgSetup, mBuf);
1986 /***********************************************************
1988 * Func : cmUnpkRgrSrsCfg
1991 * Desc : SRS configuration per cell
2000 **********************************************************/
2009 CMCHKUNPK(oduPackUInt8, ¶m->isSrsCfgSetup, mBuf);
2010 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2011 param->srsCfgPrdEnum = (RgrSrsCfgPrd) tmpEnum;
2012 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2013 param->srsBwEnum = (RgrSrsBwCfg) tmpEnum;
2014 CMCHKUNPK(oduPackUInt8, ¶m->srsSubFrameCfg, mBuf);
2020 /***********************************************************
2022 * Func : cmPkRgrRachCfg
2025 * Desc : RACH configuration per cell
2034 **********************************************************/
2044 CMCHKPK(oduUnpackUInt8, param->prachResource, mBuf);
2045 CMCHKPK(oduUnpackUInt16, param->msgSizeGrpA, mBuf);
2046 CMCHKPK(oduUnpackUInt8, param->sizeRaPreambleGrpA, mBuf);
2047 CMCHKPK(oduUnpackUInt8, param->numRaPreamble, mBuf);
2048 CMCHKPK(oduUnpackUInt8, param->maxMsg3Tx, mBuf);
2049 for (i=param->raOccasion.size-1; i >= 0; i--) {
2050 CMCHKPK(oduUnpackUInt8, param->raOccasion.subFrameNum[i], mBuf);
2052 CMCHKPK(oduUnpackUInt32, param->raOccasion.sfnEnum, mBuf);
2053 CMCHKPK(oduUnpackUInt8, param->raOccasion.size, mBuf);
2054 CMCHKPK(oduUnpackUInt8, param->raWinSize, mBuf);
2055 CMCHKPK(oduUnpackUInt8, param->preambleFormat, mBuf);
2057 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
2058 * timer configuration */
2059 CMCHKPK(oduUnpackUInt8, param->contResTmr, mBuf);
2066 /***********************************************************
2068 * Func : cmUnpkRgrRachCfg
2071 * Desc : RACH configuration per cell
2080 **********************************************************/
2081 S16 cmUnpkRgrRachCfg
2091 /* rgr_c_001.main_5: cccpu00112372: Added contention resolution
2092 * timer configuration */
2093 CMCHKUNPK(oduPackUInt8, ¶m->contResTmr, mBuf);
2095 CMCHKUNPK(oduPackUInt8, ¶m->preambleFormat, mBuf);
2096 CMCHKUNPK(oduPackUInt8, ¶m->raWinSize, mBuf);
2097 CMCHKUNPK(oduPackUInt8, ¶m->raOccasion.size, mBuf);
2098 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2099 param->raOccasion.sfnEnum = (RgrRaSfn) tmpEnum;
2100 for (i=0; i<param->raOccasion.size; i++) {
2101 CMCHKUNPK(oduPackUInt8, ¶m->raOccasion.subFrameNum[i], mBuf);
2103 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg3Tx, mBuf);
2104 CMCHKUNPK(oduPackUInt8, ¶m->numRaPreamble, mBuf);
2105 CMCHKUNPK(oduPackUInt8, ¶m->sizeRaPreambleGrpA, mBuf);
2106 CMCHKUNPK(oduPackUInt16, ¶m->msgSizeGrpA, mBuf);
2107 CMCHKUNPK(oduPackUInt8, ¶m->prachResource, mBuf);
2113 /***********************************************************
2115 * Func : cmPkRgrSiCfg
2118 * Desc : SI Configuration per cell
2127 **********************************************************/
2134 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
2137 #endif/*RGR_SI_SCH*/
2141 if(param->numSi > sizeof(param->siPeriodicity)/
2142 sizeof(param->siPeriodicity[0]))
2143 param->numSi = sizeof(param->siPeriodicity)/
2144 sizeof(param->siPeriodicity[0]);
2146 for (idx=param->numSi-1; idx >= 0; idx--) {
2147 /* Enum to be packed/unpacked as uint32_t instead of S32 */
2148 CMCHKPK(oduUnpackUInt32, param->siPeriodicity[idx], mBuf);
2150 CMCHKPK(oduUnpackUInt8, param->numSi, mBuf);
2151 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
2152 CMCHKPK(oduUnpackUInt32, (uint32_t)param->modPrd, mBuf);
2153 #endif/*RGR_SI_SCH*/
2154 CMCHKPK(oduUnpackUInt8, param->retxCnt, mBuf);
2155 CMCHKPK(oduUnpackUInt8, param->siWinSize, mBuf);
2161 /***********************************************************
2163 * Func : cmUnpkRgrSiCfg
2166 * Desc : SI Configuration per cell
2175 **********************************************************/
2183 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
2186 #endif/*RGR_SI_SCH*/
2189 CMCHKUNPK(oduPackUInt8, ¶m->siWinSize, mBuf);
2190 CMCHKUNPK(oduPackUInt8, ¶m->retxCnt, mBuf);
2192 /*rgr_c_001.main_9 ccpu00115364 MOD changed modPrd to enum*/
2193 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2194 param->modPrd = (RgrModPeriodicity) tmpEnum;
2195 CMCHKUNPK(oduPackUInt8, ¶m->numSi, mBuf);
2197 if(param->numSi > sizeof(param->siPeriodicity)/
2198 sizeof(param->siPeriodicity[0]))
2199 param->numSi = sizeof(param->siPeriodicity)/
2200 sizeof(param->siPeriodicity[0]);
2202 /* Enum to be packed/unpacked as uint32_t instead of S32 */
2203 for (idx=0; idx < param->numSi; idx++) {
2204 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2205 param->siPeriodicity[idx] = (RgrSiPeriodicity) tmpEnum;
2207 #endif/*RGR_SI_SCH*/
2214 /***********************************************************
2216 * Func : cmPkRgrTpcRntiCfg
2219 * Desc : TPC RNTI Range
2228 **********************************************************/
2229 S16 cmPkRgrTpcRntiCfg
2231 RgrTpcRntiCfg *param,
2237 CMCHKPK(oduUnpackUInt16, param->size, mBuf);
2238 CMCHKPK(cmPkLteRnti, param->startTpcRnti, mBuf);
2244 /***********************************************************
2246 * Func : cmUnpkRgrTpcRntiCfg
2249 * Desc : TPC RNTI Range
2258 **********************************************************/
2259 S16 cmUnpkRgrTpcRntiCfg
2261 RgrTpcRntiCfg *param,
2267 CMCHKUNPK(cmUnpkLteRnti, ¶m->startTpcRnti, mBuf);
2268 CMCHKUNPK(oduPackUInt16, ¶m->size, mBuf);
2274 /***********************************************************
2276 * Func : cmPkRgrUlPwrCfg
2279 * Desc : Cell specific power configuration
2288 **********************************************************/
2296 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
2297 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
2298 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
2299 CMCHKPK(cmPkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
2300 CMCHKPK(SPkS8, param->deltaPreambleMsg3, mBuf);
2301 CMCHKPK(SPkS8, param->p0NominalPucch, mBuf);
2302 CMCHKPK(oduUnpackUInt32, param->alpha, mBuf);
2303 CMCHKPK(SPkS8, param->p0NominalPusch, mBuf);
2309 /***********************************************************
2311 * Func : cmUnpkRgrUlPwrCfg
2314 * Desc : Cell specific power configuration
2323 **********************************************************/
2324 S16 cmUnpkRgrUlPwrCfg
2333 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPusch, mBuf);
2334 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2335 param->alpha = (RgrPwrAlpha) tmpEnum;
2336 CMCHKUNPK(SUnpkS8, ¶m->p0NominalPucch, mBuf);
2337 CMCHKUNPK(SUnpkS8, ¶m->deltaPreambleMsg3, mBuf);
2338 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3, mBuf);
2339 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->pucchPwrFmt3a, mBuf);
2340 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3, mBuf);
2341 CMCHKUNPK(cmUnpkRgrTpcRntiCfg, ¶m->puschPwrFmt3a, mBuf);
2347 /***********************************************************
2349 * Func : cmPkRgrPuschCfg
2352 * Desc : brief cell specific hopping configuration
2361 **********************************************************/
2370 CMCHKPK(oduUnpackUInt8, param->hopOffst, mBuf);
2371 CMCHKPK(oduUnpackUInt8, param->isIntraHop, mBuf);
2372 CMCHKPK(oduUnpackUInt8, param->numSubBands, mBuf);
2378 /***********************************************************
2380 * Func : cmUnpkRgrPuschCfg
2383 * Desc : brief cell specific hopping configuration
2392 **********************************************************/
2393 S16 cmUnpkRgrPuschCfg
2401 CMCHKUNPK(oduPackUInt8, ¶m->numSubBands, mBuf);
2402 CMCHKUNPK(oduPackUInt8, ¶m->isIntraHop, mBuf);
2403 CMCHKUNPK(oduPackUInt8, ¶m->hopOffst, mBuf);
2409 /***********************************************************
2411 * Func : cmPkRgrCodeBookRstCfg
2414 * Desc : Number of bits in code book for different transmission modes
2423 **********************************************************/
2424 S16 cmPkRgrCodeBookRstCfg
2426 RgrCodeBookRstCfg *param,
2433 for (i=1-1; i >= 0; i--) {
2434 CMCHKPK(oduUnpackUInt32, param->pmiBitMap[i], mBuf);
2436 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
2442 /***********************************************************
2444 * Func : cmUnpkRgrCodeBookRstCfg
2447 * Desc : Number of bits in code book for different transmission modes
2456 **********************************************************/
2457 S16 cmUnpkRgrCodeBookRstCfg
2459 RgrCodeBookRstCfg *param,
2466 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
2467 for (i=0; i<1; i++) {
2468 CMCHKUNPK(oduPackUInt32, ¶m->pmiBitMap[i], mBuf);
2475 /***********************************************************
2477 * Func : cmPkRgrPreambleSetCfg
2480 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2489 **********************************************************/
2490 S16 cmPkRgrPreambleSetCfg
2492 RgrPreambleSetCfg *param,
2498 CMCHKPK(oduUnpackUInt8, param->size, mBuf);
2499 CMCHKPK(oduUnpackUInt8, param->start, mBuf);
2500 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
2506 /***********************************************************
2508 * Func : cmUnpkRgrPreambleSetCfg
2511 * Desc : Range of PDCCH Order Preamble Set managed by MAC
2520 **********************************************************/
2521 S16 cmUnpkRgrPreambleSetCfg
2523 RgrPreambleSetCfg *param,
2529 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
2530 CMCHKUNPK(oduPackUInt8, ¶m->start, mBuf);
2531 CMCHKUNPK(oduPackUInt8, ¶m->size, mBuf);
2537 /***********************************************************
2539 * Func : cmPkRgrCmnLchCfg
2542 * Desc : Logical channel configuration info for common channels
2551 **********************************************************/
2552 S16 cmPkRgrCmnLchCfg
2554 RgrCmnLchCfg *param,
2559 CMCHKPK(oduUnpackUInt8, param->ulTrchType, mBuf);
2560 CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
2561 CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
2562 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
2563 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
2569 /***********************************************************
2571 * Func : cmUnpkRgrCmnLchCfg
2574 * Desc : Logical channel configuration info for common channels
2583 **********************************************************/
2584 S16 cmUnpkRgrCmnLchCfg
2586 RgrCmnLchCfg *param,
2592 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
2593 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
2594 CMCHKUNPK(oduPackUInt8, ¶m->dir, mBuf);
2595 CMCHKUNPK(oduPackUInt8, ¶m->dlTrchType, mBuf);
2596 CMCHKUNPK(oduPackUInt8, ¶m->ulTrchType, mBuf);
2602 /***********************************************************
2604 * Func : cmPkRgrDlfsCfg
2607 * Desc : RGR configuration for DLFS scheduler
2616 **********************************************************/
2625 CMCHKPK(oduUnpackUInt8, param->thresholdCqi, mBuf);
2626 CMCHKPK(oduUnpackUInt8, param->isDlFreqSel, mBuf);
2632 /***********************************************************
2634 * Func : cmUnpkRgrDlfsCfg
2637 * Desc : RGR configuration for DLFS scheduler
2646 **********************************************************/
2647 S16 cmUnpkRgrDlfsCfg
2655 CMCHKUNPK(oduPackUInt8, ¶m->isDlFreqSel, mBuf);
2656 CMCHKUNPK(oduPackUInt8, ¶m->thresholdCqi, mBuf);
2666 /***********************************************************
2668 * Func : cmPkRgrTddPrachInfo
2671 * Desc : PRACH resource information for TDD
2680 **********************************************************/
2681 S16 cmPkRgrTddPrachInfo
2683 RgrTddPrachInfo *param,
2689 CMCHKPK(oduUnpackUInt8, param->ulStartSfIdx, mBuf);
2690 CMCHKPK(oduUnpackUInt8, param->halfFrm, mBuf);
2691 CMCHKPK(oduUnpackUInt32, param->sfn, mBuf);
2692 CMCHKPK(oduUnpackUInt8, param->freqIdx, mBuf);
2698 /***********************************************************
2700 * Func : cmUnpkRgrTddPrachInfo
2703 * Desc : PRACH resource information for TDD
2712 **********************************************************/
2713 S16 cmUnpkRgrTddPrachInfo
2715 RgrTddPrachInfo *param,
2722 CMCHKUNPK(oduPackUInt8, ¶m->freqIdx, mBuf);
2723 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
2724 param->sfn = tmpEnum;
2725 CMCHKUNPK(oduPackUInt8, ¶m->halfFrm, mBuf);
2726 CMCHKUNPK(oduPackUInt8, ¶m->ulStartSfIdx, mBuf);
2732 /***********************************************************
2734 * Func : cmPkRgrTddPrachRscInfo
2737 * Desc : Set of PRACH Information for TDD
2746 **********************************************************/
2747 S16 cmPkRgrTddPrachRscInfo
2749 RgrTddPrachRscInfo *param,
2756 for (i=param->numRsc-1; i >= 0; i--) {
2757 CMCHKPK(cmPkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
2759 CMCHKPK(oduUnpackUInt8, param->numRsc, mBuf);
2765 /***********************************************************
2767 * Func : cmUnpkRgrTddPrachRscInfo
2770 * Desc : Set of PRACH Information for TDD
2779 **********************************************************/
2780 S16 cmUnpkRgrTddPrachRscInfo
2782 RgrTddPrachRscInfo *param,
2789 CMCHKUNPK(oduPackUInt8, ¶m->numRsc, mBuf);
2790 for (i=0; i<param->numRsc; i++) {
2791 CMCHKUNPK(cmUnpkRgrTddPrachInfo, ¶m->prachInfo[i], mBuf);
2802 /***********************************************************
2804 * Func : cmPkRgrEnbPfs
2807 * Desc : PFS Configuration
2816 **********************************************************/
2824 for(idx = RGR_MAX_NUM_QCI-1; idx >= 0; idx--)
2826 CMCHKPK(oduUnpackUInt32, param->qciWgt[idx], mBuf);
2828 CMCHKPK(oduUnpackUInt8, param->fairCoeffi, mBuf);
2829 CMCHKPK(oduUnpackUInt8, param->tptCoeffi, mBuf);
2836 /***********************************************************
2838 * Func : cmUnpkRgrEnbPfs
2841 * Desc : PFS Configuration
2850 **********************************************************/
2859 CMCHKUNPK(oduPackUInt8, ¶m->tptCoeffi, mBuf);
2860 CMCHKUNPK(oduPackUInt8, ¶m->fairCoeffi, mBuf);
2861 for(idx = 0; idx < RGR_MAX_NUM_QCI; idx++)
2863 CMCHKUNPK(oduPackUInt32, ¶m->qciWgt[idx], mBuf);
2868 /*rgr_c_001.main_7 - Added support for SPS*/
2870 /***********************************************************
2872 * Func : cmPkRgrSpsCellCfg
2875 * Desc : DL SPS configuration parameters per UE
2876 TODO: Check if this is to be added to re-configuration as well
2885 **********************************************************/
2886 S16 cmPkRgrSpsCellCfg
2888 RgrSpsCellCfg *param,
2893 CMCHKPK(oduUnpackUInt16, param->maxSpsUePerUlSf, mBuf);
2894 CMCHKPK(oduUnpackUInt16, param->maxSpsUePerDlSf, mBuf);
2895 CMCHKPK(oduUnpackUInt8, param->maxSpsDlBw, mBuf);
2902 /***********************************************************
2904 * Func : cmUnpkRgrSpsDlCellCfg
2907 * Desc : DL SPS configuration parameters per UE
2908 TODO: Check if this is to be added to re-configuration as well
2917 **********************************************************/
2918 S16 cmUnpkRgrSpsDlCellCfg
2920 RgrSpsCellCfg *param,
2926 CMCHKUNPK(oduPackUInt8, ¶m->maxSpsDlBw, mBuf);
2927 CMCHKUNPK(oduPackUInt16, ¶m->maxSpsUePerDlSf, mBuf);
2928 CMCHKUNPK(oduPackUInt16, ¶m->maxSpsUePerUlSf, mBuf);
2934 S16 cmPkRgr5gtfCellCfg
2936 Rgr5gtfCellCfg *param,
2941 for (idx = MAX_5GTF_SUBFRAME_INFO - 1; idx >= 0 ;--idx)
2944 CMCHKPK(oduUnpackUInt32, param->dynConfig[(uint8_t)idx], mBuf);
2946 CMCHKPK(oduUnpackUInt8, param->uePerGrp, mBuf);
2947 CMCHKPK(oduUnpackUInt8, param->ueGrpPerTti, mBuf);
2948 CMCHKPK(oduUnpackUInt8, param->numUes, mBuf);
2949 CMCHKPK(oduUnpackUInt8, param->numOfCC, mBuf);
2950 CMCHKPK(oduUnpackUInt8, param->bwPerCC, mBuf);
2951 CMCHKPK(oduUnpackUInt8, param->cfi, mBuf);
2955 S16 cmUnPkRgr5gtfCellCfg
2957 Rgr5gtfCellCfg *param,
2963 CMCHKUNPK(oduPackUInt8, ¶m->cfi, mBuf);
2964 CMCHKUNPK(oduPackUInt8, ¶m->bwPerCC, mBuf);
2965 CMCHKUNPK(oduPackUInt8, ¶m->numOfCC, mBuf);
2966 CMCHKUNPK(oduPackUInt8, ¶m->numUes, mBuf);
2967 CMCHKUNPK(oduPackUInt8, ¶m->ueGrpPerTti, mBuf);
2968 CMCHKUNPK(oduPackUInt8, ¶m->uePerGrp, mBuf);
2969 for (idx = 0; idx < MAX_5GTF_SUBFRAME_INFO ; ++idx)
2972 CMCHKUNPK(oduPackUInt32, ¶m->dynConfig[(uint8_t)idx], mBuf);
2979 /*LAA : functions to pack and unpack LAA params*/
2980 /***********************************************************
2982 * Func : cmPkRgrLteUCellCfg
2985 * Desc : LAA configuration for the Cell
2994 **********************************************************/
2995 static S16 cmPkRgrLteUCellCfg
3002 CMCHKPK(oduUnpackUInt8, param->isLaaCell, mBuf);
3007 /***********************************************************
3009 * Func : cmUnpkRgrLteUCellCfg
3012 * Desc : LAA configuration for the cell
3021 **********************************************************/
3022 static S16 cmUnpkRgrLteUCellCfg
3030 CMCHKUNPK(oduPackUInt8, ¶m->isLaaCell, mBuf);
3035 /* LTE_ADV_FLAG_REMOVED_START */
3036 /***********************************************************
3038 * Func : cmPkRgrLteAdvancedUeConfig
3041 * Desc : PAcks LteAdvancedUeConfig
3050 **********************************************************/
3051 S16 cmPkRgrLteAdvancedUeConfig
3053 RgrLteAdvancedUeConfig *param,
3058 CMCHKPK(oduUnpackUInt8, param->isUeCellEdge, mBuf);
3059 CMCHKPK(oduUnpackUInt8, param->isAbsUe, mBuf);
3060 CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
3064 /***********************************************************
3066 * Func : cmUnpkRgrLteAdvancedUeConfig
3069 * Desc : unpacks LteAdvancedUeConfig
3078 **********************************************************/
3079 S16 cmUnpkRgrLteAdvancedUeConfig
3081 RgrLteAdvancedUeConfig *param,
3086 CMCHKUNPK(oduPackUInt32, ¶m->pres, mBuf);
3087 CMCHKUNPK(oduPackUInt8, ¶m->isAbsUe, mBuf);
3088 CMCHKUNPK(oduPackUInt8, ¶m->isUeCellEdge, mBuf);
3092 /***********************************************************
3094 * Func : cmPkRgrAbsConfig
3097 * Desc : Packs RgrAbsConfig
3106 **********************************************************/
3107 S16 cmPkRgrAbsConfig
3109 RgrAbsConfig *param,
3115 CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
3116 for (indx = RGR_ABS_PATTERN_LEN-1; indx >= 0; indx--)
3118 CMCHKPK(oduUnpackUInt8, param->absPattern[(uint8_t)indx], mBuf);
3121 CMCHKPK(oduUnpackUInt32, param->absPatternType, mBuf);
3122 CMCHKPK(oduUnpackUInt32, param->absLoadPeriodicity, mBuf);
3127 /***********************************************************
3129 * Func : cmPkRgrSfrConfig
3132 * Desc : Packs RgrSfrConfig
3141 **********************************************************/
3142 S16 cmPkRgrSfrConfig
3144 RgrSfrConfig *param,
3149 CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
3151 CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pHigh, mBuf);
3152 CMCHKPK(oduUnpackUInt32, param->pwrThreshold.pLow, mBuf);
3154 CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.endRb, mBuf);
3155 CMCHKPK(oduUnpackUInt8, param->cellEdgeRbRange.startRb, mBuf);
3162 /***********************************************************
3164 * Func : cmPkRgrDsfrConfig
3167 * Desc : Packs RgrDsfrConfig
3172 * Notes: AIRSPAN_LTE_ADV_DSFR
3176 **********************************************************/
3177 S16 cmPkRgrDsfrConfig
3179 RgrDsfrConfig *param,
3184 CMCHKPK(oduUnpackUInt32, (uint32_t)param->status, mBuf);
3191 /***********************************************************
3193 * Func : cmUnpkRgrDsfrConfig
3196 * Desc : UnPacks RgrDsfrConfig
3201 * Notes: AIRSPAN_LTE_ADV_DSFR
3205 **********************************************************/
3206 S16 cmUnpkRgrDsfrConfig
3208 RgrDsfrConfig *param,
3213 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->status, mBuf);
3219 /***********************************************************
3221 * Func : cmPkRgrCellLteAdvancedFeatureCfg
3224 * Desc : Cell LteAdvancedFeatureCfg
3233 **********************************************************/
3235 S16 cmPkRgrCellLteAdvancedFeatureCfg
3237 RgrLteAdvancedCellConfig *param,
3242 CMCHKPK(oduUnpackUInt32, param->pres, mBuf);
3243 CMCHKPK(cmPkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
3244 CMCHKPK(cmPkRgrSfrConfig, ¶m->sfrCfg, mBuf);
3245 CMCHKPK(cmPkRgrAbsConfig, ¶m->absCfg, mBuf);
3252 /***********************************************************
3254 * Func : cmUnpkRgrAbsConfig
3257 * Desc : Unpacks AbsConfig
3266 **********************************************************/
3267 S16 cmUnpkRgrAbsConfig
3269 RgrAbsConfig *param,
3276 CMCHKUNPK(oduPackUInt32, ¶m->absLoadPeriodicity, mBuf);
3277 CMCHKUNPK(oduPackUInt32, ¶m->absPatternType, mBuf);
3278 for (indx = 0; indx <RGR_ABS_PATTERN_LEN; indx++)
3280 CMCHKUNPK(oduPackUInt8, ¶m->absPattern[(uint8_t)indx], mBuf);
3282 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->status, mBuf);
3288 /***********************************************************
3290 * Func : cmUnpkRgrSfrConfig
3293 * Desc : Unpacks SfrConfig
3302 **********************************************************/
3303 S16 cmUnpkRgrSfrConfig
3305 RgrSfrConfig *param,
3311 CMCHKUNPK(oduPackUInt8, ¶m->cellEdgeRbRange.startRb, mBuf);
3312 CMCHKUNPK(oduPackUInt8, ¶m->cellEdgeRbRange.endRb, mBuf);
3314 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->pwrThreshold.pLow, mBuf);
3315 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->pwrThreshold.pHigh, mBuf);
3317 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->status, mBuf);
3322 /***********************************************************
3324 * Func : cmUnpkRgrCellLteAdvancedFeatureCfg
3327 * Desc : unpacks LteAdvancedFeatureCfg per cell
3336 **********************************************************/
3337 S16 cmUnpkRgrCellLteAdvancedFeatureCfg
3339 RgrLteAdvancedCellConfig *param,
3344 CMCHKUNPK(cmUnpkRgrAbsConfig, ¶m->absCfg, mBuf);
3345 CMCHKUNPK(cmUnpkRgrSfrConfig, ¶m->sfrCfg, mBuf);
3346 CMCHKUNPK(cmUnpkRgrDsfrConfig, ¶m->dsfrCfg, mBuf); /*AIRSPAN_LTE_ADV_DSFR*/
3347 CMCHKUNPK(oduPackUInt32, ¶m->pres, mBuf);
3352 /* LTE_ADV_FLAG_REMOVED_END */
3354 /***********************************************************
3356 * Func : cmPkMacSchedGnbCfg
3358 * Desc : SCH GNB Configurations
3366 **********************************************************/
3367 S16 cmPkMacSchedGnbCfg
3369 MacSchedGnbCfg *param,
3374 CMCHKPK(oduUnpackUInt8, param->maxDlUePerTti, mBuf);
3375 CMCHKPK(oduUnpackUInt8, param->maxUlUePerTti, mBuf);
3376 CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
3377 CMCHKPK(oduUnpackUInt8, param->dlSchdType, mBuf);
3378 CMCHKPK(oduUnpackUInt8, param->ulSchdType, mBuf);
3379 CMCHKPK(oduUnpackUInt8, param->numTxAntPorts, mBuf);
3381 } /* cmPkRgrSchedEnbCfg */
3383 /***********************************************************
3385 * Func : cmUnpkMacSchedGnbCfg
3388 * Desc : SCH Gnodeb Configuration to SCH
3397 **********************************************************/
3398 S16 cmUnpkMacSchedGnbCfg
3400 MacSchedGnbCfg *param,
3406 CMCHKUNPK(oduPackUInt8, ¶m->numTxAntPorts, mBuf);
3407 CMCHKUNPK(oduPackUInt8, ¶m->ulSchdType, mBuf);
3408 CMCHKUNPK(oduPackUInt8, ¶m->dlSchdType, mBuf);
3409 CMCHKUNPK(oduPackUInt8, ¶m->numCells, mBuf);
3410 CMCHKUNPK(oduPackUInt8, ¶m->maxUlUePerTti, mBuf);
3411 CMCHKUNPK(oduPackUInt8, ¶m->maxDlUePerTti, mBuf);
3413 } /* cmUnpkMacSchedGnbCfg */
3416 /***********************************************************
3418 * Func : cmPkRgrCellCfg
3421 * Desc : Cell Configuration at RRM
3430 **********************************************************/
3441 /* EMTC related changes start*/
3444 /* EMTC related changes ends*/
3448 CMCHKPK(cmPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
3451 CMCHKPK(oduUnpackUInt8, param->isPucchFormat3Sptd, mBuf);
3453 /*LAA: Pack LAA params*/
3454 CMCHKPK(cmPkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
3455 CMCHKPK(oduUnpackUInt32, param->msg4pAVal, mBuf);
3456 CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
3457 CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
3458 CMCHKPK(oduUnpackUInt16, param->phichTxPwrOffset, mBuf);
3459 CMCHKPK(oduUnpackUInt16, param->rarTxPwrOffset, mBuf);
3460 CMCHKPK(oduUnpackUInt16, param->pcchTxPwrOffset, mBuf);
3461 CMCHKPK(oduUnpackUInt16, param->bcchTxPwrOffset, mBuf);
3463 CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
3464 /*rgr_c_001.main_7 - Added support for SPS*/
3465 CMCHKPK(cmPkRgrSpsCellCfg, ¶m->spsCfg, mBuf);
3467 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
3468 CMCHKPK(oduUnpackUInt8, param->rrmTtiIndPrd, mBuf);
3470 CMCHKPK(cmPkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
3471 CMCHKPK(oduUnpackUInt8, param->spclSfCfgIdx, mBuf);
3472 CMCHKPK(oduUnpackUInt8, param->ulDlCfgIdx, mBuf);
3475 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
3476 for (i=param->numCmnLcs-1; i >= 0; i--) {
3477 CMCHKPK(cmPkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
3479 CMCHKPK(oduUnpackUInt8, param->numCmnLcs, mBuf);
3480 CMCHKPK(cmPkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
3481 CMCHKPK(cmPkRgrPuschCfg, ¶m->puschCfg, mBuf);
3482 CMCHKPK(cmPkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
3483 CMCHKPK(cmPkRgrSiCfg, ¶m->siCfg, mBuf);
3484 CMCHKPK(cmPkRgrRachCfg, ¶m->rachCfg, mBuf);
3485 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsCfg, mBuf);
3486 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchCfg, mBuf);
3487 CMCHKPK(cmPkRgrPhichCfg, ¶m->phichCfg, mBuf);
3488 /* LTE_ADV_FLAG_REMOVED_START */
3489 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
3490 /* LTE_ADV_FLAG_REMOVED_END */
3491 CMCHKPK(cmPkRgrBwCfg, ¶m->bwCfg, mBuf);
3492 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
3493 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
3494 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
3495 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
3496 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
3497 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiCfg, mBuf);
3498 CMCHKPK(cmPkRgrRntiCfg, ¶m->macRnti, mBuf);
3499 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
3500 CMCHKPK(oduUnpackUInt8, param->dlfsSchdType, mBuf);
3502 CMCHKPK(SPkS8, param->pMax, mBuf);
3503 CMCHKPK(oduUnpackUInt8, param->cellModSchm, mBuf);
3504 CMCHKPK(oduUnpackUInt8, param->isCpDlExtend, mBuf);
3505 CMCHKPK(oduUnpackUInt8, param->isCpUlExtend, mBuf);
3506 CMCHKPK(oduUnpackUInt8, param->maxUlUeNewTxPerTti, mBuf);
3507 CMCHKPK(oduUnpackUInt8, param->maxDlUeNewTxPerTti, mBuf);
3508 CMCHKPK(oduUnpackUInt8, param->maxDlRetxBw, mBuf);
3509 CMCHKPK(oduUnpackUInt8, param->maxDlBwPerUe, mBuf);
3510 CMCHKPK(oduUnpackUInt8, param->maxUlBwPerUe, mBuf);
3511 CMCHKPK(oduUnpackUInt8, param->maxCcchPerDlSf, mBuf);
3512 CMCHKPK(oduUnpackUInt8, param->maxUePerDlSf, mBuf);
3513 CMCHKPK(oduUnpackUInt8, param->maxUePerUlSf, mBuf);
3515 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
3517 CMCHKPK(oduUnpackUInt8, param->maxMsg3PerUlSf, mBuf);
3519 CMCHKPK(oduUnpackUInt8, param->macInst, mBuf);
3520 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
3523 /* EMTC related changes start*/
3524 CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
3525 CMCHKPK(cmPkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
3526 /* EMTC related changes ends*/
3534 /***********************************************************
3536 * Func : cmUnpkRgrCellCfg
3539 * Desc : Cell Configuration at RRM
3548 **********************************************************/
3549 S16 cmUnpkRgrCellCfg
3559 /* EMTC related changes start*/
3560 CMCHKUNPK(cmUnpkRgrEmtcCfg, ¶m->emtcCellCfg, mBuf);
3561 CMCHKUNPK(oduPackUInt8, ¶m->emtcEnable, mBuf);
3562 /* EMTC related changes ends*/
3565 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
3566 CMCHKUNPK(oduPackUInt8, ¶m->macInst, mBuf);
3568 /* rgr_x_001.main_7: [ccpu00112789] Added configuration for maximum number
3570 CMCHKUNPK(oduPackUInt8, ¶m->maxMsg3PerUlSf, mBuf);
3572 CMCHKUNPK(oduPackUInt8, ¶m->maxUePerUlSf, mBuf);
3573 CMCHKUNPK(oduPackUInt8, ¶m->maxUePerDlSf, mBuf);
3574 CMCHKUNPK(oduPackUInt8, ¶m->maxCcchPerDlSf, mBuf);
3575 CMCHKUNPK(oduPackUInt8, ¶m->maxUlBwPerUe, mBuf);
3576 CMCHKUNPK(oduPackUInt8, ¶m->maxDlBwPerUe, mBuf);
3577 CMCHKUNPK(oduPackUInt8, ¶m->maxDlRetxBw, mBuf);
3578 CMCHKUNPK(oduPackUInt8, ¶m->maxDlUeNewTxPerTti, mBuf);
3579 CMCHKUNPK(oduPackUInt8, ¶m->maxUlUeNewTxPerTti, mBuf);
3580 CMCHKUNPK(oduPackUInt8, ¶m->isCpUlExtend, mBuf);
3581 CMCHKUNPK(oduPackUInt8, ¶m->isCpDlExtend, mBuf);
3582 CMCHKUNPK(oduPackUInt8, ¶m->cellModSchm, mBuf);
3583 CMCHKUNPK(SUnpkS8, ¶m->pMax, mBuf);
3584 CMCHKUNPK(oduPackUInt8, ¶m->dlfsSchdType, mBuf);
3585 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqCfg, mBuf);
3586 CMCHKUNPK(cmUnpkRgrRntiCfg, ¶m->macRnti, mBuf);
3587 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiCfg, mBuf);
3588 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
3589 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
3590 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
3591 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
3592 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsCfg, mBuf);
3593 CMCHKUNPK(cmUnpkRgrBwCfg, ¶m->bwCfg, mBuf);
3594 /* LTE_ADV_FLAG_REMOVED_START */
3595 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
3596 /* LTE_ADV_FLAG_REMOVED_END */
3597 CMCHKUNPK(cmUnpkRgrPhichCfg, ¶m->phichCfg, mBuf);
3598 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchCfg, mBuf);
3599 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsCfg, mBuf);
3600 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachCfg, mBuf);
3601 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siCfg, mBuf);
3602 CMCHKUNPK(cmUnpkRgrUlPwrCfg, ¶m->pwrCfg, mBuf);
3603 CMCHKUNPK(cmUnpkRgrPuschCfg, ¶m->puschCfg, mBuf);
3604 CMCHKUNPK(cmUnpkRgrPreambleSetCfg, ¶m->macPreambleSet, mBuf);
3605 CMCHKUNPK(oduPackUInt8, ¶m->numCmnLcs, mBuf);
3606 for (i=0; i<param->numCmnLcs; i++) {
3607 CMCHKUNPK(cmUnpkRgrCmnLchCfg, ¶m->cmnLcCfg[i], mBuf);
3609 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
3612 CMCHKUNPK(oduPackUInt8, ¶m->ulDlCfgIdx, mBuf);
3613 CMCHKUNPK(oduPackUInt8, ¶m->spclSfCfgIdx, mBuf);
3614 CMCHKUNPK(cmUnpkRgrTddPrachRscInfo, ¶m->prachRscInfo, mBuf);
3617 /* rgr_c_001.main_3: Added TTI indication from MAC to RGR user */
3618 CMCHKUNPK(oduPackUInt8, ¶m->rrmTtiIndPrd, mBuf);
3619 /*rgr_c_001.main_7 - Added support for SPS*/
3620 CMCHKUNPK(cmUnpkRgrSpsDlCellCfg, ¶m->spsCfg, mBuf);
3622 CMCHKUNPK(oduPackUInt16, ¶m->t300TmrVal, mBuf);
3623 CMCHKPK(oduPackUInt16, ¶m->bcchTxPwrOffset, mBuf);
3624 CMCHKPK(oduPackUInt16, ¶m->pcchTxPwrOffset, mBuf);
3625 CMCHKPK(oduPackUInt16, ¶m->rarTxPwrOffset, mBuf);
3626 CMCHKPK(oduPackUInt16, ¶m->phichTxPwrOffset, mBuf);
3627 CMCHKUNPK(oduPackUInt8, ¶m->isDynCfiEnb, mBuf);
3628 CMCHKUNPK(oduPackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
3629 CMCHKPK(oduPackUInt32, (uint32_t*)¶m->msg4pAVal, mBuf);
3630 /*LAA: Unpack LAA Cell params*/
3631 CMCHKUNPK(cmUnpkRgrLteUCellCfg, ¶m->lteUCfg, mBuf);
3633 CMCHKUNPK(oduPackUInt8, ¶m->isPucchFormat3Sptd, mBuf);
3636 CMCHKUNPK(cmUnPkRgr5gtfCellCfg, ¶m->Cell5gtfCfg, mBuf);
3643 /***********************************************************
3645 * Func : cmPkRgrUeAprdDlCqiCfg
3648 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
3657 **********************************************************/
3658 S16 cmPkRgrUeAprdDlCqiCfg
3660 RgrUeAprdDlCqiCfg *param,
3665 /*Pack Aperiodic Trigger List only for Pcell */
3667 CMCHKPK(oduUnpackUInt8, param->triggerSet2, mBuf);
3668 CMCHKPK(oduUnpackUInt8, param->triggerSet1, mBuf);
3671 CMCHKPK(oduUnpackUInt32, param->aprdModeEnum, mBuf);
3672 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
3678 /***********************************************************
3680 * Func : cmUnpkRgrUeAprdDlCqiCfg
3683 * Desc : Downlink Aperiodic CQI reporting related configuration per UE
3692 **********************************************************/
3693 S16 cmUnpkRgrUeAprdDlCqiCfg
3695 RgrUeAprdDlCqiCfg *param,
3702 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
3703 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3704 param->aprdModeEnum = (RgrAprdCqiMode) tmpEnum;
3707 CMCHKUNPK(oduPackUInt8, ¶m->triggerSet1, mBuf);
3708 CMCHKUNPK(oduPackUInt8, ¶m->triggerSet2, mBuf);
3715 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
3719 /***********************************************************
3721 * Func : cmPkRgrUePrdDlCqiCfg
3724 * Desc : Downlink Periodic CQI reporting related configuration per UE
3733 **********************************************************/
3734 S16 cmPkRgrUePrdDlCqiCfg
3736 RgrUePrdDlCqiCfg *param,
3742 CMCHKPK(oduUnpackUInt16, param->cqiPmiCfgIdx, mBuf);
3743 CMCHKPK(oduUnpackUInt8, param->k, mBuf);
3744 CMCHKPK(SPkS8, param->cqiOffst, mBuf);
3745 CMCHKPK(oduUnpackUInt8, param->subframeOffst, mBuf);
3746 CMCHKPK(oduUnpackUInt32, param->prdicityEnum, mBuf);
3747 CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
3748 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
3754 /***********************************************************
3756 * Func : cmUnpkRgrUePrdDlCqiCfg
3759 * Desc : Downlink Periodic CQI reporting related configuration per UE
3768 **********************************************************/
3769 S16 cmUnpkRgrUePrdDlCqiCfg
3771 RgrUePrdDlCqiCfg *param,
3778 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
3779 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3780 param->prdModeEnum = tmpEnum;
3781 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3782 param->prdicityEnum = tmpEnum;
3783 CMCHKUNPK(oduPackUInt8, ¶m->subframeOffst, mBuf);
3784 CMCHKUNPK(SUnpkS8, ¶m->cqiOffst, mBuf);
3785 CMCHKUNPK(oduPackUInt8, ¶m->k, mBuf);
3786 CMCHKUNPK(oduPackUInt16, ¶m->cqiPmiCfgIdx, mBuf);
3793 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
3795 /***********************************************************
3797 * Func : cmPkRgrUeDlPCqiSetup
3800 * Desc : Periodic CQI Setup configuration parameters information
3809 **********************************************************/
3810 S16 cmPkRgrUeDlPCqiSetup
3812 RgrUeDlPCqiSetup *param,
3818 CMCHKPK(oduUnpackUInt32, param->prdModeEnum, mBuf);
3819 CMCHKPK(oduUnpackUInt8, param->sANCQI, mBuf);
3820 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3821 CMCHKPK(oduUnpackUInt16, param->riCfgIdx, mBuf);
3822 CMCHKPK(oduUnpackUInt8, param->riEna, mBuf);
3823 CMCHKPK(oduUnpackUInt8, param->k, mBuf);
3824 CMCHKPK(oduUnpackUInt8, param->cqiRepType, mBuf);
3825 CMCHKPK(oduUnpackUInt16, param->cqiPCfgIdx, mBuf);
3826 CMCHKPK(oduUnpackUInt16, param->cqiPResIdx, mBuf);
3832 /***********************************************************
3834 * Func : cmUnpkRgrUeDlPCqiSetup
3837 * Desc : Periodic CQI Setup configuration parameters information
3846 **********************************************************/
3847 S16 cmUnpkRgrUeDlPCqiSetup
3849 RgrUeDlPCqiSetup *param,
3856 CMCHKUNPK(oduPackUInt16, ¶m->cqiPResIdx, mBuf);
3857 CMCHKUNPK(oduPackUInt16, ¶m->cqiPCfgIdx, mBuf);
3858 CMCHKUNPK(oduPackUInt8, ¶m->cqiRepType, mBuf);
3859 CMCHKUNPK(oduPackUInt8, ¶m->k, mBuf);
3860 CMCHKUNPK(oduPackUInt8, ¶m->riEna, mBuf);
3861 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3862 CMCHKUNPK(oduPackUInt16, ¶m->riCfgIdx, mBuf);
3863 CMCHKUNPK(oduPackUInt8, ¶m->sANCQI, mBuf);
3864 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3865 param->prdModeEnum = (RgrPrdCqiMode) tmpEnum;
3871 /***********************************************************
3873 * Func : cmPkRgrUePrdDlCqiCfg
3876 * Desc : Periodic CQI/PMI/RI configuration parameters information
3885 **********************************************************/
3886 S16 cmPkRgrUePrdDlCqiCfg
3888 RgrUePrdDlCqiCfg *param,
3894 CMCHKPK(cmPkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
3895 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
3901 /***********************************************************
3903 * Func : cmUnpkRgrUePrdDlCqiCfg
3906 * Desc : Periodic CQI/PMI/RI configuration parameters information
3915 **********************************************************/
3916 S16 cmUnpkRgrUePrdDlCqiCfg
3918 RgrUePrdDlCqiCfg *param,
3924 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
3925 CMCHKUNPK(cmUnpkRgrUeDlPCqiSetup, ¶m->cqiSetup, mBuf);
3931 /***********************************************************
3933 * Func : cmPkRgrUeUlSrsSetupCfg
3936 * Desc : SRS configuration setup parameters information.
3937 Reference 36.313 SoundingRS-UL-Config
3946 **********************************************************/
3947 S16 cmPkRgrUeUlSrsSetupCfg
3949 RgrUeUlSrsSetupCfg *param,
3955 CMCHKPK(oduUnpackUInt8, param->fDomPosi, mBuf);
3956 CMCHKPK(oduUnpackUInt8, param->txComb, mBuf);
3957 CMCHKPK(oduUnpackUInt8, param->sANSrs, mBuf);
3958 CMCHKPK(oduUnpackUInt8, param->duration, mBuf);
3959 CMCHKPK(oduUnpackUInt32, param->cycShift, mBuf);
3960 CMCHKPK(oduUnpackUInt32, param->srsHopBw, mBuf);
3961 CMCHKPK(oduUnpackUInt32, param->srsBw, mBuf);
3962 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3963 CMCHKPK(oduUnpackUInt16, param->srsCfgIdx, mBuf);
3969 /***********************************************************
3971 * Func : cmUnpkRgrUeUlSrsSetupCfg
3974 * Desc : SRS configuration setup parameters information.
3975 Reference 36.313 SoundingRS-UL-Config
3984 **********************************************************/
3985 S16 cmUnpkRgrUeUlSrsSetupCfg
3987 RgrUeUlSrsSetupCfg *param,
3994 /*rgr_c_001.main_9 DEL removed unwanted comments*/
3995 CMCHKUNPK(oduPackUInt16, ¶m->srsCfgIdx, mBuf);
3996 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3997 param->srsBw = (RgrUlSrsBwInfo) tmpEnum;
3998 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3999 param->srsHopBw = (RgrUlSrsHoBwInfo) tmpEnum;
4000 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4001 param->cycShift = (RgrUlSrsCycShiftInfo) tmpEnum;
4002 CMCHKUNPK(oduPackUInt8, ¶m->duration, mBuf);
4003 CMCHKUNPK(oduPackUInt8, ¶m->sANSrs, mBuf);
4004 CMCHKUNPK(oduPackUInt8, ¶m->txComb, mBuf);
4005 CMCHKUNPK(oduPackUInt8, ¶m->fDomPosi, mBuf);
4011 /***********************************************************
4013 * Func : cmPkRgrUeSrSetupCfg
4016 * Desc : SR Setup configuration parameters information
4025 **********************************************************/
4026 S16 cmPkRgrUeSrSetupCfg
4028 RgrUeSrSetupCfg *param,
4034 /* ccpu00131601:DEL - dTMax Packing removed since this param will not
4035 * be required by Scheduler*/
4036 CMCHKPK(oduUnpackUInt8, param->srCfgIdx, mBuf);
4037 CMCHKPK(oduUnpackUInt16, param->srResIdx, mBuf);
4043 /***********************************************************
4045 * Func : cmUnpkRgrUeSrSetupCfg
4048 * Desc : SR Setup configuration parameters information
4057 **********************************************************/
4058 S16 cmUnpkRgrUeSrSetupCfg
4060 RgrUeSrSetupCfg *param,
4065 CMCHKUNPK(oduPackUInt16, ¶m->srResIdx, mBuf);
4066 CMCHKUNPK(oduPackUInt8, ¶m->srCfgIdx, mBuf);
4067 /* ccpu00131601:DEL - dTMax UnPacking removed since this param will not
4068 * be required by Scheduler*/
4074 /***********************************************************
4076 * Func : cmPkRgrUeSrCfg
4079 * Desc : SR configuration parameters information
4088 **********************************************************/
4097 CMCHKPK(cmPkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
4098 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4104 /***********************************************************
4106 * Func : cmUnpkRgrUeSrCfg
4109 * Desc : SR configuration parameters information
4118 **********************************************************/
4119 S16 cmUnpkRgrUeSrCfg
4127 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4128 CMCHKUNPK(cmUnpkRgrUeSrSetupCfg, ¶m->srSetup, mBuf);
4134 /***********************************************************
4136 * Func : cmPkRgrUeUlSrsCfg
4139 * Desc : SRS configuration parameters information.
4140 Reference 36.313 SoundingRS-UL-Config
4149 **********************************************************/
4150 S16 cmPkRgrUeUlSrsCfg
4152 RgrUeUlSrsCfg *param,
4158 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4159 CMCHKPK(cmPkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
4160 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
4166 /***********************************************************
4168 * Func : cmUnpkRgrUeUlSrsCfg
4171 * Desc : SRS configuration parameters information.
4172 Reference 36.313 SoundingRS-UL-Config
4181 **********************************************************/
4182 S16 cmUnpkRgrUeUlSrsCfg
4184 RgrUeUlSrsCfg *param,
4190 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
4191 /*rgr_c_001.main_9 DEL removed unwanted comments*/
4192 CMCHKUNPK(cmUnpkRgrUeUlSrsSetupCfg, ¶m->srsSetup, mBuf);
4197 #endif /*TFU_UPGRADE */
4200 /***********************************************************
4202 * Func : cmPkRgrUeDlCqiCfg
4205 * Desc : Downlink CQI reporting related configuration per UE
4214 **********************************************************/
4215 S16 cmPkRgrUeDlCqiCfg
4217 RgrUeDlCqiCfg *param,
4224 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4226 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4229 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
4231 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4233 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
4239 /***********************************************************
4241 * Func : cmUnpkRgrUeDlCqiCfg
4244 * Desc : Downlink CQI reporting related configuration per UE
4253 **********************************************************/
4254 S16 cmUnpkRgrUeDlCqiCfg
4256 RgrUeDlCqiCfg *param,
4262 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdCqiCfg, mBuf);
4263 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdCqiCfg, mBuf);
4269 /***********************************************************
4271 * Func : cmPkRgrUeMeasGapCfg
4274 * Desc : Measurement gap configuration for UE
4283 **********************************************************/
4284 S16 cmPkRgrUeMeasGapCfg
4286 RgrUeMeasGapCfg *param,
4292 CMCHKPK(oduUnpackUInt8, param->gapOffst, mBuf);
4293 CMCHKPK(oduUnpackUInt8, param->gapPrd, mBuf);
4294 CMCHKPK(oduUnpackUInt8, param->isMesGapEnabled, mBuf);
4300 /***********************************************************
4302 * Func : cmUnpkRgrUeMeasGapCfg
4305 * Desc : Measurement gap configuration for UE
4314 **********************************************************/
4315 S16 cmUnpkRgrUeMeasGapCfg
4317 RgrUeMeasGapCfg *param,
4323 CMCHKUNPK(oduPackUInt8, ¶m->isMesGapEnabled, mBuf);
4324 CMCHKUNPK(oduPackUInt8, ¶m->gapPrd, mBuf);
4325 CMCHKUNPK(oduPackUInt8, ¶m->gapOffst, mBuf);
4329 /*rgr_c_001.main_9 ADD DRX functionality under flag*/
4331 /***********************************************************
4333 * Func : cmPkRgrDrxLongCycleOffst
4336 * Desc : DRX Long Cycle Offset
4345 **********************************************************/
4346 S16 cmPkRgrDrxLongCycleOffst
4348 RgrDrxLongCycleOffst *param,
4354 CMCHKPK(oduUnpackUInt16, param->drxStartOffst, mBuf);
4355 CMCHKPK(oduUnpackUInt16, param->longDrxCycle, mBuf);
4361 /***********************************************************
4363 * Func : cmUnpkRgrDrxLongCycleOffst
4366 * Desc : DRX Long Cycle Offset
4375 **********************************************************/
4376 S16 cmUnpkRgrDrxLongCycleOffst
4378 RgrDrxLongCycleOffst *param,
4384 CMCHKUNPK(oduPackUInt16, ¶m->longDrxCycle, mBuf);
4385 CMCHKUNPK(oduPackUInt16, ¶m->drxStartOffst, mBuf);
4391 /***********************************************************
4393 * Func : cmPkRgrDrxShortDrx
4396 * Desc : DRX Short Cycle Offset
4405 **********************************************************/
4406 S16 cmPkRgrDrxShortDrx
4408 RgrDrxShortDrx *param,
4414 CMCHKPK(oduUnpackUInt8, param->drxShortCycleTmr, mBuf);
4415 CMCHKPK(oduUnpackUInt16, param->shortDrxCycle, mBuf);
4416 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4422 /***********************************************************
4424 * Func : cmUnpkRgrDrxShortDrx
4427 * Desc : DRX Short Cycle Offset
4436 **********************************************************/
4437 S16 cmUnpkRgrDrxShortDrx
4439 RgrDrxShortDrx *param,
4445 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4446 CMCHKUNPK(oduPackUInt16, ¶m->shortDrxCycle, mBuf);
4447 CMCHKUNPK(oduPackUInt8, ¶m->drxShortCycleTmr, mBuf);
4451 /***********************************************************
4453 * Func : cmPkRgrUeDrxCfg
4456 * Desc : DRX configuration for UE
4465 **********************************************************/
4474 CMCHKPK(cmPkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
4475 CMCHKPK(cmPkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
4476 CMCHKPK(oduUnpackUInt16, param->drxRetxTmr, mBuf);
4478 CMCHKPK(oduUnpackUInt8, param->drxRetxTmrR13Pres, mBuf);
4479 CMCHKPK(oduUnpackUInt8, param->drxOnDurTmrR13Pres, mBuf);
4480 CMCHKPK(oduUnpackUInt16, param->emtcDrxUlRetxTmr, mBuf);
4481 CMCHKPK(oduUnpackUInt8, param->isEmtcUe, mBuf);
4483 CMCHKPK(oduUnpackUInt16, param->drxInactvTmr, mBuf);
4484 CMCHKPK(oduUnpackUInt16, param->drxOnDurTmr, mBuf);
4485 /*rgr_c_001.main_9 ADD added changes for R9*/
4487 CMCHKPK(cmPkTknS32, ¶m->cqiMask, mBuf);
4494 /***********************************************************
4496 * Func : cmUnpkRgrUeDrxCfg
4499 * Desc : DRX configuration for UE
4508 **********************************************************/
4509 S16 cmUnpkRgrUeDrxCfg
4517 /*rgr_c_001.main_9 ADD added changes for R9*/
4519 CMCHKUNPK(cmUnpkTknS32, ¶m->cqiMask, mBuf);
4521 CMCHKUNPK(oduPackUInt16, ¶m->drxOnDurTmr, mBuf);
4522 CMCHKUNPK(oduPackUInt16, ¶m->drxInactvTmr, mBuf);
4524 CMCHKUNPK(oduPackUInt8, ¶m->isEmtcUe, mBuf);
4525 CMCHKUNPK(oduPackUInt16,¶m->emtcDrxUlRetxTmr, mBuf);
4526 CMCHKUNPK(oduPackUInt8, ¶m->drxOnDurTmrR13Pres, mBuf);
4527 CMCHKUNPK(oduPackUInt8, ¶m->drxRetxTmrR13Pres, mBuf);
4529 CMCHKUNPK(oduPackUInt16, ¶m->drxRetxTmr, mBuf);
4530 CMCHKUNPK(cmUnpkRgrDrxLongCycleOffst, ¶m->drxLongCycleOffst, mBuf);
4531 CMCHKUNPK(cmUnpkRgrDrxShortDrx, ¶m->drxShortDrx, mBuf);
4535 /*rgr_c_001.main_9 ADD added DRX changes under DRX*/
4537 /***********************************************************
4539 * Func : cmPkRgrUeCapCfg
4542 * Desc : RgrUeCapCfg
4551 **********************************************************/
4560 CMCHKPK(oduUnpackUInt8, param->txAntSel, mBuf);
4561 CMCHKPK(oduUnpackUInt8, param->simCqiAckNack, mBuf);
4562 CMCHKPK(oduUnpackUInt8, param->resAloocType1, mBuf);
4563 CMCHKPK(oduUnpackUInt8, param->intraSfFeqHop, mBuf);
4564 CMCHKPK(oduUnpackUInt8, param->pwrClass, mBuf);
4570 /***********************************************************
4572 * Func : cmUnpkRgrUeCapCfg
4575 * Desc : RgrUeCapCfg
4584 **********************************************************/
4585 S16 cmUnpkRgrUeCapCfg
4593 CMCHKUNPK(oduPackUInt8, ¶m->pwrClass, mBuf);
4594 CMCHKUNPK(oduPackUInt8, ¶m->intraSfFeqHop, mBuf);
4595 CMCHKUNPK(oduPackUInt8, ¶m->resAloocType1, mBuf);
4596 CMCHKUNPK(oduPackUInt8, ¶m->simCqiAckNack, mBuf);
4597 CMCHKUNPK(oduPackUInt8, ¶m->txAntSel, mBuf);
4603 /***********************************************************
4605 * Func : cmPkRgrUeAckNackRepCfg
4608 * Desc : rgrUeAckNackRepCfg
4617 **********************************************************/
4618 S16 cmPkRgrUeAckNackRepCfg
4620 RgrUeAckNackRepCfg *param,
4626 CMCHKPK(oduUnpackUInt32, param->ackNackRepFactor, mBuf);
4627 CMCHKPK(oduUnpackUInt16, param->pucchAckNackRep, mBuf);
4628 CMCHKPK(oduUnpackUInt8, param->isAckNackEnabled, mBuf);
4634 /***********************************************************
4636 * Func : cmUnpkRgrUeAckNackRepCfg
4639 * Desc : rgrUeAckNackRepCfg
4648 **********************************************************/
4649 S16 cmUnpkRgrUeAckNackRepCfg
4651 RgrUeAckNackRepCfg *param,
4658 CMCHKUNPK(oduPackUInt8, ¶m->isAckNackEnabled, mBuf);
4659 CMCHKUNPK(oduPackUInt16, ¶m->pucchAckNackRep, mBuf);
4660 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4661 param->ackNackRepFactor = (RgrAckNackRepFactor) tmpEnum;
4667 /***********************************************************
4669 * Func : cmPkRgrUeTxModeCfg
4672 * Desc : Transmission mode configuration per UE
4681 **********************************************************/
4682 S16 cmPkRgrUeTxModeCfg
4684 RgrUeTxModeCfg *param,
4690 CMCHKPK(oduUnpackUInt32, param->txModeEnum, mBuf);
4691 CMCHKPK(oduUnpackUInt32, param->tmTrnstnState, mBuf);
4692 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4699 /***********************************************************
4701 * Func : cmUnpkRgrUeTxModeCfg
4704 * Desc : Transmission mode configuration per UE
4713 **********************************************************/
4714 S16 cmUnpkRgrUeTxModeCfg
4716 RgrUeTxModeCfg *param,
4723 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4724 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4725 param->tmTrnstnState = (RgrTxModeTrnstn) tmpEnum;
4727 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4728 param->txModeEnum = (RgrTxMode) tmpEnum;
4734 /***********************************************************
4736 * Func : cmPkRgrUeUlHqCfg
4739 * Desc : Uplink HARQ configuration per UE
4748 **********************************************************/
4749 S16 cmPkRgrUeUlHqCfg
4751 RgrUeUlHqCfg *param,
4757 CMCHKPK(oduUnpackUInt8, param->deltaHqOffst, mBuf);
4758 CMCHKPK(oduUnpackUInt8, param->maxUlHqTx, mBuf);
4764 /***********************************************************
4766 * Func : cmUnpkRgrUeUlHqCfg
4769 * Desc : Uplink HARQ configuration per UE
4778 **********************************************************/
4779 S16 cmUnpkRgrUeUlHqCfg
4781 RgrUeUlHqCfg *param,
4787 CMCHKUNPK(oduPackUInt8, ¶m->maxUlHqTx, mBuf);
4788 CMCHKUNPK(oduPackUInt8, ¶m->deltaHqOffst, mBuf);
4794 /***********************************************************
4796 * Func : cmPkRgrUeGrpPwrCfg
4799 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
4808 **********************************************************/
4809 S16 cmPkRgrUeGrpPwrCfg
4811 RgrUeGrpPwrCfg *param,
4817 CMCHKPK(oduUnpackUInt8, param->idx, mBuf);
4818 CMCHKPK(cmPkLteRnti, param->tpcRnti, mBuf);
4819 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4825 /***********************************************************
4827 * Func : cmUnpkRgrUeGrpPwrCfg
4830 * Desc : Group power configuration per UE for PUCCH and PUSCH group power control
4839 **********************************************************/
4840 S16 cmUnpkRgrUeGrpPwrCfg
4842 RgrUeGrpPwrCfg *param,
4848 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4849 CMCHKUNPK(cmUnpkLteRnti, ¶m->tpcRnti, mBuf);
4850 CMCHKUNPK(oduPackUInt8, ¶m->idx, mBuf);
4854 /*rgr_c_001.main_7 - Added support for SPS*/
4857 /***********************************************************
4859 * Func : cmPkRgrUeSpsDlCfg
4862 * Desc : DL SPS configuration parameters per UE
4871 **********************************************************/
4872 S16 cmPkRgrUeSpsDlCfg
4874 RgrUeSpsDlCfg *param,
4880 CMCHKPK(oduUnpackUInt16, param->explicitRelCnt, mBuf);
4881 CMCHKPK(oduUnpackUInt32, param->dlSpsPrdctyEnum, mBuf);
4882 for (i=param->numPucchVal-1; i >= 0; i--) {
4883 CMCHKPK(oduUnpackUInt32, param->n1PucchVal[i], mBuf);
4885 CMCHKPK(oduUnpackUInt8, param->numPucchVal, mBuf);
4886 CMCHKPK(oduUnpackUInt8, param->numSpsHqProc, mBuf);
4887 CMCHKPK(oduUnpackUInt8, param->isDlSpsEnabled, mBuf);
4893 /***********************************************************
4895 * Func : cmUnpkRgrUeSpsDlCfg
4898 * Desc : DL SPS configuration parameters per UE
4907 **********************************************************/
4908 S16 cmUnpkRgrUeSpsDlCfg
4910 RgrUeSpsDlCfg *param,
4918 CMCHKUNPK(oduPackUInt8, ¶m->isDlSpsEnabled, mBuf);
4919 CMCHKUNPK(oduPackUInt8, ¶m->numSpsHqProc, mBuf);
4920 CMCHKUNPK(oduPackUInt8, ¶m->numPucchVal, mBuf);
4921 for (i=0; i<param->numPucchVal; i++) {
4922 CMCHKUNPK(oduPackUInt32, ¶m->n1PucchVal[i], mBuf);
4924 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4925 param->dlSpsPrdctyEnum = tmpEnum;
4926 CMCHKUNPK(oduPackUInt16, ¶m->explicitRelCnt, mBuf);
4932 /***********************************************************
4934 * Func : cmPkRgrUeSpsUlCfg
4937 * Desc : UL SPS configuration parameters per UE
4946 **********************************************************/
4947 S16 cmPkRgrUeSpsUlCfg
4949 RgrUeSpsUlCfg *param,
4956 CMCHKPK(oduUnpackUInt8, param->isLcSRMaskEnab, mBuf);
4957 for (i=param->lcCnt-1; i >= 0; i--) {
4958 /* SPS Changes starts */
4959 CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].isSpsEnabled, mBuf);
4960 CMCHKPK(oduUnpackUInt8, param->spsLcInfo[i].lcId, mBuf);
4961 /* SPS Changes ends */
4963 CMCHKPK(oduUnpackUInt8, param->lcCnt, mBuf);
4964 CMCHKPK(oduUnpackUInt32, param->ulSpsPrdctyEnum, mBuf);
4965 CMCHKPK(SPkS8, param->pwrCfg.p0UePuschVal, mBuf);
4966 CMCHKPK(SPkS8, param->pwrCfg.p0NominalPuschVal, mBuf);
4967 CMCHKPK(oduUnpackUInt8, param->pwrCfgPres, mBuf);
4970 CMCHKPK(oduUnpackUInt8, param->twoIntervalCfg, mBuf);
4973 CMCHKPK(oduUnpackUInt32, param->implicitRelCnt, mBuf);
4974 CMCHKPK(oduUnpackUInt8, param->isUlSpsEnabled, mBuf);
4980 /***********************************************************
4982 * Func : cmUnpkRgrUeSpsUlCfg
4985 * Desc : UL SPS configuration parameters per UE
4994 **********************************************************/
4995 S16 cmUnpkRgrUeSpsUlCfg
4997 RgrUeSpsUlCfg *param,
5005 CMCHKUNPK(oduPackUInt8, ¶m->isUlSpsEnabled, mBuf);
5006 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5007 param->implicitRelCnt = tmpEnum;
5010 CMCHKUNPK(oduPackUInt8, ¶m->twoIntervalCfg, mBuf);
5013 CMCHKUNPK(oduPackUInt8, ¶m->pwrCfgPres, mBuf);
5014 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0NominalPuschVal, mBuf);
5015 CMCHKUNPK(SUnpkS8, ¶m->pwrCfg.p0UePuschVal, mBuf);
5016 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5017 param->ulSpsPrdctyEnum = tmpEnum;
5018 CMCHKUNPK(oduPackUInt8, ¶m->lcCnt, mBuf);
5019 for (i=0; i<param->lcCnt; i++) {
5020 CMCHKUNPK(oduPackUInt8, ¶m->spsLcInfo[i].lcId, mBuf);
5021 CMCHKUNPK(oduPackUInt8, ¶m->spsLcInfo[i].isSpsEnabled, mBuf);
5023 CMCHKUNPK(oduPackUInt8, ¶m->isLcSRMaskEnab, mBuf);
5029 /***********************************************************
5031 * Func : cmPkRgrUeSpsCfg
5034 * Desc : SPS configuration parameters per UE
5043 **********************************************************/
5052 CMCHKPK(cmPkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
5053 CMCHKPK(cmPkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
5054 CMCHKPK(cmPkLteRnti, param->spsRnti, mBuf);
5060 /***********************************************************
5062 * Func : cmUnpkRgrUeSpsCfg
5065 * Desc : SPS configuration parameters per UE
5074 **********************************************************/
5075 S16 cmUnpkRgrUeSpsCfg
5083 CMCHKUNPK(cmUnpkLteRnti, ¶m->spsRnti, mBuf);
5084 CMCHKUNPK(cmUnpkRgrUeSpsDlCfg, ¶m->dlSpsCfg, mBuf);
5085 CMCHKUNPK(cmUnpkRgrUeSpsUlCfg, ¶m->ulSpsCfg, mBuf);
5090 /***********************************************************
5092 * Func : cmPkRgrUeUlPwrCfg
5095 * Desc : Uplink power configuration per UE
5104 **********************************************************/
5105 S16 cmPkRgrUeUlPwrCfg
5107 RgrUeUlPwrCfg *param,
5113 CMCHKPK(oduUnpackUInt8, param->trgCqi, mBuf);
5114 CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
5115 CMCHKPK(SPkS8, param->p0UePucch, mBuf);
5116 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
5117 CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
5118 CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
5119 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
5120 CMCHKPK(cmPkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
5126 /***********************************************************
5128 * Func : cmUnpkRgrUeUlPwrCfg
5131 * Desc : Uplink power configuration per UE
5140 **********************************************************/
5141 S16 cmUnpkRgrUeUlPwrCfg
5143 RgrUeUlPwrCfg *param,
5149 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePuschPwr, mBuf);
5150 CMCHKUNPK(cmUnpkRgrUeGrpPwrCfg, ¶m->uePucchPwr, mBuf);
5151 CMCHKUNPK(oduPackUInt8, ¶m->isAccumulated, mBuf);
5152 CMCHKUNPK(oduPackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
5153 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
5154 CMCHKUNPK(SUnpkS8, ¶m->p0UePucch, mBuf);
5155 CMCHKUNPK(oduPackUInt8, ¶m->pSRSOffset, mBuf);
5156 CMCHKUNPK(oduPackUInt8, ¶m->trgCqi, mBuf);
5162 /***********************************************************
5164 * Func : cmPkRgrUeQosCfg
5167 * Desc : Downlink/Uplink QoS configuration per UE
5176 **********************************************************/
5185 CMCHKPK(oduUnpackUInt32, param->ueBr, mBuf);
5186 CMCHKPK(oduUnpackUInt32, param->dlAmbr, mBuf);
5187 CMCHKPK(oduUnpackUInt8, param->ambrPres, mBuf);
5193 /***********************************************************
5195 * Func : cmUnpkRgrUeQosCfg
5198 * Desc : Downlink/Uplink QoS configuration per UE
5207 **********************************************************/
5208 S16 cmUnpkRgrUeQosCfg
5216 CMCHKUNPK(oduPackUInt8, ¶m->ambrPres, mBuf);
5217 CMCHKUNPK(oduPackUInt32, ¶m->dlAmbr, mBuf);
5218 CMCHKUNPK(oduPackUInt32, ¶m->ueBr, mBuf);
5222 /***********************************************************
5224 * Func : cmPkRgrUePuschDedCfg
5227 * Desc : PUSCH Config Dedication for UE
5236 **********************************************************/
5237 S16 cmPkRgrUePuschDedCfg
5239 RgrUePuschDedCfg *param,
5245 CMCHKPK(oduUnpackUInt8, param->bCQIIdx, mBuf);
5246 CMCHKPK(oduUnpackUInt8, param->bRIIdx, mBuf);
5247 CMCHKPK(oduUnpackUInt8, param->bACKIdx, mBuf);
5248 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5253 /***********************************************************
5255 * Func : cmUnpkRgrUePuschDedCfg
5258 * Desc : PUSCH Config Dedication for UE
5268 **********************************************************/
5269 S16 cmUnpkRgrUePuschDedCfg
5271 RgrUePuschDedCfg *param,
5277 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5278 CMCHKUNPK(oduPackUInt8, ¶m->bACKIdx, mBuf);
5279 CMCHKUNPK(oduPackUInt8, ¶m->bRIIdx, mBuf);
5280 CMCHKUNPK(oduPackUInt8, ¶m->bCQIIdx, mBuf);
5284 /***********************************************************
5286 * Func : cmPkRgrUeTxAntSelCfg
5289 * Desc : UE Transmit Antenna selection related configuration
5298 **********************************************************/
5299 S16 cmPkRgrUeTxAntSelCfg
5301 RgrUeTxAntSelCfg *param,
5307 CMCHKPK(oduUnpackUInt32, param->selType, mBuf);
5308 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5314 /***********************************************************
5316 * Func : cmUnpkRgrUeTxAntSelCfg
5319 * Desc : UE Transmit Antenna selection related configuration
5328 **********************************************************/
5329 S16 cmUnpkRgrUeTxAntSelCfg
5331 RgrUeTxAntSelCfg *param,
5338 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5339 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5340 param->selType = (RgrUeTxAntSelType) tmpEnum;
5345 /***********************************************************
5347 * Func : cmPkRgrUeTaTmrCfg
5350 * Desc : Time Alignment timer configuration per UE
5359 **********************************************************/
5360 S16 cmPkRgrUeTaTmrCfg
5362 RgrUeTaTmrCfg *param,
5368 CMCHKPK(oduUnpackUInt16, param->taTmr, mBuf);
5369 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5375 /***********************************************************
5377 * Func : cmUnpkRgrUeTaTmrCfg
5380 * Desc : Time Alignment timer configuration per UE
5389 **********************************************************/
5390 S16 cmUnpkRgrUeTaTmrCfg
5392 RgrUeTaTmrCfg *param,
5398 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5399 CMCHKUNPK(oduPackUInt16, ¶m->taTmr, mBuf);
5405 S16 cmUnpkRgrEmtcUeCfg
5407 RgrUeEmtcCfg *param,
5413 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
5414 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
5415 RgrEpdcchAddModLst *epdcchAddModLst;
5417 CMCHKUNPK(oduPackUInt8,¶m->pdschReptLevModeA,mBuf);
5418 /*UnPacking PUCCH Rep */
5419 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat2),mBuf);
5420 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->modeANumPucchRepFormat1),mBuf);
5421 CMCHKUNPK(oduPackUInt8,&(emtcPucchRepCfg->isPucchRepPres),mBuf);
5425 for(indx = 0; indx < RGR_MAX_EPDCCH_SET; indx++)
5427 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5428 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->extaddgrp2.mpddchNB),mBuf);
5429 CMCHKUNPK(oduPackUInt16,&(epdcchAddModLst->extaddgrp2.mpdcchNumRep),mBuf);
5430 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD),mBuf);
5431 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.mpddchPdschHop),mBuf);
5432 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.csiNumRep),mBuf);
5433 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->extaddgrp2.pres),mBuf);
5434 CMCHKUNPK(cmUnpkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
5435 CMCHKUNPK(cmUnpkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
5436 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->pucchResStartoffset),mBuf);
5437 CMCHKUNPK(oduPackUInt32,&(epdcchAddModLst->dmrsScrambSeq),mBuf);
5438 for(idx = 0; idx < 5; idx++)
5440 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.rbAssignment[idx]),mBuf);
5443 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->resBlkAssignment.numPRBpairs),mBuf);
5444 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->transmissionType),mBuf);
5445 CMCHKUNPK(oduPackUInt8,&(epdcchAddModLst->setConfigId),mBuf);
5448 CMCHKUNPK(cmUnpkTknUInt32,&(emtcEpdcchCfg->startSymbolr11),mBuf);
5449 for(indx = 0; indx < 5; indx++)
5451 CMCHKUNPK(oduPackUInt8,&(emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]),mBuf);
5453 CMCHKUNPK(oduPackUInt8, &(emtcEpdcchCfg->sfPtn.pres), mBuf);
5454 CMCHKUNPK(oduPackUInt8, &(param->pres), mBuf);
5455 CMCHKUNPK(oduPackUInt8, &(param->isHdFddEnbld), mBuf);
5457 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
5458 printf("\n EMTC RGR UE unpack\n");
5459 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
5461 for(indx = 0; indx < 5; indx++)
5463 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
5465 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
5466 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
5468 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
5470 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5471 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
5472 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);
5473 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
5474 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
5475 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
5476 for(idx = 0; idx < 5 ; idx++)
5478 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
5480 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
5481 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
5482 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
5483 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
5484 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
5485 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
5486 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
5487 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
5488 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
5489 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
5490 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
5491 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
5501 S16 cmPkRgrEmtcUeCfg
5503 RgrUeEmtcCfg *param,
5509 RgrEpdcchConfigRel11 *emtcEpdcchCfg = &(param->emtcEpdcchCfg);
5510 RgrPucchRepCfgRel13 *emtcPucchRepCfg = &(param->emtcPucchRepCfg);
5511 RgrEpdcchAddModLst *epdcchAddModLst;
5513 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
5514 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5515 CMCHKPK(oduUnpackUInt8, emtcEpdcchCfg->sfPtn.pres, mBuf);
5516 for(indx = 4; indx >=0; indx--)
5518 CMCHKPK(oduUnpackUInt8,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx],mBuf);
5520 CMCHKPK(cmPkTknUInt32,&emtcEpdcchCfg->startSymbolr11,mBuf);
5521 for(indx = RGR_MAX_EPDCCH_SET-1 ; indx >= 0; indx--)
5523 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5525 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->setConfigId,mBuf);
5526 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->transmissionType,mBuf);
5527 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.numPRBpairs,mBuf);
5528 for(idx = 4; idx >= 0; idx--)
5530 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->resBlkAssignment.rbAssignment[idx],mBuf);
5532 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->dmrsScrambSeq,mBuf);
5533 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->pucchResStartoffset,mBuf);
5534 CMCHKPK(cmPkTknUInt32,&(epdcchAddModLst->pdschRemapQLcfgId),mBuf);
5535 CMCHKPK(cmPkTknUInt8,&(epdcchAddModLst->mpdcchNumPRBpair),mBuf);
5536 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.pres,mBuf);
5537 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.csiNumRep,mBuf);
5538 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpddchPdschHop,mBuf);
5539 CMCHKPK(oduUnpackUInt8,epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD,mBuf);
5540 CMCHKPK(oduUnpackUInt16,epdcchAddModLst->extaddgrp2.mpdcchNumRep,mBuf);
5541 CMCHKPK(oduUnpackUInt32,epdcchAddModLst->extaddgrp2.mpddchNB,mBuf);
5544 /*Packing PUCCH Rep */
5545 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->isPucchRepPres, mBuf);
5546 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat1,mBuf);
5547 CMCHKPK(oduUnpackUInt8,emtcPucchRepCfg->modeANumPucchRepFormat2,mBuf);
5548 CMCHKPK(oduUnpackUInt8,param->pdschReptLevModeA,mBuf);
5550 #ifdef EMTC_DEBUG_CONSOLE_PRINTS
5551 printf("\n EMTC RGR UE pack\n");
5552 printf("\nemtcEpdcchCfg->sfPtn.pres %d ",emtcEpdcchCfg->sfPtn.pres);
5554 for(indx = 0; indx < 5; indx++)
5556 printf("\nemtcEpdcchCfg->sfPtn.measSfPatFDD[%d] %d ",indx,emtcEpdcchCfg->sfPtn.measSfPatFDD[indx]);
5558 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.pres);
5559 printf("\nemtcEpdcchCfg->startSymbolr11 %d ",emtcEpdcchCfg->startSymbolr11.val);
5561 for(indx = 0 ; indx < RGR_MAX_EPDCCH_SET; indx++)
5563 epdcchAddModLst = &(emtcEpdcchCfg->epdcchAddModLst[indx]);
5564 /* printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.pres);
5565 printf("\nemtcEpdcchCfg->epdcchRelLst[indx].setCfgId %d %d ", indx,emtcEpdcchCfg->epdcchRelLst[indx].setCfgId.val);*/
5566 printf("\nepdcchAddModLst->setConfigId %d ", epdcchAddModLst->setConfigId);
5567 printf("\nepdcchAddModLst->transmissionType %d ",epdcchAddModLst->transmissionType);
5568 printf("\nepdcchAddModLst->resBlkAssignment.numPRBpairs %d ",epdcchAddModLst->resBlkAssignment.numPRBpairs);
5569 for(idx = 0; idx < 5 ; idx++)
5571 printf("\nepdcchAddModLst->resBlkAssignment.rbAssignment[idx] %d ",epdcchAddModLst->resBlkAssignment.rbAssignment[idx]);
5573 printf("\nepdcchAddModLst->dmrsScrambSeq %d ",epdcchAddModLst->dmrsScrambSeq);
5574 printf("\nepdcchAddModLst->pucchResStartoffset %d ",epdcchAddModLst->pucchResStartoffset);
5575 printf("\nepdcchAddModLst->pdschRemapQLcfgId.pres %d ",epdcchAddModLst->pdschRemapQLcfgId.pres);
5576 printf("\nepdcchAddModLst->pdschRemapQLcfgId.val %d ", epdcchAddModLst->pdschRemapQLcfgId.val);
5577 printf("\nepdcchAddModLst->mpdcchNumPRBpair.pres %d ", epdcchAddModLst->mpdcchNumPRBpair.pres);
5578 printf("\nepdcchAddModLst->mpdcchNumPRBpair.val %d ", epdcchAddModLst->mpdcchNumPRBpair.val);
5579 printf("\nepdcchAddModLst->extaddgrp2.pres %d ", epdcchAddModLst->extaddgrp2.pres);
5580 printf("\nepdcchAddModLst->extaddgrp2.csiNumRep %d ", epdcchAddModLst->extaddgrp2.csiNumRep);
5581 printf("\nepdcchAddModLst->extaddgrp2.mpddchPdschHop %d ", epdcchAddModLst->extaddgrp2.mpddchPdschHop);
5582 printf("\nepdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD %d ",epdcchAddModLst->extaddgrp2.mpdcchStartUESSFDD);
5583 printf("\nepdcchAddModLst->extaddgrp2.mpdcchNumRep %d ", epdcchAddModLst->extaddgrp2.mpdcchNumRep);
5584 printf("\nepdcchAddModLst->extaddgrp2.mpddchNB %d ", epdcchAddModLst->extaddgrp2.mpddchNB);
5596 S16 cmUnpkRgr5gtfUeCfg
5598 RgrUe5gtfCfg *param,
5602 CMCHKUNPK(oduPackUInt8, ¶m->grpId, mBuf);
5603 CMCHKUNPK(oduPackUInt8, ¶m->BeamId, mBuf);
5604 CMCHKUNPK(oduPackUInt8, ¶m->numCC, mBuf);
5605 CMCHKUNPK(oduPackUInt8, ¶m->mcs, mBuf);
5606 CMCHKUNPK(oduPackUInt8, ¶m->maxPrb, mBuf);
5610 S16 cmPkRgr5gtfUeCfg
5612 RgrUe5gtfCfg *param,
5616 CMCHKPK(oduUnpackUInt8, param->maxPrb, mBuf);
5617 CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
5618 CMCHKPK(oduUnpackUInt8, param->numCC, mBuf);
5619 CMCHKPK(oduUnpackUInt8, param->BeamId, mBuf);
5620 CMCHKPK(oduUnpackUInt8, param->grpId, mBuf);
5626 /***********************************************************
5628 * Func : cmPkRgrUeCfg
5631 * Desc : UE configuration
5640 **********************************************************/
5649 CMCHKPK(cmPkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
5652 CMCHKPK(cmPkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
5654 CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
5656 CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
5657 /* LTE_ADV_FLAG_REMOVED_START */
5658 CMCHKPK(cmPkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
5659 /* LTE_ADV_FLAG_REMOVED_END */
5661 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
5662 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
5664 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
5665 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
5667 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
5669 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
5671 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
5672 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
5674 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
5676 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
5680 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
5681 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
5686 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
5689 CMCHKPK(oduUnpackUInt32, param->ackNackModeEnum, mBuf);
5692 CMCHKPK(cmPkTknUInt8, ¶m->dedPreambleId, mBuf);
5693 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
5694 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
5695 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
5696 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
5697 CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
5698 /*rgr_c_001.main_9 ADD added changes for DRX*/
5700 /* Anshika - Pack only if DRX is enabled */
5701 if(TRUE == param->ueDrxCfg.isDrxEnabled)
5703 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
5705 CMCHKPK(oduUnpackUInt8, param->ueDrxCfg.isDrxEnabled, mBuf); /* This has to be packed even if
5707 CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
5709 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
5711 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
5713 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
5714 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
5715 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
5716 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
5717 CMCHKPK(cmPkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
5718 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
5719 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
5720 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5726 /***********************************************************
5728 * Func : cmUnpkRgrUeCfg
5731 * Desc : UE configuration
5740 **********************************************************/
5750 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5751 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
5752 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
5753 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueDlCqiCfg, mBuf);
5754 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqCfg, mBuf);
5755 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrCfg, mBuf);
5756 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosCfg, mBuf);
5757 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrCfg, mBuf);
5759 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
5761 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrCfg, mBuf);
5763 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5764 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
5765 /*rgr_c_001.main_9 ADD added changes for DRX*/
5767 /* Anshika - Unpack only if DRX is enabled */
5768 CMCHKUNPK(oduPackUInt8, ¶m->ueDrxCfg.isDrxEnabled, mBuf);
5769 if(TRUE == param->ueDrxCfg.isDrxEnabled)
5771 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxCfg, mBuf);
5773 CMCHKUNPK(oduPackUInt8, ¶m->isTtiBundlEnabled, mBuf);
5774 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackCfg, mBuf);
5775 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMesGapCfg, mBuf);
5776 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapCfg, mBuf);
5777 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstCfg, mBuf);
5778 CMCHKUNPK(cmUnpkTknUInt8, ¶m->dedPreambleId, mBuf);
5781 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5782 param->ackNackModeEnum = tmpEnum;
5785 /*rgr_c_001.main_7 - Added support for SPS*/
5786 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsCfg, mBuf);
5788 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
5790 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
5791 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
5793 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
5795 CMCHKUNPK(oduPackUInt8, ¶m->isHdFddEnbld, mBuf);
5797 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
5798 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
5799 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
5800 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
5802 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
5805 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
5807 /* LTE_ADV_FLAG_REMOVED_START */
5808 CMCHKUNPK(cmUnpkRgrLteAdvancedUeConfig, ¶m->ueLteAdvCfg, mBuf);
5809 /* LTE_ADV_FLAG_REMOVED_END */
5810 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->accessStratumRls, mBuf);
5811 CMCHKUNPK(oduPackUInt8, ¶m->csgMmbrSta, mBuf);
5814 CMCHKUNPK(cmUnpkRgrEmtcUeCfg, ¶m->emtcUeCfg, mBuf);
5818 CMCHKUNPK(cmUnpkRgr5gtfUeCfg, ¶m->ue5gtfCfg, mBuf);
5826 /***********************************************************
5828 * Func : cmPkRgrLchQosCfg
5831 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
5840 **********************************************************/
5841 S16 cmPkRgrLchQosCfg
5843 RgrLchQosCfg *param,
5849 CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
5850 CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
5851 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
5857 /***********************************************************
5859 * Func : cmUnpkRgrLchQosCfg
5862 * Desc : QCI, GBR and MBR configuration for dedicated logical channels
5871 **********************************************************/
5872 S16 cmUnpkRgrLchQosCfg
5874 RgrLchQosCfg *param,
5880 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
5881 CMCHKUNPK(oduPackUInt32, ¶m->gbr, mBuf);
5882 CMCHKUNPK(oduPackUInt32, ¶m->mbr, mBuf);
5885 /*rgr_c_001.main_7 - Added support for SPS*/
5888 /***********************************************************
5890 * Func : cmPkRgrLchSpsCfg
5893 * Desc : SPS related configuration for logical channels
5902 **********************************************************/
5903 S16 cmPkRgrLchSpsCfg
5905 RgrLchSpsCfg *param,
5912 CMCHKPK(oduUnpackUInt8, param->isSpsEnabled, mBuf);
5918 /***********************************************************
5920 * Func : cmUnpkRgrLchSpsCfg
5923 * Desc : SPS related configuration for logical channels
5932 **********************************************************/
5933 S16 cmUnpkRgrLchSpsCfg
5935 RgrLchSpsCfg *param,
5941 CMCHKUNPK(oduPackUInt8, ¶m->isSpsEnabled, mBuf);
5947 /***********************************************************
5949 * Func : cmPkRgrDlLchCfg
5952 * Desc : Logical channel configuration info for downlink logical channels
5961 **********************************************************/
5969 /*rgr_c_001.main_7 - Added support for SPS*/
5971 CMCHKPK(oduUnpackUInt8, param->rlcReorderTmr, mBuf);
5972 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
5973 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlQos, mBuf);
5974 CMCHKPK(oduUnpackUInt8, param->dlTrchType, mBuf);
5980 /***********************************************************
5982 * Func : cmUnpkRgrDlLchCfg
5985 * Desc : Logical channel configuration info for downlink logical channels
5994 **********************************************************/
5995 S16 cmUnpkRgrDlLchCfg
6003 CMCHKUNPK(oduPackUInt8, ¶m->dlTrchType, mBuf);
6004 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlQos, mBuf);
6005 /*rgr_c_001.main_7 - Added support for SPs*/
6006 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlSpsCfg, mBuf);
6007 CMCHKUNPK(oduPackUInt8, ¶m->rlcReorderTmr, mBuf);
6013 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6017 /***********************************************************
6019 * Func : cmPkRgrUlLchCfg
6022 * Desc : Logical channel configuration information for uplink logical channels
6031 **********************************************************/
6040 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
6041 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
6047 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6048 /***********************************************************
6050 * Func : cmUnpkRgrUlLchCfg
6053 * Desc : Logical channel configuration information for uplink logical channels
6062 **********************************************************/
6063 S16 cmUnpkRgrUlLchCfg
6071 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
6072 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
6079 /***********************************************************
6081 * Func : cmPkRgrUlLcgCfg
6084 * Desc : Logical channel configuration info for uplink logical channels
6093 **********************************************************/
6101 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6105 CMCHKPK(oduUnpackUInt32, param->mbr, mBuf);
6106 CMCHKPK(oduUnpackUInt32, param->gbr, mBuf);
6108 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6110 for (i = param->numLch - 1; i >= 0; i--)
6112 CMCHKPK(cmPkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
6114 CMCHKPK(oduUnpackUInt8, param->numLch, mBuf);
6116 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
6122 /***********************************************************
6124 * Func : cmUnpkRgrUlLcgCfg
6127 * Desc : Logical channel configuration info for uplink logical channels
6136 **********************************************************/
6137 S16 cmUnpkRgrUlLcgCfg
6144 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6149 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
6150 /*rgr_c_001.main_9 ADD added changes for L2 measurements*/
6152 CMCHKUNPK(oduPackUInt8, ¶m->numLch, mBuf);
6153 for (i = 0; i< param->numLch; i++)
6155 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->lchUlCfg[i], mBuf);
6159 CMCHKUNPK(oduPackUInt32, ¶m->gbr, mBuf);
6160 CMCHKUNPK(oduPackUInt32, ¶m->mbr, mBuf);
6164 S16 cmPkRgrUlLchQciCfg
6166 RgrUlLchQciCfg *param,
6170 CMCHKPK(oduUnpackUInt8, param->lcId, mBuf);
6171 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
6172 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
6175 S16 cmUnpkRgrUlLchQciCfg
6177 RgrUlLchQciCfg *param,
6181 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
6182 CMCHKUNPK(oduPackUInt8, ¶m->qci, mBuf);
6183 CMCHKUNPK(oduPackUInt8, ¶m->lcId, mBuf);
6188 /***********************************************************
6190 * Func : cmPkRgrLchCfg
6193 * Desc : Logical channel configuration info for dedicated channels
6202 **********************************************************/
6210 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
6211 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
6212 CMCHKPK(cmPkRgrDlLchCfg, ¶m->dlInfo, mBuf);
6213 CMCHKPK(cmPkLteLcType, param->lcType, mBuf);
6214 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
6215 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6216 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6222 /***********************************************************
6224 * Func : cmUnpkRgrLchCfg
6227 * Desc : Logical channel configuration info for dedicated channels
6236 **********************************************************/
6245 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6246 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6247 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
6248 CMCHKUNPK(cmUnpkLteLcType, ¶m->lcType, mBuf);
6249 CMCHKUNPK(cmUnpkRgrDlLchCfg, ¶m->dlInfo, mBuf);
6250 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
6251 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
6264 CMCHKPK(cmPkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
6265 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6266 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6279 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6280 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6281 CMCHKUNPK(cmUnpkRgrUlLcgCfg, ¶m->ulInfo, mBuf);
6287 /***********************************************************
6292 * Desc : Basic Configuration structure at RRM
6301 **********************************************************/
6310 switch(param->cfgType) {
6312 CMCHKPK(cmPkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
6315 CMCHKPK(cmPkRgrLchCfg, ¶m->u.lchCfg, mBuf);
6318 CMCHKPK(cmPkRgrUeCfg, ¶m->u.ueCfg, mBuf);
6321 CMCHKPK(cmPkRgrCellCfg, ¶m->u.cellCfg, mBuf);
6324 CMCHKPK(cmPkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
6329 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
6335 /***********************************************************
6337 * Func : cmUnpkRgrCfg
6340 * Desc : Basic Configuration structure at RRM
6349 **********************************************************/
6358 CMCHKUNPK(oduPackUInt8, ¶m->cfgType, mBuf);
6359 switch(param->cfgType) {
6361 CMCHKUNPK(cmUnpkMacSchedGnbCfg, ¶m->u.schedGnbCfg, mBuf);
6364 CMCHKUNPK(cmUnpkRgrCellCfg, ¶m->u.cellCfg, mBuf);
6367 CMCHKUNPK(cmUnpkRgrUeCfg, ¶m->u.ueCfg, mBuf);
6370 CMCHKUNPK(cmUnpkRgrLchCfg, ¶m->u.lchCfg, mBuf);
6373 CMCHKUNPK(cmUnpkRgrLcgCfg, ¶m->u.lcgCfg, mBuf);
6383 /***********************************************************
6385 * Func : cmPkRgrActvTime
6388 * Desc : Activation time information
6397 **********************************************************/
6406 CMCHKPK(cmPkLteTimingInfo, ¶m->actvTime, mBuf);
6407 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6413 /***********************************************************
6415 * Func : cmUnpkRgrActvTime
6418 * Desc : Activation time information
6427 **********************************************************/
6428 S16 cmUnpkRgrActvTime
6436 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6437 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvTime, mBuf);
6443 /***********************************************************
6445 * Func : cmPkRgrCellRecfg
6448 * Desc : Cell reconfiguration structure at RRM
6457 **********************************************************/
6458 S16 cmPkRgrCellRecfg
6460 RgrCellRecfg *param,
6465 CMCHKPK(cmPkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
6466 CMCHKPK(cmPkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
6467 CMCHKPK(oduUnpackUInt8, param->isDynCfiEnb, mBuf);
6468 CMCHKPK(oduUnpackUInt8, param->isAutoCfgModeEnb, mBuf);
6469 /* LTE_ADV_FLAG_REMOVED_START */
6470 CMCHKPK(cmPkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
6471 /* LTE_ADV_FLAG_REMOVED_END */
6472 CMCHKPK(oduUnpackUInt16, param->t300TmrVal, mBuf);
6473 /* rgr_c_001.main_4:MOD-Modified for SI Enhancement. */
6475 CMCHKPK(cmPkRgrSiCfg, ¶m->siReCfg, mBuf);
6476 #endif /* RGR_SI_SCH */
6477 CMCHKPK(cmPkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
6478 CMCHKPK(cmPkRgrRachCfg, ¶m->rachRecfg, mBuf);
6479 CMCHKPK(cmPkRgrSrsCfg, ¶m->srsRecfg, mBuf);
6480 CMCHKPK(cmPkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
6481 CMCHKPK(cmPkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
6482 CMCHKPK(cmPkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
6483 CMCHKPK(cmPkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
6484 CMCHKPK(cmPkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
6485 CMCHKPK(cmPkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
6486 CMCHKPK(cmPkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
6487 CMCHKPK(cmPkRgrActvTime, ¶m->recfgActvTime, mBuf);
6488 CMCHKPK(oduUnpackUInt32, param->recfgTypes, mBuf);
6489 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6495 /***********************************************************
6497 * Func : cmUnpkRgrCellRecfg
6500 * Desc : Cell reconfiguration structure at RRM
6509 **********************************************************/
6510 S16 cmUnpkRgrCellRecfg
6512 RgrCellRecfg *param,
6518 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6519 CMCHKUNPK(oduPackUInt32, ¶m->recfgTypes, mBuf);
6520 CMCHKUNPK(cmUnpkRgrActvTime, ¶m->recfgActvTime, mBuf);
6521 CMCHKUNPK(cmUnpkRgrDlHqCfg, ¶m->dlHqRecfg, mBuf);
6522 CMCHKUNPK(cmUnpkRgrCfiCfg, ¶m->cfiRecfg, mBuf);
6523 CMCHKUNPK(cmUnpkRgrUlTrgCqiCfg, ¶m->trgUlCqi, mBuf);
6524 CMCHKUNPK(cmUnpkRgrDlCmnCodeRateCfg, ¶m->dlCmnCodeRate, mBuf);
6525 CMCHKUNPK(cmUnpkRgrPuschSubBandCfg, ¶m->puschSubBand, mBuf);
6526 CMCHKUNPK(cmUnpkRgrUlCmnCodeRateCfg, ¶m->ulCmnCodeRate, mBuf);
6527 CMCHKUNPK(cmUnpkRgrPucchCfg, ¶m->pucchRecfg, mBuf);
6528 CMCHKUNPK(cmUnpkRgrSrsCfg, ¶m->srsRecfg, mBuf);
6529 CMCHKUNPK(cmUnpkRgrRachCfg, ¶m->rachRecfg, mBuf);
6530 CMCHKUNPK(cmUnpkRgrDlfsCfg, ¶m->dlfsRecfg, mBuf);
6531 /* rgr_c_001.main_4-MOD-Modified for SI Enhancement. */
6533 CMCHKUNPK(cmUnpkRgrSiCfg, ¶m->siReCfg, mBuf);
6534 #endif /* RGR_SI_SCH */
6535 CMCHKUNPK(oduPackUInt16, ¶m->t300TmrVal, mBuf);
6536 /* LTE_ADV_FLAG_REMOVED_START */
6537 CMCHKUNPK(cmUnpkRgrCellLteAdvancedFeatureCfg, ¶m->rgrLteAdvCfg, mBuf);
6538 /* LTE_ADV_FLAG_REMOVED_END */
6539 CMCHKUNPK(oduPackUInt8, ¶m->isAutoCfgModeEnb, mBuf);
6540 CMCHKUNPK(oduPackUInt8, ¶m->isDynCfiEnb, mBuf);
6541 CMCHKUNPK(cmUnpkRgrCellCsgParamCfg, ¶m->csgParamCfg, mBuf);
6542 CMCHKUNPK(cmUnpkRgrCellCntrlCmdCfg, ¶m->cntrlCmdCfg, mBuf);
6549 /***********************************************************
6551 * Func : cmPkRgrUeRecfg
6554 * Desc : UE reconfiguration info
6563 **********************************************************/
6572 /* Note: As we add more members to emtcUeRecfg,
6573 create a new function for pkUnpk */
6574 CMCHKPK(oduUnpackUInt8, param->emtcUeRecfg.isHdFddEnbld, mBuf);
6576 CMCHKPK(oduUnpackUInt8, param->csgMmbrSta, mBuf);
6578 CMCHKPK(oduUnpackUInt32, param->accessStratumRls, mBuf);
6580 CMCHKPK(oduUnpackUInt8, param->simulAckNackCQIFormat3, mBuf);
6581 CMCHKPK(cmPkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
6582 CMCHKPK(cmPkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
6584 /* LTE_ADV_FLAG_REMOVED_START */
6585 CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isUeCellEdge, mBuf);
6586 CMCHKPK(oduUnpackUInt8, param->ueLteAdvCfg.isAbsUe, mBuf);
6587 CMCHKPK(oduUnpackUInt32, param->ueLteAdvCfg.pres, mBuf);
6588 /* LTE_ADV_FLAG_REMOVED_END */
6589 /*ccpu00130497: Removed the duplicate packing*/
6591 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6593 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6594 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6596 CMCHKPK(cmPkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6599 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6600 CMCHKPK(cmPkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6602 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6604 CMCHKPK(oduUnpackUInt8, param->isHdFddEnbld, mBuf);
6608 CMCHKPK(cmPkRgrUeSrCfg, ¶m->srCfg, mBuf);
6609 CMCHKPK(cmPkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6610 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
6613 /*rgr_c_001.main_7 - Added support for SPS*/
6614 CMCHKPK(cmPkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
6615 CMCHKPK(cmPkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6617 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
6618 CMCHKPK(oduUnpackUInt32, param->ueCatEnum, mBuf);
6620 CMCHKPK(cmPkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
6621 CMCHKPK(cmPkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
6622 CMCHKPK(cmPkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
6623 CMCHKPK(cmPkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
6624 CMCHKPK(oduUnpackUInt8, param->isTtiBundlEnabled, mBuf);
6625 /*rgr_c_001.main_9 ADD added changes for DRX*/
6627 /* Anshika - Pack only if DRX is enabled */
6628 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
6630 CMCHKPK(cmPkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
6632 CMCHKPK(oduUnpackUInt8, param->ueDrxRecfg.isDrxEnabled, mBuf); /* This has to be packed even if
6634 CMCHKPK(cmPkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
6636 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6638 CMCHKPK(cmPkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
6640 CMCHKPK(cmPkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
6641 CMCHKPK(cmPkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
6642 CMCHKPK(cmPkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
6645 CMCHKPK(cmPkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
6648 CMCHKPK(cmPkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
6649 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6650 /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
6651 /* LTE_ADV_FLAG_REMOVED_START */
6652 /* KW fix for LTE_ADV */
6653 CMCHKPK(oduUnpackUInt32, param->ueRecfgTypes, mBuf);
6654 /* LTE_ADV_FLAG_REMOVED_END */
6655 CMCHKPK(cmPkLteRnti, param->newCrnti, mBuf);
6656 CMCHKPK(cmPkLteRnti, param->oldCrnti, mBuf);
6657 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6663 /***********************************************************
6665 * Func : cmUnpkRgrUeRecfg
6668 * Desc : UE reconfiguration info
6677 **********************************************************/
6678 S16 cmUnpkRgrUeRecfg
6687 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6688 CMCHKUNPK(cmUnpkLteRnti, ¶m->oldCrnti, mBuf);
6689 CMCHKUNPK(cmUnpkLteRnti, ¶m->newCrnti, mBuf);
6690 /* LTE_ADV_FLAG_REMOVED_START */
6691 /*rgr_c_001.main_9: changing ueRecfgTypes to uint32_t */
6692 /* KW fix for LTE_ADV */
6693 CMCHKUNPK(oduPackUInt32, ¶m->ueRecfgTypes, mBuf);
6694 /* LTE_ADV_FLAG_REMOVED_END */
6695 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
6697 CMCHKUNPK(cmUnpkRgrUeAprdDlCqiCfg, ¶m->aprdDlCqiRecfg, mBuf);
6700 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->prdDlCqiRecfg, mBuf);
6703 CMCHKUNPK(cmUnpkRgrUeUlHqCfg, ¶m->ueUlHqRecfg, mBuf);
6704 CMCHKUNPK(cmUnpkRgrUeQosCfg, ¶m->ueQosRecfg, mBuf);
6705 CMCHKUNPK(cmUnpkRgrUeTaTmrCfg, ¶m->ueTaTmrRecfg, mBuf);
6707 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
6709 CMCHKUNPK(cmUnpkRgrUeBsrTmrCfg, ¶m->ueBsrTmrRecfg, mBuf);
6711 CMCHKUNPK(cmUnpkRgrUeUlPwrCfg, ¶m->ueUlPwrRecfg, mBuf);
6712 /*rgr_c_001.main_9 ADD added changes for DRX*/
6714 /* Anshika - Unpack only if DRX is enabled */
6715 CMCHKUNPK(oduPackUInt8, ¶m->ueDrxRecfg.isDrxEnabled, mBuf);
6716 if(TRUE == param->ueDrxRecfg.isDrxEnabled)
6718 CMCHKUNPK(cmUnpkRgrUeDrxCfg, ¶m->ueDrxRecfg, mBuf);
6720 CMCHKUNPK(oduPackUInt8, ¶m->isTtiBundlEnabled, mBuf);
6721 CMCHKUNPK(cmUnpkRgrUeAckNackRepCfg, ¶m->ueAckNackRecfg, mBuf);
6722 CMCHKUNPK(cmUnpkRgrUeCapCfg, ¶m->ueCapRecfg, mBuf);
6723 CMCHKUNPK(cmUnpkRgrUeMeasGapCfg, ¶m->ueMeasGapRecfg, mBuf);
6724 CMCHKUNPK(cmUnpkRgrCodeBookRstCfg, ¶m->ueCodeBookRstRecfg, mBuf);
6725 /* rgr_c_001.main_7 - Changes for UE category Reconfiguration */
6726 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6727 param->ueCatEnum = (CmLteUeCategory) tmpEnum;
6728 CMCHKUNPK(cmUnpkRgrUeTxAntSelCfg, ¶m->ulTxAntSel, mBuf);
6729 /*rgr_c_001.main_7 - Added support for SPS*/
6730 CMCHKUNPK(cmUnpkRgrUeSpsCfg, ¶m->ueSpsRecfg, mBuf);
6732 /* rgr_c_001.main_8. Added changes of TFU_UPGRADE */
6734 CMCHKUNPK(cmUnpkRgrUePrdDlCqiCfg, ¶m->cqiCfg, mBuf);
6735 CMCHKUNPK(cmUnpkRgrUeUlSrsCfg, ¶m->srsCfg, mBuf);
6736 CMCHKUNPK(cmUnpkRgrUeSrCfg, ¶m->srCfg, mBuf);
6739 /*rgr_c_001.main_9 ADD added changes for HDFDD*/
6741 CMCHKUNPK(oduPackUInt8, ¶m->isHdFddEnbld, mBuf);
6744 CMCHKUNPK(cmUnpkRgrUePuschDedCfg, ¶m->puschDedCfg, mBuf);
6746 /* rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
6747 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
6749 CMCHKUNPK(cmUnpkRgrUeCqiReptCfg, ¶m->ueCqiReptCfg, mBuf);
6752 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
6755 /* LTE_ADV_FLAG_REMOVED_START */
6756 CMCHKUNPK(oduPackUInt32, ¶m->ueLteAdvCfg.pres, mBuf);
6757 CMCHKUNPK(oduPackUInt8, ¶m->ueLteAdvCfg.isAbsUe, mBuf);
6758 CMCHKUNPK(oduPackUInt8, ¶m->ueLteAdvCfg.isUeCellEdge, mBuf);
6759 /* LTE_ADV_FLAG_REMOVED_END */
6761 CMCHKUNPK(cmUnpkRgrUeSecCellInfo, ¶m->ueSCellCfgInfo,mBuf);
6762 CMCHKUNPK(cmUnpkRgrUeSCellAckPucchCfg, ¶m->sCellAckN1ResCfg,mBuf);
6763 CMCHKUNPK(oduPackUInt8, ¶m->simulAckNackCQIFormat3, mBuf);
6765 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->accessStratumRls, mBuf);
6767 CMCHKUNPK(oduPackUInt8, ¶m->csgMmbrSta, mBuf);
6769 CMCHKPK(oduPackUInt8, ¶m->emtcUeRecfg.isHdFddEnbld, mBuf);
6777 /***********************************************************
6779 * Func : cmPkRgrLchRecfg
6782 * Desc : Logical channel reconfiguration info for dedicated channels only
6791 **********************************************************/
6799 /*rgr_c_001.main_7 - Added support for SPS*/
6800 CMCHKPK(oduUnpackUInt8, param->lcgId, mBuf);
6802 CMCHKPK(cmPkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
6803 CMCHKPK(cmPkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
6805 CMCHKPK(cmPkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
6806 CMCHKPK(cmPkLteLcId, param->lcId, mBuf);
6807 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6808 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6814 /***********************************************************
6816 * Func : cmUnpkRgrLchRecfg
6819 * Desc : Logical channel reconfiguration info for dedicated channels only
6828 **********************************************************/
6829 S16 cmUnpkRgrLchRecfg
6837 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6838 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6839 CMCHKUNPK(cmUnpkLteLcId, ¶m->lcId, mBuf);
6840 CMCHKUNPK(cmUnpkRgrLchQosCfg, ¶m->dlRecfg.dlQos, mBuf);
6841 /*rgr_c_001.main_7 - Added support for SPs*/
6842 CMCHKUNPK(cmUnpkRgrLchSpsCfg, ¶m->dlRecfg.dlSpsRecfg, mBuf);
6844 CMCHKUNPK(cmUnpkRgrUlLchQciCfg, ¶m->ulLchQciInfo, mBuf);
6845 CMCHKUNPK(oduPackUInt8, ¶m->lcgId, mBuf);
6860 CMCHKPK(oduUnpackUInt32, param->ulRecfg.mbr, mBuf);
6861 CMCHKPK(oduUnpackUInt32, param->ulRecfg.gbr, mBuf);
6863 for (i = param->ulRecfg.numLch - 1; i >= 0; i--)
6865 CMCHKPK(cmPkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
6867 CMCHKPK(oduUnpackUInt8, param->ulRecfg.numLch, mBuf);
6869 CMCHKPK(oduUnpackUInt8, param->ulRecfg.lcgId, mBuf);
6870 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
6871 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6876 S16 cmUnpkRgrLcgRecfg
6886 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6887 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
6888 CMCHKUNPK(oduPackUInt8, ¶m->ulRecfg.lcgId, mBuf);
6891 CMCHKUNPK(oduPackUInt8, ¶m->ulRecfg.numLch, mBuf);
6892 for (i = 0; i < param->ulRecfg.numLch; i++)
6894 CMCHKUNPK(cmUnpkRgrUlLchCfg, ¶m->ulRecfg.lchUlCfg[i], mBuf);
6897 CMCHKUNPK(oduPackUInt32, ¶m->ulRecfg.gbr, mBuf);
6898 CMCHKUNPK(oduPackUInt32, ¶m->ulRecfg.mbr, mBuf);
6905 /***********************************************************
6907 * Func : cmPkRgrRecfg
6910 * Desc : Basic reconfiguration structure at RRM
6919 **********************************************************/
6928 switch(param->recfgType) {
6930 CMCHKPK(cmPkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
6933 CMCHKPK(cmPkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
6936 CMCHKPK(cmPkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
6939 CMCHKPK(cmPkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
6944 CMCHKPK(oduUnpackUInt8, param->recfgType, mBuf);
6950 /***********************************************************
6952 * Func : cmUnpkRgrRecfg
6955 * Desc : Basic reconfiguration structure at RRM
6964 **********************************************************/
6973 CMCHKUNPK(oduPackUInt8, ¶m->recfgType, mBuf);
6974 switch(param->recfgType) {
6976 CMCHKUNPK(cmUnpkRgrCellRecfg, ¶m->u.cellRecfg, mBuf);
6979 CMCHKUNPK(cmUnpkRgrUeRecfg, ¶m->u.ueRecfg, mBuf);
6982 CMCHKUNPK(cmUnpkRgrLchRecfg, ¶m->u.lchRecfg, mBuf);
6985 CMCHKUNPK(cmUnpkRgrLcgRecfg, ¶m->u.lcgRecfg, mBuf);
6994 /***********************************************************
6996 * Func : cmPkRgrUeDlSecCellRelInfo
6999 * Desc : DL Secondary Cell information of the UE
7008 **********************************************************/
7009 S16 cmPkRgrUeDlSecCellRelInfo
7011 RgrUeDlSecCellRelInfo *param,
7015 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
7016 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
7020 /***********************************************************
7022 * Func : cmPkRgrUeSecCellRelInfo
7025 * Desc : Secondary Cell Delete information of the UE
7034 **********************************************************/
7035 S16 cmPkRgrUeSecCellRelInfo
7037 RgrUeSecCellRelInfo *param,
7042 for(idx = param->numSCells - 1; idx >= 0; idx--)
7044 CMCHKPK(cmPkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[(uint8_t)idx],mBuf);
7046 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
7053 /***********************************************************
7058 * Desc : Basic Delete info for MAC
7067 **********************************************************/
7076 switch(param->delType) {
7078 CMCHKPK(oduUnpackUInt8, param->u.lcgDel.lcgId, mBuf);
7079 CMCHKPK(cmPkLteRnti, param->u.lcgDel.crnti, mBuf);
7080 CMCHKPK(cmPkLteCellId, param->u.lcgDel.cellId, mBuf);
7083 CMCHKPK(oduUnpackUInt8, param->u.lchDel.lcgId, mBuf);
7084 CMCHKPK(cmPkLteLcId, param->u.lchDel.lcId, mBuf);
7085 CMCHKPK(cmPkLteRnti, param->u.lchDel.crnti, mBuf);
7086 CMCHKPK(cmPkLteCellId, param->u.lchDel.cellId, mBuf);
7089 CMCHKPK(cmPkLteRnti, param->u.ueDel.crnti, mBuf);
7090 CMCHKPK(cmPkLteCellId, param->u.ueDel.cellId, mBuf);
7093 CMCHKPK(cmPkLteCellId, param->u.cellDel.cellId, mBuf);
7096 case RGR_SCELL_UE_CFG:
7097 CMCHKPK(cmPkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
7098 CMCHKPK(oduUnpackUInt32, param->u.ueScellRel.ueDelTypes, mBuf);
7099 CMCHKPK(cmPkLteRnti, param->u.ueScellRel.crnti, mBuf);
7100 CMCHKPK(cmPkLteCellId, param->u.ueScellRel.cellId, mBuf);
7106 CMCHKPK(oduUnpackUInt8, param->delType, mBuf);
7113 /***********************************************************
7115 * Func : cmUnpkRgrUeDlSecCellRelInfo
7118 * Desc : DL Secondary Cell information of the UE
7127 **********************************************************/
7128 S16 cmUnpkRgrUeDlSecCellRelInfo
7130 RgrUeDlSecCellRelInfo *param,
7134 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
7135 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
7140 /***********************************************************
7142 * Func : cmUnpkRgrUeSecCellRelInfo
7145 * Desc : Secondary Cell information of the UE
7154 **********************************************************/
7155 S16 cmUnpkRgrUeSecCellRelInfo
7157 RgrUeSecCellRelInfo *param,
7163 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
7165 for(idx = 0; idx < param->numSCells;idx++)
7167 CMCHKUNPK(cmUnpkRgrUeDlSecCellRelInfo, ¶m->ueSCellRelDedCfg[idx],mBuf);
7173 /***********************************************************
7175 * Func : cmUnpkRgrDel
7178 * Desc : Basic Delete info for MAC
7187 **********************************************************/
7196 CMCHKUNPK(oduPackUInt8, ¶m->delType, mBuf);
7197 switch(param->delType) {
7199 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.cellDel.cellId, mBuf);
7202 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueDel.cellId, mBuf);
7203 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueDel.crnti, mBuf);
7206 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lchDel.cellId, mBuf);
7207 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lchDel.crnti, mBuf);
7208 CMCHKUNPK(cmUnpkLteLcId, ¶m->u.lchDel.lcId, mBuf);
7209 CMCHKUNPK(oduPackUInt8, ¶m->u.lchDel.lcgId, mBuf);
7212 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.lcgDel.cellId, mBuf);
7213 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.lcgDel.crnti, mBuf);
7214 CMCHKUNPK(oduPackUInt8, ¶m->u.lcgDel.lcgId, mBuf);
7217 case RGR_SCELL_UE_CFG:
7218 CMCHKUNPK(cmUnpkLteCellId, ¶m->u.ueScellRel.cellId, mBuf);
7219 CMCHKUNPK(cmUnpkLteRnti, ¶m->u.ueScellRel.crnti, mBuf);
7220 CMCHKUNPK(oduPackUInt32, ¶m->u.ueScellRel.ueDelTypes, mBuf);
7221 CMCHKUNPK(cmUnpkRgrUeSecCellRelInfo, ¶m->u.ueScellRel.ueSCellRelCfgInfo, mBuf);
7229 /***********************************************************
7231 * Func : cmPkRgrSonPrbCfg
7234 * Desc : SON PRB Configuration info for MAC
7243 **********************************************************/
7244 S16 cmPkRgrSonPrbCfg
7251 for(count = RGR_SCH_MAX_PA_PER_PRB - 1; count >= 0; count --)
7253 CMCHKPK(oduUnpackUInt32, param->paLevelPerPrb[count], mBuf);
7255 for(count = param->numCellCentreUEs - 1; count >= 0; count --)
7257 CMCHKPK(cmPkLteRnti, param->cellCentreUe[count], mBuf);
7259 for(count = param->numCellEdgeUEs - 1; count >= 0; count --)
7261 CMCHKPK(cmPkLteRnti, param->cellEdgeUe[count], mBuf);
7263 CMCHKPK(oduUnpackUInt8, param->numCellCentreUEs, mBuf);
7264 CMCHKPK(oduUnpackUInt8, param->numCellEdgeUEs, mBuf);
7265 CMCHKPK(oduUnpackUInt8, param->isSonIcicEnable, mBuf);
7269 /***********************************************************
7271 * Func : cmUnpkRgrSon
7274 * Desc : SON configuration info for MAC
7283 **********************************************************/
7284 S16 cmUnpkRgrSonPrbCfg
7291 CMCHKUNPK(oduPackUInt8, ¶m->isSonIcicEnable, mBuf);
7292 CMCHKUNPK(oduPackUInt8, ¶m->numCellEdgeUEs, mBuf);
7293 CMCHKUNPK(oduPackUInt8, ¶m->numCellCentreUEs, mBuf);
7294 for (count = 0; count < param->numCellEdgeUEs; count++)
7296 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellEdgeUe[count], mBuf);
7298 for (count = 0; count < param->numCellCentreUEs; count++)
7300 CMCHKUNPK(cmUnpkLteRnti, ¶m->cellCentreUe[count], mBuf);
7302 for(count = 0; count < RGR_SCH_MAX_PA_PER_PRB; count ++)
7304 CMCHKUNPK(oduPackUInt32,(uint32_t *) ¶m->paLevelPerPrb[count], mBuf);
7308 /***********************************************************
7310 * Func : cmPkRgrSonCfg
7313 * Desc : SON Configuration info for MAC
7322 **********************************************************/
7330 switch(param->cfgType)
7332 case RGR_SON_PRB_CFG :
7333 CMCHKPK(cmPkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
7338 CMCHKPK(oduUnpackUInt32, param->cfgType, mBuf);
7342 /***********************************************************
7344 * Func : cmUnpkRgrSon
7347 * Desc : SON configuration info for MAC
7356 **********************************************************/
7364 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->cfgType, mBuf);
7365 switch(param->cfgType)
7367 case RGR_SON_PRB_CFG :
7369 CMCHKUNPK(cmUnpkRgrSonPrbCfg, ¶m->u.prbCfg, mBuf);
7379 /***********************************************************
7384 * Desc : UE RESET info for MAC
7393 **********************************************************/
7402 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7403 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7409 /***********************************************************
7411 * Func : cmUnpkRgrRst
7414 * Desc : UE RESET info for MAC
7423 **********************************************************/
7432 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7433 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7437 /***********************************************************
7439 * Func : cmUnPkRgrSCellActDeactInfo
7442 * Desc : SCell Activation information of the UE
7451 **********************************************************/
7452 static S16 cmUnPkRgrSCellActDeactInfo
7454 RgrSCellActDeactInfo *param,
7459 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
7463 /***********************************************************
7465 * Func : cmUnPkRgrSCellActDeactEvnt
7468 * Desc : SCell Activation Configuration structure to SCH
7477 **********************************************************/
7478 S16 cmUnPkRgrSCellActDeactEvnt
7480 RgrSCellActDeactEvnt *param,
7487 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
7488 CMCHKUNPK(oduPackUInt8, ¶m->numOfSCells, mBuf);
7490 for(idx = 0; idx < param->numOfSCells;idx++)
7492 CMCHKUNPK(cmUnPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[idx],mBuf);
7499 /***********************************************************
7501 * Func : cmPkRgrSCellActInfo
7504 * Desc : SCell Activation information of the UE
7513 **********************************************************/
7514 static S16 cmPkRgrSCellActDeactInfo
7516 RgrSCellActDeactInfo *param,
7521 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
7526 /***********************************************************
7528 * Func : cmPkRgrSCellActDeactEvnt
7531 * Desc : Basic Configuration structure at SCH
7540 **********************************************************/
7541 S16 cmPkRgrSCellActDeactEvnt
7543 RgrSCellActDeactEvnt *param,
7550 for(idx = param->numOfSCells - 1; idx >= 0; idx--)
7552 CMCHKPK(cmPkRgrSCellActDeactInfo, ¶m->sCellActDeactInfo[(uint8_t)idx], mBuf);
7555 CMCHKPK(oduUnpackUInt8, param->numOfSCells, mBuf);
7556 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
7562 #endif /* LTE_ADV */
7564 /***********************************************************
7566 * Func : cmPkRgrCfgReqInfo
7569 * Desc : Basic RGR configuration/reconfiguration info at RRM
7578 **********************************************************/
7579 S16 cmPkRgrCfgReqInfo
7581 RgrCfgReqInfo *param,
7587 switch(param->action) {
7589 CMCHKPK(cmPkRgrSonCfg, ¶m->u.sonCfg, mBuf);
7592 CMCHKPK(cmPkRgrRst, ¶m->u.rstInfo, mBuf);
7595 CMCHKPK(cmPkRgrDel, ¶m->u.delInfo, mBuf);
7598 CMCHKPK(cmPkRgrRecfg, ¶m->u.recfgInfo, mBuf);
7601 CMCHKPK(cmPkRgrCfg, ¶m->u.cfgInfo, mBuf);
7605 case RGR_SCELL_DEACT:
7606 case RGR_SCELL_READY:
7607 CMCHKPK(cmPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
7613 CMCHKPK(oduUnpackUInt8, param->action, mBuf);
7619 /***********************************************************
7621 * Func : cmUnpkRgrCfgReqInfo
7624 * Desc : Basic RGR configuration/reconfiguration info at RRM
7633 **********************************************************/
7634 S16 cmUnpkRgrCfgReqInfo
7636 RgrCfgReqInfo *param,
7642 CMCHKUNPK(oduPackUInt8, ¶m->action, mBuf);
7643 switch(param->action) {
7645 CMCHKUNPK(cmUnpkRgrCfg, ¶m->u.cfgInfo, mBuf);
7648 CMCHKUNPK(cmUnpkRgrRecfg, ¶m->u.recfgInfo, mBuf);
7651 CMCHKUNPK(cmUnpkRgrDel, ¶m->u.delInfo, mBuf);
7654 CMCHKUNPK(cmUnpkRgrRst, ¶m->u.rstInfo, mBuf);
7657 CMCHKUNPK(cmUnpkRgrSonCfg, ¶m->u.sonCfg, mBuf);
7661 case RGR_SCELL_DEACT:
7662 case RGR_SCELL_READY:
7663 CMCHKUNPK(cmUnPkRgrSCellActDeactEvnt, ¶m->u.sCellActDeactEvnt, mBuf);
7665 #endif /* LTE_ADV */
7672 /* rgr_c_001.main_5: ccpu00112398: Added periodicBSR-timer and
7674 /***********************************************************
7676 * Func : cmPkRgrUeBsrTmrCfg
7679 * Desc : BSR timer configuration per UE
7688 **********************************************************/
7689 S16 cmPkRgrUeBsrTmrCfg
7691 RgrUeBsrTmrCfg *param,
7697 CMCHKPK(oduUnpackUInt16, param->prdBsrTmr, mBuf);
7698 CMCHKPK(oduUnpackUInt16, param->retxBsrTmr, mBuf);
7699 CMCHKPK(oduUnpackUInt8, param->isPrdBsrTmrPres, mBuf);
7703 /***********************************************************
7705 * Func : cmUnpkRgrUeBsrTmrCfg
7708 * Desc : BSR timer configuration per UE
7717 **********************************************************/
7718 S16 cmUnpkRgrUeBsrTmrCfg
7720 RgrUeBsrTmrCfg *param,
7726 CMCHKUNPK(oduPackUInt8, ¶m->isPrdBsrTmrPres, mBuf);
7727 CMCHKUNPK(oduPackUInt16, ¶m->retxBsrTmr, mBuf);
7728 CMCHKUNPK(oduPackUInt16, ¶m->prdBsrTmr, mBuf);
7732 /* rgr_c_001.main_4-ADD-Added for SI Enhancement. */
7734 /***********************************************************
7736 * Func : cmPkRgrSiCfgReq
7739 * Desc : SI Configuration Request from RRM to MAC for
7749 **********************************************************/
7754 RgrCfgTransId transId,
7755 RgrSiCfgReqInfo * cfgReqInfo
7758 Buffer *mBuf = NULLP;
7761 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
7763 #if (ERRCLASS & ERRCLS_ADD_RES)
7764 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7765 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7766 (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
7768 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo,
7769 sizeof(RgrSiCfgReqInfo));
7772 if (cmPkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
7773 #if (ERRCLASS & ERRCLS_ADD_RES)
7774 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7775 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7776 (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
7778 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo,
7779 sizeof(RgrSiCfgReqInfo));
7783 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
7784 #if (ERRCLASS & ERRCLS_ADD_RES)
7785 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7786 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7787 (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
7789 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo,
7790 sizeof(RgrSiCfgReqInfo));
7794 if (SPkS16(spId, mBuf) != ROK) {
7795 #if (ERRCLASS & ERRCLS_ADD_RES)
7796 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7797 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7798 (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
7800 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo,
7801 sizeof(RgrSiCfgReqInfo));
7805 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo,
7806 sizeof(RgrSiCfgReqInfo)) != ROK) {
7807 #if (ERRCLASS & ERRCLS_ADD_RES)
7808 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7809 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7810 (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
7816 pst->event = (Event) EVTRGRSICFGREQ;
7817 return (SPstTsk(pst,mBuf));
7820 /***********************************************************
7822 * Func : cmUnpkRgrSiCfgReq
7825 * Desc : SI Configuration Request from RRM to MAC for
7835 **********************************************************/
7836 S16 cmUnpkRgrSiCfgReq
7844 RgrCfgTransId transId;
7845 RgrSiCfgReqInfo *cfgReqInfo;
7848 if (SUnpkS16(&spId, mBuf) != ROK) {
7850 #if (ERRCLASS & ERRCLS_ADD_RES)
7851 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7852 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7853 (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
7857 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
7859 #if (ERRCLASS & ERRCLS_ADD_RES)
7860 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7861 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7862 (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
7866 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&cfgReqInfo,
7867 sizeof(RgrSiCfgReqInfo))) != ROK) {
7868 #if (ERRCLASS & ERRCLS_ADD_RES)
7869 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7870 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7871 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
7876 memset(cfgReqInfo, 0, sizeof(RgrSiCfgReqInfo));
7877 if (pst->selector == ODU_SELECTOR_LC)
7878 if (cmUnpkRgrSiCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
7879 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo,
7880 sizeof(RgrSiCfgReqInfo));
7882 #if (ERRCLASS & ERRCLS_ADD_RES)
7883 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7884 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7885 (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
7891 return ((*func)(pst, spId, transId, cfgReqInfo));
7894 /***********************************************************
7896 * Func : cmPkRgrSiCfgReqInfo
7899 * Desc : Basic SI configuration/reconfiguration info at RRM
7908 **********************************************************/
7909 S16 cmPkRgrSiCfgReqInfo
7911 RgrSiCfgReqInfo *param,
7915 /* ccpu00111328: S16 is renamed as MsgLen */
7919 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7920 CMCHKPK(SPkS32, param->cfgType, mBuf);
7921 CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
7923 if(NULLP != param->pdu)
7925 if (SFndLenMsg(param->pdu, &msgLen) != ROK)
7927 if (SCatMsg(mBuf, param->pdu, M1M2) != ROK)
7929 SPutMsg(param->pdu);
7930 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
7935 CMCHKPK(cmPkMsgLen, 0, mBuf);
7941 /***********************************************************
7943 * Func : cmUnpkRgrSiCfgReqInfo
7946 * Desc : Basic SI configuration/reconfiguration info at RRM
7955 **********************************************************/
7956 S16 cmUnpkRgrSiCfgReqInfo
7958 RgrSiCfgReqInfo *param,
7962 MsgLen msgLen, totalMsgLen;
7963 /*Merge from Mohit Changes*/
7967 SFndLenMsg(mBuf, &msgLen);
7970 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
7974 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
7976 if (SSegMsg(mBuf, totalMsgLen-msgLen, ¶m->pdu) != ROK)
7985 CMCHKUNPK(oduPackUInt8, ¶m->siId, mBuf);
7986 /*CMCHKUNPK(SUnpkS32, (S32 *)¶m->cfgType, mBuf);*/
7987 /*Merge from Mohit Changes*/
7988 CMCHKUNPK(SUnpkS32,(S32 *)&cfgType, mBuf);
7989 param->cfgType = (RgrSiCfgType) cfgType;
7990 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7997 /***********************************************************
7999 * Func : cmPkRgrWarningSiCfgReq
8002 * Desc : SI Configuration Request from RRM to MAC for
8003 * configuring warning SI
8012 **********************************************************/
8013 S16 cmPkRgrWarningSiCfgReq
8017 RgrCfgTransId transId,
8018 RgrWarningSiCfgReqInfo * warningSiCfgReqInfo
8021 Buffer *mBuf = NULLP;
8024 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
8026 #if (ERRCLASS & ERRCLS_ADD_RES)
8027 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8028 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8029 (ErrVal)ERGR061, (ErrVal)0, "Packing failed");
8031 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
8032 sizeof(RgrWarningSiCfgReqInfo));
8036 if (cmPkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK)
8038 #if (ERRCLASS & ERRCLS_ADD_RES)
8039 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8040 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8041 (ErrVal)ERGR062, (ErrVal)0, "Packing failed");
8043 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
8044 sizeof(RgrWarningSiCfgReqInfo));
8049 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
8051 #if (ERRCLASS & ERRCLS_ADD_RES)
8052 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8053 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8054 (ErrVal)ERGR063, (ErrVal)0, "Packing failed");
8056 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
8057 sizeof(RgrWarningSiCfgReqInfo));
8062 if (SPkS16(spId, mBuf) != ROK)
8064 #if (ERRCLASS & ERRCLS_ADD_RES)
8065 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8066 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8067 (ErrVal)ERGR064, (ErrVal)0, "Packing failed");
8069 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
8070 sizeof(RgrWarningSiCfgReqInfo));
8075 /* if the application wants to retain this structure, the below
8076 * code should be removed */
8077 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
8078 sizeof(RgrWarningSiCfgReqInfo)) != ROK)
8080 #if (ERRCLASS & ERRCLS_ADD_RES)
8081 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8082 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8083 (ErrVal)ERGR065, (ErrVal)0, "Packing failed");
8089 pst->event = (Event) EVTRGRWARNINGSICFGREQ;
8090 return (SPstTsk(pst,mBuf));
8091 }/*cmPkRgrWarningSiCfgReq*/
8094 /***********************************************************
8096 * Func : cmUnpkRgrWarningSiCfgReq
8099 * Desc : SI Configuration Request from RRM to MAC for
8100 * configuring warning SI
8109 **********************************************************/
8110 S16 cmUnpkRgrWarningSiCfgReq
8112 RgrWarningSiCfgReq func,
8118 RgrCfgTransId transId;
8119 RgrWarningSiCfgReqInfo *warningSiCfgReqInfo;
8122 if (SUnpkS16(&spId, mBuf) != ROK)
8125 #if (ERRCLASS & ERRCLS_ADD_RES)
8126 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8127 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8128 (ErrVal)ERGR066, (ErrVal)0, "Packing failed");
8133 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
8136 #if (ERRCLASS & ERRCLS_ADD_RES)
8137 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8138 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8139 (ErrVal)ERGR067, (ErrVal)0, "Packing failed");
8144 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&warningSiCfgReqInfo,
8145 sizeof(RgrWarningSiCfgReqInfo))) != ROK)
8147 #if (ERRCLASS & ERRCLS_ADD_RES)
8148 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8149 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8150 (ErrVal)ERGR068, (ErrVal)0, "Packing failed");
8157 if (pst->selector == ODU_SELECTOR_LC)
8159 if (cmUnpkRgrWarningSiCfgReqInfo(pst, warningSiCfgReqInfo, mBuf) != ROK)
8161 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)warningSiCfgReqInfo,
8162 sizeof(RgrWarningSiCfgReqInfo));
8164 #if (ERRCLASS & ERRCLS_ADD_RES)
8165 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8166 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8167 (ErrVal)ERGR069, (ErrVal)0, "Packing failed");
8174 return ((*func)(pst, spId, transId, warningSiCfgReqInfo));
8175 } /* cmUnpkRgrWarningSiCfgReq */
8178 /***********************************************************
8180 * Func : cmPkRgrWarningSiCfgReqInfo
8183 * Desc : Basic warning SI configuration/reconfiguration
8193 **********************************************************/
8194 S16 cmPkRgrWarningSiCfgReqInfo
8197 RgrWarningSiCfgReqInfo *param,
8203 CmLList *node, *prevNode;
8204 RgrSegmentInfo *pdu;
8207 CMCHKPK(oduUnpackUInt8, param->emtcEnable, mBuf);
8209 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
8210 CMCHKPK(oduUnpackUInt8, param->siId, mBuf);
8212 count = param->siPduLst.count;
8213 node = param->siPduLst.last;
8216 pdu = (RgrSegmentInfo *)node->node;
8217 prevNode= node->prev;
8220 if (SFndLenMsg(pdu->pdu, &msgLen) != ROK)
8222 if (SCatMsg(mBuf, pdu->pdu, M1M2) != ROK)
8224 /* The PDU is not Released. This has to be done by
8225 * the caller of the packing function */
8226 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
8229 cmLListDelFrm(¶m->siPduLst, node);
8230 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)node, sizeof(RgrSegmentInfo));
8233 CMCHKPK(oduUnpackUInt32, count, mBuf);
8238 /***********************************************************
8240 * Func : cmUnpkRgrWarningSiCfgReqInfo
8243 * Desc : Unpack warning SI configuration info at SCH
8252 **********************************************************/
8253 S16 cmUnpkRgrWarningSiCfgReqInfo
8256 RgrWarningSiCfgReqInfo *param,
8260 MsgLen msgLen, totalMsgLen;
8261 uint32_t count, loopCnt;
8266 cmLListInit(¶m->siPduLst);
8267 CMCHKUNPK(oduPackUInt32, &count, mBuf);
8268 for (loopCnt=0; loopCnt<count; loopCnt++)
8270 if(SFndLenMsg(mBuf, &msgLen) != ROK)
8277 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
8278 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
8282 if (SSegMsg(mBuf, totalMsgLen-msgLen, &pdu) != ROK)
8291 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&node,
8292 sizeof(CmLList))) != ROK)
8294 node->node = (PTR)pdu;
8295 cmLListAdd2Tail(¶m->siPduLst, node);
8298 CMCHKUNPK(oduPackUInt8, ¶m->siId, mBuf);
8299 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8300 CMCHKPK(oduPackUInt8, ¶m->emtcEnable, mBuf);
8306 /***********************************************************
8308 * Func : cmPkRgrWarningSiStopReq
8310 * Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
8317 **********************************************************/
8318 S16 cmPkRgrWarningSiStopReq
8322 RgrCfgTransId transId,
8326 Buffer *mBuf = NULLP;
8329 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
8331 #if (ERRCLASS & ERRCLS_ADD_RES)
8332 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8333 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8334 (ErrVal)ERGR070, (ErrVal)0, "Packing failed");
8339 CMCHKPK(oduUnpackUInt8, siId, mBuf);
8342 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
8344 #if (ERRCLASS & ERRCLS_ADD_RES)
8345 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8346 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8347 (ErrVal)ERGR082, (ErrVal)0, "Packing failed");
8354 if (SPkS16(spId, mBuf) != ROK)
8356 #if (ERRCLASS & ERRCLS_ADD_RES)
8357 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8358 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8359 (ErrVal)ERGR071, (ErrVal)0, "Packing failed");
8365 pst->event = (Event) EVTRGRWARNINGSISTOPREQ;
8366 return (SPstTsk(pst,mBuf));
8367 }/*cmPkRgrWarningSiStopReq */
8370 /***********************************************************
8372 * Func : cmUnpkRgrWarningSiStopReq
8374 * Desc : To stop the broadcast for SIB10, SIB11 and SIB12.
8381 **********************************************************/
8382 S16 cmUnpkRgrWarningSiStopReq
8384 RgrWarningSiStopReq func,
8391 RgrCfgTransId transId;
8394 if (SUnpkS16(&spId, mBuf) != ROK)
8397 #if (ERRCLASS & ERRCLS_ADD_RES)
8398 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8399 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8400 (ErrVal)ERGR072, (ErrVal)0, "Packing failed");
8405 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
8408 #if (ERRCLASS & ERRCLS_ADD_RES)
8409 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8410 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8411 (ErrVal)ERGR083, (ErrVal)0, "Packing failed");
8416 CMCHKUNPK(oduPackUInt8, &siId, mBuf);
8420 return ((*func)(pst, spId, transId, siId));
8421 } /*cmUnpkRgrWarningSiStopReq */
8424 /***********************************************************
8426 * Func : cmPkRgrWarningSiCfgCfm
8429 * Desc : Warning SI Configuration Confirm from MAC to RRM
8438 **********************************************************/
8439 S16 cmPkRgrWarningSiCfgCfm
8443 RgrCfgTransId transId,
8448 Buffer *mBuf = NULLP;
8451 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
8453 #if (ERRCLASS & ERRCLS_ADD_RES)
8454 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8455 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8456 (ErrVal)ERGR073, (ErrVal)0, "Packing failed");
8461 if (oduUnpackUInt8(status, mBuf) != ROK)
8463 #if (ERRCLASS & ERRCLS_ADD_RES)
8464 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8465 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8466 (ErrVal)ERGR074, (ErrVal)0, "Packing failed");
8472 if (oduUnpackUInt8(siId, mBuf) != ROK)
8474 #if (ERRCLASS & ERRCLS_ADD_RES)
8475 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8476 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8477 (ErrVal)ERGR075, (ErrVal)0, "Packing failed");
8483 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK)
8485 #if (ERRCLASS & ERRCLS_ADD_RES)
8486 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8487 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8488 (ErrVal)ERGR076, (ErrVal)0, "Packing failed");
8494 if (SPkS16(suId, mBuf) != ROK)
8496 #if (ERRCLASS & ERRCLS_ADD_RES)
8497 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8498 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8499 (ErrVal)ERGR077, (ErrVal)0, "Packing failed");
8505 pst->event = (Event) EVTRGRWARNINGSICFGCFM;
8506 return (SPstTsk(pst,mBuf));
8507 } /* cmPkRgrWarningSiCfgCfm */
8510 /***********************************************************
8512 * Func : cmUnpkRgrwarningSiCfgCfm
8515 * Desc : Warning SI Configuration Confirm from MAC to RRM
8524 **********************************************************/
8525 S16 cmUnpkRgrWarningSiCfgCfm
8527 RgrWarningSiCfgCfm func,
8534 RgrCfgTransId transId;
8538 if (SUnpkS16(&suId, mBuf) != ROK)
8541 #if (ERRCLASS & ERRCLS_ADD_RES)
8542 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8543 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8544 (ErrVal)ERGR078, (ErrVal)0, "Packing failed");
8549 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK)
8552 #if (ERRCLASS & ERRCLS_ADD_RES)
8553 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8554 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8555 (ErrVal)ERGR079, (ErrVal)0, "Packing failed");
8560 if (oduPackUInt8(&siId, mBuf) != ROK)
8563 #if (ERRCLASS & ERRCLS_ADD_RES)
8564 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8565 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8566 (ErrVal)ERGR080, (ErrVal)0, "Packing failed");
8571 if (oduPackUInt8(&status, mBuf) != ROK)
8574 #if (ERRCLASS & ERRCLS_ADD_RES)
8575 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8576 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8577 (ErrVal)ERGR081, (ErrVal)0, "Packing failed");
8582 return ((*func)(pst, suId, transId, siId, status));
8583 }/* cmUnpkRgrwarningSiCfgCfm */
8584 #endif/*RGR_SI_SCH*/
8586 /* LTE_ADV_FLAG_REMOVED_START */
8587 /***********************************************************
8589 * Func : cmPkRgrLoadInfReq
8592 * Desc : LOAD INF Configuration Request from RRM to MAC for
8593 * configuring RNTP, ABS etc
8602 **********************************************************/
8603 S16 cmPkRgrLoadInfReq
8607 RgrCfgTransId transId,
8608 RgrLoadInfReqInfo * loadInfReq
8611 Buffer *mBuf = NULLP;
8614 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
8616 #if (ERRCLASS & ERRCLS_ADD_RES)
8617 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8618 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8619 (ErrVal)ERGR045, (ErrVal)0, "Packing failed");
8621 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfReq,
8622 sizeof(RgrLoadInfReqInfo));
8625 if (cmPkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
8626 #if (ERRCLASS & ERRCLS_ADD_RES)
8627 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8628 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8629 (ErrVal)ERGR046, (ErrVal)0, "Packing failed");
8631 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfReq,
8632 sizeof(RgrLoadInfReqInfo));
8636 if (cmPkRgrCfgTransId(&transId, mBuf) != ROK) {
8637 #if (ERRCLASS & ERRCLS_ADD_RES)
8638 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8639 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8640 (ErrVal)ERGR047, (ErrVal)0, "Packing failed");
8642 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfReq,
8643 sizeof(RgrLoadInfReqInfo));
8647 if (SPkS16(spId, mBuf) != ROK) {
8648 #if (ERRCLASS & ERRCLS_ADD_RES)
8649 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8650 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8651 (ErrVal)ERGR048, (ErrVal)0, "Packing failed");
8653 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfReq,
8654 sizeof(RgrLoadInfReqInfo));
8658 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfReq,
8659 sizeof(RgrLoadInfReqInfo)) != ROK) {
8660 #if (ERRCLASS & ERRCLS_ADD_RES)
8661 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8662 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8663 (ErrVal)ERGR049, (ErrVal)0, "Packing failed");
8669 pst->event = (Event) EVTRGRLOADINFREQ;
8670 return (SPstTsk(pst,mBuf));
8673 /***********************************************************
8675 * Func : cmUnpkRgrLoadInfReq
8678 * Desc : LOAD INF Configuration Request from RRM to MAC for
8679 * configuring RNTP, ABS etc
8688 **********************************************************/
8689 S16 cmUnpkRgrLoadInfReq
8697 RgrCfgTransId transId;
8698 RgrLoadInfReqInfo *loadInfReq;
8701 if (SUnpkS16(&spId, mBuf) != ROK) {
8703 #if (ERRCLASS & ERRCLS_ADD_RES)
8704 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8705 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8706 (ErrVal)ERGR050, (ErrVal)0, "Packing failed");
8711 if (cmUnpkRgrCfgTransId(&transId, mBuf) != ROK) {
8713 #if (ERRCLASS & ERRCLS_ADD_RES)
8714 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8715 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8716 (ErrVal)ERGR051, (ErrVal)0, "Packing failed");
8721 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&loadInfReq,
8722 sizeof(RgrLoadInfReqInfo))) != ROK) {
8723 #if (ERRCLASS & ERRCLS_ADD_RES)
8724 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8725 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8726 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
8732 memset(loadInfReq, 0, sizeof(RgrLoadInfReqInfo));
8734 if (pst->selector == ODU_SELECTOR_LC)
8735 if (cmUnpkRgrLoadInfReqInfo(loadInfReq, mBuf) != ROK) {
8736 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfReq,
8737 sizeof(RgrLoadInfReqInfo));
8739 #if (ERRCLASS & ERRCLS_ADD_RES)
8740 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8741 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8742 (ErrVal)ERGR053, (ErrVal)0, "Packing failed");
8748 return ((*func)(pst, spId, transId, loadInfReq));
8751 /***********************************************************
8753 * Func : cmPkRgrLoadInfReqInfo
8756 * Desc : Basic LOAD INF configuration/reconfiguration info at RRM
8765 **********************************************************/
8766 S16 cmPkRgrLoadInfReqInfo
8768 RgrLoadInfReqInfo *param,
8773 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
8774 CMCHKPK(oduUnpackUInt8, param->rgrCcPHighStartRb, mBuf);
8775 CMCHKPK(oduUnpackUInt8, param->rgrCcPHighEndRb, mBuf);
8780 /***********************************************************
8782 * Func : cmUnpkRgrLoadInfReqInfo
8785 * Desc : Basic LOAD INF configuration/reconfiguration info at RRM
8794 **********************************************************/
8795 S16 cmUnpkRgrLoadInfReqInfo
8797 RgrLoadInfReqInfo *param,
8802 CMCHKUNPK(oduPackUInt8, ¶m->rgrCcPHighEndRb, mBuf);
8803 CMCHKUNPK(oduPackUInt8, ¶m->rgrCcPHighStartRb, mBuf);
8804 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8808 /* LTE_ADV_FLAG_REMOVED_END */
8810 /*rgr_c_001.main_9 ccpu00117452 - MOD - Changed macro name from
8811 RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
8814 /***********************************************************
8816 * Func : cmPkRgrUeCqiReptCfg
8819 * Desc : Transaction ID between MAC and RRM
8828 **********************************************************/
8829 S16 cmPkRgrUeCqiReptCfg
8831 RgrUeCqiReptCfg *param,
8836 CMCHKPK(oduUnpackUInt8, param->numColltdCqiRept, mBuf);
8842 /*rgr_c_001.main_9 ADD added changes for CQI management*/
8843 /***********************************************************
8845 * Func : cmUnpkRgrUeCqiReptCfg
8848 * Desc : Transaction ID between MAC and RRM
8857 **********************************************************/
8858 S16 cmUnpkRgrUeCqiReptCfg
8860 RgrUeCqiReptCfg *param,
8865 CMCHKUNPK(oduPackUInt8, ¶m->numColltdCqiRept, mBuf);
8871 /*rgr_c_001.main_9 ADD added changes for CQI management*/
8872 /***********************************************************
8874 * Func : cmPkRgrStaInd
8877 * Desc : Packing Sta Indication sent to RRM
8886 **********************************************************/
8891 RgrStaIndInfo* staInd
8894 Buffer *mBuf = NULLP;
8896 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
8898 #if (ERRCLASS & ERRCLS_ADD_RES)
8899 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8900 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8901 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
8903 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
8904 sizeof(RgrStaIndInfo));
8908 if (cmPkRgrStaIndInfo(staInd, mBuf) != ROK)
8910 #if (ERRCLASS & ERRCLS_ADD_RES)
8911 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8912 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8913 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
8915 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd, sizeof(RgrStaIndInfo));
8920 if (SPkS16(suId, mBuf) != ROK)
8922 #if (ERRCLASS & ERRCLS_ADD_RES)
8923 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8924 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8925 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
8927 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
8928 sizeof(RgrStaIndInfo));
8933 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
8934 sizeof(RgrStaIndInfo)) != ROK)
8936 #if (ERRCLASS & ERRCLS_ADD_RES)
8937 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8938 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8939 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
8945 pst->event = (Event) EVTRGRSTAIND;
8946 return (SPstTsk(pst,mBuf));
8949 /*rgr_c_001.main_9 ADD added changes for CQI management*/
8950 /***********************************************************
8952 * Func : cmUnpkRgrStaInd
8955 * Desc : Unpacking Sta Indication sent to RRM
8963 **********************************************************/
8972 RgrStaIndInfo *staInd;
8975 if (SUnpkS16(&suId, mBuf) != ROK)
8978 #if (ERRCLASS & ERRCLS_ADD_RES)
8979 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8980 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8981 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
8986 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&staInd,
8987 sizeof(RgrStaIndInfo))) != ROK)
8989 #if (ERRCLASS & ERRCLS_ADD_RES)
8990 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8991 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8992 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
8998 if (cmUnpkRgrStaIndInfo(staInd, mBuf) != ROK)
9000 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)staInd,
9001 sizeof(RgrStaIndInfo));
9003 #if (ERRCLASS & ERRCLS_ADD_RES)
9004 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9005 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9006 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
9012 return ((*func)(pst, suId, staInd));
9015 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9016 /***********************************************************
9018 * Func : cmPkRgrStaIndInfo
9021 * Desc : Packing of StaIndInfo structure
9029 **********************************************************/
9030 S16 cmPkRgrStaIndInfo
9032 RgrStaIndInfo *param,
9038 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
9039 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
9040 CMCHKPK(cmPkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
9044 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9045 /***********************************************************
9047 * Func : cmUnpkRgrStaIndInfo
9050 * Desc : Unpacking of StaIndInfo structure
9058 **********************************************************/
9059 S16 cmUnpkRgrStaIndInfo
9061 RgrStaIndInfo *param,
9067 CMCHKUNPK(cmUnpkRgrUeCqiInfo, ¶m->ueCqiInfo, mBuf);
9068 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
9069 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
9073 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9074 /***********************************************************
9076 * Func : cmPkRgrUeCqiInfo
9079 * Desc : Packing of StaIndInfo structure
9087 **********************************************************/
9088 S16 cmPkRgrUeCqiInfo
9090 RgrUeCqiInfo *param,
9097 for (idx = param->numCqiRept - 1; idx >= 0; idx--)
9099 CMCHKPK(cmPkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
9101 CMCHKPK(oduUnpackUInt8, param->numCqiRept, mBuf);
9104 } /* cmPkRgrUeCqiInfo */
9106 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9107 /***********************************************************
9109 * Func : cmUnpkRgrUeCqiInfo
9112 * Desc : Packing of StaIndInfo structure
9120 **********************************************************/
9121 S16 cmUnpkRgrUeCqiInfo
9123 RgrUeCqiInfo *param,
9130 CMCHKUNPK(oduPackUInt8, ¶m->numCqiRept, mBuf);
9131 for (idx = 0; idx < param->numCqiRept; idx++)
9133 CMCHKUNPK(cmUnpkRgrUeCqiRept, ¶m->cqiRept[idx], mBuf);
9137 } /* cmUnpkRgrUeCqiInfo */
9139 /***********************************************************
9141 * Func : cmPkRgrSubBandCqiInfo
9144 * Desc : Packing ofcmPkRgrSubBandCqiInfo structure
9152 **********************************************************/
9153 S16 cmPkRgrSubBandCqiInfo
9155 RgrSubBandCqiInfo *param,
9161 CMCHKPK(oduUnpackUInt8, param->cqi[0], mBuf);
9162 CMCHKPK(oduUnpackUInt8, param->cqi[1], mBuf);
9163 CMCHKPK(oduUnpackUInt8, param->subBandIdx, mBuf);
9166 } /* cmPkRgrSubBandCqiInfo */
9168 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9169 /***********************************************************
9171 * Func : cmPkRgrUeCqiRept
9174 * Desc : Packing of StaIndInfo structure
9182 **********************************************************/
9183 S16 cmPkRgrUeCqiRept
9185 RgrUeCqiRept *param,
9193 CMCHKPK(oduUnpackUInt8, param->cqi[0], mBuf);
9194 CMCHKPK(oduUnpackUInt8, param->cqi[1], mBuf);
9195 CMCHKPK(oduUnpackUInt8, param->cqiMode, mBuf);
9196 for (idx = param->numSubBand - 1; idx >= 0; idx--)
9199 CMCHKPK(cmPkRgrSubBandCqiInfo, ¶m->sbCqiInfo[count], mBuf);
9201 CMCHKPK(oduUnpackUInt8, param->numSubBand, mBuf);
9203 } /* cmPkRgrUeCqiRept */
9205 /***********************************************************
9207 * Func :cmUnpkRgrSubBandCqiInfo
9210 * Desc : Packing of cmUnpkRgrSubBandCqiInfo structure
9218 **********************************************************/
9219 S16 cmUnpkRgrSubBandCqiInfo
9221 RgrSubBandCqiInfo *param,
9227 CMCHKUNPK(oduPackUInt8, ¶m->subBandIdx, mBuf);
9228 CMCHKUNPK(oduPackUInt8, ¶m->cqi[1], mBuf);
9229 CMCHKUNPK(oduPackUInt8, ¶m->cqi[0], mBuf);
9232 } /* cmUnpkRgrSubBandCqiInfo*/
9234 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9235 /***********************************************************
9237 * Func : cmUnpkRgrUeCqiRept
9240 * Desc : Packing of StaIndInfo structure
9248 **********************************************************/
9249 S16 cmUnpkRgrUeCqiRept
9251 RgrUeCqiRept *param,
9257 CMCHKUNPK(oduPackUInt8, ¶m->numSubBand, mBuf);
9258 for (idx = 0; idx < param->numSubBand; idx++)
9260 CMCHKUNPK(cmUnpkRgrSubBandCqiInfo, ¶m->sbCqiInfo[idx], mBuf);
9262 CMCHKUNPK(oduPackUInt8, ¶m->cqiMode, mBuf);
9263 CMCHKUNPK(oduPackUInt8, ¶m->cqi[1], mBuf);
9264 CMCHKUNPK(oduPackUInt8, ¶m->cqi[0], mBuf);
9267 } /* cmUnpkRgrUeCqiRept */
9268 #endif /* End of ifdef RGR_CQI_REPT */
9270 /* LTE_ADV_FLAG_REMOVED_START */
9271 /***********************************************************
9273 * Func : cmPkRgrLoadInfInd
9276 * Desc : Packing LOAD INFORMATION Indication sent to RRM
9285 **********************************************************/
9286 S16 cmPkRgrLoadInfInd
9290 RgrLoadInfIndInfo* loadInfInd
9293 Buffer *mBuf = NULLP;
9295 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
9297 #if (ERRCLASS & ERRCLS_ADD_RES)
9298 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9299 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9300 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
9302 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
9303 sizeof(RgrLoadInfIndInfo));
9307 if (cmPkRgrLoadInfIndInfo(loadInfInd, mBuf) != ROK)
9309 #if (ERRCLASS & ERRCLS_ADD_RES)
9310 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9311 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9312 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
9314 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
9315 sizeof(RgrLoadInfIndInfo));
9321 if (SPkS16(suId, mBuf) != ROK)
9323 #if (ERRCLASS & ERRCLS_ADD_RES)
9324 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9325 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9326 (ErrVal)ERGR056, (ErrVal)0, "Packing failed");
9328 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
9329 sizeof(RgrLoadInfIndInfo));
9334 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
9335 sizeof(RgrLoadInfIndInfo)) != ROK)
9337 #if (ERRCLASS & ERRCLS_ADD_RES)
9338 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9339 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9340 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
9346 pst->event = (Event) EVTRGRLOADINFIND;
9347 return (SPstTsk(pst,mBuf));
9350 /***********************************************************
9352 * Func : cmUnpkRgrLoadInfInd
9355 * Desc : Unpacking LOAD INFORMATION Indication sent to RRM
9363 **********************************************************/
9364 S16 cmUnpkRgrLoadInfInd
9372 RgrLoadInfIndInfo *loadInfInd = NULLP; /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
9375 if (SUnpkS16(&suId, mBuf) != ROK)
9378 #if (ERRCLASS & ERRCLS_ADD_RES)
9379 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9380 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9381 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
9386 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&loadInfInd,
9387 sizeof(RgrLoadInfIndInfo))) != ROK)
9389 #if (ERRCLASS & ERRCLS_ADD_RES)
9390 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9391 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9392 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
9398 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
9399 if (cmUnpkRgrLoadInfIndInfo(loadInfInd, pst, mBuf) != ROK)
9401 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)loadInfInd,
9402 sizeof(RgrLoadInfIndInfo));
9404 #if (ERRCLASS & ERRCLS_ADD_RES)
9405 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9406 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9407 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
9413 return ((*func)(pst, suId, loadInfInd));
9417 /***********************************************************
9419 * Func : cmPkRgrLoadInfIndInfo
9422 * Desc : Packing of LoadInfIndInfo structure
9430 **********************************************************/
9431 S16 cmPkRgrLoadInfIndInfo
9433 RgrLoadInfIndInfo *param,
9439 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
9440 CMCHKPK(oduUnpackUInt16, param->bw, mBuf);
9441 if(RGR_ABS == param->type)
9443 for(idx = 0; idx < RGR_ABS_PATTERN_LEN; idx++)
9445 CMCHKPK(oduUnpackUInt32, param->u.absLoadInfo[idx], mBuf);
9450 CMCHKPK(cmPkTknStrOSXL, ¶m->u.rntpInfo, mBuf);
9453 CMCHKPK(oduUnpackUInt32, param->type, mBuf);
9458 /***********************************************************
9460 * Func : cmUnpkRgrLoadInfIndInfo
9463 * Desc : Unpacking of LoadInfIndInfo structure
9471 **********************************************************/
9472 S16 cmUnpkRgrLoadInfIndInfo
9474 RgrLoadInfIndInfo *param,
9481 /* dsfr_pal_fixes ** 21-March-2013 ** SKS */
9486 CMCHKUNPK(oduPackUInt32, ¶m->type, mBuf);
9487 if(RGR_ABS == param->type)
9489 for(idx = RGR_ABS_PATTERN_LEN -1 ; idx >= 0; idx--)
9491 CMCHKUNPK(oduPackUInt32, ¶m->u.absLoadInfo[(uint8_t)idx], mBuf);
9497 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** Start */
9498 tknStr = ¶m->u.rntpInfo;
9500 CMCHKUNPK(oduPackUInt8, &tknStr->pres, mBuf);
9505 CMCHKUNPK(oduPackUInt16, &tknStr->len, mBuf);
9507 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&tknStr->val,tknStr->len)) != ROK) {
9508 #if (ERRCLASS & ERRCLS_ADD_RES)
9509 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
9510 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
9511 (ErrVal)ERGR052, (ErrVal)0, "Packing failed");
9518 for (ndx = 1; ndx <= tknStr->len; ndx++)
9520 CMCHKUNPK(oduPackUInt8, &tknStr->val[tknStr->len - ndx], mBuf);
9524 /* dsfr_pal_fixes ** 21-March-2013 ** SKS ** End */
9526 /* dsfr_pal_fixes ** 22-March-2013 ** SKS */
9527 CMCHKUNPK(oduPackUInt16, ¶m->bw, mBuf);
9529 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
9533 /* LTE_ADV_FLAG_REMOVED_END */
9536 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9537 /***********************************************************
9539 * Func : cmPkRgrUepACfg
9542 * Desc : Transaction ID between MAC and RRM
9551 **********************************************************/
9561 CMCHKPK(oduUnpackUInt32, param->pA, mBuf);
9563 CMCHKPK(oduUnpackUInt8, param->pAPrsnt, mBuf);
9569 /*rgr_c_001.main_9 ADD added changes for CQI management*/
9570 /***********************************************************
9572 * Func : cmUnpkRgrUepACfg
9575 * Desc : Transaction ID between MAC and RRM
9584 **********************************************************/
9585 S16 cmUnpkRgrUepACfg
9593 CMCHKUNPK(oduPackUInt8, (uint8_t *)¶m->pAPrsnt, mBuf);
9596 CMCHKUNPK(oduPackUInt32, (uint32_t*)&tmpEnum, mBuf);
9597 param->pA = (RgrUeDlPwrCntrlPaCfg) tmpEnum;
9603 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
9604 /***********************************************************
9606 * Func : cmPkRgrUePdschDedCfg
9609 * Desc : Transaction ID between MAC and RRM
9618 **********************************************************/
9619 S16 cmPkRgrUePdschDedCfg
9621 RgrUePdschDedCfg *param,
9626 CMCHKPK(cmPkRgrUepACfg, ¶m->uepACfg, mBuf);
9632 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
9633 /***********************************************************
9635 * Func : cmUnpkRgrUePdschDedCfg
9638 * Desc : Transaction ID between MAC and RRM
9647 **********************************************************/
9648 S16 cmUnpkRgrUePdschDedCfg
9650 RgrUePdschDedCfg *param,
9655 CMCHKUNPK(cmUnpkRgrUepACfg, ¶m->uepACfg, mBuf);
9664 /***********************************************************
9666 * Func : cmPkRgrUeUlPwrDedSCellCfg
9669 * Desc : DL Secondary Cell UL PC Info
9678 **********************************************************/
9679 static S16 cmPkRgrUeUlPwrDedSCellCfg
9681 RgrUeUlPwrDedSCellCfg *param,
9685 CMCHKPK(oduUnpackUInt8, param->pSRSOffset, mBuf);
9686 CMCHKPK(SPkS8, param->p0UePusch, mBuf);
9687 CMCHKPK(oduUnpackUInt8, param->isDeltaMCSEnabled, mBuf);
9688 CMCHKPK(oduUnpackUInt8, param->isAccumulated, mBuf);
9693 /***********************************************************
9695 * Func : cmUnpkRgrUeUlPwrDedSCellCfg
9698 * Desc : Uplink power configuration per UE
9707 **********************************************************/
9708 static S16 cmUnpkRgrUeUlPwrDedSCellCfg
9710 RgrUeUlPwrDedSCellCfg *param,
9716 CMCHKUNPK(oduPackUInt8, ¶m->isAccumulated, mBuf);
9717 CMCHKUNPK(oduPackUInt8, ¶m->isDeltaMCSEnabled, mBuf);
9718 CMCHKUNPK(SUnpkS8, ¶m->p0UePusch, mBuf);
9719 CMCHKUNPK(oduPackUInt8, ¶m->pSRSOffset, mBuf);
9726 /***********************************************************
9728 * Func : cmPkRgrUeSecCellCfg
9731 * Desc : DL Secondary Cell information of the UE
9740 **********************************************************/
9741 static S16 cmPkRgrUeSecCellCfg
9743 RgrUeSecCellCfg *param,
9747 CMCHKPK(cmPkRgrUeUlPwrDedSCellCfg,¶m->ueSCellUlDedPwrCfg, mBuf);
9748 CMCHKPK(oduUnpackUInt8, param->isUlCaEnabled, mBuf);
9749 CMCHKPK(cmPkRgrUeTxModeCfg, ¶m->txMode, mBuf);
9751 /*rgr_c_001.main_9 ADD PDSCH ded cfg*/
9752 CMCHKPK(cmPkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
9754 CMCHKPK(cmPkRgrUeDlCqiCfg,¶m->ueSCellDlCqiCfg, mBuf);
9755 CMCHKPK(cmPkTknUInt32, ¶m->sCellDeActTmr, mBuf);
9756 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
9757 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
9764 /***********************************************************
9766 * Func : cmPkRgrUeSecCellInfo
9769 * Desc : Secondary Cell information of the UE
9778 **********************************************************/
9779 S16 cmPkRgrUeSecCellInfo
9781 RgrUeSecCellInfo *param,
9786 for(idx = param->numSCells - 1; idx >= 0; idx--)
9788 CMCHKPK(cmPkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[(uint8_t)idx],mBuf);
9791 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
9793 CMCHKPK(oduUnpackUInt8, param->useExtBSRSizes, mBuf);
9799 /***********************************************************
9801 * Func : cmUnpkRgrUeSecCellCfg
9804 * Desc : DL Secondary Cell information of the UE
9813 **********************************************************/
9814 static S16 cmUnpkRgrUeSecCellCfg
9816 RgrUeSecCellCfg *param,
9820 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
9821 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
9822 CMCHKUNPK(cmUnpkTknUInt32, ¶m->sCellDeActTmr, mBuf);
9823 CMCHKUNPK(cmUnpkRgrUeDlCqiCfg, ¶m->ueSCellDlCqiCfg, mBuf);
9825 CMCHKUNPK(cmUnpkRgrUePdschDedCfg, ¶m->uePdschDedCfg, mBuf);
9827 CMCHKUNPK(cmUnpkRgrUeTxModeCfg, ¶m->txMode, mBuf);
9828 CMCHKUNPK(oduPackUInt8, ¶m->isUlCaEnabled, mBuf);
9829 CMCHKUNPK(cmUnpkRgrUeUlPwrDedSCellCfg, ¶m->ueSCellUlDedPwrCfg, mBuf);
9837 /***********************************************************
9839 * Func : cmUnpkRgrUeSecCellInfo
9842 * Desc : Secondary Cell information of the UE
9851 **********************************************************/
9852 S16 cmUnpkRgrUeSecCellInfo
9854 RgrUeSecCellInfo *param,
9860 CMCHKUNPK(oduPackUInt8, ¶m->useExtBSRSizes, mBuf);
9861 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
9863 for(idx = 0; idx < param->numSCells;idx++)
9865 CMCHKUNPK(cmUnpkRgrUeSecCellCfg, ¶m->ueSCellDedCfg[idx],mBuf);
9871 /***********************************************************
9873 * Func : cmPkRgrUeSCellAckPucchCfg
9876 * Desc : PUCCH Configuration information of the UE
9885 **********************************************************/
9886 S16 cmPkRgrUeSCellAckPucchCfg
9888 RgrUeSCellAckPucchCfg *param,
9894 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
9896 for(idx = param->u.format1Bcs.sCellAckN1ResTb2Count - 1; idx >=0 ;idx--)
9898 CMCHKPK(oduUnpackUInt16, param->u.format1Bcs.sCellAckN1ResTb2[(uint8_t)idx], mBuf);
9901 CMCHKPK(oduUnpackUInt8, param->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
9903 for(idx = param->u.format1Bcs.sCellAckN1ResTb1Count - 1; idx >=0 ;idx--)
9905 CMCHKPK(oduUnpackUInt16, param->u.format1Bcs.sCellAckN1ResTb1[(uint8_t)idx], mBuf);
9908 CMCHKPK(oduUnpackUInt8, param->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
9912 for(idx = param->u.format3.sCellAckN3ResAntP1Count - 1; idx >=0 ;idx--)
9914 CMCHKPK(oduUnpackUInt16, param->u.format3.sCellAckN3ResAntP1[(uint8_t)idx], mBuf);
9917 CMCHKPK(oduUnpackUInt8, param->u.format3.sCellAckN3ResAntP1Count, mBuf);
9919 for(idx = param->u.format3.sCellAckN3ResAntP0Count- 1; idx >=0 ;idx--)
9921 CMCHKPK(oduUnpackUInt16, param->u.format3.sCellAckN3ResAntP0[(uint8_t)idx], mBuf);
9924 CMCHKPK(oduUnpackUInt8, param->u.format3.sCellAckN3ResAntP0Count, mBuf);
9926 CMCHKPK(oduUnpackUInt32, param->pucchFormatType, mBuf);
9931 /***********************************************************
9933 * Func : cmUnpkRgrUeSCellAckPucchCfg
9936 * Desc : PUCCH Configuration information of the UE
9945 **********************************************************/
9946 S16 cmUnpkRgrUeSCellAckPucchCfg
9948 RgrUeSCellAckPucchCfg *param,
9955 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->pucchFormatType, mBuf);
9956 //if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS)
9957 if (param->pucchFormatType == RG_SCH_UCI_FORMAT1B_CS || param->pucchFormatType == RG_SCH_UCI_FORMAT1A_1B)
9959 CMCHKUNPK(oduPackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb1Count, mBuf);
9961 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb1Count; idx++)
9963 CMCHKUNPK(oduPackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb1[idx], mBuf);
9966 CMCHKUNPK(oduPackUInt8, ¶m->u.format1Bcs.sCellAckN1ResTb2Count, mBuf);
9968 for(idx = 0; idx < param->u.format1Bcs.sCellAckN1ResTb2Count; idx++)
9970 CMCHKUNPK(oduPackUInt16, ¶m->u.format1Bcs.sCellAckN1ResTb2[idx], mBuf);
9975 CMCHKUNPK(oduPackUInt8, ¶m->u.format3.sCellAckN3ResAntP0Count, mBuf);
9977 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP0Count; idx++)
9979 CMCHKUNPK(oduPackUInt16, ¶m->u.format3.sCellAckN3ResAntP0[idx], mBuf);
9982 CMCHKUNPK(oduPackUInt8, ¶m->u.format3.sCellAckN3ResAntP1Count, mBuf);
9984 for(idx = 0; idx < param->u.format3.sCellAckN3ResAntP1Count; idx++)
9986 CMCHKUNPK(oduPackUInt16, ¶m->u.format3.sCellAckN3ResAntP1[idx], mBuf);
9999 /***********************************************************
10001 * Func : cmPkRgrUeStaInd
10004 * Desc : Packing Ue Sta Indication sent to RRM
10013 **********************************************************/
10014 S16 cmPkRgrUeStaInd
10018 RgrUeStaIndInfo* ueStaInd
10021 Buffer *mBuf = NULLP;
10022 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
10024 #if (ERRCLASS & ERRCLS_ADD_RES)
10025 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10026 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10027 (ErrVal)ERGR054, (ErrVal)0, "Packing failed");
10029 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
10030 sizeof(RgrUeStaIndInfo));
10034 if (cmPkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
10036 #if (ERRCLASS & ERRCLS_ADD_RES)
10037 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10038 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10039 (ErrVal)ERGR055, (ErrVal)0, "Packing failed");
10041 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
10042 sizeof(RgrUeStaIndInfo));
10047 if (SPkS16(suId, 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)ERGR056, (ErrVal)0, "Packing failed");
10054 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
10055 sizeof(RgrUeStaIndInfo));
10060 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
10061 sizeof(RgrUeStaIndInfo)) != ROK)
10063 #if (ERRCLASS & ERRCLS_ADD_RES)
10064 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10065 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10066 (ErrVal)ERGR057, (ErrVal)0, "Packing failed");
10072 pst->event = (Event) EVTRGRUESTAIND;
10073 return (SPstTsk(pst,mBuf));
10076 /*rgr_c_001.main_9 ADD added changes for CQI management*/
10077 /***********************************************************
10079 * Func : cmUnpkRgrUeStaInd
10082 * Desc : Unpacking Sta Indication sent to RRM
10090 **********************************************************/
10091 S16 cmUnpkRgrUeStaInd
10099 RgrUeStaIndInfo *ueStaInd;
10102 if (SUnpkS16(&suId, mBuf) != ROK)
10105 #if (ERRCLASS & ERRCLS_ADD_RES)
10106 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10107 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10108 (ErrVal)ERGR058, (ErrVal)0, "Packing failed");
10113 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ueStaInd,
10114 sizeof(RgrUeStaIndInfo))) != ROK)
10116 #if (ERRCLASS & ERRCLS_ADD_RES)
10117 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10118 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10119 (ErrVal)ERGR059, (ErrVal)0, "Packing failed");
10125 if (cmUnpkRgrUeStaIndInfo(ueStaInd, mBuf) != ROK)
10127 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueStaInd,
10128 sizeof(RgrUeStaIndInfo));
10130 #if (ERRCLASS & ERRCLS_ADD_RES)
10131 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
10132 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
10133 (ErrVal)ERGR060, (ErrVal)0, "Packing failed");
10139 return ((*func)(pst, suId, ueStaInd));
10142 /***********************************************************
10144 * Func : cmPkRgrUeStaIndInfo
10147 * Desc : Packing of UeStaIndInfo structure
10155 **********************************************************/
10156 S16 cmPkRgrUeStaIndInfo
10158 RgrUeStaIndInfo *param,
10164 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
10165 CMCHKPK(cmPkLteRnti, param->crnti, mBuf);
10166 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
10170 /***********************************************************
10172 * Func : cmUnpkRgrUeStaIndInfo
10175 * Desc : Unpacking of UeStaIndInfo structure
10183 **********************************************************/
10184 S16 cmUnpkRgrUeStaIndInfo
10186 RgrUeStaIndInfo *param,
10192 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
10193 CMCHKUNPK(cmUnpkLteRnti, ¶m->crnti, mBuf);
10194 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
10200 /***********************************************************
10202 * Func : cmPkRgrCellCsgParamCfg
10205 * Desc : CSG Parameter configuration
10214 **********************************************************/
10215 S16 cmPkRgrCellCsgParamCfg
10217 RgrCellCsgParamCfg *param,
10223 CMCHKPK(oduUnpackUInt8, param->minUlResNonCsg, mBuf);
10224 CMCHKPK(oduUnpackUInt8, param->minDlResNonCsg, mBuf);
10229 /***********************************************************
10231 * Func : cmUnpkRgrCellCsgParamCfg
10234 * Desc : Unpacking of RgrCellCsgParamCfg structure
10242 **********************************************************/
10243 S16 cmUnpkRgrCellCsgParamCfg
10245 RgrCellCsgParamCfg *param,
10251 CMCHKUNPK(oduPackUInt8, ¶m->minDlResNonCsg, mBuf);
10252 CMCHKUNPK(oduPackUInt8, ¶m->minUlResNonCsg, mBuf);
10257 /***********************************************************
10259 * Func : cmPkRgrCellCntrlCmdCfg
10262 * Desc : Packing of RgrCellCntrlCmdCfg structure
10270 **********************************************************/
10271 S16 cmPkRgrCellCntrlCmdCfg
10273 RgrCellCntrlCmdCfg *param,
10278 switch(param->cmdType)
10280 case RGR_CNTRL_CMD_RACH_OVRLD:
10281 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.rachOvrLd.backOffVal, mBuf);
10282 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.rachOvrLd.backOffEnb, mBuf);
10284 case RGR_CNTRL_CMD_CPU_OVRLD:
10285 CMCHKUNPK(oduUnpackUInt8, param->cmdDesc.cpuOvrLd.instruction, mBuf);
10290 CMCHKUNPK(oduUnpackUInt32, param->cmdType, mBuf);
10294 /***********************************************************
10296 * Func : cmUnpkRgrCellCntrlCmdCfg
10299 * Desc : Unpacking of RgrCellCntrlCmdCfg structure
10307 **********************************************************/
10308 S16 cmUnpkRgrCellCntrlCmdCfg
10310 RgrCellCntrlCmdCfg *param,
10317 CMCHKUNPK(oduPackUInt32, &tmpEnum, mBuf);
10318 param->cmdType = (RgrCellCntrlCmdType) tmpEnum;
10319 switch(param->cmdType)
10321 case RGR_CNTRL_CMD_RACH_OVRLD:
10322 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.rachOvrLd.backOffEnb, mBuf);
10323 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.rachOvrLd.backOffVal, mBuf);
10325 case RGR_CNTRL_CMD_CPU_OVRLD:
10326 CMCHKUNPK(oduPackUInt8, ¶m->cmdDesc.cpuOvrLd.instruction, mBuf);
10334 #endif /* End of if defined(LCRGR) */
10336 /**********************************************************************
10338 **********************************************************************/