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 *******************************************************************************/
19 /********************************************************************20**
21 Name: CKW RRC Control Interface
25 Desc: This file Contains the packing and unpacking functions for
30 *********************************************************************21*/
32 #include "common_def.h"
36 /* extern (.x) include files */
41 #endif /*for extern "C"*/
48 * Desc: pack the primitive CkwBndReq
65 S16 cmPkCkwBndReq(pst, suId, spId)
76 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
78 #if (ERRCLASS & ERRCLS_ADD_RES)
81 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
82 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
83 (ErrVal)ECKW001, (ErrVal)0, "SGetMsg() failed");
85 #endif /* ERRCLASS & ERRCLS_ADD_RES */
88 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW002, pst);
89 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW003, pst);
90 pst->event = (Event) CKW_EVT_BND_REQ;
92 return (SPstTsk(pst,mBuf));
93 } /*end of function cmPkCkwBndReq*/
99 * Desc: pack the primitive CkwUbndReq
116 S16 cmPkCkwUbndReq(pst, spId, reason)
127 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
129 #if (ERRCLASS & ERRCLS_ADD_RES)
132 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
133 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
134 (ErrVal)ECKW004, (ErrVal)0, "SGetMsg() failed");
136 #endif /* ERRCLASS & ERRCLS_ADD_RES */
139 CMCHKPKLOG(SPkS16, reason, mBuf, ECKW005, pst);
140 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW006, pst);
141 pst->event = (Event) CKW_EVT_UBND_REQ;
143 return (SPstTsk(pst,mBuf));
144 } /*end of function cmPkCkwUbndReq*/
150 * Desc: pack the primitive CkwBndCfm
167 S16 cmPkCkwBndCfm(pst, suId, status)
178 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
180 #if (ERRCLASS & ERRCLS_ADD_RES)
183 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
184 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
185 (ErrVal)ECKW007, (ErrVal)0, "SGetMsg() failed");
188 #endif /* ERRCLASS & ERRCLS_ADD_RES */
191 CMCHKPKLOG(oduUnpackUInt8, status, mBuf, ECKW008, pst);
192 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW009, pst);
193 pst->event = (Event) CKW_EVT_BND_CFM;
195 return (SPstTsk(pst,mBuf));
196 } /*end of function cmPkCkwBndCfm*/
203 * Desc: pack the structure RlcTmInfo
219 S16 cmPkRlcTmInfo(param, mBuf)
226 CMCHKPK(oduUnpackUInt32, param->dl.buffSize, mBuf);
229 } /* cmPkRlcTmInfo */
236 * Desc: pack the structure RlcUmInfo
248 RlcEntCfgInfo *param,
252 S16 cmPkRlcUmInfo(param, mBuf)
253 RlcEntCfgInfo *param;
263 CMCHKPK(oduUnpackUInt8, param->m.umInfo.dl.snLen, mBuf);
268 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.reOrdTmr, mBuf);
269 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.snLen, mBuf);
272 /* Patch ckw_c_001.main_3 */
273 case CKW_CFG_DIR_BOTH:
275 CMCHKPK(oduUnpackUInt8, param->m.umInfo.dl.snLen, mBuf);
276 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.reOrdTmr, mBuf);
277 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.snLen, mBuf);
283 } /* cmPkRlcUmInfo */
290 * Desc: pack the structure RlcAmInfo
306 S16 cmPkRlcAmInfo(param, mBuf)
314 CMCHKPK(oduUnpackUInt8, param->ul.reOrdTmr, mBuf);
315 CMCHKPK(oduUnpackUInt16, param->ul.staProhTmr, mBuf);
316 CMCHKPK(oduUnpackUInt8, param->ul.snLen, mBuf);
319 CMCHKPK(oduUnpackUInt8, param->dl.maxRetx, mBuf);
320 CMCHKPK(SPkS32, param->dl.pollByte, mBuf);
321 CMCHKPK(SPkS16, param->dl.pollPdu, mBuf);
322 CMCHKPK(oduUnpackUInt16, param->dl.pollRetxTmr, mBuf);
323 CMCHKPK(oduUnpackUInt8, param->dl.snLen, mBuf);
326 } /* cmPkRlcAmInfo */
333 * Desc: pack the structure CkwLChInfo
349 S16 cmPkCkwLChInfo(param, mBuf)
356 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
357 CMCHKPK(oduUnpackUInt8, param->lChId, mBuf);
360 } /* cmPkCkwLChInfo */
365 * Fun: cmPkRlcEntCfgInfo
367 * Desc: pack the structure RlcEntCfgInfo
377 S16 cmPkRlcEntCfgInfo
379 RlcEntCfgInfo *param,
383 S16 cmPkRlcEntCfgInfo(param, mBuf)
384 RlcEntCfgInfo *param;
388 TRC3(cmPkRlcEntCfgInfo)
390 switch(param->entMode)
394 CMCHKPK(cmPkRlcTmInfo, &(param->m.tmInfo), mBuf);
399 CMCHKPK(cmPkRlcUmInfo, param, mBuf);
404 CMCHKPK(cmPkRlcAmInfo, &(param->m.amInfo), mBuf);
409 /* Logical Channel Information */
410 switch(param->entMode)
414 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[0]), mBuf);
417 /* ccpu00128195: Packing lCh[0] and lCh[1] for UM bearer as well */
421 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[1]), mBuf);
422 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[0]), mBuf);
427 #ifdef TENB_MULT_CELL_SUPPRT
428 CMCHKPK(SPkS16, param->rguSapId, mBuf);
430 CMCHKPK(SPkS16, param->discardTmr, mBuf);
431 CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
432 CMCHKPK(cmPkLteRlcMode, param->entMode, mBuf);
433 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
434 CMCHKPK(oduUnpackUInt8, param->rbType, mBuf);
435 CMCHKPK(oduUnpackUInt8, param->rbId, mBuf);
436 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
439 } /* cmPkRlcEntCfgInfo */
444 * Fun: cmPkRlcCfgInfo
446 * Desc: pack the structure RlcCfgInfo
463 S16 cmPkRlcCfgInfo(param, pst, mBuf)
473 for (idx = param->numEnt-1; idx >= 0; idx--)
475 CMCHKPK(cmPkRlcEntCfgInfo, &(param->entCfg[idx]), mBuf);
478 CMCHKPK(oduUnpackUInt8, param->numEnt, mBuf);
479 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
480 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
481 CMCHKPKLOG(oduUnpackUInt32, param->transId, mBuf, ECKW010, pst);
484 } /* cmPkRlcCfgInfo */
489 * Fun: cmPkRlcEntCfgCfmInfo
491 * Desc: pack the structure RlcEntCfgInfo
501 S16 cmPkRlcEntCfgCfmInfo
503 RlcEntCfgCfmInfo *param,
507 S16 cmPkRlcEntCfgCfmInfo(param, mBuf)
508 RlcEntCfgCfmInfo *param;
512 TRC3(cmPkRlcEntCfgCfmInfo)
514 CMCHKPK(cmPkCmStatus, &(param->status), mBuf);
515 CMCHKPK(oduUnpackUInt8, param->rbType, mBuf);
516 CMCHKPK(oduUnpackUInt8, param->rbId, mBuf);
519 } /* cmPkRlcEntCfgCfmInfo */
524 * Fun: cmPkRlcCfgCfmInfo
526 * Desc: pack the structure RlcCfgCfmInfo
536 S16 cmPkRlcCfgCfmInfo
538 RlcCfgCfmInfo *param,
543 S16 cmPkRlcCfgCfmInfo(param, pst, mBuf)
544 RlcCfgCfmInfo *param;
551 TRC3(cmPkRlcCfgCfmInfo)
553 for (idx = param->numEnt-1; idx >= 0; idx--)
555 CMCHKPK(cmPkRlcEntCfgCfmInfo, &(param->entCfgCfm[(U8)idx]), mBuf);
558 CMCHKPK(oduUnpackUInt8, param->numEnt, mBuf);
559 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
560 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
561 CMCHKPKLOG(oduUnpackUInt32, param->transId, mBuf, ECKW014, pst);
564 } /* cmPkRlcCfgCfmInfo */
571 * Desc: pack the primitive RlcUiRlcCfgCfm
585 RlcCfgCfmInfo *cfgCfmInfo
588 S16 cmPkRlcCfgCfm(pst, suId, cfgCfmInfo)
591 RlcCfgCfmInfo *cfgCfmInfo;
599 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
601 #if (ERRCLASS & ERRCLS_ADD_RES)
604 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
605 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
606 (ErrVal)ECKW015, (ErrVal)0, "SGetMsg() failed");
608 #endif /* ERRCLASS & ERRCLS_ADD_RES */
612 switch(pst->selector)
615 case ODU_SELECTOR_LC:
617 ret1 = cmPkRlcCfgCfmInfo( (cfgCfmInfo), pst, mBuf);
618 #if (ERRCLASS & ERRCLS_ADD_RES)
622 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
623 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
624 (ErrVal)ECKW016, (ErrVal)ret1, "Packing failure");
627 #endif /* ERRCLASS & ERRCLS_ADD_RES */
628 if (SPutSBuf(pst->region, pst->pool, (Data *)cfgCfmInfo,
629 sizeof(RlcCfgCfmInfo)) != ROK)
640 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW017, pst);
641 pst->event = (Event) CKW_EVT_CFG_CFM;
643 return (SPstTsk(pst,mBuf));
644 } /* cmPkRlcCfgCfm */
650 * Desc: pack the primitive KwUiCkwUeInfo
666 S16 cmPkCkwUeInfo(param, mBuf)
673 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
674 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
681 * Fun: cmPkCkwUeIdChgReq
683 * Desc: pack the primitive RlcUiCkwUeIdChgReq
693 S16 cmPkCkwUeIdChgReq
702 S16 cmPkCkwUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
707 CkwUeInfo *newUeInfo;
711 Buffer *mBuf = NULLP;
713 TRC3(cmPkCkwUeIdChgReq)
715 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
717 #if (ERRCLASS & ERRCLS_ADD_RES)
720 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
721 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
722 (ErrVal)ECKW018, (ErrVal)0, "SGetMsg() failed");
724 #endif /* ERRCLASS & ERRCLS_ADD_RES */
729 CMCHKPK(cmPkCkwUeInfo, newUeInfo, mBuf);
730 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo,
731 sizeof(CkwUeInfo)) != ROK)
736 CMCHKPK(cmPkCkwUeInfo, ueInfo, mBuf);
737 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo,
738 sizeof(CkwUeInfo)) != ROK)
743 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, ECKW019, pst);
744 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW020, pst);
745 pst->event = (Event) CKW_EVT_UEIDCHG_REQ;
747 return (SPstTsk(pst, mBuf));
749 } /* cmPkCkwUeIdChgReq */
753 * Fun: cmPkCkwUeIdChgCfm
755 * Desc: pack the primitive RlcUiCkwUeIdChgCfm
765 S16 cmPkCkwUeIdChgCfm
774 S16 cmPkCkwUeIdChgCfm(pst, suId, transId, ueInfo, status)
783 Buffer *mBuf = NULLP;
785 TRC3(cmPkCkwUeIdChgCfm)
787 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
789 #if (ERRCLASS & ERRCLS_ADD_RES)
792 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
793 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
794 (ErrVal)ECKW021, (ErrVal)0, "SGetMsg() failed");
796 #endif /* ERRCLASS & ERRCLS_ADD_RES */
801 CMCHKPK(cmPkCmStatus, &status, mBuf);
802 CMCHKPK(cmPkCkwUeInfo, ueInfo, mBuf);
803 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo,
804 sizeof(CkwUeInfo)) != ROK)
809 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, ECKW022, pst);
810 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW023, pst);
811 pst->event = (Event) CKW_EVT_UEIDCHG_CFM;
813 return (SPstTsk(pst, mBuf));
815 } /* cmPkCkwUeIdChgCfm */
818 /******************************************************************************
820 *****************************************************************************/
824 * Fun: cmUnpkCkwBndReq
826 * Desc: unpack the primitive CkwBndReq
843 S16 cmUnpkCkwBndReq(func, pst, mBuf)
852 TRC3(cmUnpkCkwBndReq)
854 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, ECKW024, pst);
855 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, ECKW025, pst);
858 return ((*func)(pst, suId, spId));
859 } /*end of function cmUnpkCkwBndReq*/
863 * Fun: cmUnpkCkwUbndReq
865 * Desc: unpack the primitive CkwUbndReq
882 S16 cmUnpkCkwUbndReq(func, pst, mBuf)
891 TRC3(cmUnpkCkwUbndReq)
893 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, ECKW026, pst);
894 CMCHKUNPKLOG(SUnpkS16, &reason, mBuf, ECKW027, pst);
896 return ((*func)(pst, spId, reason));
897 } /*end of function cmUnpkCkwUbndReq*/
901 * Fun: cmUnpkCkwBndCfm
903 * Desc: unpack the primitive CkwBndCfm
920 S16 cmUnpkCkwBndCfm(func, pst, mBuf)
929 TRC3(cmUnpkCkwBndCfm)
931 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, ECKW028, pst);
932 CMCHKUNPKLOG(oduPackUInt8, &status, mBuf, ECKW029, pst);
935 return ((*func)(pst, suId, status));
936 } /*end of function cmUnpkCkwBndCfm*/
941 * Fun: cmUnpkRlcTmInfo
943 * Desc: pack the structure RlcTmInfo
959 S16 cmUnpkRlcTmInfo(param, mBuf)
964 TRC3(cmUnpkRlcTmInfo)
966 CMCHKUNPK(oduPackUInt32, &(param->dl.buffSize), mBuf);
969 } /* cmUnpkRlcTmInfo */
974 * Fun: cmUnpkRlcUmInfo
976 * Desc: pack the structure RlcUmInfo
988 RlcEntCfgInfo *param,
992 S16 cmUnpkRlcUmInfo(param, mBuf)
993 RlcEntCfgInfo *param;
997 TRC3(cmUnpkRlcUmInfo)
1001 case CKW_CFG_DIR_DL:
1003 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.dl.snLen), mBuf);
1006 case CKW_CFG_DIR_UL:
1008 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.snLen), mBuf);
1009 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.reOrdTmr), mBuf);
1012 /* Patch ckw_c_001.main_3 */
1013 case CKW_CFG_DIR_BOTH:
1015 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.snLen), mBuf);
1016 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.reOrdTmr), mBuf);
1017 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.dl.snLen), mBuf);
1023 } /* cmUnpkRlcUmInfo */
1028 * Fun: cmUnpkRlcAmInfo
1030 * Desc: pack the structure RlcAmInfo
1046 S16 cmUnpkRlcAmInfo(param, mBuf)
1051 TRC3(cmUnpkRlcAmInfo)
1054 CMCHKUNPK(oduPackUInt8, &(param->dl.snLen), mBuf);
1055 CMCHKUNPK(oduPackUInt16, &(param->dl.pollRetxTmr), mBuf);
1056 CMCHKUNPK(SUnpkS16, &(param->dl.pollPdu), mBuf);
1057 CMCHKUNPK(SUnpkS32, &(param->dl.pollByte), mBuf);
1058 CMCHKUNPK(oduPackUInt8, &(param->dl.maxRetx), mBuf);
1061 CMCHKUNPK(oduPackUInt8, &(param->ul.snLen), mBuf);
1062 CMCHKUNPK(oduPackUInt16, &(param->ul.staProhTmr), mBuf);
1063 CMCHKUNPK(oduPackUInt8, &(param->ul.reOrdTmr), mBuf);
1066 } /* cmUnpkRlcAmInfo */
1071 * Fun: cmUnpkCkwLChInfo
1073 * Desc: pack the structure CkwLChInfo
1083 S16 cmUnpkCkwLChInfo
1089 S16 cmUnpkCkwLChInfo(param, mBuf)
1094 TRC3(cmUnpkCkwLChInfo)
1096 CMCHKUNPK(oduPackUInt8, &(param->lChId), mBuf);
1097 CMCHKUNPK(oduPackUInt8, &(param->type), mBuf);
1100 } /* cmUnpkCkwLChInfo */
1105 * Fun: cmUnpkRlcEntCfgCfmInfo
1107 * Desc: unpack the structure RlcEntCfgInfo
1117 S16 cmUnpkRlcEntCfgCfmInfo
1119 RlcEntCfgCfmInfo *param,
1123 S16 cmUnpkRlcEntCfgCfmInfo(param, mBuf)
1124 RlcEntCfgCfmInfo *param;
1128 TRC3(cmUnpkRlcEntCfgCfmInfo)
1130 CMCHKUNPK(oduPackUInt8, &(param->rbId), mBuf);
1131 CMCHKUNPK(oduPackUInt8, &(param->rbType), mBuf);
1132 CMCHKUNPK(cmUnpkCmStatus, &(param->status), mBuf);
1135 } /* cmUnpkRlcEntCfgCfmInfo */
1140 * Fun: cmUnpkRlcCfgCfmInfo
1142 * Desc: pack the structure RlcCfgCfmInfo
1152 S16 cmUnpkRlcCfgCfmInfo
1154 RlcCfgCfmInfo *param,
1159 S16 cmUnpkRlcCfgCfmInfo(param, pst, mBuf)
1160 RlcCfgCfmInfo *param;
1167 TRC3(cmUnpkRlcCfgCfmInfo)
1169 CMCHKUNPKLOG(oduPackUInt32, &(param->transId), mBuf, ECKW030, pst);
1170 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1171 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1172 CMCHKUNPK(oduPackUInt8, &(param->numEnt), mBuf);
1174 for (idx = 0; idx < param->numEnt; idx++)
1176 CMCHKUNPK(cmUnpkRlcEntCfgCfmInfo, &(param->entCfgCfm[idx]), mBuf);
1180 } /* cmUnpkRlcCfgCfmInfo */
1185 * Fun: cmUnpkRlcEntCfgInfo
1187 * Desc: pack the structure RlcEntCfgCfmInfo
1197 S16 cmUnpkRlcEntCfgInfo
1199 RlcEntCfgInfo *param,
1203 S16 cmUnpkRlcEntCfgInfo(param, mBuf)
1204 RlcEntCfgInfo *param;
1208 TRC3(cmUnpkRlcEntCfgInfo)
1210 CMCHKUNPK(oduPackUInt8, &(param->cfgType), mBuf);
1211 CMCHKUNPK(oduPackUInt8, &(param->rbId), mBuf);
1212 CMCHKUNPK(oduPackUInt8, &(param->rbType), mBuf);
1213 CMCHKUNPK(oduPackUInt8, &(param->qci), mBuf);
1214 CMCHKUNPK(cmUnpkLteRlcMode, &(param->entMode), mBuf);
1215 CMCHKUNPK(oduPackUInt8, &(param->dir), mBuf);
1216 CMCHKUNPK(SUnpkS16, &(param->discardTmr), mBuf);
1217 #ifdef TENB_MULT_CELL_SUPPRT
1218 CMCHKUNPK(SUnpkS16, &(param->rguSapId), mBuf);
1221 /* Logical Channel Information */
1222 switch(param->entMode)
1224 case CM_LTE_MODE_TM:
1226 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[0]), mBuf);
1229 /* ccpu00128195: Unpacking lCh[0] and lCh[1] for UM bearer as well */
1230 case CM_LTE_MODE_UM:
1231 case CM_LTE_MODE_AM:
1233 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[0]), mBuf);
1234 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[1]), mBuf);
1240 switch(param->entMode)
1242 case CM_LTE_MODE_TM:
1244 CMCHKUNPK(cmUnpkRlcTmInfo, &(param->m.tmInfo), mBuf);
1247 case CM_LTE_MODE_UM:
1249 CMCHKUNPK(cmUnpkRlcUmInfo, param, mBuf);
1252 case CM_LTE_MODE_AM:
1254 CMCHKUNPK(cmUnpkRlcAmInfo, &(param->m.amInfo), mBuf);
1260 } /* cmUnpkRlcEntCfgInfo */
1265 * Fun: cmUnpkRlcCfgInfo
1267 * Desc: unpack the structure RlcCfgInfo
1277 S16 cmUnpkRlcCfgInfo
1284 S16 cmUnpkRlcCfgInfo(param, pst, mBuf)
1292 TRC3(cmUnpkRlcCfgInfo)
1294 CMCHKUNPKLOG(oduPackUInt32, &(param->transId), mBuf, ECKW031, pst);
1295 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1296 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1297 CMCHKUNPK(oduPackUInt8, &(param->numEnt), mBuf);
1299 for (idx = 0; idx < param->numEnt; idx++)
1301 CMCHKUNPKLOG(cmUnpkRlcEntCfgInfo,&(param->entCfg[idx]), mBuf, ECKW032, pst);
1305 } /* cmUnpkRlcCfgInfo */
1310 * Fun: cmUnpkRlcCfgCfm
1312 * Desc: unpack the primitive RlcUiRlcCfgCfm
1329 S16 cmUnpkRlcCfgCfm(func, pst, mBuf)
1337 RlcCfgCfmInfo *cfgCfmInfo = NULLP;
1339 TRC3(cmUnpkRlcCfgCfm)
1341 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&cfgCfmInfo,\
1342 sizeof(RlcCfgCfmInfo))) != ROK)
1344 #if (ERRCLASS & ERRCLS_ADD_RES)
1347 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1348 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1349 (ErrVal)ECKW035, (ErrVal)0, "SGetMsg() failed");
1351 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1355 cmMemset((U8 *)cfgCfmInfo, 0, sizeof(RlcCfgCfmInfo));
1357 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1359 switch(pst->selector)
1362 case ODU_SELECTOR_LC:
1364 ret1 = cmUnpkRlcCfgCfmInfo( (cfgCfmInfo), pst, mBuf);
1365 #if(ERRCLASS & ERRCLS_DEBUG)
1369 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1370 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1371 (ErrVal)ECKW036, (ErrVal)ret1, "Unpacking failure");
1374 #endif /* ERRCLASS & ERRCLS_DEBUG */
1381 return ((*func)(pst, suId, cfgCfmInfo));
1382 } /* cmUnpkRlcCfgCfm */
1386 * Fun: cmUnpkCkwUeInfo
1388 * Desc: Unpack the primitive KwUiCkwUeInfo
1404 S16 cmUnpkCkwUeInfo(param, mBuf)
1409 TRC2(cmUnpkCkwUeInfo)
1411 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1412 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1419 * Fun: cmUnpkCkwUeIdChgReq
1421 * Desc: unpack the primitive RlcUiCkwUeIdChgReq
1431 S16 cmUnpkCkwUeIdChgReq
1438 S16 cmUnpkCkwUeIdChgReq(func, pst, mBuf)
1447 CkwUeInfo *ueInfo = NULLP;
1448 CkwUeInfo *newUeInfo = NULLP;
1450 TRC3(cmUnpkCkwUeIdChgReq)
1453 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
1454 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, ECKW037, pst);
1456 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo,\
1457 sizeof(CkwUeInfo))) != ROK)
1459 #if (ERRCLASS & ERRCLS_ADD_RES)
1461 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1462 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1463 (ErrVal)ECKW038, (ErrVal)0, "SGetMsg() failed");
1465 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1469 cmMemset((U8 *)ueInfo, 0, sizeof(CkwUeInfo));
1471 ret1 = cmUnpkCkwUeInfo((ueInfo), mBuf);
1472 #if(ERRCLASS & ERRCLS_DEBUG)
1476 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1477 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1478 (ErrVal)ECKW039, (ErrVal)ret1, "Unpacking failure");
1481 #endif /* ERRCLASS & ERRCLS_DEBUG */
1483 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo,\
1484 sizeof(CkwUeInfo))) != ROK)
1486 #if (ERRCLASS & ERRCLS_ADD_RES)
1488 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1489 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1490 (ErrVal)ECKW040, (ErrVal)0, "SGetMsg() failed");
1492 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1496 cmMemset((U8 *)newUeInfo, 0, sizeof(CkwUeInfo));
1498 ret1 = cmUnpkCkwUeInfo((newUeInfo), mBuf);
1499 #if(ERRCLASS & ERRCLS_DEBUG)
1503 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1504 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1505 (ErrVal)ECKW041, (ErrVal)ret1, "Unpacking failure");
1508 #endif /* ERRCLASS & ERRCLS_DEBUG */
1512 return ((*func)(pst, spId, transId, ueInfo, newUeInfo));
1514 } /* cmUnpkCkwUeIdChgReq */
1518 * Fun: cmUnpkCkwUeIdChgCfm
1520 * Desc: unpack the primitive RlcUiCkwUeIdChgCfm
1530 S16 cmUnpkCkwUeIdChgCfm
1537 S16 cmUnpkCkwUeIdChgCfm(func, pst, mBuf)
1546 CkwUeInfo *ueInfo = NULLP;
1549 TRC3(cmUnpkCkwUeIdChgCfm)
1551 cmMemset((U8 *)&status, (U8)0, (PTR)sizeof(CmStatus));
1553 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1554 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, ECKW042, pst);
1556 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo,\
1557 sizeof(CkwUeInfo))) != ROK)
1559 #if (ERRCLASS & ERRCLS_ADD_RES)
1562 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1563 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1564 (ErrVal)ECKW043, (ErrVal)0, "SGetMsg() failed");
1566 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1570 cmMemset((U8 *)ueInfo, 0, sizeof(CkwUeInfo));
1572 ret1 = cmUnpkCkwUeInfo((ueInfo), mBuf);
1573 #if(ERRCLASS & ERRCLS_DEBUG)
1577 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1578 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1579 (ErrVal)ECKW044, (ErrVal)ret1, "Unpacking failure");
1582 #endif /* ERRCLASS & ERRCLS_DEBUG */
1584 CMCHKUNPK(cmUnpkCmStatus, &status, mBuf);
1588 return ((*func)(pst, suId, transId, ueInfo, status));
1590 } /* cmUnpkCkwUeIdChgCfm */
1595 #endif /* __cplusplus */
1598 /**********************************************************************
1600 **********************************************************************/