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 "envopt.h" /* environment options */
33 #include "envdep.h" /* environment dependent */
34 #include "envind.h" /* environment independent */
36 #include "gen.h" /* general */
37 #include "ssi.h" /* system services */
38 #include "cm5.h" /* common timer defines */
39 #include "cm_tkns.h" /* common tokens defines */
40 #include "cm_mblk.h" /* common memory allocation library defines */
41 #include "cm_llist.h" /* common link list defines */
42 #include "cm_hash.h" /* common hash list defines */
43 #include "cm_lte.h" /* common LTE defines */
44 #include "ckw.h" /* CKW defines */
46 /* extern (.x) include files */
47 #include "gen.x" /* general */
48 #include "ssi.x" /* system services */
50 #include "cm5.x" /* common timer library */
51 #include "cm_tkns.x" /* common tokens */
52 #include "cm_mblk.x" /* common memory allocation */
53 #include "cm_llist.x" /* common link list */
54 #include "cm_hash.x" /* common hash list */
55 #include "cm_lte.x" /* common LTE includes */
56 #include "cm_lib.x" /* common memory allocation library */
57 #include "ckw.x" /* CKW */
62 #endif /*for extern "C"*/
69 * Desc: pack the primitive CkwBndReq
79 PUBLIC S16 cmPkCkwBndReq
86 PUBLIC S16 cmPkCkwBndReq(pst, suId, spId)
97 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
99 #if (ERRCLASS & ERRCLS_ADD_RES)
102 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
103 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
104 (ErrVal)ECKW001, (ErrVal)0, "SGetMsg() failed");
106 #endif /* ERRCLASS & ERRCLS_ADD_RES */
109 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW002, pst);
110 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW003, pst);
111 pst->event = (Event) CKW_EVT_BND_REQ;
113 RETVALUE(SPstTsk(pst,mBuf));
114 } /*end of function cmPkCkwBndReq*/
118 * Fun: cmPkCkwUbndReq
120 * Desc: pack the primitive CkwUbndReq
130 PUBLIC S16 cmPkCkwUbndReq
137 PUBLIC S16 cmPkCkwUbndReq(pst, spId, reason)
148 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
150 #if (ERRCLASS & ERRCLS_ADD_RES)
153 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
154 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
155 (ErrVal)ECKW004, (ErrVal)0, "SGetMsg() failed");
157 #endif /* ERRCLASS & ERRCLS_ADD_RES */
160 CMCHKPKLOG(SPkS16, reason, mBuf, ECKW005, pst);
161 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW006, pst);
162 pst->event = (Event) CKW_EVT_UBND_REQ;
164 RETVALUE(SPstTsk(pst,mBuf));
165 } /*end of function cmPkCkwUbndReq*/
171 * Desc: pack the primitive CkwBndCfm
181 PUBLIC S16 cmPkCkwBndCfm
188 PUBLIC S16 cmPkCkwBndCfm(pst, suId, status)
199 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
201 #if (ERRCLASS & ERRCLS_ADD_RES)
204 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
205 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
206 (ErrVal)ECKW007, (ErrVal)0, "SGetMsg() failed");
209 #endif /* ERRCLASS & ERRCLS_ADD_RES */
212 CMCHKPKLOG(SPkU8, status, mBuf, ECKW008, pst);
213 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW009, pst);
214 pst->event = (Event) CKW_EVT_BND_CFM;
216 RETVALUE(SPstTsk(pst,mBuf));
217 } /*end of function cmPkCkwBndCfm*/
224 * Desc: pack the structure CkwTmInfo
234 PUBLIC S16 cmPkCkwTmInfo
240 PUBLIC S16 cmPkCkwTmInfo(param, mBuf)
247 CMCHKPK(SPkU32, param->dl.buffSize, mBuf);
250 } /* cmPkCkwTmInfo */
257 * Desc: pack the structure CkwUmInfo
267 PUBLIC S16 cmPkCkwUmInfo
269 CkwEntCfgInfo *param,
273 PUBLIC S16 cmPkCkwUmInfo(param, mBuf)
274 CkwEntCfgInfo *param;
284 CMCHKPK(SPkU8, param->m.umInfo.dl.snLen, mBuf);
289 CMCHKPK(SPkU8, param->m.umInfo.ul.reOrdTmr, mBuf);
290 CMCHKPK(SPkU8, param->m.umInfo.ul.snLen, mBuf);
293 /* Patch ckw_c_001.main_3 */
294 case CKW_CFG_DIR_BOTH:
296 CMCHKPK(SPkU8, param->m.umInfo.dl.snLen, mBuf);
297 CMCHKPK(SPkU8, param->m.umInfo.ul.reOrdTmr, mBuf);
298 CMCHKPK(SPkU8, param->m.umInfo.ul.snLen, mBuf);
304 } /* cmPkCkwUmInfo */
311 * Desc: pack the structure CkwAmInfo
321 PUBLIC S16 cmPkCkwAmInfo
327 PUBLIC S16 cmPkCkwAmInfo(param, mBuf)
335 CMCHKPK(SPkU8, param->ul.reOrdTmr, mBuf);
336 CMCHKPK(SPkU16, param->ul.staProhTmr, mBuf);
337 CMCHKPK(SPkU8, param->ul.snLen, mBuf);
340 CMCHKPK(SPkU8, param->dl.maxRetx, mBuf);
341 CMCHKPK(SPkS32, param->dl.pollByte, mBuf);
342 CMCHKPK(SPkS16, param->dl.pollPdu, mBuf);
343 CMCHKPK(SPkU16, param->dl.pollRetxTmr, mBuf);
344 CMCHKPK(SPkU8, param->dl.snLen, mBuf);
347 } /* cmPkCkwAmInfo */
354 * Desc: pack the structure CkwLChInfo
364 PUBLIC S16 cmPkCkwLChInfo
370 PUBLIC S16 cmPkCkwLChInfo(param, mBuf)
377 CMCHKPK(SPkU8, param->type, mBuf);
378 CMCHKPK(SPkU8, param->lChId, mBuf);
381 } /* cmPkCkwLChInfo */
386 * Fun: cmPkCkwEntCfgInfo
388 * Desc: pack the structure CkwEntCfgInfo
398 PUBLIC S16 cmPkCkwEntCfgInfo
400 CkwEntCfgInfo *param,
404 PUBLIC S16 cmPkCkwEntCfgInfo(param, mBuf)
405 CkwEntCfgInfo *param;
409 TRC3(cmPkCkwEntCfgInfo)
411 switch(param->entMode)
415 CMCHKPK(cmPkCkwTmInfo, &(param->m.tmInfo), mBuf);
420 CMCHKPK(cmPkCkwUmInfo, param, mBuf);
425 CMCHKPK(cmPkCkwAmInfo, &(param->m.amInfo), mBuf);
430 /* Logical Channel Information */
431 switch(param->entMode)
435 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[0]), mBuf);
438 /* ccpu00128195: Packing lCh[0] and lCh[1] for UM bearer as well */
442 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[1]), mBuf);
443 CMCHKPK(cmPkCkwLChInfo, &(param->lCh[0]), mBuf);
448 #ifdef TENB_MULT_CELL_SUPPRT
449 CMCHKPK(SPkS16, param->rguSapId, mBuf);
451 CMCHKPK(SPkS16, param->discardTmr, mBuf);
452 CMCHKPK(SPkU8, param->dir, mBuf);
453 CMCHKPK(cmPkLteRlcMode, param->entMode, mBuf);
454 CMCHKPK(SPkU8, param->qci, mBuf);
455 CMCHKPK(SPkU8, param->rbType, mBuf);
456 CMCHKPK(SPkU8, param->rbId, mBuf);
457 CMCHKPK(SPkU8, param->cfgType, mBuf);
460 } /* cmPkCkwEntCfgInfo */
465 * Fun: cmPkCkwCfgInfo
467 * Desc: pack the structure CkwCfgInfo
477 PUBLIC S16 cmPkCkwCfgInfo
484 PUBLIC S16 cmPkCkwCfgInfo(param, pst, mBuf)
494 for (idx = param->numEnt-1; idx >= 0; idx--)
496 CMCHKPK(cmPkCkwEntCfgInfo, &(param->entCfg[idx]), mBuf);
499 CMCHKPK(SPkU8, param->numEnt, mBuf);
500 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
501 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
502 CMCHKPKLOG(SPkU32, param->transId, mBuf, ECKW010, pst);
505 } /* cmPkCkwCfgInfo */
510 * Fun: packUeCreateReq
512 * Desc: pack the primitive UE Create Req
522 PUBLIC S16 packUeCreateReq
528 PUBLIC S16 packUeCreateReq(pst, cfgInfo)
536 TRC3(packUeCreateReq)
538 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
540 #if (ERRCLASS & ERRCLS_ADD_RES)
543 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
544 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
545 (ErrVal)ECKW011, (ErrVal)0, "SGetMsg() failed");
547 #endif /* ERRCLASS & ERRCLS_ADD_RES */
551 switch(pst->selector)
555 CMCHKPK(cmPkPtr,(PTR) cfgInfo, mBuf);
563 ret1 = cmPkCkwCfgInfo( (cfgInfo), pst, mBuf);
564 #if (ERRCLASS & ERRCLS_ADD_RES)
568 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
569 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
570 (ErrVal)ECKW012, (ErrVal)ret1, "Packing failure");
573 #endif /* ERRCLASS & ERRCLS_ADD_RES */
574 if (SPutSBuf(pst->region, pst->pool, (Data *)cfgInfo,
575 sizeof(CkwCfgInfo)) != ROK)
586 pst->event = (Event) RLC_EVT_UE_CREATE_REQ;
588 RETVALUE(SPstTsk(pst,mBuf));
589 } /* packUeCreateReq */
594 * Fun: cmPkCkwEntCfgCfmInfo
596 * Desc: pack the structure CkwEntCfgInfo
606 PUBLIC S16 cmPkCkwEntCfgCfmInfo
608 CkwEntCfgCfmInfo *param,
612 PUBLIC S16 cmPkCkwEntCfgCfmInfo(param, mBuf)
613 CkwEntCfgCfmInfo *param;
617 TRC3(cmPkCkwEntCfgCfmInfo)
619 CMCHKPK(cmPkCmStatus, &(param->status), mBuf);
620 CMCHKPK(SPkU8, param->rbType, mBuf);
621 CMCHKPK(SPkU8, param->rbId, mBuf);
624 } /* cmPkCkwEntCfgCfmInfo */
629 * Fun: cmPkCkwCfgCfmInfo
631 * Desc: pack the structure CkwCfgCfmInfo
641 PUBLIC S16 cmPkCkwCfgCfmInfo
643 CkwCfgCfmInfo *param,
648 PUBLIC S16 cmPkCkwCfgCfmInfo(param, pst, mBuf)
649 CkwCfgCfmInfo *param;
656 TRC3(cmPkCkwCfgCfmInfo)
658 for (idx = param->numEnt-1; idx >= 0; idx--)
660 CMCHKPK(cmPkCkwEntCfgCfmInfo, &(param->entCfgCfm[(U8)idx]), mBuf);
663 CMCHKPK(SPkU8, param->numEnt, mBuf);
664 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
665 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
666 CMCHKPKLOG(SPkU32, param->transId, mBuf, ECKW014, pst);
669 } /* cmPkCkwCfgCfmInfo */
676 * Desc: pack the primitive KwUiCkwCfgCfm
686 PUBLIC S16 cmPkCkwCfgCfm
690 CkwCfgCfmInfo *cfgCfmInfo
693 PUBLIC S16 cmPkCkwCfgCfm(pst, suId, cfgCfmInfo)
696 CkwCfgCfmInfo *cfgCfmInfo;
704 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
706 #if (ERRCLASS & ERRCLS_ADD_RES)
709 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
710 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
711 (ErrVal)ECKW015, (ErrVal)0, "SGetMsg() failed");
713 #endif /* ERRCLASS & ERRCLS_ADD_RES */
717 switch(pst->selector)
722 ret1 = cmPkCkwCfgCfmInfo( (cfgCfmInfo), pst, mBuf);
723 #if (ERRCLASS & ERRCLS_ADD_RES)
727 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
728 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
729 (ErrVal)ECKW016, (ErrVal)ret1, "Packing failure");
732 #endif /* ERRCLASS & ERRCLS_ADD_RES */
733 if (SPutSBuf(pst->region, pst->pool, (Data *)cfgCfmInfo,
734 sizeof(CkwCfgCfmInfo)) != ROK)
745 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW017, pst);
746 pst->event = (Event) CKW_EVT_CFG_CFM;
748 RETVALUE(SPstTsk(pst,mBuf));
749 } /* cmPkCkwCfgCfm */
755 * Desc: pack the primitive KwUiCkwUeInfo
765 PUBLIC S16 cmPkCkwUeInfo
771 PUBLIC S16 cmPkCkwUeInfo(param, mBuf)
778 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
779 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
786 * Fun: cmPkCkwUeIdChgReq
788 * Desc: pack the primitive KwUiCkwUeIdChgReq
798 PUBLIC S16 cmPkCkwUeIdChgReq
807 PUBLIC S16 cmPkCkwUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
812 CkwUeInfo *newUeInfo;
816 Buffer *mBuf = NULLP;
818 TRC3(cmPkCkwUeIdChgReq)
820 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
822 #if (ERRCLASS & ERRCLS_ADD_RES)
825 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
826 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
827 (ErrVal)ECKW018, (ErrVal)0, "SGetMsg() failed");
829 #endif /* ERRCLASS & ERRCLS_ADD_RES */
834 CMCHKPK(cmPkCkwUeInfo, newUeInfo, mBuf);
835 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo,
836 sizeof(CkwUeInfo)) != ROK)
841 CMCHKPK(cmPkCkwUeInfo, ueInfo, mBuf);
842 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo,
843 sizeof(CkwUeInfo)) != ROK)
848 CMCHKPKLOG(SPkU32, transId, mBuf, ECKW019, pst);
849 CMCHKPKLOG(SPkS16, spId, mBuf, ECKW020, pst);
850 pst->event = (Event) CKW_EVT_UEIDCHG_REQ;
852 RETVALUE(SPstTsk(pst, mBuf));
854 } /* cmPkCkwUeIdChgReq */
858 * Fun: cmPkCkwUeIdChgCfm
860 * Desc: pack the primitive KwUiCkwUeIdChgCfm
870 PUBLIC S16 cmPkCkwUeIdChgCfm
879 PUBLIC S16 cmPkCkwUeIdChgCfm(pst, suId, transId, ueInfo, status)
888 Buffer *mBuf = NULLP;
890 TRC3(cmPkCkwUeIdChgCfm)
892 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
894 #if (ERRCLASS & ERRCLS_ADD_RES)
897 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
898 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
899 (ErrVal)ECKW021, (ErrVal)0, "SGetMsg() failed");
901 #endif /* ERRCLASS & ERRCLS_ADD_RES */
906 CMCHKPK(cmPkCmStatus, &status, mBuf);
907 CMCHKPK(cmPkCkwUeInfo, ueInfo, mBuf);
908 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo,
909 sizeof(CkwUeInfo)) != ROK)
914 CMCHKPKLOG(SPkU32, transId, mBuf, ECKW022, pst);
915 CMCHKPKLOG(SPkS16, suId, mBuf, ECKW023, pst);
916 pst->event = (Event) CKW_EVT_UEIDCHG_CFM;
918 RETVALUE(SPstTsk(pst, mBuf));
920 } /* cmPkCkwUeIdChgCfm */
923 /******************************************************************************
925 *****************************************************************************/
929 * Fun: cmUnpkCkwBndReq
931 * Desc: unpack the primitive CkwBndReq
941 PUBLIC S16 cmUnpkCkwBndReq
948 PUBLIC S16 cmUnpkCkwBndReq(func, pst, mBuf)
957 TRC3(cmUnpkCkwBndReq)
959 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, ECKW024, pst);
960 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, ECKW025, pst);
963 RETVALUE((*func)(pst, suId, spId));
964 } /*end of function cmUnpkCkwBndReq*/
968 * Fun: cmUnpkCkwUbndReq
970 * Desc: unpack the primitive CkwUbndReq
980 PUBLIC S16 cmUnpkCkwUbndReq
987 PUBLIC S16 cmUnpkCkwUbndReq(func, pst, mBuf)
996 TRC3(cmUnpkCkwUbndReq)
998 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, ECKW026, pst);
999 CMCHKUNPKLOG(SUnpkS16, &reason, mBuf, ECKW027, pst);
1001 RETVALUE((*func)(pst, spId, reason));
1002 } /*end of function cmUnpkCkwUbndReq*/
1006 * Fun: cmUnpkCkwBndCfm
1008 * Desc: unpack the primitive CkwBndCfm
1018 PUBLIC S16 cmUnpkCkwBndCfm
1025 PUBLIC S16 cmUnpkCkwBndCfm(func, pst, mBuf)
1034 TRC3(cmUnpkCkwBndCfm)
1036 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, ECKW028, pst);
1037 CMCHKUNPKLOG(SUnpkU8, &status, mBuf, ECKW029, pst);
1040 RETVALUE((*func)(pst, suId, status));
1041 } /*end of function cmUnpkCkwBndCfm*/
1046 * Fun: cmUnpkCkwTmInfo
1048 * Desc: pack the structure CkwTmInfo
1058 PUBLIC S16 cmUnpkCkwTmInfo
1064 PUBLIC S16 cmUnpkCkwTmInfo(param, mBuf)
1069 TRC3(cmUnpkCkwTmInfo)
1071 CMCHKUNPK(SUnpkU32, &(param->dl.buffSize), mBuf);
1074 } /* cmUnpkCkwTmInfo */
1079 * Fun: cmUnpkCkwUmInfo
1081 * Desc: pack the structure CkwUmInfo
1091 PUBLIC S16 cmUnpkCkwUmInfo
1093 CkwEntCfgInfo *param,
1097 PUBLIC S16 cmUnpkCkwUmInfo(param, mBuf)
1098 CkwEntCfgInfo *param;
1102 TRC3(cmUnpkCkwUmInfo)
1106 case CKW_CFG_DIR_DL:
1108 CMCHKUNPK(SUnpkU8, &(param->m.umInfo.dl.snLen), mBuf);
1111 case CKW_CFG_DIR_UL:
1113 CMCHKUNPK(SUnpkU8, &(param->m.umInfo.ul.snLen), mBuf);
1114 CMCHKUNPK(SUnpkU8, &(param->m.umInfo.ul.reOrdTmr), mBuf);
1117 /* Patch ckw_c_001.main_3 */
1118 case CKW_CFG_DIR_BOTH:
1120 CMCHKUNPK(SUnpkU8, &(param->m.umInfo.ul.snLen), mBuf);
1121 CMCHKUNPK(SUnpkU8, &(param->m.umInfo.ul.reOrdTmr), mBuf);
1122 CMCHKUNPK(SUnpkU8, &(param->m.umInfo.dl.snLen), mBuf);
1128 } /* cmUnpkCkwUmInfo */
1133 * Fun: cmUnpkCkwAmInfo
1135 * Desc: pack the structure CkwAmInfo
1145 PUBLIC S16 cmUnpkCkwAmInfo
1151 PUBLIC S16 cmUnpkCkwAmInfo(param, mBuf)
1156 TRC3(cmUnpkCkwAmInfo)
1159 CMCHKUNPK(SUnpkU8, &(param->dl.snLen), mBuf);
1160 CMCHKUNPK(SUnpkU16, &(param->dl.pollRetxTmr), mBuf);
1161 CMCHKUNPK(SUnpkS16, &(param->dl.pollPdu), mBuf);
1162 CMCHKUNPK(SUnpkS32, &(param->dl.pollByte), mBuf);
1163 CMCHKUNPK(SUnpkU8, &(param->dl.maxRetx), mBuf);
1166 CMCHKUNPK(SUnpkU8, &(param->ul.snLen), mBuf);
1167 CMCHKUNPK(SUnpkU16, &(param->ul.staProhTmr), mBuf);
1168 CMCHKUNPK(SUnpkU8, &(param->ul.reOrdTmr), mBuf);
1171 } /* cmUnpkCkwAmInfo */
1176 * Fun: cmUnpkCkwLChInfo
1178 * Desc: pack the structure CkwLChInfo
1188 PUBLIC S16 cmUnpkCkwLChInfo
1194 PUBLIC S16 cmUnpkCkwLChInfo(param, mBuf)
1199 TRC3(cmUnpkCkwLChInfo)
1201 CMCHKUNPK(SUnpkU8, &(param->lChId), mBuf);
1202 CMCHKUNPK(SUnpkU8, &(param->type), mBuf);
1205 } /* cmUnpkCkwLChInfo */
1210 * Fun: cmUnpkCkwEntCfgCfmInfo
1212 * Desc: unpack the structure CkwEntCfgInfo
1222 PUBLIC S16 cmUnpkCkwEntCfgCfmInfo
1224 CkwEntCfgCfmInfo *param,
1228 PUBLIC S16 cmUnpkCkwEntCfgCfmInfo(param, mBuf)
1229 CkwEntCfgCfmInfo *param;
1233 TRC3(cmUnpkCkwEntCfgCfmInfo)
1235 CMCHKUNPK(SUnpkU8, &(param->rbId), mBuf);
1236 CMCHKUNPK(SUnpkU8, &(param->rbType), mBuf);
1237 CMCHKUNPK(cmUnpkCmStatus, &(param->status), mBuf);
1240 } /* cmUnpkCkwEntCfgCfmInfo */
1245 * Fun: cmUnpkCkwCfgCfmInfo
1247 * Desc: pack the structure CkwCfgCfmInfo
1257 PUBLIC S16 cmUnpkCkwCfgCfmInfo
1259 CkwCfgCfmInfo *param,
1264 PUBLIC S16 cmUnpkCkwCfgCfmInfo(param, pst, mBuf)
1265 CkwCfgCfmInfo *param;
1272 TRC3(cmUnpkCkwCfgCfmInfo)
1274 CMCHKUNPKLOG(SUnpkU32, &(param->transId), mBuf, ECKW030, pst);
1275 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1276 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1277 CMCHKUNPK(SUnpkU8, &(param->numEnt), mBuf);
1279 for (idx = 0; idx < param->numEnt; idx++)
1281 CMCHKUNPK(cmUnpkCkwEntCfgCfmInfo, &(param->entCfgCfm[idx]), mBuf);
1285 } /* cmUnpkCkwCfgCfmInfo */
1290 * Fun: cmUnpkCkwEntCfgInfo
1292 * Desc: pack the structure CkwEntCfgCfmInfo
1302 PUBLIC S16 cmUnpkCkwEntCfgInfo
1304 CkwEntCfgInfo *param,
1308 PUBLIC S16 cmUnpkCkwEntCfgInfo(param, mBuf)
1309 CkwEntCfgInfo *param;
1313 TRC3(cmUnpkCkwEntCfgInfo)
1315 CMCHKUNPK(SUnpkU8, &(param->cfgType), mBuf);
1316 CMCHKUNPK(SUnpkU8, &(param->rbId), mBuf);
1317 CMCHKUNPK(SUnpkU8, &(param->rbType), mBuf);
1318 CMCHKUNPK(SUnpkU8, &(param->qci), mBuf);
1319 CMCHKUNPK(cmUnpkLteRlcMode, &(param->entMode), mBuf);
1320 CMCHKUNPK(SUnpkU8, &(param->dir), mBuf);
1321 CMCHKUNPK(SUnpkS16, &(param->discardTmr), mBuf);
1322 #ifdef TENB_MULT_CELL_SUPPRT
1323 CMCHKUNPK(SUnpkS16, &(param->rguSapId), mBuf);
1326 /* Logical Channel Information */
1327 switch(param->entMode)
1329 case CM_LTE_MODE_TM:
1331 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[0]), mBuf);
1334 /* ccpu00128195: Unpacking lCh[0] and lCh[1] for UM bearer as well */
1335 case CM_LTE_MODE_UM:
1336 case CM_LTE_MODE_AM:
1338 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[0]), mBuf);
1339 CMCHKUNPK(cmUnpkCkwLChInfo, &(param->lCh[1]), mBuf);
1345 switch(param->entMode)
1347 case CM_LTE_MODE_TM:
1349 CMCHKUNPK(cmUnpkCkwTmInfo, &(param->m.tmInfo), mBuf);
1352 case CM_LTE_MODE_UM:
1354 CMCHKUNPK(cmUnpkCkwUmInfo, param, mBuf);
1357 case CM_LTE_MODE_AM:
1359 CMCHKUNPK(cmUnpkCkwAmInfo, &(param->m.amInfo), mBuf);
1365 } /* cmUnpkCkwEntCfgInfo */
1370 * Fun: cmUnpkCkwCfgInfo
1372 * Desc: unpack the structure CkwCfgInfo
1382 PUBLIC S16 cmUnpkCkwCfgInfo
1389 PUBLIC S16 cmUnpkCkwCfgInfo(param, pst, mBuf)
1397 TRC3(cmUnpkCkwCfgInfo)
1399 CMCHKUNPKLOG(SUnpkU32, &(param->transId), mBuf, ECKW031, pst);
1400 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1401 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1402 CMCHKUNPK(SUnpkU8, &(param->numEnt), mBuf);
1404 for (idx = 0; idx < param->numEnt; idx++)
1406 CMCHKUNPKLOG(cmUnpkCkwEntCfgInfo,&(param->entCfg[idx]), mBuf, ECKW032, pst);
1410 } /* cmUnpkCkwCfgInfo */
1415 * Fun: unpackUeCreateReq
1417 * Desc: unpack the primitive UE create request
1427 PUBLIC S16 unpackUeCreateReq
1434 PUBLIC S16 cmUnpkCkwCfgReq(func, pst, mBuf)
1441 CkwCfgInfo *cfgInfo = NULLP;
1443 TRC3(unpackUeCreateReq)
1445 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&cfgInfo,\
1446 sizeof(CkwCfgInfo))) != ROK)
1448 #if (ERRCLASS & ERRCLS_ADD_RES)
1450 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1451 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1452 (ErrVal)ECKW033, (ErrVal)0, "SGetMsg() failed");
1454 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1458 switch(pst->selector)
1462 CMCHKUNPK(cmUnpkPtr,(PTR *) &cfgInfo, mBuf);
1470 ret1 = cmUnpkCkwCfgInfo( (cfgInfo), pst, mBuf);
1471 #if(ERRCLASS & ERRCLS_DEBUG)
1475 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1476 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1477 (ErrVal)ECKW034, (ErrVal)ret1, "Unpacking failure");
1480 #endif /* ERRCLASS & ERRCLS_DEBUG */
1489 RETVALUE((*func)(pst, cfgInfo));
1490 } /* cmUnpkCkwCfgReq */
1495 * Fun: cmUnpkCkwCfgCfm
1497 * Desc: unpack the primitive KwUiCkwCfgCfm
1507 PUBLIC S16 cmUnpkCkwCfgCfm
1514 PUBLIC S16 cmUnpkCkwCfgCfm(func, pst, mBuf)
1522 CkwCfgCfmInfo *cfgCfmInfo = NULLP;
1524 TRC3(cmUnpkCkwCfgCfm)
1526 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&cfgCfmInfo,\
1527 sizeof(CkwCfgCfmInfo))) != ROK)
1529 #if (ERRCLASS & ERRCLS_ADD_RES)
1532 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1533 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1534 (ErrVal)ECKW035, (ErrVal)0, "SGetMsg() failed");
1536 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1540 cmMemset((U8 *)cfgCfmInfo, 0, sizeof(CkwCfgCfmInfo));
1542 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1544 switch(pst->selector)
1549 ret1 = cmUnpkCkwCfgCfmInfo( (cfgCfmInfo), pst, mBuf);
1550 #if(ERRCLASS & ERRCLS_DEBUG)
1554 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1555 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1556 (ErrVal)ECKW036, (ErrVal)ret1, "Unpacking failure");
1559 #endif /* ERRCLASS & ERRCLS_DEBUG */
1566 RETVALUE((*func)(pst, suId, cfgCfmInfo));
1567 } /* cmUnpkCkwCfgCfm */
1571 * Fun: cmUnpkCkwUeInfo
1573 * Desc: Unpack the primitive KwUiCkwUeInfo
1583 PUBLIC S16 cmUnpkCkwUeInfo
1589 PUBLIC S16 cmUnpkCkwUeInfo(param, mBuf)
1594 TRC2(cmUnpkCkwUeInfo)
1596 CMCHKUNPK(cmUnpkLteRnti, &(param->ueId), mBuf);
1597 CMCHKUNPK(cmUnpkLteCellId, &(param->cellId), mBuf);
1604 * Fun: cmUnpkCkwUeIdChgReq
1606 * Desc: unpack the primitive KwUiCkwUeIdChgReq
1616 PUBLIC S16 cmUnpkCkwUeIdChgReq
1623 PUBLIC S16 cmUnpkCkwUeIdChgReq(func, pst, mBuf)
1632 CkwUeInfo *ueInfo = NULLP;
1633 CkwUeInfo *newUeInfo = NULLP;
1635 TRC3(cmUnpkCkwUeIdChgReq)
1638 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
1639 CMCHKUNPKLOG(SUnpkU32, &transId, mBuf, ECKW037, pst);
1641 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo,\
1642 sizeof(CkwUeInfo))) != ROK)
1644 #if (ERRCLASS & ERRCLS_ADD_RES)
1646 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1647 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1648 (ErrVal)ECKW038, (ErrVal)0, "SGetMsg() failed");
1650 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1654 cmMemset((U8 *)ueInfo, 0, sizeof(CkwUeInfo));
1656 ret1 = cmUnpkCkwUeInfo((ueInfo), mBuf);
1657 #if(ERRCLASS & ERRCLS_DEBUG)
1661 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1662 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1663 (ErrVal)ECKW039, (ErrVal)ret1, "Unpacking failure");
1666 #endif /* ERRCLASS & ERRCLS_DEBUG */
1668 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo,\
1669 sizeof(CkwUeInfo))) != ROK)
1671 #if (ERRCLASS & ERRCLS_ADD_RES)
1673 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1674 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1675 (ErrVal)ECKW040, (ErrVal)0, "SGetMsg() failed");
1677 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1681 cmMemset((U8 *)newUeInfo, 0, sizeof(CkwUeInfo));
1683 ret1 = cmUnpkCkwUeInfo((newUeInfo), mBuf);
1684 #if(ERRCLASS & ERRCLS_DEBUG)
1688 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1689 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1690 (ErrVal)ECKW041, (ErrVal)ret1, "Unpacking failure");
1693 #endif /* ERRCLASS & ERRCLS_DEBUG */
1697 RETVALUE((*func)(pst, spId, transId, ueInfo, newUeInfo));
1699 } /* cmUnpkCkwUeIdChgReq */
1703 * Fun: cmUnpkCkwUeIdChgCfm
1705 * Desc: unpack the primitive KwUiCkwUeIdChgCfm
1715 PUBLIC S16 cmUnpkCkwUeIdChgCfm
1722 PUBLIC S16 cmUnpkCkwUeIdChgCfm(func, pst, mBuf)
1731 CkwUeInfo *ueInfo = NULLP;
1734 TRC3(cmUnpkCkwUeIdChgCfm)
1736 cmMemset((U8 *)&status, (U8)0, (PTR)sizeof(CmStatus));
1738 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1739 CMCHKUNPKLOG(SUnpkU32, &transId, mBuf, ECKW042, pst);
1741 if((ret1 = SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo,\
1742 sizeof(CkwUeInfo))) != ROK)
1744 #if (ERRCLASS & ERRCLS_ADD_RES)
1747 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1748 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1749 (ErrVal)ECKW043, (ErrVal)0, "SGetMsg() failed");
1751 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1755 cmMemset((U8 *)ueInfo, 0, sizeof(CkwUeInfo));
1757 ret1 = cmUnpkCkwUeInfo((ueInfo), mBuf);
1758 #if(ERRCLASS & ERRCLS_DEBUG)
1762 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1763 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1764 (ErrVal)ECKW044, (ErrVal)ret1, "Unpacking failure");
1767 #endif /* ERRCLASS & ERRCLS_DEBUG */
1769 CMCHKUNPK(cmUnpkCmStatus, &status, mBuf);
1773 RETVALUE((*func)(pst, suId, transId, ueInfo, status));
1775 } /* cmUnpkCkwUeIdChgCfm */
1780 #endif /* __cplusplus */
1783 /**********************************************************************
1785 **********************************************************************/