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)
75 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
77 #if (ERRCLASS & ERRCLS_ADD_RES)
80 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
81 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
82 (ErrVal)ECKW001, (ErrVal)0, "SGetMsg() failed");
84 #endif /* ERRCLASS & ERRCLS_ADD_RES */
87 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW002, pst);
88 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW003, pst);
89 pst->event = (Event) CKW_EVT_BND_REQ;
91 return (SPstTsk(pst,mBuf));
92 } /*end of function cmPkCkwBndReq*/
98 * Desc: pack the primitive CkwUbndReq
115 S16 cmPkCkwUbndReq(pst, spId, reason)
125 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
127 #if (ERRCLASS & ERRCLS_ADD_RES)
130 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
131 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
132 (ErrVal)ECKW004, (ErrVal)0, "SGetMsg() failed");
134 #endif /* ERRCLASS & ERRCLS_ADD_RES */
137 CMCHKPKLOG(SPkS16, reason, mBuf, ECKW005, pst);
138 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW006, pst);
139 pst->event = (Event) CKW_EVT_UBND_REQ;
141 return (SPstTsk(pst,mBuf));
142 } /*end of function cmPkCkwUbndReq*/
148 * Desc: pack the primitive CkwBndCfm
165 S16 cmPkCkwBndCfm(pst, suId, status)
175 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
177 #if (ERRCLASS & ERRCLS_ADD_RES)
180 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
181 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
182 (ErrVal)ECKW007, (ErrVal)0, "SGetMsg() failed");
185 #endif /* ERRCLASS & ERRCLS_ADD_RES */
188 CMCHKPKLOG(oduUnpackUInt8, status, mBuf, ECKW008, pst);
189 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW009, pst);
190 pst->event = (Event) CKW_EVT_BND_CFM;
192 return (SPstTsk(pst,mBuf));
193 } /*end of function cmPkCkwBndCfm*/
200 * Desc: pack the structure RlcTmInfo
216 S16 cmPkRlcTmInfo(param, mBuf)
222 CMCHKPK(oduUnpackUInt32, param->dl.buffSize, mBuf);
225 } /* cmPkRlcTmInfo */
232 * Desc: pack the structure RlcUmInfo
244 RlcEntCfgInfo *param,
248 S16 cmPkRlcUmInfo(param, mBuf)
249 RlcEntCfgInfo *param;
258 CMCHKPK(oduUnpackUInt8, param->m.umInfo.dl.snLen, mBuf);
263 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.reOrdTmr, mBuf);
264 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.snLen, mBuf);
267 /* Patch ckw_c_001.main_3 */
268 case CKW_CFG_DIR_BOTH:
270 CMCHKPK(oduUnpackUInt8, param->m.umInfo.dl.snLen, mBuf);
271 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.reOrdTmr, mBuf);
272 CMCHKPK(oduUnpackUInt8, param->m.umInfo.ul.snLen, mBuf);
278 } /* cmPkRlcUmInfo */
285 * Desc: pack the structure RlcAmInfo
301 S16 cmPkRlcAmInfo(param, mBuf)
308 CMCHKPK(oduUnpackUInt8, param->ul.reOrdTmr, mBuf);
309 CMCHKPK(oduUnpackUInt16, param->ul.staProhTmr, mBuf);
310 CMCHKPK(oduUnpackUInt8, param->ul.snLen, mBuf);
313 CMCHKPK(oduUnpackUInt8, param->dl.maxRetx, mBuf);
314 CMCHKPK(SPkS32, param->dl.pollByte, mBuf);
315 CMCHKPK(SPkS16, param->dl.pollPdu, mBuf);
316 CMCHKPK(oduUnpackUInt16, param->dl.pollRetxTmr, mBuf);
317 CMCHKPK(oduUnpackUInt8, param->dl.snLen, mBuf);
320 } /* cmPkRlcAmInfo */
327 * Desc: pack the structure CkwLChInfo
343 S16 cmPkCkwLChInfo(param, mBuf)
349 CMCHKPK(oduUnpackUInt8, param->type, mBuf);
350 CMCHKPK(oduUnpackUInt8, param->lChId, mBuf);
353 } /* cmPkCkwLChInfo */
358 * Fun: cmPkRlcEntCfgInfo
360 * Desc: pack the structure RlcEntCfgInfo
370 S16 cmPkRlcEntCfgInfo
372 RlcEntCfgInfo *param,
376 S16 cmPkRlcEntCfgInfo(param, mBuf)
377 RlcEntCfgInfo *param;
382 switch(param->entMode)
386 CMCHKPK(cmPkRlcTmInfo, &(param->m.tmInfo), mBuf);
391 CMCHKPK(cmPkRlcUmInfo, param, mBuf);
396 CMCHKPK(cmPkRlcAmInfo, &(param->m.amInfo), mBuf);
401 /* Logical Channel Information */
402 switch(param->entMode)
406 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[0]), mBuf);
409 /* ccpu00128195: Packing lCh[0] and lCh[1] for UM bearer as well */
413 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[1]), mBuf);
414 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[0]), mBuf);
419 #ifdef TENB_MULT_CELL_SUPPRT
420 CMCHKPK(SPkS16, param->rguSapId, mBuf);
422 CMCHKPK(SPkS16, param->discardTmr, mBuf);
423 CMCHKPK(oduUnpackUInt8, param->dir, mBuf);
424 CMCHKPK(cmPkLteRlcMode, param->entMode, mBuf);
425 CMCHKPK(oduUnpackUInt8, param->qci, mBuf);
426 CMCHKPK(oduUnpackUInt8, param->rbType, mBuf);
427 CMCHKPK(oduUnpackUInt8, param->rbId, mBuf);
428 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
431 } /* cmPkRlcEntCfgInfo */
436 * Fun: cmPkRlcCfgInfo
438 * Desc: pack the structure RlcCfgInfo
455 S16 cmPkRlcCfgInfo(param, pst, mBuf)
464 for (idx = param->numEnt-1; idx >= 0; idx--)
466 CMCHKPK(cmPkRlcEntCfgInfo, &(param->entCfg[idx]), mBuf);
469 CMCHKPK(oduUnpackUInt8, param->numEnt, mBuf);
470 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
471 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
472 CMCHKPKLOG(oduUnpackUInt32, param->transId, mBuf, ECKW010, pst);
475 } /* cmPkRlcCfgInfo */
480 * Fun: cmPkRlcEntCfgCfmInfo
482 * Desc: pack the structure RlcEntCfgInfo
492 S16 cmPkRlcEntCfgCfmInfo
494 RlcEntCfgCfmInfo *param,
498 S16 cmPkRlcEntCfgCfmInfo(param, mBuf)
499 RlcEntCfgCfmInfo *param;
504 CMCHKPK(cmPkCmStatus, &(param->status), mBuf);
505 CMCHKPK(oduUnpackUInt8, param->rbType, mBuf);
506 CMCHKPK(oduUnpackUInt8, param->rbId, mBuf);
509 } /* cmPkRlcEntCfgCfmInfo */
514 * Fun: cmPkRlcCfgCfmInfo
516 * Desc: pack the structure RlcCfgCfmInfo
526 S16 cmPkRlcCfgCfmInfo
528 RlcCfgCfmInfo *param,
533 S16 cmPkRlcCfgCfmInfo(param, pst, mBuf)
534 RlcCfgCfmInfo *param;
542 for (idx = param->numEnt-1; idx >= 0; idx--)
544 CMCHKPK(cmPkRlcEntCfgCfmInfo, &(param->entCfgCfm[(U8)idx]), mBuf);
547 CMCHKPK(oduUnpackUInt8, param->numEnt, mBuf);
548 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
549 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
550 CMCHKPKLOG(oduUnpackUInt32, param->transId, mBuf, ECKW014, pst);
553 } /* cmPkRlcCfgCfmInfo */
560 * Desc: pack the primitive RlcUiRlcCfgCfm
574 RlcCfgCfmInfo *cfgCfmInfo
577 S16 cmPkRlcCfgCfm(pst, suId, cfgCfmInfo)
580 RlcCfgCfmInfo *cfgCfmInfo;
587 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
589 #if (ERRCLASS & ERRCLS_ADD_RES)
592 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
593 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
594 (ErrVal)ECKW015, (ErrVal)0, "SGetMsg() failed");
596 #endif /* ERRCLASS & ERRCLS_ADD_RES */
600 switch(pst->selector)
603 case ODU_SELECTOR_LC:
605 ret1 = cmPkRlcCfgCfmInfo( (cfgCfmInfo), pst, mBuf);
606 #if (ERRCLASS & ERRCLS_ADD_RES)
610 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
611 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
612 (ErrVal)ECKW016, (ErrVal)ret1, "Packing failure");
615 #endif /* ERRCLASS & ERRCLS_ADD_RES */
616 if (SPutSBuf(pst->region, pst->pool, (Data *)cfgCfmInfo,
617 sizeof(RlcCfgCfmInfo)) != ROK)
628 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW017, pst);
629 pst->event = (Event) CKW_EVT_CFG_CFM;
631 return (SPstTsk(pst,mBuf));
632 } /* cmPkRlcCfgCfm */
638 * Desc: pack the primitive KwUiCkwUeInfo
654 S16 cmPkCkwUeInfo(param, mBuf)
660 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
661 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
668 * Fun: cmPkCkwUeIdChgReq
670 * Desc: pack the primitive RlcUiCkwUeIdChgReq
680 S16 cmPkCkwUeIdChgReq
689 S16 cmPkCkwUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
694 CkwUeInfo *newUeInfo;
698 Buffer *mBuf = NULLP;
701 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
703 #if (ERRCLASS & ERRCLS_ADD_RES)
706 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
707 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
708 (ErrVal)ECKW018, (ErrVal)0, "SGetMsg() failed");
710 #endif /* ERRCLASS & ERRCLS_ADD_RES */
715 CMCHKPK(cmPkCkwUeInfo, newUeInfo, mBuf);
716 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo,
717 sizeof(CkwUeInfo)) != ROK)
722 CMCHKPK(cmPkCkwUeInfo, ueInfo, mBuf);
723 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo,
724 sizeof(CkwUeInfo)) != ROK)
729 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, ECKW019, pst);
730 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW020, pst);
731 pst->event = (Event) CKW_EVT_UEIDCHG_REQ;
733 return (SPstTsk(pst, mBuf));
735 } /* cmPkCkwUeIdChgReq */
739 * Fun: cmPkCkwUeIdChgCfm
741 * Desc: pack the primitive RlcUiCkwUeIdChgCfm
751 S16 cmPkCkwUeIdChgCfm
760 S16 cmPkCkwUeIdChgCfm(pst, suId, transId, ueInfo, status)
769 Buffer *mBuf = NULLP;
772 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
774 #if (ERRCLASS & ERRCLS_ADD_RES)
777 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
778 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
779 (ErrVal)ECKW021, (ErrVal)0, "SGetMsg() failed");
781 #endif /* ERRCLASS & ERRCLS_ADD_RES */
786 CMCHKPK(cmPkCmStatus, &status, mBuf);
787 CMCHKPK(cmPkCkwUeInfo, ueInfo, mBuf);
788 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo,
789 sizeof(CkwUeInfo)) != ROK)
794 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, ECKW022, pst);
795 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW023, pst);
796 pst->event = (Event) CKW_EVT_UEIDCHG_CFM;
798 return (SPstTsk(pst, mBuf));
800 } /* cmPkCkwUeIdChgCfm */
803 /******************************************************************************
805 *****************************************************************************/
809 * Fun: cmUnpkCkwBndReq
811 * Desc: unpack the primitive CkwBndReq
828 S16 cmUnpkCkwBndReq(func, pst, mBuf)
838 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, ECKW024, pst);
839 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, ECKW025, pst);
842 return ((*func)(pst, suId, spId));
843 } /*end of function cmUnpkCkwBndReq*/
847 * Fun: cmUnpkCkwUbndReq
849 * Desc: unpack the primitive CkwUbndReq
866 S16 cmUnpkCkwUbndReq(func, pst, mBuf)
876 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, ECKW026, pst);
877 CMCHKUNPKLOG(SUnpkS16, &reason, mBuf, ECKW027, pst);
879 return ((*func)(pst, spId, reason));
880 } /*end of function cmUnpkCkwUbndReq*/
884 * Fun: cmUnpkCkwBndCfm
886 * Desc: unpack the primitive CkwBndCfm
903 S16 cmUnpkCkwBndCfm(func, pst, mBuf)
913 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, ECKW028, pst);
914 CMCHKUNPKLOG(oduPackUInt8, &status, mBuf, ECKW029, pst);
917 return ((*func)(pst, suId, status));
918 } /*end of function cmUnpkCkwBndCfm*/
923 * Fun: cmUnpkRlcTmInfo
925 * Desc: pack the structure RlcTmInfo
941 S16 cmUnpkRlcTmInfo(param, mBuf)
947 CMCHKUNPK(oduPackUInt32, &(param->dl.buffSize), mBuf);
950 } /* cmUnpkRlcTmInfo */
955 * Fun: cmUnpkRlcUmInfo
957 * Desc: pack the structure RlcUmInfo
969 RlcEntCfgInfo *param,
973 S16 cmUnpkRlcUmInfo(param, mBuf)
974 RlcEntCfgInfo *param;
983 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.dl.snLen), mBuf);
988 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.snLen), mBuf);
989 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.reOrdTmr), mBuf);
992 /* Patch ckw_c_001.main_3 */
993 case CKW_CFG_DIR_BOTH:
995 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.snLen), mBuf);
996 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.ul.reOrdTmr), mBuf);
997 CMCHKUNPK(oduPackUInt8, &(param->m.umInfo.dl.snLen), mBuf);
1003 } /* cmUnpkRlcUmInfo */
1008 * Fun: cmUnpkRlcAmInfo
1010 * Desc: pack the structure RlcAmInfo
1026 S16 cmUnpkRlcAmInfo(param, mBuf)
1033 CMCHKUNPK(oduPackUInt8, &(param->dl.snLen), mBuf);
1034 CMCHKUNPK(oduPackUInt16, &(param->dl.pollRetxTmr), mBuf);
1035 CMCHKUNPK(SUnpkS16, &(param->dl.pollPdu), mBuf);
1036 CMCHKUNPK(SUnpkS32, &(param->dl.pollByte), mBuf);
1037 CMCHKUNPK(oduPackUInt8, &(param->dl.maxRetx), mBuf);
1040 CMCHKUNPK(oduPackUInt8, &(param->ul.snLen), mBuf);
1041 CMCHKUNPK(oduPackUInt16, &(param->ul.staProhTmr), mBuf);
1042 CMCHKUNPK(oduPackUInt8, &(param->ul.reOrdTmr), mBuf);
1045 } /* cmUnpkRlcAmInfo */
1050 * Fun: cmUnpkCkwLChInfo
1052 * Desc: pack the structure CkwLChInfo
1062 S16 cmUnpkCkwLChInfo
1068 S16 cmUnpkCkwLChInfo(param, mBuf)
1074 CMCHKUNPK(oduPackUInt8, &(param->lChId), mBuf);
1075 CMCHKUNPK(oduPackUInt8, &(param->type), mBuf);
1078 } /* cmUnpkCkwLChInfo */
1083 * Fun: cmUnpkRlcEntCfgCfmInfo
1085 * Desc: unpack the structure RlcEntCfgInfo
1095 S16 cmUnpkRlcEntCfgCfmInfo
1097 RlcEntCfgCfmInfo *param,
1101 S16 cmUnpkRlcEntCfgCfmInfo(param, mBuf)
1102 RlcEntCfgCfmInfo *param;
1107 CMCHKUNPK(oduPackUInt8, &(param->rbId), mBuf);
1108 CMCHKUNPK(oduPackUInt8, &(param->rbType), mBuf);
1109 CMCHKUNPK(cmUnpkCmStatus, &(param->status), mBuf);
1112 } /* cmUnpkRlcEntCfgCfmInfo */
1117 * Fun: cmUnpkRlcCfgCfmInfo
1119 * Desc: pack the structure RlcCfgCfmInfo
1129 S16 cmUnpkRlcCfgCfmInfo
1131 RlcCfgCfmInfo *param,
1136 S16 cmUnpkRlcCfgCfmInfo(param, pst, mBuf)
1137 RlcCfgCfmInfo *param;
1145 CMCHKUNPKLOG(oduPackUInt32, &(param->transId), mBuf, ECKW030, pst);
1146 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1147 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1148 CMCHKUNPK(oduPackUInt8, &(param->numEnt), mBuf);
1150 for (idx = 0; idx < param->numEnt; idx++)
1152 CMCHKUNPK(cmUnpkRlcEntCfgCfmInfo, &(param->entCfgCfm[idx]), mBuf);
1156 } /* cmUnpkRlcCfgCfmInfo */
1161 * Fun: cmUnpkRlcEntCfgInfo
1163 * Desc: pack the structure RlcEntCfgCfmInfo
1173 S16 cmUnpkRlcEntCfgInfo
1175 RlcEntCfgInfo *param,
1179 S16 cmUnpkRlcEntCfgInfo(param, mBuf)
1180 RlcEntCfgInfo *param;
1185 CMCHKUNPK(oduPackUInt8, &(param->cfgType), mBuf);
1186 CMCHKUNPK(oduPackUInt8, &(param->rbId), mBuf);
1187 CMCHKUNPK(oduPackUInt8, &(param->rbType), mBuf);
1188 CMCHKUNPK(oduPackUInt8, &(param->qci), mBuf);
1189 CMCHKUNPK(cmUnpkLteRlcMode, &(param->entMode), mBuf);
1190 CMCHKUNPK(oduPackUInt8, &(param->dir), mBuf);
1191 CMCHKUNPK(SUnpkS16, &(param->discardTmr), mBuf);
1192 #ifdef TENB_MULT_CELL_SUPPRT
1193 CMCHKUNPK(SUnpkS16, &(param->rguSapId), mBuf);
1196 /* Logical Channel Information */
1197 switch(param->entMode)
1199 case CM_LTE_MODE_TM:
1201 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[0]), mBuf);
1204 /* ccpu00128195: Unpacking lCh[0] and lCh[1] for UM bearer as well */
1205 case CM_LTE_MODE_UM:
1206 case CM_LTE_MODE_AM:
1208 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[0]), mBuf);
1209 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[1]), mBuf);
1215 switch(param->entMode)
1217 case CM_LTE_MODE_TM:
1219 CMCHKUNPK(cmUnpkRlcTmInfo, &(param->m.tmInfo), mBuf);
1222 case CM_LTE_MODE_UM:
1224 CMCHKUNPK(cmUnpkRlcUmInfo, param, mBuf);
1227 case CM_LTE_MODE_AM:
1229 CMCHKUNPK(cmUnpkRlcAmInfo, &(param->m.amInfo), mBuf);
1235 } /* cmUnpkRlcEntCfgInfo */
1240 * Fun: cmUnpkRlcCfgInfo
1242 * Desc: unpack the structure RlcCfgInfo
1252 S16 cmUnpkRlcCfgInfo
1259 S16 cmUnpkRlcCfgInfo(param, pst, mBuf)
1268 CMCHKUNPKLOG(oduPackUInt32, &(param->transId), mBuf, ECKW031, pst);
1269 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1270 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1271 CMCHKUNPK(oduPackUInt8, &(param->numEnt), mBuf);
1273 for (idx = 0; idx < param->numEnt; idx++)
1275 CMCHKUNPKLOG(cmUnpkRlcEntCfgInfo,&(param->entCfg[idx]), mBuf, ECKW032, pst);
1279 } /* cmUnpkRlcCfgInfo */
1284 * Fun: cmUnpkRlcCfgCfm
1286 * Desc: unpack the primitive RlcUiRlcCfgCfm
1303 S16 cmUnpkRlcCfgCfm(func, pst, mBuf)
1311 RlcCfgCfmInfo *cfgCfmInfo = NULLP;
1314 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&cfgCfmInfo,\
1315 sizeof(RlcCfgCfmInfo))) != ROK)
1317 #if (ERRCLASS & ERRCLS_ADD_RES)
1320 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1321 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1322 (ErrVal)ECKW035, (ErrVal)0, "SGetMsg() failed");
1324 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1328 memset(cfgCfmInfo, 0, sizeof(RlcCfgCfmInfo));
1330 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1332 switch(pst->selector)
1335 case ODU_SELECTOR_LC:
1337 ret1 = cmUnpkRlcCfgCfmInfo( (cfgCfmInfo), pst, mBuf);
1338 #if(ERRCLASS & ERRCLS_DEBUG)
1342 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1343 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1344 (ErrVal)ECKW036, (ErrVal)ret1, "Unpacking failure");
1347 #endif /* ERRCLASS & ERRCLS_DEBUG */
1354 return ((*func)(pst, suId, cfgCfmInfo));
1355 } /* cmUnpkRlcCfgCfm */
1359 * Fun: cmUnpkCkwUeInfo
1361 * Desc: Unpack the primitive KwUiCkwUeInfo
1377 S16 cmUnpkCkwUeInfo(param, mBuf)
1383 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1384 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1391 * Fun: cmUnpkCkwUeIdChgReq
1393 * Desc: unpack the primitive RlcUiCkwUeIdChgReq
1403 S16 cmUnpkCkwUeIdChgReq
1410 S16 cmUnpkCkwUeIdChgReq(func, pst, mBuf)
1419 CkwUeInfo *ueInfo = NULLP;
1420 CkwUeInfo *newUeInfo = NULLP;
1424 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
1425 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, ECKW037, pst);
1427 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo,\
1428 sizeof(CkwUeInfo))) != ROK)
1430 #if (ERRCLASS & ERRCLS_ADD_RES)
1432 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1433 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1434 (ErrVal)ECKW038, (ErrVal)0, "SGetMsg() failed");
1436 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1440 memset(ueInfo, 0, sizeof(CkwUeInfo));
1442 ret1 = cmUnpkCkwUeInfo((ueInfo), mBuf);
1443 #if(ERRCLASS & ERRCLS_DEBUG)
1447 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1448 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1449 (ErrVal)ECKW039, (ErrVal)ret1, "Unpacking failure");
1452 #endif /* ERRCLASS & ERRCLS_DEBUG */
1454 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo,\
1455 sizeof(CkwUeInfo))) != ROK)
1457 #if (ERRCLASS & ERRCLS_ADD_RES)
1459 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1460 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1461 (ErrVal)ECKW040, (ErrVal)0, "SGetMsg() failed");
1463 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1467 memset(newUeInfo, 0, sizeof(CkwUeInfo));
1469 ret1 = cmUnpkCkwUeInfo((newUeInfo), mBuf);
1470 #if(ERRCLASS & ERRCLS_DEBUG)
1474 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1475 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1476 (ErrVal)ECKW041, (ErrVal)ret1, "Unpacking failure");
1479 #endif /* ERRCLASS & ERRCLS_DEBUG */
1483 return ((*func)(pst, spId, transId, ueInfo, newUeInfo));
1485 } /* cmUnpkCkwUeIdChgReq */
1489 * Fun: cmUnpkCkwUeIdChgCfm
1491 * Desc: unpack the primitive RlcUiCkwUeIdChgCfm
1501 S16 cmUnpkCkwUeIdChgCfm
1508 S16 cmUnpkCkwUeIdChgCfm(func, pst, mBuf)
1517 CkwUeInfo *ueInfo = NULLP;
1521 memset(&status, 0, sizeof(CmStatus));
1523 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1524 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, ECKW042, pst);
1526 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo,\
1527 sizeof(CkwUeInfo))) != ROK)
1529 #if (ERRCLASS & ERRCLS_ADD_RES)
1532 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1533 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1534 (ErrVal)ECKW043, (ErrVal)0, "SGetMsg() failed");
1536 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1540 memset(ueInfo, 0, sizeof(CkwUeInfo));
1542 ret1 = cmUnpkCkwUeInfo((ueInfo), mBuf);
1543 #if(ERRCLASS & ERRCLS_DEBUG)
1547 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1548 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1549 (ErrVal)ECKW044, (ErrVal)ret1, "Unpacking failure");
1552 #endif /* ERRCLASS & ERRCLS_DEBUG */
1554 CMCHKUNPK(cmUnpkCmStatus, &status, mBuf);
1558 return ((*func)(pst, suId, transId, ueInfo, status));
1560 } /* cmUnpkCkwUeIdChgCfm */
1565 #endif /* __cplusplus */
1568 /**********************************************************************
1570 **********************************************************************/