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 LRG interface primitives.
30 **********************************************************************/
33 @brief This file contains the packing/unpacking code for the LRG interface
37 /* header include files (.h) */
38 #include "common_def.h"
39 #include "lrg.h" /* LRG Interface Defines */
40 /* header/extern include files (.x) */
41 #include "lrg.x" /* LRG Interface includes */
47 * @brief This API is used to send a
48 Configuration Request from LM to MAC.
52 * Function: cmPkLrgCfgReq
54 * @param[in] Pst * pst
55 * @param[in] RgMngmt * cfg
66 S16 cmPkLrgCfgReq(pst, cfg)
73 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
74 #if (ERRCLASS & ERRCLS_ADD_RES)
75 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
76 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
77 (ErrVal)ELRG001, (ErrVal)0, "Packing failed");
81 if (pst->selector == ODU_SELECTOR_LC) {
82 if (cmPkRgMngmt(pst, cfg, EVTLRGCFGREQ, mBuf) != ROK) {
83 #if (ERRCLASS & ERRCLS_ADD_RES)
84 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
85 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
86 (ErrVal)ELRG002, (ErrVal)0, "Packing failed");
92 pst->event = (Event) EVTLRGCFGREQ;
93 return (SPstTsk(pst,mBuf));
98 * @brief This API is used to send a
99 Configuration Request from LM to MAC.
103 * Function: cmUnpkLrgCfgReq
105 * @param[in] Pst * pst
106 * @param[in] RgMngmt * cfg
118 S16 cmUnpkLrgCfgReq(func, pst, mBuf)
124 /* lrg_c_001.main_2: Changed Pointer across Interface */
128 if (cmUnpkRgMngmt(pst, &cfg, EVTLRGCFGREQ, mBuf) != ROK) {
130 #if (ERRCLASS & ERRCLS_ADD_RES)
131 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
132 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
133 (ErrVal)ELRG003, (ErrVal)0, "Packing failed");
138 return ((*func)(pst, &cfg));
143 * @brief This API is used to send a
144 Configuration Request from LM to SCH.
148 * Function: cmPkLrgSchCfgReq
150 * @param[in] Pst * pst
151 * @param[in] RgMngmt * cfg
162 S16 cmPkLrgSchCfgReq(pst, cfg)
167 Buffer *mBuf = NULLP;
169 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
170 #if (ERRCLASS & ERRCLS_ADD_RES)
171 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
172 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
173 (ErrVal)ELRG004, (ErrVal)0, "Packing failed");
177 if (pst->selector == ODU_SELECTOR_LC) {
178 if (cmPkRgMngmt(pst, cfg, EVTMACSCHGENCFGREQ, mBuf) != ROK) {
179 #if (ERRCLASS & ERRCLS_ADD_RES)
180 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
181 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
182 (ErrVal)ELRG005, (ErrVal)0, "Packing failed");
189 return (SPstTsk(pst,mBuf));
194 * @brief This API is used to send a
195 Configuration Request from LM to SCH.
199 * Function: cmUnpkLrgSchCfgReq
201 * @param[in] Pst * pst
202 * @param[in] RgMngmt * cfg
207 S16 cmUnpkLrgSchCfgReq
214 S16 cmUnpkLrgSchCfgReq(func, pst, mBuf)
220 /* lrg_c_001.main_2: Changed Pointer across Interface */
224 if (cmUnpkRgMngmt(pst, &cfg, EVTMACSCHGENCFGREQ, mBuf) != ROK) {
226 #if (ERRCLASS & ERRCLS_ADD_RES)
227 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
228 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
229 (ErrVal)ELRG006, (ErrVal)0, "Packing failed");
234 return ((*func)(pst, &cfg));
239 * @brief This API is used to send a
240 Configuration Confirm from MAC to LM.
244 * Function: cmPkLrgCfgCfm
246 * @param[in] Pst * pst
247 * @param[in] RgMngmt * cfm
252 uint8_t cmPkLrgCfgCfm
258 uint8_t cmPkLrgCfgCfm(pst, cfm)
263 Buffer *mBuf = NULLP;
265 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
266 #if (ERRCLASS & ERRCLS_ADD_RES)
267 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
268 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
269 (ErrVal)ELRG007, (ErrVal)0, "Packing failed");
273 if (pst->selector == ODU_SELECTOR_LC) {
274 if (cmPkRgMngmt(pst, cfm, EVTLRGCFGCFM, mBuf) != ROK) {
275 #if (ERRCLASS & ERRCLS_ADD_RES)
276 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
277 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
278 (ErrVal)ELRG008, (ErrVal)0, "Packing failed");
285 pst->event = (Event) EVTLRGCFGCFM;
286 return (SPstTsk(pst,mBuf));
291 * @brief This API is used to send a
292 Configuration Confirm from MAC to LM.
296 * Function: cmUnpkLrgCfgCfm
298 * @param[in] Pst * pst
299 * @param[in] RgMngmt * cfm
311 S16 cmUnpkLrgCfgCfm(func, pst, mBuf)
320 if (cmUnpkRgMngmt(pst, &cfm, EVTLRGCFGCFM, mBuf) != ROK) {
322 #if (ERRCLASS & ERRCLS_ADD_RES)
323 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
324 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
325 (ErrVal)ELRG009, (ErrVal)0, "Packing failed");
330 return ((*func)(pst, &cfm));
335 * @brief This API is used to send a
336 Configuration Confirm from SCH to LM.
340 * Function: cmPkLrgSchCfgCfm
342 * @param[in] Pst * pst
343 * @param[in] RgMngmt * cfg
348 uint8_t cmPkLrgSchCfgCfm
354 uint8_t cmPkLrgSchCfgCfm(pst, cfg)
359 Buffer *mBuf = NULLP;
361 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
362 #if (ERRCLASS & ERRCLS_ADD_RES)
363 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
364 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
365 (ErrVal)ELRG010, (ErrVal)0, "Packing failed");
369 if (pst->selector == ODU_SELECTOR_LC) {
370 if (cmPkRgMngmt(pst, cfg, EVTMACSCHGENCFGCFM, mBuf) != ROK) {
371 #if (ERRCLASS & ERRCLS_ADD_RES)
372 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
373 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
374 (ErrVal)ELRG011, (ErrVal)0, "Packing failed");
381 pst->event = (Event) EVTMACSCHGENCFGCFM;
382 return (SPstTsk(pst,mBuf));
387 * @brief This API is used to send a
388 Configuration Confirm from SCH to LM.
392 * Function: cmUnpkLrgSchCfgCfm
394 * @param[in] Pst * pst
395 * @param[in] RgMngmt * cfg
400 S16 cmUnpkLrgSchCfgCfm
407 S16 cmUnpkLrgSchCfgCfm(func, pst, mBuf)
415 if (cmUnpkRgMngmt(pst, &cfg, EVTMACSCHGENCFGCFM, mBuf) != ROK) {
417 #if (ERRCLASS & ERRCLS_ADD_RES)
418 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
419 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
420 (ErrVal)ELRG012, (ErrVal)0, "Packing failed");
425 return ((*func)(pst, &cfg));
430 * @brief This API is used to send a
431 Statistics Request from LM to MAC.
435 * Function: cmPkLrgStsReq
437 * @param[in] Pst * pst
438 * @param[in] RgMngmt * sts
449 S16 cmPkLrgStsReq(pst, sts)
454 Buffer *mBuf = NULLP;
456 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
457 #if (ERRCLASS & ERRCLS_ADD_RES)
458 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
459 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
460 (ErrVal)ELRG013, (ErrVal)0, "Packing failed");
464 if (pst->selector == ODU_SELECTOR_LC) {
465 if (cmPkRgMngmt(pst, sts, EVTLRGSTSREQ, mBuf) != ROK) {
466 #if (ERRCLASS & ERRCLS_ADD_RES)
467 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
468 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
469 (ErrVal)ELRG014, (ErrVal)0, "Packing failed");
476 pst->event = (Event) EVTLRGSTSREQ;
477 return (SPstTsk(pst,mBuf));
482 * @brief This API is used to send a
483 Statistics Request from LM to MAC.
487 * Function: cmUnpkLrgStsReq
489 * @param[in] Pst * pst
490 * @param[in] RgMngmt * sts
502 S16 cmUnpkLrgStsReq(func, pst, mBuf)
511 if (cmUnpkRgMngmt(pst, &sts, EVTLRGSTSREQ, mBuf) != ROK) {
513 #if (ERRCLASS & ERRCLS_ADD_RES)
514 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
515 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
516 (ErrVal)ELRG015, (ErrVal)0, "Packing failed");
521 return ((*func)(pst, &sts));
526 * @brief This API is used to send a
527 Statistics Confirm from MAC to LM.
531 * Function: cmPkLrgStsCfm
533 * @param[in] Pst * pst
534 * @param[in] RgMngmt * cfm
545 S16 cmPkLrgStsCfm(pst, cfm)
550 Buffer *mBuf = NULLP;
552 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
553 #if (ERRCLASS & ERRCLS_ADD_RES)
554 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
555 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
556 (ErrVal)ELRG016, (ErrVal)0, "Packing failed");
560 if (pst->selector == ODU_SELECTOR_LC) {
561 if (cmPkRgMngmt(pst, cfm, EVTLRGSTSCFM, mBuf) != ROK) {
562 #if (ERRCLASS & ERRCLS_ADD_RES)
563 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
564 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
565 (ErrVal)ELRG017, (ErrVal)0, "Packing failed");
572 pst->event = (Event) EVTLRGSTSCFM;
573 return (SPstTsk(pst,mBuf));
578 * @brief This API is used to send a
579 Statistics Confirm from MAC to LM.
583 * Function: cmUnpkLrgStsCfm
585 * @param[in] Pst * pst
586 * @param[in] RgMngmt * cfm
598 S16 cmUnpkLrgStsCfm(func, pst, mBuf)
607 if (cmUnpkRgMngmt(pst, &cfm, EVTLRGSTSCFM, mBuf) != ROK) {
609 #if (ERRCLASS & ERRCLS_ADD_RES)
610 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
611 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
612 (ErrVal)ELRG018, (ErrVal)0, "Packing failed");
617 return ((*func)(pst, &cfm));
622 * @brief This API is used to send a
623 Status Request from LM to MAC.
627 * Function: cmPkLrgStaReq
629 * @param[in] Pst * pst
630 * @param[in] RgMngmt * sta
641 S16 cmPkLrgStaReq(pst, sta)
646 Buffer *mBuf = NULLP;
648 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
649 #if (ERRCLASS & ERRCLS_ADD_RES)
650 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
651 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
652 (ErrVal)ELRG019, (ErrVal)0, "Packing failed");
656 if (cmPkRgMngmt(pst, sta, EVTLRGSSTAREQ, mBuf) != ROK) {
657 #if (ERRCLASS & ERRCLS_ADD_RES)
658 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
659 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
660 (ErrVal)ELRG020, (ErrVal)0, "Packing failed");
666 pst->event = (Event) EVTLRGSSTAREQ;
667 return (SPstTsk(pst,mBuf));
672 * @brief This API is used to send a
673 Status Request from LM to MAC.
677 * Function: cmUnpkLrgStaReq
679 * @param[in] Pst * pst
680 * @param[in] RgMngmt * sta
692 S16 cmUnpkLrgStaReq(func, pst, mBuf)
701 memset(&sta, 0, sizeof(RgMngmt));
702 if (cmUnpkRgMngmt(pst, &sta, EVTLRGSSTAREQ, mBuf) != ROK) {
703 #if (ERRCLASS & ERRCLS_ADD_RES)
704 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
705 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
706 (ErrVal)ELRG021, (ErrVal)0, "Packing failed");
712 return ((*func)(pst, &sta));
717 * @brief This API is used to send a
718 Status Confirm from MAC to LM.
722 * Function: cmPkLrgStaCfm
724 * @param[in] Pst * pst
725 * @param[in] RgMngmt * cfm
736 S16 cmPkLrgStaCfm(pst, cfm)
741 Buffer *mBuf = NULLP;
743 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
744 #if (ERRCLASS & ERRCLS_ADD_RES)
745 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
746 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
747 (ErrVal)ELRG022, (ErrVal)0, "Packing failed");
751 if (cmPkRgMngmt(pst, cfm, EVTLRGSSTACFM, mBuf) != ROK) {
752 #if (ERRCLASS & ERRCLS_ADD_RES)
753 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
754 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
755 (ErrVal)ELRG023, (ErrVal)0, "Packing failed");
761 pst->event = (Event) EVTLRGSSTACFM;
762 return (SPstTsk(pst,mBuf));
767 * @brief This API is used to send a
768 Status Confirm from MAC to LM.
772 * Function: cmUnpkLrgStaCfm
774 * @param[in] Pst * pst
775 * @param[in] RgMngmt * cfm
787 S16 cmUnpkLrgStaCfm(func, pst, mBuf)
796 memset(&cfm, 0, sizeof(RgMngmt));
797 if (cmUnpkRgMngmt(pst, &cfm, EVTLRGSSTACFM, mBuf) != ROK) {
798 #if (ERRCLASS & ERRCLS_ADD_RES)
799 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
800 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
801 (ErrVal)ELRG024, (ErrVal)0, "Packing failed");
807 return ((*func)(pst, &cfm));
812 * @brief This API is used to send a
813 Status Indication from MAC to LM.
817 * Function: cmPkLrgStaInd
819 * @param[in] Pst * pst
820 * @param[in] RgMngmt * usta
831 S16 cmPkLrgStaInd(pst, usta)
836 Buffer *mBuf = NULLP;
838 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
839 #if (ERRCLASS & ERRCLS_ADD_RES)
840 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
841 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
842 (ErrVal)ELRG025, (ErrVal)0, "Packing failed");
846 if (pst->selector == ODU_SELECTOR_LC) {
847 if (cmPkRgMngmt(pst, usta, EVTLRGUSTAIND, mBuf) != ROK) {
848 #if (ERRCLASS & ERRCLS_ADD_RES)
849 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
850 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
851 (ErrVal)ELRG026, (ErrVal)0, "Packing failed");
858 pst->event = (Event) EVTLRGUSTAIND;
859 return (SPstTsk(pst,mBuf));
864 * @brief This API is used to send a
865 Status Indication from MAC to LM.
869 * Function: cmUnpkLrgStaInd
871 * @param[in] Pst * pst
872 * @param[in] RgMngmt * usta
884 S16 cmUnpkLrgStaInd(func, pst, mBuf)
893 if (cmUnpkRgMngmt(pst, &usta, EVTLRGUSTAIND, mBuf) != ROK) {
895 #if (ERRCLASS & ERRCLS_ADD_RES)
896 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
897 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
898 (ErrVal)ELRG027, (ErrVal)0, "Packing failed");
903 return ((*func)(pst, &usta));
908 * @brief This API is used to send a
909 Status Indication from SCH to LM.
913 * Function: cmPkLrgSchStaInd
915 * @param[in] Pst * pst
916 * @param[in] RgMngmt * sta
927 S16 cmPkLrgSchStaInd(pst, sta)
932 Buffer *mBuf = NULLP;
934 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
935 #if (ERRCLASS & ERRCLS_ADD_RES)
936 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
937 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
938 (ErrVal)ELRG028, (ErrVal)0, "Packing failed");
942 if (pst->selector == ODU_SELECTOR_LC) {
943 if (cmPkRgMngmt(pst, sta, EVTLRGSCHSTAIND, mBuf) != ROK) {
944 #if (ERRCLASS & ERRCLS_ADD_RES)
945 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
946 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
947 (ErrVal)ELRG029, (ErrVal)0, "Packing failed");
954 pst->event = (Event) EVTLRGSCHSTAIND;
955 return (SPstTsk(pst,mBuf));
960 * @brief This API is used to send a
961 Status Indication from SCH to LM.
965 * Function: cmUnpkLrgSchStaInd
967 * @param[in] Pst * pst
968 * @param[in] RgMngmt * sta
973 S16 cmUnpkLrgSchStaInd
980 S16 cmUnpkLrgSchStaInd(func, pst, mBuf)
989 if (cmUnpkRgMngmt(pst, &sta, EVTLRGSCHSTAIND, mBuf) != ROK) {
991 #if (ERRCLASS & ERRCLS_ADD_RES)
992 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
993 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
994 (ErrVal)ELRG030, (ErrVal)0, "Packing failed");
999 return ((*func)(pst, &sta));
1004 * @brief This API is used to send a
1005 Control Request from LM to MAC.
1009 * Function: cmPkLrgCntrlReq
1011 * @param[in] Pst * pst
1012 * @param[in] RgMngmt * cntrl
1023 S16 cmPkLrgCntrlReq(pst, cntrl)
1028 Buffer *mBuf = NULLP;
1030 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1031 #if (ERRCLASS & ERRCLS_ADD_RES)
1032 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1033 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1034 (ErrVal)ELRG031, (ErrVal)0, "Packing failed");
1038 if (pst->selector == ODU_SELECTOR_LC) {
1039 if (cmPkRgMngmt(pst, cntrl, EVTLRGCNTRLREQ, mBuf) != ROK) {
1040 #if (ERRCLASS & ERRCLS_ADD_RES)
1041 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1042 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1043 (ErrVal)ELRG032, (ErrVal)0, "Packing failed");
1050 pst->event = (Event) EVTLRGCNTRLREQ;
1051 return (SPstTsk(pst,mBuf));
1056 * @brief This API is used to send a
1057 Control Request from LM to MAC.
1061 * Function: cmUnpkLrgCntrlReq
1063 * @param[in] Pst * pst
1064 * @param[in] RgMngmt * cntrl
1069 S16 cmUnpkLrgCntrlReq
1076 S16 cmUnpkLrgCntrlReq(func, pst, mBuf)
1085 if (cmUnpkRgMngmt(pst, &cntrl, EVTLRGCNTRLREQ, mBuf) != ROK) {
1087 #if (ERRCLASS & ERRCLS_ADD_RES)
1088 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1089 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1090 (ErrVal)ELRG033, (ErrVal)0, "Packing failed");
1095 return ((*func)(pst, &cntrl));
1100 * @brief This API is used to send a
1101 Control Request from LM to SCH.
1105 * Function: cmPkLrgSchCntrlReq
1107 * @param[in] Pst * pst
1108 * @param[in] RgMngmt * cntrl
1113 S16 cmPkLrgSchCntrlReq
1119 S16 cmPkLrgSchCntrlReq(pst, cntrl)
1124 Buffer *mBuf = NULLP;
1126 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1127 #if (ERRCLASS & ERRCLS_ADD_RES)
1128 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1129 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1130 (ErrVal)ELRG034, (ErrVal)0, "Packing failed");
1134 if (pst->selector == ODU_SELECTOR_LC) {
1135 if (cmPkRgMngmt(pst, cntrl, EVTLRGSCHCNTRLREQ, mBuf) != ROK) {
1136 #if (ERRCLASS & ERRCLS_ADD_RES)
1137 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1138 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1139 (ErrVal)ELRG035, (ErrVal)0, "Packing failed");
1146 pst->event = (Event) EVTLRGSCHCNTRLREQ;
1147 return (SPstTsk(pst,mBuf));
1152 * @brief This API is used to send a
1153 Control Request from LM to SCH.
1157 * Function: cmUnpkLrgSchCntrlReq
1159 * @param[in] Pst * pst
1160 * @param[in] RgMngmt * cntrl
1165 S16 cmUnpkLrgSchCntrlReq
1167 LrgSchCntrlReq func,
1172 S16 cmUnpkLrgSchCntrlReq(func, pst, mBuf)
1173 LrgSchCntrlReq func;
1181 if (cmUnpkRgMngmt(pst, &cntrl, EVTLRGSCHCNTRLREQ, mBuf) != ROK) {
1183 #if (ERRCLASS & ERRCLS_ADD_RES)
1184 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1185 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1186 (ErrVal)ELRG036, (ErrVal)0, "Packing failed");
1191 return ((*func)(pst, &cntrl));
1196 * @brief This API is used to send a
1197 Control Confirm from MAC to LM.
1201 * Function: cmPkLrgCntrlCfm
1203 * @param[in] Pst * pst
1204 * @param[in] RgMngmt * cfm
1215 S16 cmPkLrgCntrlCfm(pst, cfm)
1220 Buffer *mBuf = NULLP;
1222 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1223 #if (ERRCLASS & ERRCLS_ADD_RES)
1224 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1225 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1226 (ErrVal)ELRG037, (ErrVal)0, "Packing failed");
1230 if (pst->selector == ODU_SELECTOR_LC) {
1231 if (cmPkRgMngmt(pst, cfm, EVTLRGCNTRLCFM, mBuf) != ROK) {
1232 #if (ERRCLASS & ERRCLS_ADD_RES)
1233 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1234 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1235 (ErrVal)ELRG038, (ErrVal)0, "Packing failed");
1242 pst->event = (Event) EVTLRGCNTRLCFM;
1243 return (SPstTsk(pst,mBuf));
1248 * @brief This API is used to send a
1249 Control Confirm from MAC to LM.
1253 * Function: cmUnpkLrgCntrlCfm
1255 * @param[in] Pst * pst
1256 * @param[in] RgMngmt * cfm
1261 S16 cmUnpkLrgCntrlCfm
1268 S16 cmUnpkLrgCntrlCfm(func, pst, mBuf)
1277 if (cmUnpkRgMngmt(pst, &cfm, EVTLRGCNTRLCFM, mBuf) != ROK) {
1279 #if (ERRCLASS & ERRCLS_ADD_RES)
1280 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1281 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1282 (ErrVal)ELRG039, (ErrVal)0, "Packing failed");
1287 return ((*func)(pst, &cfm));
1292 * @brief This API is used to send a
1293 Control Confirm from SCH to LM.
1297 * Function: cmPkLrgSchCntrlCfm
1299 * @param[in] Pst * pst
1300 * @param[in] RgMngmt * cntrl
1305 S16 cmPkLrgSchCntrlCfm
1311 S16 cmPkLrgSchCntrlCfm(pst, cntrl)
1316 Buffer *mBuf = NULLP;
1318 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1319 #if (ERRCLASS & ERRCLS_ADD_RES)
1320 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1321 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1322 (ErrVal)ELRG040, (ErrVal)0, "Packing failed");
1326 if (pst->selector == ODU_SELECTOR_LC) {
1327 if (cmPkRgMngmt(pst, cntrl, EVTLRGSCHCNTRLCFM, mBuf) != ROK) {
1328 #if (ERRCLASS & ERRCLS_ADD_RES)
1329 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1330 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1331 (ErrVal)ELRG041, (ErrVal)0, "Packing failed");
1338 pst->event = (Event) EVTLRGSCHCNTRLCFM;
1339 return (SPstTsk(pst,mBuf));
1344 * @brief This API is used to send a
1345 Control Confirm from SCH to LM.
1349 * Function: cmUnpkLrgSchCntrlCfm
1351 * @param[in] Pst * pst
1352 * @param[in] RgMngmt * cntrl
1357 S16 cmUnpkLrgSchCntrlCfm
1359 LrgSchCntrlCfm func,
1364 S16 cmUnpkLrgSchCntrlCfm(func, pst, mBuf)
1365 LrgSchCntrlCfm func;
1373 if (cmUnpkRgMngmt(pst, &cntrl, EVTLRGSCHCNTRLCFM, mBuf) != ROK) {
1375 #if (ERRCLASS & ERRCLS_ADD_RES)
1376 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1377 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1378 (ErrVal)ELRG042, (ErrVal)0, "Packing failed");
1383 return ((*func)(pst, &cntrl));
1388 * @brief This API is used to send a
1389 Trace Indication from MAC to LM.
1393 * Function: cmPkLrgTrcInd
1395 * @param[in] Pst * pst
1396 * @param[in] RgMngmt * trc
1397 * @param[in] Buffer * trcBuf
1409 S16 cmPkLrgTrcInd(pst, trc, trcBuf)
1415 Buffer *mBuf = NULLP;
1417 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1418 #if (ERRCLASS & ERRCLS_ADD_RES)
1419 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1420 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1421 (ErrVal)ELRG043, (ErrVal)0, "Packing failed");
1426 if (pst->selector == ODU_SELECTOR_LC) {
1428 if (SFndLenMsg(trcBuf, &msgLen) != ROK) {
1429 #if (ERRCLASS & ERRCLS_ADD_RES)
1430 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1431 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1432 (ErrVal)ELRG044, (ErrVal)0, "Packing failed");
1437 if (SCatMsg(mBuf, trcBuf, M1M2) != ROK) {
1438 #if (ERRCLASS & ERRCLS_ADD_RES)
1439 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1440 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1441 (ErrVal)ELRG045, (ErrVal)0, "Packing failed");
1447 CMCHKPK(cmPkMsgLen, msgLen, mBuf);
1449 if (cmPkRgMngmt(pst, trc, EVTLRGTRCIND, mBuf) != ROK) {
1450 #if (ERRCLASS & ERRCLS_ADD_RES)
1451 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1452 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1453 (ErrVal)ELRG046, (ErrVal)0, "Packing failed");
1460 pst->event = (Event) EVTLRGTRCIND;
1461 return (SPstTsk(pst,mBuf));
1466 * @brief This API is used to send a
1467 Trace Indication from MAC to LM.
1471 * Function: cmUnpkLrgTrcInd
1473 * @param[in] Pst * pst
1474 * @param[in] RgMngmt * trc
1475 * @param[in] Buffer * trcBuf
1487 S16 cmUnpkLrgTrcInd(func, pst, mBuf)
1494 /* lrg_c_001.main_3 - MODIFY - Modified trcBuf to have it initialized to NULLP */
1495 Buffer *trcBuf = NULLP;
1498 if (cmUnpkRgMngmt(pst, &trc, EVTLRGTRCIND, mBuf) != ROK) {
1500 #if (ERRCLASS & ERRCLS_ADD_RES)
1501 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1502 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1503 (ErrVal)ELRG047, (ErrVal)0, "Packing failed");
1507 if (pst->selector == ODU_SELECTOR_LC) {
1508 MsgLen msgLen, totalMsgLen;
1509 CMCHKUNPK(cmUnpkMsgLen, &msgLen, mBuf);
1510 if (SFndLenMsg(mBuf, &totalMsgLen) != ROK)
1512 if (SSegMsg(mBuf, totalMsgLen-msgLen, &trcBuf) != ROK)
1516 return ((*func)(pst, &trc, trcBuf));
1520 /***********************************************************
1522 * Func : cmPkRgGenCfg
1525 * Desc : This structure holds configuration parameters for MAC General Configuration.
1534 **********************************************************/
1542 S16 cmPkRgGenCfg(param, mBuf)
1550 CMCHKPK(oduUnpackUInt8, param->isSCellActDeactAlgoEnable, mBuf);
1551 CMCHKPK(oduUnpackUInt8, param->forceCntrlSrbBoOnPCel, mBuf);
1553 CMCHKPK(oduUnpackUInt8, param->startCellId, mBuf);
1554 CMCHKPK(oduUnpackUInt8, param->numRguSaps, mBuf);
1555 CMCHKPK(oduUnpackUInt8, param->tmrRes, mBuf);
1556 CMCHKPK(cmPkMemoryId, ¶m->mem, mBuf);
1557 CMCHKPK(cmPkPst, ¶m->lmPst, mBuf);
1563 /***********************************************************
1565 * Func : cmUnpkRgGenCfg
1568 * Desc : This structure holds configuration parameters for MAC General Configuration.
1577 **********************************************************/
1585 S16 cmUnpkRgGenCfg(param, mBuf)
1592 CMCHKUNPK(cmUnpkPst, ¶m->lmPst, mBuf);
1593 CMCHKUNPK(cmUnpkMemoryId, ¶m->mem, mBuf);
1594 CMCHKUNPK(oduPackUInt8, ¶m->tmrRes, mBuf);
1595 CMCHKUNPK(oduPackUInt8, ¶m->numRguSaps, mBuf);
1596 CMCHKUNPK(oduPackUInt8, ¶m->startCellId, mBuf);
1598 CMCHKUNPK(oduPackUInt8, ¶m->forceCntrlSrbBoOnPCel, mBuf);
1599 CMCHKUNPK(oduPackUInt8, ¶m->isSCellActDeactAlgoEnable, mBuf);
1606 /***********************************************************
1608 * Func : cmPkRgUpSapCfg
1611 * Desc : This structure holds configuration parameters for MAC Upper SAP Configuration.
1620 **********************************************************/
1628 S16 cmPkRgUpSapCfg(param, mBuf)
1635 CMCHKPK(SPkS16, param->suId, mBuf);
1636 CMCHKPK(SPkS16, param->spId, mBuf);
1637 CMCHKPK(oduUnpackUInt8, param->route, mBuf);
1638 CMCHKPK(oduUnpackUInt8, param->inst, mBuf);
1639 CMCHKPK(oduUnpackUInt8, param->ent, mBuf);
1640 CMCHKPK(oduUnpackUInt16, param->procId, mBuf);
1641 CMCHKPK(oduUnpackUInt8, param->prior, mBuf);
1642 CMCHKPK(cmPkMemoryId, ¶m->mem, mBuf);
1643 CMCHKPK(oduUnpackUInt8, param->selector, mBuf);
1649 /***********************************************************
1651 * Func : cmUnpkRgUpSapCfg
1654 * Desc : This structure holds configuration parameters for MAC Upper SAP Configuration.
1663 **********************************************************/
1665 S16 cmUnpkRgUpSapCfg
1671 S16 cmUnpkRgUpSapCfg(param, mBuf)
1678 CMCHKUNPK(oduPackUInt8, ¶m->selector, mBuf);
1679 CMCHKUNPK(cmUnpkMemoryId, ¶m->mem, mBuf);
1680 CMCHKUNPK(oduPackUInt8, ¶m->prior, mBuf);
1681 CMCHKUNPK(oduPackUInt16, ¶m->procId, mBuf);
1682 CMCHKUNPK(oduPackUInt8, ¶m->ent, mBuf);
1683 CMCHKUNPK(oduPackUInt8, ¶m->inst, mBuf);
1684 CMCHKUNPK(oduPackUInt8, ¶m->route, mBuf);
1685 CMCHKUNPK(SUnpkS16, ¶m->spId, mBuf);
1686 CMCHKUNPK(SUnpkS16, ¶m->suId, mBuf);
1692 /***********************************************************
1694 * Func : cmPkRgLowSapCfg
1697 * Desc : This structure holds configuration parameters for MAC Lower SAP Configuration.
1706 **********************************************************/
1714 S16 cmPkRgLowSapCfg(param, mBuf)
1721 CMCHKPK(cmPkTmrCfg, ¶m->bndTmr, mBuf);
1722 CMCHKPK(SPkS16, param->suId, mBuf);
1723 CMCHKPK(SPkS16, param->spId, mBuf);
1724 CMCHKPK(oduUnpackUInt8, param->route, mBuf);
1725 CMCHKPK(oduUnpackUInt8, param->inst, mBuf);
1726 CMCHKPK(oduUnpackUInt8, param->ent, mBuf);
1727 CMCHKPK(oduUnpackUInt16, param->procId, mBuf);
1728 CMCHKPK(oduUnpackUInt8, param->prior, mBuf);
1729 CMCHKPK(cmPkMemoryId, ¶m->mem, mBuf);
1730 CMCHKPK(oduUnpackUInt8, param->selector, mBuf);
1736 /***********************************************************
1738 * Func : cmUnpkRgLowSapCfg
1741 * Desc : This structure holds configuration parameters for MAC Lower SAP Configuration.
1750 **********************************************************/
1752 S16 cmUnpkRgLowSapCfg
1758 S16 cmUnpkRgLowSapCfg(param, mBuf)
1765 CMCHKUNPK(oduPackUInt8, ¶m->selector, mBuf);
1766 CMCHKUNPK(cmUnpkMemoryId, ¶m->mem, mBuf);
1767 CMCHKUNPK(oduPackUInt8, ¶m->prior, mBuf);
1768 CMCHKUNPK(oduPackUInt16, ¶m->procId, mBuf);
1769 CMCHKUNPK(oduPackUInt8, ¶m->ent, mBuf);
1770 CMCHKUNPK(oduPackUInt8, ¶m->inst, mBuf);
1771 CMCHKUNPK(oduPackUInt8, ¶m->route, mBuf);
1772 CMCHKUNPK(SUnpkS16, ¶m->spId, mBuf);
1773 CMCHKUNPK(SUnpkS16, ¶m->suId, mBuf);
1774 CMCHKUNPK(cmUnpkTmrCfg, ¶m->bndTmr, mBuf);
1778 #ifdef MAC_SCH_STATS
1781 /***********************************************************
1783 * Func : cmPkRgAckNack
1786 * Desc : Ack and Nack statistics
1795 **********************************************************/
1803 S16 cmPkRgAckNack (param, mBuf)
1810 CMCHKPK(oduUnpackUInt16, param->numOfAcks, mBuf);
1811 CMCHKPK(oduUnpackUInt16, param->numOfNacks, mBuf);
1812 CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
1815 } /* cmPkRgAckNack */
1818 /***********************************************************
1820 * Func : cmPkRgSchNackAckStats
1832 **********************************************************/
1834 S16 cmPkRgSchNackAckStats
1836 RgSchNackAckStats *param,
1840 S16 cmPkRgSchNackAckStats (param, mBuf)
1841 RgSchNackAckStats *param;
1848 for (i=14; i >= 0; i--) {
1849 CMCHKPK(cmPkRgAckNack, ¶m->ulCqiStat[i], mBuf);
1852 for (i=14; i >= 0; i--) {
1853 CMCHKPK(cmPkRgAckNack, ¶m->dlCqiStat[i], mBuf);
1860 /***********************************************************
1862 * Func : cmPkRgHqNumRetx
1865 * Desc : Harq Retransmission statistics
1874 **********************************************************/
1878 RgSchHqNumRetx *param,
1882 S16 cmPkRgHqNumRetx (param, mBuf)
1883 RgSchHqNumRetx *param;
1888 CMCHKPK(oduUnpackUInt32, param->totalTx, mBuf);
1889 CMCHKPK(oduUnpackUInt16, param->numOfHQ_4, mBuf);
1890 CMCHKPK(oduUnpackUInt16, param->numOfHQ_3, mBuf);
1891 CMCHKPK(oduUnpackUInt16, param->numOfHQ_2, mBuf);
1892 CMCHKPK(oduUnpackUInt16, param->numOfHQ_1, mBuf);
1893 CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
1896 } /* cmPkRgHqNumRetx */
1899 /***********************************************************
1901 * Func : cmPkRgSchHqRetxStats
1913 **********************************************************/
1915 S16 cmPkRgSchHqRetxStats
1917 RgSchHqRetxStats *param,
1921 S16 cmPkRgSchHqRetxStats (param, mBuf)
1922 RgSchHqRetxStats *param;
1929 for (i=14; i >= 0; i--) {
1930 CMCHKPK(cmPkRgHqNumRetx, ¶m->ulCqiStat[i], mBuf);
1933 for (i=14; i >= 0; i--) {
1934 CMCHKPK(cmPkRgHqNumRetx, ¶m->dlCqiStat[i], mBuf);
1938 } /* cmPkRgSchHqRetxStats */
1940 /* unpcaking functions */
1942 /***********************************************************
1944 * Func : cmUnpkRgAckNack
1947 * Desc : Ack and Nack statistics
1956 **********************************************************/
1964 S16 cmUnpkRgAckNack (param, mBuf)
1971 CMCHKUNPK(oduPackUInt8, ¶m->mcs, mBuf);
1972 CMCHKUNPK(oduPackUInt16, ¶m->numOfNacks, mBuf);
1973 CMCHKUNPK(oduPackUInt16, ¶m->numOfAcks, mBuf);
1976 } /* cmUnkRgAckNack */
1979 /***********************************************************
1981 * Func : cmUnpkRgSchNackAckStats
1993 **********************************************************/
1995 S16 cmUnpkRgSchNackAckStats
1997 RgSchNackAckStats *param,
2001 S16 cmUnpkRgSchNackAckStats (param, mBuf)
2002 RgSchNackAckStats *param;
2008 for (i=0; i <= 14; i++) {
2009 CMCHKUNPK(cmUnpkRgAckNack, ¶m->dlCqiStat[i], mBuf);
2012 for (i=0; i <= 14; i++) {
2013 CMCHKUNPK(cmUnpkRgAckNack, ¶m->ulCqiStat[i], mBuf);
2017 } /* cmUnpkRgSchNackAckStats */
2020 /***********************************************************
2022 * Func : cmUnpkRgHqNumRetx
2025 * Desc : Harq Retransmission statistics
2034 **********************************************************/
2036 S16 cmUnpkRgHqNumRetx
2038 RgSchHqNumRetx *param,
2042 S16 cmUnpkRgHqNumRetx (param, mBuf)
2043 RgSchHqNumRetx *param;
2048 CMCHKUNPK(oduPackUInt8, ¶m->mcs, mBuf);
2049 CMCHKUNPK(oduPackUInt16, ¶m->numOfHQ_1, mBuf);
2050 CMCHKUNPK(oduPackUInt16, ¶m->numOfHQ_2, mBuf);
2051 CMCHKUNPK(oduPackUInt16, ¶m->numOfHQ_3, mBuf);
2052 CMCHKUNPK(oduPackUInt16, ¶m->numOfHQ_4, mBuf);
2053 CMCHKUNPK(oduPackUInt32, ¶m->totalTx, mBuf);
2056 } /* cmUnpkRgHqNumRetx */
2059 /***********************************************************
2061 * Func : cmUnpkRgSchHqRetxStats
2073 **********************************************************/
2075 S16 cmUnpkRgSchHqRetxStats
2077 RgSchHqRetxStats *param,
2081 S16 cmUnpkRgSchHqRetxStats (param, mBuf)
2082 RgSchHqRetxStats *param;
2088 for (i=0; i <= 14; i++) {
2089 CMCHKUNPK(cmUnpkRgHqNumRetx, ¶m->dlCqiStat[i], mBuf);
2092 for (i=0; i <= 14; i++) {
2093 CMCHKUNPK(cmUnpkRgHqNumRetx, ¶m->ulCqiStat[i], mBuf);
2097 } /* cmUnpkRgSchHqRetxStats */
2099 #endif /* MAC_SCH_STATS */
2102 /***********************************************************
2104 * Func : cmPkRgGenSts
2107 * Desc : This structure holds General Statistical information of MAC.
2116 **********************************************************/
2124 S16 cmPkRgGenSts(param, mBuf)
2131 #ifdef MAC_SCH_STATS
2132 CMCHKPK(cmPkRgSchHqRetxStats, ¶m->hqRetxStats, mBuf);
2133 CMCHKPK(cmPkRgSchNackAckStats, ¶m->nackAckStats, mBuf);
2134 #endif /* MAC_SCH_STATS */
2135 CMCHKPK(oduUnpackUInt16, param->numCellCfg, mBuf);
2136 CMCHKPK(oduUnpackUInt32, param->numUeCfg, mBuf);
2137 CMCHKPK(oduUnpackUInt32, param->numHarqFail, mBuf);
2143 /***********************************************************
2145 * Func : cmUnpkRgGenSts
2148 * Desc : This structure holds General Statistical information of MAC.
2157 **********************************************************/
2165 S16 cmUnpkRgGenSts(param, mBuf)
2172 CMCHKUNPK(oduPackUInt32, ¶m->numHarqFail, mBuf);
2173 CMCHKUNPK(oduPackUInt32, ¶m->numUeCfg, mBuf);
2174 CMCHKUNPK(oduPackUInt16, ¶m->numCellCfg, mBuf);
2175 #ifdef MAC_SCH_STATS
2176 CMCHKUNPK(cmUnpkRgSchNackAckStats, ¶m->nackAckStats, mBuf);
2177 CMCHKUNPK(cmUnpkRgSchHqRetxStats, ¶m->hqRetxStats, mBuf);
2178 #endif /* MAC_SCH_STATS */
2184 /***********************************************************
2186 * Func : cmPkRgSapSts
2189 * Desc : This structure holds Statistical information of a SAP in MAC.
2198 **********************************************************/
2206 S16 cmPkRgSapSts(param, mBuf)
2213 CMCHKPK(oduUnpackUInt32, param->numPduDrop, mBuf);
2214 CMCHKPK(oduUnpackUInt32, param->numPduTxmit, mBuf);
2215 CMCHKPK(oduUnpackUInt32, param->numPduRcvd, mBuf);
2221 /***********************************************************
2223 * Func : cmUnpkRgSapSts
2226 * Desc : This structure holds Statistical information of a SAP in MAC.
2235 **********************************************************/
2243 S16 cmUnpkRgSapSts(param, mBuf)
2250 CMCHKUNPK(oduPackUInt32, ¶m->numPduRcvd, mBuf);
2251 CMCHKUNPK(oduPackUInt32, ¶m->numPduTxmit, mBuf);
2252 CMCHKUNPK(oduPackUInt32, ¶m->numPduDrop, mBuf);
2258 /***********************************************************
2260 * Func : cmPkRgSchInstCfg
2263 * Desc : Scheduler Configuration
2272 **********************************************************/
2274 S16 cmPkRgSchInstCfg
2276 RgSchInstCfg *param,
2280 S16 cmPkRgSchInstCfg(param, mBuf)
2281 RgSchInstCfg *param;
2288 for (i=param->numSaps-1; i >= 0; i--) {
2289 CMCHKPK(cmPkRgLowSapCfg, ¶m->tfuSap[i], mBuf);
2291 for (i=param->numSaps-1; i >= 0; i--) {
2292 CMCHKPK(cmPkRgUpSapCfg, ¶m->rgrSap[i], mBuf);
2294 for (i=param->numSaps-1; i >= 0; i--) {
2295 CMCHKPK(cmPkRgUpSapCfg, ¶m->rgmSap[i], mBuf);
2297 CMCHKPK(oduUnpackUInt8, param->numSaps, mBuf);
2298 CMCHKPK(cmPkRgGenCfg, ¶m->genCfg, mBuf);
2299 CMCHKPK(oduUnpackUInt8, param->instId, mBuf);
2305 /***********************************************************
2307 * Func : cmUnpkRgSchInstCfg
2310 * Desc : Scheduler Configuration
2319 **********************************************************/
2321 S16 cmUnpkRgSchInstCfg
2323 RgSchInstCfg *param,
2327 S16 cmUnpkRgSchInstCfg(param, mBuf)
2328 RgSchInstCfg *param;
2335 CMCHKUNPK(oduPackUInt8, ¶m->instId, mBuf);
2336 CMCHKUNPK(cmUnpkRgGenCfg, ¶m->genCfg, mBuf);
2337 CMCHKUNPK(oduPackUInt8, ¶m->numSaps, mBuf);
2338 for (i=0; i<param->numSaps; i++) {
2339 CMCHKUNPK(cmUnpkRgUpSapCfg, ¶m->rgmSap[i], mBuf);
2341 for (i=0; i<param->numSaps; i++) {
2342 CMCHKUNPK(cmUnpkRgUpSapCfg, ¶m->rgrSap[i], mBuf);
2344 for (i=0; i<param->numSaps; i++) {
2345 CMCHKUNPK(cmUnpkRgLowSapCfg, ¶m->tfuSap[i], mBuf);
2352 /***********************************************************
2357 * Desc : This structure holds Configuration parameters for MAC.
2366 **********************************************************/
2375 S16 cmPkRgCfg(param, elmnt, mBuf)
2385 CMCHKPK(cmPkRgSchInstCfg, ¶m->s.schInstCfg, mBuf);
2388 CMCHKPK(cmPkRgLowSapCfg, ¶m->s.tfuSap, mBuf);
2391 CMCHKPK(cmPkRgUpSapCfg, ¶m->s.crgSap, mBuf);
2394 CMCHKPK(cmPkRgUpSapCfg, ¶m->s.rguSap, mBuf);
2397 CMCHKPK(cmPkRgGenCfg, ¶m->s.genCfg, mBuf);
2407 /***********************************************************
2409 * Func : cmUnpkRgCfg
2412 * Desc : This structure holds Configuration parameters for MAC.
2421 **********************************************************/
2430 S16 cmUnpkRgCfg(param, elmnt, mBuf)
2440 CMCHKUNPK(cmUnpkRgGenCfg, ¶m->s.genCfg, mBuf);
2443 CMCHKUNPK(cmUnpkRgUpSapCfg, ¶m->s.rguSap, mBuf);
2446 CMCHKUNPK(cmUnpkRgUpSapCfg, ¶m->s.crgSap, mBuf);
2449 CMCHKUNPK(cmUnpkRgLowSapCfg, ¶m->s.tfuSap, mBuf);
2452 CMCHKUNPK(cmUnpkRgSchInstCfg, ¶m->s.schInstCfg, mBuf);
2462 /***********************************************************
2464 * Func : cmPkRgSapSta
2467 * Desc : This structure holds a SAP's status information.
2476 **********************************************************/
2484 S16 cmPkRgSapSta(param, mBuf)
2491 CMCHKPK(oduUnpackUInt8, param->sapState, mBuf);
2497 /***********************************************************
2499 * Func : cmUnpkRgSapSta
2502 * Desc : This structure holds a SAP's status information.
2511 **********************************************************/
2519 S16 cmUnpkRgSapSta(param, mBuf)
2526 CMCHKUNPK(oduPackUInt8, ¶m->sapState, mBuf);
2532 /***********************************************************
2537 * Desc : This structure holds MAC's Statistical information.
2546 **********************************************************/
2555 S16 cmPkRgSts(param, elmnt, mBuf)
2565 CMCHKPK(cmPkRgSapSts, ¶m->s.tfuSts, mBuf);
2568 CMCHKPK(cmPkRgSapSts, ¶m->s.rgrSts, mBuf);
2571 CMCHKPK(cmPkRgSapSts, ¶m->s.crgSts, mBuf);
2574 CMCHKPK(cmPkRgSapSts, ¶m->s.rguSts, mBuf);
2577 CMCHKPK(cmPkRgGenSts, ¶m->s.genSts, mBuf);
2582 CMCHKPK(cmPkAction, param->action, mBuf);
2583 CMCHKPK(oduUnpackUInt8, param->sapInst, mBuf);
2584 CMCHKPK(cmPkDateTime, ¶m->dt, mBuf);
2590 /***********************************************************
2592 * Func : cmUnpkRgSts
2595 * Desc : This structure holds MAC's Statistical information.
2604 **********************************************************/
2613 S16 cmUnpkRgSts(param, elmnt, mBuf)
2621 CMCHKUNPK(cmUnpkDateTime, ¶m->dt, mBuf);
2622 CMCHKUNPK(oduPackUInt8, ¶m->sapInst, mBuf);
2623 CMCHKUNPK(cmUnpkAction, ¶m->action, mBuf);
2626 CMCHKUNPK(cmUnpkRgGenSts, ¶m->s.genSts, mBuf);
2629 CMCHKUNPK(cmUnpkRgSapSts, ¶m->s.rguSts, mBuf);
2632 CMCHKUNPK(cmUnpkRgSapSts, ¶m->s.crgSts, mBuf);
2635 CMCHKUNPK(cmUnpkRgSapSts, ¶m->s.rgrSts, mBuf);
2638 CMCHKUNPK(cmUnpkRgSapSts, ¶m->s.tfuSts, mBuf);
2648 /***********************************************************
2653 * Desc : This structure holds MAC's Solicited Status information.
2662 **********************************************************/
2675 S16 cmPkRgSsta(pst, param, elmnt, eventType, mBuf)
2679 /* lrg_c_001.main_3 - ADD - Added the extra parameter eventType to the function */
2690 CMCHKPK(cmPkRgSapSta, ¶m->s.tfuSapSta, mBuf);
2693 CMCHKPK(cmPkRgSapSta, ¶m->s.rgrSapSta, mBuf);
2696 CMCHKPK(cmPkRgSapSta, ¶m->s.crgSapSta, mBuf);
2699 CMCHKPK(cmPkRgSapSta, ¶m->s.rguSapSta, mBuf);
2701 /*ccpu00118255 - ADD - Check for eventType before Pack */
2704 if (eventType == EVTLRGSSTACFM)
2706 CMCHKPK(cmPkSystemId, ¶m->s.sysId, mBuf);
2707 if (param->s.sysId.ptNmb != NULLP)
2709 SPutSBuf(pst->region, pst->pool,
2710 (Data *)param->s.sysId.ptNmb, LRG_MAX_PT_NUM_SIZE);
2713 #else /*LRG_V1 not defined */
2714 if (param->s.sysId.ptNmb != NULLP)
2716 CMCHKPK(cmPkSystemId, ¶m->s.sysId, mBuf);
2717 SPutSBuf(pst->region, pst->pool, (Data *)param->s.sysId.ptNmb, LRG_MAX_PT_NUM_SIZE);
2720 #endif /*end of LRG_V1 */
2725 CMCHKPK(oduUnpackUInt8, param->sapInst, mBuf);
2726 CMCHKPK(cmPkDateTime, ¶m->dt, mBuf);
2732 /***********************************************************
2734 * Func : cmUnpkRgSsta
2737 * Desc : This structure holds MAC's Solicited Status information.
2746 **********************************************************/
2756 S16 cmUnpkRgSsta(pst, param, elmnt, mBuf)
2765 CMCHKUNPK(cmUnpkDateTime, ¶m->dt, mBuf);
2766 CMCHKUNPK(oduPackUInt8, ¶m->sapInst, mBuf);
2769 /*ccpu00118255 - ADD - Check for eventType before Unpack */
2770 if (pst->event == EVTLRGSSTACFM)
2773 if((SGetSBuf(pst->region, pst->pool, (Data **)¶m->s.sysId.ptNmb,
2774 LRG_MAX_PT_NUM_SIZE)) != ROK){
2775 #if (ERRCLASS & ERRCLS_ADD_RES)
2776 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2777 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2778 (ErrVal)ELRG048, (ErrVal)0, "Packing failed");
2783 /* KWORK_FIX: Moved the memset under the NULL check */
2784 if (param->s.sysId.ptNmb != NULLP)
2786 memset(param->s.sysId.ptNmb, 0, LRG_MAX_PT_NUM_SIZE);
2787 CMCHKUNPK(cmUnpkSystemId, ¶m->s.sysId, mBuf);
2792 CMCHKUNPK(cmUnpkRgSapSta, ¶m->s.rguSapSta, mBuf);
2795 CMCHKUNPK(cmUnpkRgSapSta, ¶m->s.crgSapSta, mBuf);
2798 CMCHKUNPK(cmUnpkRgSapSta, ¶m->s.rgrSapSta, mBuf);
2801 CMCHKUNPK(cmUnpkRgSapSta, ¶m->s.tfuSapSta, mBuf);
2811 /***********************************************************
2813 * Func : cmPkRgUstaDgn
2816 * Desc : Alarm diagnostics structure.
2825 **********************************************************/
2833 S16 cmPkRgUstaDgn(param, mBuf)
2840 switch(param->type) {
2841 case LRG_USTA_DGNVAL_MEM:
2842 CMCHKPK(cmPkMemoryId, ¶m->u.mem, mBuf);
2847 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
2853 /***********************************************************
2855 * Func : cmUnpkRgUstaDgn
2858 * Desc : Alarm diagnostics structure.
2867 **********************************************************/
2875 S16 cmUnpkRgUstaDgn(param, mBuf)
2882 CMCHKUNPK(oduPackUInt8, ¶m->type, mBuf);
2883 switch(param->type) {
2884 case LRG_USTA_DGNVAL_MEM:
2885 CMCHKUNPK(cmUnpkMemoryId, ¶m->u.mem, mBuf);
2895 /***********************************************************
2900 * Desc : This structure holds MAC's Unsolicited Status information.
2909 **********************************************************/
2917 S16 cmPkRgUsta(param, mBuf)
2924 CMCHKPK(cmPkRgUstaDgn, ¶m->dgn, mBuf);
2925 CMCHKPK(cmPkCmAlarm, ¶m->cmAlarm, mBuf);
2931 /***********************************************************
2933 * Func : cmUnpkRgUsta
2936 * Desc : This structure holds MAC's Unsolicited Status information.
2945 **********************************************************/
2953 S16 cmUnpkRgUsta(param, mBuf)
2960 CMCHKUNPK(cmUnpkCmAlarm, ¶m->cmAlarm, mBuf);
2961 CMCHKUNPK(cmUnpkRgUstaDgn, ¶m->dgn, mBuf);
2967 /***********************************************************
2972 * Desc : This structure holds MAC's Trace Indication information.
2981 **********************************************************/
2989 S16 cmPkRgTrc(param, mBuf)
2996 CMCHKPK(oduUnpackUInt8, param->evnt, mBuf);
2997 CMCHKPK(cmPkDateTime, ¶m->dt, mBuf);
3003 /***********************************************************
3005 * Func : cmUnpkRgTrc
3008 * Desc : This structure holds MAC's Trace Indication information.
3017 **********************************************************/
3025 S16 cmUnpkRgTrc(param, mBuf)
3032 CMCHKUNPK(cmUnpkDateTime, ¶m->dt, mBuf);
3033 CMCHKUNPK(oduPackUInt8, ¶m->evnt, mBuf);
3039 /***********************************************************
3041 * Func : cmPkRgDbgCntrl
3044 * Desc : This structure holds MAC's Debug Control information.
3053 **********************************************************/
3061 S16 cmPkRgDbgCntrl(param, mBuf)
3068 CMCHKPK(oduUnpackUInt32, param->dbgMask, mBuf);
3072 #ifdef PHY_ERROR_LOGING
3073 /***********************************************************
3075 * Func : cmPkRgSchUlAllocCntrl
3078 * Desc : This structure holds MAC's Debug Control information.
3087 **********************************************************/
3089 S16 cmPkRgSchUlAllocCntrl
3091 RgSchUlAllocCntrl *param,
3095 S16 cmPkRgSchUlAllocCntrl(param, mBuf)
3096 RgSchUlAllocCntrl *param;
3101 CMCHKPK(oduUnpackUInt8, param->mcs, mBuf);
3102 CMCHKPK(oduUnpackUInt16, param->numOfRb, mBuf);
3103 CMCHKPK(oduUnpackUInt16, param->rbStart, mBuf);
3104 CMCHKPK(oduUnpackUInt8, param->testStart, mBuf);
3105 CMCHKPK(oduUnpackUInt8, param->enaLog, mBuf);
3106 CMCHKPK(oduUnpackUInt16, param->logTime, mBuf);
3111 /***********************************************************
3113 * Func : cmUnpkRgSchUlAllocCntrl
3116 * Desc : This structure holds MAC's Scheduler Configuration for Ul Allocation.
3125 **********************************************************/
3127 S16 cmUnpkRgSchUlAllocCntrl
3129 RgSchUlAllocCntrl *param,
3133 S16 cmUnpkRgSchUlAllocCntrl(param, mBuf)
3134 RgSchUlAllocCntrl *param;
3139 CMCHKUNPK(oduPackUInt16, ¶m->logTime, mBuf);
3140 CMCHKUNPK(oduPackUInt8, ¶m->enaLog, mBuf);
3141 CMCHKUNPK(oduPackUInt8, ¶m->testStart, mBuf);
3142 CMCHKUNPK(oduPackUInt16, ¶m->rbStart, mBuf);
3143 CMCHKUNPK(oduPackUInt16, ¶m->numOfRb, mBuf);
3144 CMCHKUNPK(oduPackUInt8, ¶m->mcs, mBuf);
3152 /***********************************************************
3154 * Func : cmUnpkRgDbgCntrl
3157 * Desc : This structure holds MAC's Debug Control information.
3166 **********************************************************/
3168 S16 cmUnpkRgDbgCntrl
3174 S16 cmUnpkRgDbgCntrl(param, mBuf)
3181 CMCHKUNPK(oduPackUInt32, ¶m->dbgMask, mBuf);
3187 /***********************************************************
3189 * Func : cmPkRgSapCntrl
3192 * Desc : This structure holds MAC's SAP Control information.
3201 **********************************************************/
3209 S16 cmPkRgSapCntrl(param, mBuf)
3216 CMCHKPK(SPkS16, param->spId, mBuf);
3217 CMCHKPK(SPkS16, param->suId, mBuf);
3223 /***********************************************************
3225 * Func : cmUnpkRgSapCntrl
3228 * Desc : This structure holds MAC's SAP Control information.
3237 **********************************************************/
3239 S16 cmUnpkRgSapCntrl
3245 S16 cmUnpkRgSapCntrl(param, mBuf)
3252 CMCHKUNPK(SUnpkS16, ¶m->suId, mBuf);
3253 CMCHKUNPK(SUnpkS16, ¶m->spId, mBuf);
3259 /***********************************************************
3261 * Func : cmPkRgCntrl
3264 * Desc : This structure holds MAC's Control information.
3273 **********************************************************/
3282 S16 cmPkRgCntrl(param, elmnt, mBuf)
3295 switch(param->subAction) {
3297 CMCHKPK(cmPkRgSapCntrl, ¶m->s.rgSapCntrl, mBuf);
3302 switch(param->subAction) {
3304 CMCHKPK(SPkS16, param->s.trcLen, mBuf);
3307 CMCHKPK(cmPkRgDbgCntrl, ¶m->s.rgDbgCntrl, mBuf);
3313 CMCHKPK(oduUnpackUInt32, param->s.logMask, mBuf);
3316 #ifdef PHY_ERROR_LOGING
3318 CMCHKPK(cmPkRgSchUlAllocCntrl, ¶m->s.rgSchUlAllocCntrl, mBuf);
3328 CMCHKPK(oduUnpackUInt8, param->subAction, mBuf);
3329 CMCHKPK(oduUnpackUInt8, param->action, mBuf);
3330 CMCHKPK(cmPkDateTime, ¶m->dt, mBuf);
3336 /***********************************************************
3338 * Func : cmUnpkRgCntrl
3341 * Desc : This structure holds MAC's Control information.
3350 **********************************************************/
3359 S16 cmUnpkRgCntrl(param, elmnt, mBuf)
3367 CMCHKUNPK(cmUnpkDateTime, ¶m->dt, mBuf);
3368 CMCHKUNPK(oduPackUInt8, ¶m->action, mBuf);
3369 CMCHKUNPK(oduPackUInt8, ¶m->subAction, mBuf);
3372 switch(param->subAction) {
3374 CMCHKUNPK(cmUnpkRgDbgCntrl, ¶m->s.rgDbgCntrl, mBuf);
3377 CMCHKUNPK(SUnpkS16, ¶m->s.trcLen, mBuf);
3383 CMCHKUNPK(oduPackUInt32, ¶m->s.logMask, mBuf);
3386 #ifdef PHY_ERROR_LOGING
3388 CMCHKUNPK(cmUnpkRgSchUlAllocCntrl, ¶m->s.rgSchUlAllocCntrl, mBuf);
3399 switch(param->subAction) {
3401 CMCHKUNPK(cmUnpkRgSapCntrl, ¶m->s.rgSapCntrl, mBuf);
3413 /***********************************************************
3415 * Func : cmPkRgMngmt
3418 * Desc : This structure holds MAC's Configuration and Control Management Information.
3427 **********************************************************/
3437 S16 cmPkRgMngmt(pst, param, eventType, mBuf)
3447 case EVTLRGCNTRLREQ:
3448 case EVTLRGCNTRLCFM:
3449 case EVTLRGSCHCNTRLREQ:
3450 case EVTLRGSCHCNTRLCFM:
3451 if(cmPkRgCntrl(¶m->t.cntrl, param->hdr.elmId.elmnt, mBuf) != ROK)
3455 CMCHKPK(cmPkRgTrc, ¶m->t.trc, mBuf);
3458 case EVTLRGSCHSTAIND:
3459 CMCHKPK(cmPkRgUsta, ¶m->t.usta, mBuf);
3463 /*ccpu00118255 - ADD - eventType param */
3465 if(cmPkRgSsta(pst, ¶m->t.ssta, param->hdr.elmId.elmnt,
3466 eventType, mBuf) != ROK)
3468 #else /* LRG_V1 is not defined */
3469 if(cmPkRgSsta(pst, ¶m->t.ssta, param->hdr.elmId.elmnt, mBuf) != ROK)
3471 #endif /* end of LRG_V1*/
3475 if(cmPkRgSts(¶m->t.sts, param->hdr.elmId.elmnt, mBuf)!= ROK)
3480 if(cmPkRgCfg(¶m->t.cfg, param->hdr.elmId.elmnt, mBuf) != ROK)
3483 case EVTMACSCHGENCFGREQ:
3484 case EVTMACSCHGENCFGCFM:
3485 if(cmPkRgCfg(¶m->t.cfg, param->hdr.elmId.elmnt, mBuf) != ROK)
3491 CMCHKPK(cmPkCmStatus, ¶m->cfm, mBuf);
3492 CMCHKPK(cmPkHeader, ¶m->hdr, mBuf);
3498 /***********************************************************
3500 * Func : cmUnpkRgMngmt
3503 * Desc : This structure holds MAC's Configuration and Control Management Information.
3512 **********************************************************/
3522 S16 cmUnpkRgMngmt(pst, param, eventType, mBuf)
3531 CMCHKUNPK(cmUnpkHeader, ¶m->hdr, mBuf);
3532 CMCHKUNPK(cmUnpkCmStatus, ¶m->cfm, mBuf);
3536 case EVTMACSCHGENCFGREQ:
3537 case EVTMACSCHGENCFGCFM:
3538 if(cmUnpkRgCfg(¶m->t.cfg, param->hdr.elmId.elmnt, mBuf) != ROK)
3543 if(cmUnpkRgSts(¶m->t.sts, param->hdr.elmId.elmnt, mBuf) != ROK)
3548 if(cmUnpkRgSsta(pst, ¶m->t.ssta, param->hdr.elmId.elmnt, mBuf) != ROK)
3552 case EVTLRGSCHSTAIND:
3553 CMCHKUNPK(cmUnpkRgUsta, ¶m->t.usta, mBuf);
3556 CMCHKUNPK(cmUnpkRgTrc, ¶m->t.trc, mBuf);
3558 case EVTLRGCNTRLREQ:
3559 case EVTLRGCNTRLCFM:
3560 case EVTLRGSCHCNTRLREQ:
3561 case EVTLRGSCHCNTRLCFM:
3562 if(cmUnpkRgCntrl(¶m->t.cntrl, param->hdr.elmId.elmnt, mBuf) != ROK)
3571 /* lrg_c_001.main_3 - ADD - Added the functions pertaining to LTE_L2_MEAS */
3575 * @brief This API is used to pack
3576 LrgNmbActvUeQCI elements
3580 * Function: cmPkNmbActvUeQciReq
3582 * @param[in] LrgNmbActvUeQCI
3583 * @param[in] Buffer *mBuf
3588 static S16 cmPkNmbActvUeQciReq
3590 LrgNmbActvUeQCI *nmbActvUeQci,
3594 static S16 cmPkNmbActvUeQciReq(nmbActvUeQci, mBuf)
3595 LrgNmbActvUeQCI *nmbActvUeQci;
3602 for(idx = 0; idx < nmbActvUeQci->numQci; idx++)
3604 CMCHKPK(oduUnpackUInt8, nmbActvUeQci->qci[idx], mBuf);
3606 CMCHKPK(oduUnpackUInt8, nmbActvUeQci->numQci, mBuf);
3607 CMCHKPK(oduUnpackUInt8, nmbActvUeQci->sampPrd, mBuf);
3612 * @brief This API is used to pack
3613 LrgAvgPrbQci elements
3617 * Function: cmPkAvgPrbQciReq
3619 * @param[in] LrgNmbActvUeQciReq *avgPrbQciReq
3620 * @param[in] Buffer *mBuf
3625 static S16 cmPkAvgPrbQciReq
3627 LrgAvgPrbQCI *avgPrbQciReq,
3631 static S16 cmPkAvgPrbQciReq(avgPrbQciReq, mBuf)
3632 LrgAvgPrbQCI *avgPrbQciReq;
3638 for(idx = 0; idx < avgPrbQciReq->numQci; idx++)
3640 CMCHKPK(oduUnpackUInt8, avgPrbQciReq->qci[idx], mBuf);
3642 CMCHKPK(oduUnpackUInt8, avgPrbQciReq->numQci, mBuf);
3648 * @brief This API is used to send a
3649 L2 Measurement Request from LM to MAC.
3653 * Function: cmPkLrgSchL2MeasReq
3655 * @param[in] Pst * pst
3656 * @param[in] LrgSchMeasReqInfo * measInfo
3661 S16 cmPkLrgSchL2MeasReq
3664 LrgSchMeasReqInfo *measInfo
3667 S16 cmPkLrgSchL2MeasReq(pst, measInfo)
3669 LrgSchMeasReqInfo *measInfo;
3672 Buffer *mBuf = NULLP;
3674 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3675 #if (ERRCLASS & ERRCLS_ADD_RES)
3676 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3677 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3678 (ErrVal)ELRG049, (ErrVal)0, "SGetMsg failed");
3682 if(measInfo->measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL)
3684 CMCHKPK(cmPkNmbActvUeQciReq, &measInfo->nmbActvUeQciDl, mBuf);
3686 if(measInfo->measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL)
3688 CMCHKPK(cmPkNmbActvUeQciReq, &measInfo->nmbActvUeQciUl, mBuf);
3690 if(measInfo->measType & LRG_L2MEAS_AVG_PRB_PER_QCI_DL)
3692 CMCHKPK(cmPkAvgPrbQciReq, &measInfo->avgPrbQciDl, mBuf);
3694 if(measInfo->measType & LRG_L2MEAS_AVG_PRB_PER_QCI_UL)
3696 CMCHKPK(cmPkAvgPrbQciReq, &measInfo->avgPrbQciUl, mBuf);
3699 CMCHKPK(cmPkLteCellId, measInfo->cellId, mBuf);
3700 CMCHKPK(oduUnpackUInt32, measInfo->timePrd, mBuf);
3701 CMCHKPK(oduUnpackUInt16, measInfo->measType, mBuf);
3702 CMCHKPK(cmPkHeader, &measInfo->hdr, mBuf);
3703 pst->event = (Event) EVTLRGSCHL2MEASREQ;
3704 return (SPstTsk(pst,mBuf));
3707 * @brief This API is used to stop a
3708 L2 Measurement Request from LM to MAC.
3712 * Function: cmPkLrgSchL2MeasStopReq
3714 * @param[in] Pst * pst
3715 * @param[in] LrgSchMeasReqInfo * measInfo
3720 S16 cmPkLrgSchL2MeasStopReq
3723 LrgSchMeasStopReqInfo *measInfo
3726 S16 cmPkLrgSchL2MeasStopReq(pst, measInfo)
3728 LrgSchMeasStopReqInfo *measInfo;
3731 Buffer *mBuf = NULLP;
3733 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3734 #if (ERRCLASS & ERRCLS_ADD_RES)
3735 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3736 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3737 (ErrVal)ELRG049, (ErrVal)0, "SGetMsg failed");
3741 CMCHKPK(cmPkLteCellId, measInfo->cellId, mBuf);
3742 /*CMCHKPK(oduUnpackUInt16, measInfo->timePrd, mBuf);*/
3743 CMCHKPK(oduUnpackUInt16, measInfo->measType, mBuf);
3744 CMCHKPK(cmPkHeader, &measInfo->hdr, mBuf);
3745 pst->event = (Event) EVTLRGSCHL2MEASSTOPREQ;
3746 return (SPstTsk(pst,mBuf));
3747 }/*cmPkLrgSchL2MeasStopReq*/
3750 * @brief This API is used to send a
3751 L2 Measurement Request from LM to MAC.
3755 * Function: cmPkLrgSchL2MeasSendReq
3757 * @param[in] Pst * pst
3758 * @param[in] LrgSchMeasReqInfo * measInfo
3763 S16 cmPkLrgSchL2MeasSendReq
3766 LrgSchMeasSndReqInfo *measInfo
3769 S16 cmPkLrgSchL2MeasSendReq(pst, measInfo)
3771 LrgSchMeasSndReqInfo *measInfo;
3774 Buffer *mBuf = NULLP;
3775 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3776 #if (ERRCLASS & ERRCLS_ADD_RES)
3777 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3778 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3779 (ErrVal)ELRG049, (ErrVal)0, "SGetMsg failed");
3783 CMCHKPK(cmPkLteCellId, measInfo->cellId, mBuf);
3784 CMCHKPK(oduUnpackUInt32, measInfo->timePrd, mBuf);
3785 CMCHKPK(oduUnpackUInt16, measInfo->measType, mBuf);
3786 CMCHKPK(cmPkHeader, &measInfo->hdr, mBuf);
3787 pst->event = (Event) EVTLRGSCHL2MEASSENDREQ;
3788 return (SPstTsk(pst,mBuf));
3789 }/*cmPkLrgSchL2MeasSendReq*/
3792 * @brief This API is used to unpack AvgPrbQciReq
3796 * Function: cmUnpkNmbActvUeQciReq
3798 * @param[in] LrgNmbActvUeQCI *param
3799 * @param[in] Buffer * mBuf
3804 static S16 cmUnpkNmbActvUeQciReq
3806 LrgNmbActvUeQCI *param,
3810 static S16 cmUnpkNmbActvUeQciReq(param, mBuf)
3811 LrgNmbActvUeQCI *param;
3817 CMCHKUNPK(oduPackUInt8, ¶m->sampPrd, mBuf);
3818 CMCHKUNPK(oduPackUInt8, ¶m->numQci, mBuf);
3819 for(idx = param->numQci; idx > 0; idx--)
3821 CMCHKUNPK(oduPackUInt8, ¶m->qci[idx - 1], mBuf);
3828 * @brief This API is used to unpack AvgPrbQciReq
3832 * Function: cmUnpkAvgPrbQciReq
3834 * @param[in] LrgAvgPrbQCI *param
3835 * @param[in] Buffer * mBuf
3840 static S16 cmUnpkAvgPrbQciReq
3842 LrgAvgPrbQCI *param,
3846 static S16 cmUnpkAvgPrbQciReq (param, mBuf)
3847 LrgAvgPrbQCI *param;
3854 CMCHKUNPK(oduPackUInt8, ¶m->numQci, mBuf);
3855 for(idx = param->numQci; idx > 0; idx--)
3857 CMCHKUNPK(oduPackUInt8, ¶m->qci[idx - 1], mBuf);
3864 * @brief This API is used to send a
3865 Measurement Request from LM to SCH.
3869 * Function: cmUnpkLrgSchL2MeasReq
3871 * @param[in] LrgSchMeasReq func
3872 * @param[in] Pst * pst
3873 * @param[in] Buffer * mBuf
3878 S16 cmUnpkLrgSchL2MeasReq
3880 LrgSchL2MeasReq func,
3885 S16 cmUnpkLrgSchL2MeasReq(func, pst, mBuf)
3886 LrgSchL2MeasReq func;
3891 LrgSchMeasReqInfo measInfo;
3894 CMCHKUNPK(cmUnpkHeader, &measInfo.hdr, mBuf);
3895 CMCHKUNPK(oduPackUInt16, &measInfo.measType, mBuf);
3896 CMCHKUNPK(oduPackUInt32, &measInfo.timePrd, mBuf);
3897 CMCHKUNPK(cmUnpkLteCellId, &measInfo.cellId, mBuf);
3898 if(measInfo.measType & LRG_L2MEAS_AVG_PRB_PER_QCI_UL)
3900 CMCHKUNPK(cmUnpkAvgPrbQciReq, &measInfo.avgPrbQciUl, mBuf);
3902 if(measInfo.measType & LRG_L2MEAS_AVG_PRB_PER_QCI_DL)
3904 CMCHKUNPK(cmUnpkAvgPrbQciReq, &measInfo.avgPrbQciDl, mBuf);
3906 if(measInfo.measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL)
3908 CMCHKUNPK(cmUnpkNmbActvUeQciReq, &measInfo.nmbActvUeQciUl, mBuf);
3910 if(measInfo.measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL)
3912 CMCHKUNPK(cmUnpkNmbActvUeQciReq, &measInfo.nmbActvUeQciDl, mBuf);
3915 return ((*func)(pst, &measInfo));
3919 * @brief This API is used to stop a
3920 Measurement Request from LM to SCH.
3924 * Function: cmUnpkLrgSchL2MeasStopReq
3926 * @param[in] LrgSchMeasStopReq func
3927 * @param[in] Pst * pst
3928 * @param[in] Buffer * mBuf
3933 S16 cmUnpkLrgSchL2MeasStopReq
3935 LrgSchL2MeasStopReq func,
3940 S16 cmUnpkLrgSchL2MeasStopReq(func, pst, mBuf)
3941 LrgSchL2MeasStopReq func;
3946 LrgSchMeasStopReqInfo measInfo;
3948 CMCHKUNPK(cmUnpkHeader, &measInfo.hdr, mBuf);
3949 CMCHKUNPK(oduPackUInt16, &measInfo.measType, mBuf);
3950 /*CMCHKUNPK(oduPackUInt16, &measInfo.timePrd, mBuf);*/
3951 CMCHKUNPK(cmUnpkLteCellId, &measInfo.cellId, mBuf);
3953 return ((*func)(pst, &measInfo));
3954 }/*cmUnpkLrgSchL2MeasStopReq*/
3957 * @brief This API is used to send a
3958 Measurement Request from LM to SCH.
3962 * Function: cmUnpkLrgSchL2MeasSendReq
3964 * @param[in] LrgSchMeasSendReq func
3965 * @param[in] Pst * pst
3966 * @param[in] Buffer * mBuf
3971 S16 cmUnpkLrgSchL2MeasSendReq
3973 LrgSchL2MeasSendReq func,
3978 S16 cmUnpkLrgSchL2MeasSendReq(func, pst, mBuf)
3979 LrgSchL2MeasSendReq func;
3984 LrgSchMeasSndReqInfo measInfo;
3985 CMCHKUNPK(cmUnpkHeader, &measInfo.hdr, mBuf);
3986 CMCHKUNPK(oduPackUInt16, &measInfo.measType, mBuf);
3987 CMCHKUNPK(oduPackUInt32, &measInfo.timePrd, mBuf);
3988 CMCHKUNPK(cmUnpkLteCellId, &measInfo.cellId, mBuf);
3990 return ((*func)(pst, &measInfo));
3991 }/*cmUnpkLrgSchL2MeasSendReq*/
3994 * @brief This API is used to stop a
3995 L2 Measurement confirm from MAC to LM
3999 * Function: cmPkLrgSchL2MeasStopCfm
4001 * @param[in] Pst * pst
4002 * @param[in] LrgSchMeasCfmInfo * measInfo
4007 S16 cmPkLrgSchL2MeasStopCfm
4010 LrgSchMeasCfmInfo *measInfo
4013 S16 cmPkLrgSchL2MeasStopCfm(pst, measInfo)
4015 LrgSchMeasCfmInfo *measInfo;
4018 Buffer *mBuf = NULLP;
4020 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
4021 #if (ERRCLASS & ERRCLS_ADD_RES)
4022 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
4023 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
4024 (ErrVal)ELRG050, (ErrVal)0, "SGetMsg failed");
4028 CMCHKPK(cmPkLteCellId, measInfo->cellId, mBuf);
4029 CMCHKPK(cmPkCmStatus, &measInfo->cfm, mBuf);
4030 CMCHKPK(oduUnpackUInt16, measInfo->measType, mBuf);
4031 CMCHKPK(cmPkHeader, &measInfo->hdr, mBuf);
4032 pst->event = (Event) EVTLRGSCHL2MEASSTOPCFM;
4033 return (SPstTsk(pst,mBuf));
4034 }/*cmPkLrgSchL2MeasStopCfm*/
4036 * @brief This API is used to Send a
4037 Measurement Confirm from SCH to LM.
4041 * Function: cmUnpkLrgL2SchMeasCfm
4043 * @param[in] Pst * pst
4044 * @param[in] Buffer * mBuf
4049 S16 cmUnpkLrgSchL2MeasStopCfm
4051 LrgSchL2MeasStopCfm func,
4056 S16 cmUnpkLrgSchL2MeasStopCfm(func, pst, mBuf)
4057 LrgSchL2MeasStopCfm func;
4062 LrgSchMeasCfmInfo measInfo;
4065 CMCHKUNPK(cmUnpkHeader, &measInfo.hdr, mBuf);
4066 CMCHKUNPK(oduPackUInt16, &measInfo.measType, mBuf);
4067 CMCHKUNPK(cmUnpkCmStatus, &measInfo.cfm, mBuf);
4068 CMCHKUNPK(cmUnpkLteCellId, &measInfo.cellId, mBuf);
4071 return ((*func)(pst, &measInfo));
4072 }/*cmUnpkLrgSchL2MeasStopCfm*/
4075 * @brief This API is used to unpack LrgNumActvUeQCICfm structure
4079 * Function: cmPkNumUeQciCfm
4081 * @param[in] LrgNumActvUeQCICfm * param
4082 * @param[in] Buffer * mBuf
4087 static S16 cmPkNumUeQciCfm
4089 LrgNumActvUeQCICfm *param,
4093 static S16 cmPkNumUeQciCfm(param, mBuf)
4094 LrgNumActvUeQCICfm *param;
4101 for(idx = 0; idx < param->numQci; idx++)
4103 /*LRG : Review Tag*/
4104 CMCHKPK(oduUnpackUInt8, param->numActvUeQci[idx].qciValue, mBuf);
4105 CMCHKPK(oduUnpackUInt8, param->numActvUeQci[idx].numActvUeQci, mBuf);
4106 /*LRG : Review Tag*/
4108 CMCHKPK(oduUnpackUInt8, param->numQci, mBuf);
4113 * @brief This API is used to unpack LrgAvgPrbQCICfm structure
4117 * Function: cmPkAvgPrbQciCfm
4119 * @param[in] LrgAvgPrbQCICfm * param
4120 * @param[in] Buffer * mBuf
4125 static S16 cmPkAvgPrbQciCfm
4127 LrgAvgPrbQCICfm *param,
4131 static S16 cmPkAvgPrbQciCfm(param, mBuf)
4132 LrgAvgPrbQCICfm *param;
4138 for(idx = 0; idx < param->numQci; idx++)
4140 /*LRG : Review Tag*/
4141 CMCHKPK(oduUnpackUInt8, param->prbPercQci[idx].qciValue, mBuf);
4142 CMCHKPK(oduUnpackUInt8, param->prbPercQci[idx].prbPercQci, mBuf);
4143 /*LRG : Review Tag*/
4145 CMCHKPK(oduUnpackUInt8, param->numQci, mBuf);
4150 * @brief This API is used to unpack raPreamblesCfm structure
4154 * Function: cmPkRaPrmbsCfm
4156 * @param[in] LrgRaPreamblesCfm * param
4157 * @param[in] Buffer * mBuf
4162 static S16 cmPkRaPrmbsCfm
4164 LrgRaPreamblesCfm *param,
4168 static S16 cmPkRaPrmbsCfm(param, mBuf)
4169 LrgRaPreamblesCfm *param;
4174 CMCHKPK(oduUnpackUInt16, param->randSelPreHighRange, mBuf);
4175 CMCHKPK(oduUnpackUInt16, param->randSelPreLowRange, mBuf);
4176 CMCHKPK(oduUnpackUInt16, param->dedPreambles, mBuf);
4181 * @brief This API is used to unpack avgPrbCfm structure
4185 * Function: cmPkAvgPrbCfm
4187 * @param[in] LrgAvgPrbCfm * param
4188 * @param[in] Buffer * mBuf
4193 static S16 cmPkAvgPrbCfm
4195 LrgAvgPrbCfm *param,
4199 static S16 cmPkAvgPrbCfm(param, mBuf)
4200 LrgAvgPrbCfm *param;
4205 CMCHKPK(oduUnpackUInt8, param->prbPerc, mBuf);
4210 * @brief This API is used to send a
4211 L2 Measurement confirm from MAC to LM
4215 * Function: cmPkLrgSchL2MeasCfm
4217 * @param[in] Pst * pst
4218 * @param[in] LrgSchMeasCfmInfo * measInfo
4223 S16 cmPkLrgSchL2MeasCfm
4226 LrgSchMeasCfmInfo *measInfo
4229 S16 cmPkLrgSchL2MeasCfm(pst, measInfo)
4231 LrgSchMeasCfmInfo *measInfo;
4234 Buffer *mBuf = NULLP;
4237 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
4238 #if (ERRCLASS & ERRCLS_ADD_RES)
4239 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
4240 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
4241 (ErrVal)ELRG050, (ErrVal)0, "SGetMsg failed");
4245 if(measInfo->measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL)
4247 CMCHKPK(cmPkNumUeQciCfm, &measInfo->numUeQciDlCfm, mBuf);
4249 if(measInfo->measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL)
4251 CMCHKPK(cmPkNumUeQciCfm, &measInfo->numUeQciUlCfm, mBuf);
4253 if(measInfo->measType & LRG_L2MEAS_RA_PREAMBLE)
4255 CMCHKPK(cmPkRaPrmbsCfm, &measInfo->raPrmbsCfm, mBuf);
4257 if(measInfo->measType & LRG_L2MEAS_AVG_PRB_PER_QCI_DL)
4259 CMCHKPK(cmPkAvgPrbQciCfm, &measInfo->avgPrbQciDlCfm, mBuf);
4261 if(measInfo->measType & LRG_L2MEAS_AVG_PRB_PER_QCI_UL)
4263 CMCHKPK(cmPkAvgPrbQciCfm, &measInfo->avgPrbQciUlCfm, mBuf);
4265 if(measInfo->measType & LRG_L2MEAS_AVG_PRB_DL)
4267 CMCHKPK(cmPkAvgPrbCfm, &measInfo->avgPrbDl, mBuf);
4269 if(measInfo->measType & LRG_L2MEAS_AVG_PRB_UL)
4271 CMCHKPK(cmPkAvgPrbCfm, &measInfo->avgPrbUl, mBuf);
4273 if(measInfo->measType & LRG_L2MEAS_TB_TRANS_DL_COUNT)
4275 CMCHKPK(oduUnpackUInt32, measInfo->tbTransDlTotalCnt, mBuf);
4277 if(measInfo->measType & LRG_L2MEAS_TB_TRANS_DL_FAULTY_COUNT)
4279 CMCHKPK(oduUnpackUInt32, measInfo->tbTransDlFaulty, mBuf);
4281 if(measInfo->measType & LRG_L2MEAS_TB_TRANS_UL_COUNT)
4283 CMCHKPK(oduUnpackUInt32, measInfo->tbTransUlTotalCnt, mBuf);
4285 if(measInfo->measType & LRG_L2MEAS_TB_TRANS_UL_FAULTY_COUNT)
4287 CMCHKPK(oduUnpackUInt32, measInfo->tbTransUlFaulty, mBuf);
4289 CMCHKPK(cmPkLteCellId, measInfo->cellId, mBuf);
4290 CMCHKPK(cmPkCmStatus, &measInfo->cfm, mBuf);
4291 CMCHKPK(oduUnpackUInt16, measInfo->measType, mBuf);
4292 CMCHKPK(cmPkHeader, &measInfo->hdr, mBuf);
4293 pst->event = (Event) EVTLRGSCHL2MEASCFM;
4294 return (SPstTsk(pst,mBuf));
4298 * @brief This API is used to unpack LrgNumActvUeQCICfm
4302 * Function: cmUnpkNumUeQciCfm
4304 * @param[in] LrgNumActvUeQCICfm *param
4305 * @param[in] Buffer * mBuf
4310 static S16 cmUnpkNumUeQciCfm
4312 LrgNumActvUeQCICfm *param,
4316 static S16 cmUnpkNumUeQciCfm(param, mBuf)
4317 LrgNumActvUeQCICfm *param;
4323 CMCHKUNPK(oduPackUInt8, ¶m->numQci, mBuf);
4324 for(idx = param->numQci; idx > 0; idx--)
4326 /*LRG : Review Tag*/
4327 CMCHKUNPK(oduPackUInt8, ¶m->numActvUeQci[idx - 1].numActvUeQci, mBuf);
4328 CMCHKUNPK(oduPackUInt8, ¶m->numActvUeQci[idx - 1].qciValue, mBuf);
4329 /*LRG : Review Tag*/
4335 * @brief This API is used to unpack LrgAvgPrbQCICfm
4339 * Function: cmUnpkAvgPrbQciCfm
4341 * @param[in] LrgAvgPrbQCICfm *param
4342 * @param[in] Buffer * mBuf
4347 static S16 cmUnpkAvgPrbQciCfm
4349 LrgAvgPrbQCICfm *param,
4353 static S16 cmUnpkAvgPrbQciCfm(param, mBuf)
4354 LrgAvgPrbQCICfm *param;
4361 CMCHKUNPK(oduPackUInt8, ¶m->numQci, mBuf);
4362 for(idx = param->numQci; idx > 0; idx--)
4364 /*LRG : Review Tag*/
4365 CMCHKUNPK(oduPackUInt8, ¶m->prbPercQci[idx - 1].prbPercQci, mBuf);
4366 CMCHKUNPK(oduPackUInt8, ¶m->prbPercQci[idx - 1].qciValue, mBuf);
4367 /*LRG : Review Tag*/
4373 * @brief This API is used to unpack LrgRaPreamblesCfm
4377 * Function: cmUnpkRaPrmbsCfm
4379 * @param[in] LrgRaPreamblesCfm *param
4380 * @param[in] Buffer * mBuf
4385 static S16 cmUnpkRaPrmbsCfm
4387 LrgRaPreamblesCfm *param,
4391 static S16 cmUnpkRaPrmbsCfm(param, mBuf)
4392 LrgRaPreamblesCfm *param;
4398 CMCHKUNPK(oduPackUInt16, ¶m->dedPreambles, mBuf);
4399 CMCHKUNPK(oduPackUInt16, ¶m->randSelPreLowRange, mBuf);
4400 CMCHKUNPK(oduPackUInt16, ¶m->randSelPreHighRange, mBuf);
4405 * @brief This API is used to unpack avgPrbCfm
4409 * Function: cmUnpkAvgPrbCfm
4411 * @param[in] LrgAvgPrbCfm *param
4412 * @param[in] Buffer * mBuf
4417 static S16 cmUnpkAvgPrbCfm
4419 LrgAvgPrbCfm *param,
4423 static S16 cmUnpkAvgPrbCfm(param, mBuf)
4424 LrgAvgPrbCfm *param;
4430 CMCHKUNPK(oduPackUInt8, ¶m->prbPerc, mBuf);
4435 * @brief This API is used to send a
4436 Measurement Confirm from LM to SCH.
4440 * Function: cmUnpkLrgL2SchMeasCfm
4442 * @param[in] Pst * pst
4443 * @param[in] Buffer * mBuf
4448 S16 cmUnpkLrgSchL2MeasCfm
4450 LrgSchL2MeasCfm func,
4455 S16 cmUnpkLrgSchL2MeasCfm(func, pst, mBuf)
4456 LrgSchL2MeasCfm func;
4461 LrgSchMeasCfmInfo measInfo;
4464 CMCHKUNPK(cmUnpkHeader, &measInfo.hdr, mBuf);
4465 CMCHKUNPK(oduPackUInt16, &measInfo.measType, mBuf);
4466 CMCHKUNPK(cmUnpkCmStatus, &measInfo.cfm, mBuf);
4467 CMCHKUNPK(cmUnpkLteCellId, &measInfo.cellId, mBuf);
4468 if(measInfo.measType & LRG_L2MEAS_TB_TRANS_UL_FAULTY_COUNT)
4470 CMCHKPK(oduPackUInt32, &measInfo.tbTransUlFaulty, mBuf);
4472 if(measInfo.measType & LRG_L2MEAS_TB_TRANS_UL_COUNT)
4474 CMCHKPK(oduPackUInt32, &measInfo.tbTransUlTotalCnt, mBuf);
4476 if(measInfo.measType & LRG_L2MEAS_TB_TRANS_DL_FAULTY_COUNT)
4478 CMCHKPK(oduPackUInt32, &measInfo.tbTransDlFaulty, mBuf);
4480 if(measInfo.measType & LRG_L2MEAS_TB_TRANS_DL_COUNT)
4482 CMCHKPK(oduPackUInt32, &measInfo.tbTransDlTotalCnt, mBuf);
4484 if(measInfo.measType & LRG_L2MEAS_AVG_PRB_UL)
4486 CMCHKUNPK(cmUnpkAvgPrbCfm, &measInfo.avgPrbUl, mBuf);
4488 if(measInfo.measType & LRG_L2MEAS_AVG_PRB_DL)
4490 CMCHKUNPK(cmUnpkAvgPrbCfm, &measInfo.avgPrbDl, mBuf);
4492 if(measInfo.measType & LRG_L2MEAS_AVG_PRB_PER_QCI_UL)
4494 CMCHKUNPK(cmUnpkAvgPrbQciCfm, &measInfo.avgPrbQciUlCfm, mBuf);
4496 if(measInfo.measType & LRG_L2MEAS_AVG_PRB_PER_QCI_DL)
4498 CMCHKUNPK(cmUnpkAvgPrbQciCfm, &measInfo.avgPrbQciDlCfm, mBuf);
4500 if(measInfo.measType & LRG_L2MEAS_RA_PREAMBLE)
4502 CMCHKUNPK(cmUnpkRaPrmbsCfm, &measInfo.raPrmbsCfm, mBuf);
4504 if(measInfo.measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL)
4506 CMCHKUNPK(cmUnpkNumUeQciCfm, &measInfo.numUeQciUlCfm, mBuf);
4508 if(measInfo.measType & LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL)
4510 CMCHKUNPK(cmUnpkNumUeQciCfm, &measInfo.numUeQciDlCfm, mBuf);
4513 return ((*func)(pst, &measInfo));
4519 /**********************************************************************
4521 **********************************************************************/