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: UDX RRC Control Interface
25 Desc: This file Contains the packing and unpacking functions for
30 *********************************************************************21*/
31 #include "common_def.h"
33 #include "kw_udx.h" /* UDX defines */
36 /* extern (.x) include files */
47 * Desc: pack the primitive UdxBndReq
57 PRIVATE S16 cmUnpkUdxStruct
65 PRIVATE S16 cmUnpkUdxStruct(dstMBuf,srcBuf,size)
74 return (SCpyMsgFix(srcMBuf,offset,size,dstBuf,&tmpLen));
76 } /*end of function cmPkUdxBndReq*/
82 * Desc: pack the primitive UdxBndReq
92 PRIVATE S16 cmPkUdxStruct
99 PRIVATE S16 cmPkUdxStruct(dstMBuf,srcBuf,size)
106 return (SAddPstMsgMult(srcBuf,size,dstMBuf));
108 } /*end of function cmPkUdxBndReq*/
113 * Desc: pack the primitive UdxBndReq
130 S16 cmPkUdxBndReq(pst, suId, spId)
140 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
142 #if (ERRCLASS & ERRCLS_ADD_RES)
145 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
146 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
147 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
149 #endif /* ERRCLASS & ERRCLS_ADD_RES */
152 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
153 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
154 pst->event = (Event) UDX_EVT_BND_REQ;
156 return (SPstTsk(pst,mBuf));
157 } /*end of function cmPkUdxBndReq*/
161 * Fun: cmPkUdxUbndReq
163 * Desc: pack the primitive UdxUbndReq
180 S16 cmPkUdxUbndReq(pst, spId, reason)
190 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
192 #if (ERRCLASS & ERRCLS_ADD_RES)
195 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
196 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
197 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
199 #endif /* ERRCLASS & ERRCLS_ADD_RES */
202 CMCHKPKLOG(SPkS16, reason, mBuf, EUDXXXX, pst);
203 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
204 pst->event = (Event) UDX_EVT_UBND_REQ;
206 return (SPstTsk(pst,mBuf));
207 } /*end of function cmPkUdxUbndReq*/
213 * Desc: pack the primitive UdxBndCfm
230 S16 cmPkUdxBndCfm(pst, suId, status)
240 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
242 #if (ERRCLASS & ERRCLS_ADD_RES)
245 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
246 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
247 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
250 #endif /* ERRCLASS & ERRCLS_ADD_RES */
253 CMCHKPKLOG(oduUnpackUInt8, status, mBuf, EUDXXXX, pst);
254 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
255 pst->event = (Event) UDX_EVT_BND_CFM;
257 return (SPstTsk(pst,mBuf));
258 } /*end of function cmPkUdxBndCfm*/
265 * Desc: pack the primitive KwUiUdxCfgReq
282 S16 cmPkUdxCfgReq(pst, spId, cfgInfo)
292 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
294 #if (ERRCLASS & ERRCLS_ADD_RES)
297 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
298 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
299 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
301 #endif /* ERRCLASS & ERRCLS_ADD_RES */
305 switch(pst->selector)
310 cmPkUdxStruct((U8 *)cfgInfo, sizeof(RlcCfgInfo),mBuf);
311 /* Need Not free CfgInfo here as it is stored
317 CMCHKPKLOG(oduPackPointer,(PTR)cfgInfo,mBuf,EUDXXXX,pst);
323 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
324 pst->event = (Event) UDX_EVT_CFG_REQ;
326 return (SPstTsk(pst,mBuf));
327 } /* cmPkUdxCfgReq */
334 * Desc: pack the primitive KwUiUdxCfgCfm
348 RlcCfgCfmInfo *cfgCfmInfo
351 S16 cmPkUdxCfgCfm(pst, suId, cfgCfmInfo)
354 RlcCfgCfmInfo *cfgCfmInfo;
361 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
363 #if (ERRCLASS & ERRCLS_ADD_RES)
366 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
367 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
368 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
370 #endif /* ERRCLASS & ERRCLS_ADD_RES */
374 switch(pst->selector)
379 cmPkUdxStruct((U8 *)cfgCfmInfo, sizeof(RlcCfgCfmInfo),mBuf);
380 /* Need to free the cfgCfmInfo here as it is allocated
381 buffer call SPutStaticBuffer */
382 SPutStaticBuffer(pst->region,pst->pool,(Data *) cfgCfmInfo,
383 sizeof(RlcCfgCfmInfo),0);
388 CMCHKPKLOG(oduPackPointer,(PTR)cfgCfmInfo,mBuf,EUDXXXX,pst);
394 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
395 pst->event = (Event) UDX_EVT_CFG_CFM;
397 return (SPstTsk(pst,mBuf));
398 } /* cmPkUdxCfgCfm */
403 * Fun: cmPkUdxUeIdChgReq
405 * Desc: pack the primitive KwUiUdxUeIdChgReq
415 S16 cmPkUdxUeIdChgReq
424 S16 cmPkUdxUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
429 CkwUeInfo *newUeInfo;
433 Buffer *mBuf = NULLP;
436 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
438 #if (ERRCLASS & ERRCLS_ADD_RES)
441 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
442 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
443 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
445 #endif /* ERRCLASS & ERRCLS_ADD_RES */
450 switch(pst->selector)
455 cmPkUdxStruct((U8 *)newUeInfo, sizeof(CkwUeInfo),mBuf);
456 cmPkUdxStruct((U8 *)ueInfo, sizeof(CkwUeInfo),mBuf);
457 /* No need to free ueInfo here as it is stored */
462 CMCHKPKLOG(oduPackPointer,(PTR)newUeInfo,mBuf,EUDXXXX,pst);
463 CMCHKPKLOG(oduPackPointer,(PTR)ueInfo,mBuf,EUDXXXX,pst);
468 printf("cmPkUdxUeIdChgReq()- selector =%d not supported \n", pst->selector);
473 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, EUDXXXX, pst);
474 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
475 pst->event = (Event) UDX_EVT_UEIDCHG_REQ;
477 return (SPstTsk(pst, mBuf));
479 } /* cmPkUdxUeIdChgReq */
483 * Fun: cmPkUdxUeIdChgCfm
485 * Desc: pack the primitive KwUiUdxUeIdChgCfm
495 S16 cmPkUdxUeIdChgCfm
503 S16 cmPkUdxUeIdChgCfm(pst, suId, transId, status)
511 Buffer *mBuf = NULLP;
513 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
515 #if (ERRCLASS & ERRCLS_ADD_RES)
518 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
519 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
520 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
522 #endif /* ERRCLASS & ERRCLS_ADD_RES */
527 CMCHKPK(cmPkCmStatus, &status, mBuf);
528 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, EUDXXXX, pst);
529 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
530 pst->event = (Event) UDX_EVT_UEIDCHG_CFM;
532 return (SPstTsk(pst, mBuf));
534 } /* cmPkUdxUeIdChgCfm */
538 * Fun: cmPkUdxStaUpdCfm
540 * Desc: pack the primitive KwUiUdxUeIdChgCfm
555 RlcUdxBufLst *pStaPdu
558 S16 cmPkUdxStaUpdCfm(pst, suId, rlcId,pStaPdu)
562 RlcUdxBufLst *pStaPdu;
566 Buffer *mBuf = NULLP;
568 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
570 #if (ERRCLASS & ERRCLS_ADD_RES)
573 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
574 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
575 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
577 #endif /* ERRCLASS & ERRCLS_ADD_RES */
582 switch (pst->selector)
586 cmPkUdxStruct((U8 *)pStaPdu, sizeof(RlcUdxBufLst),mBuf);
587 cmPkUdxStruct((U8 *)rlcId, sizeof(CmLteRlcId),mBuf);
592 CMCHKPK(oduPackPointer,(PTR) pStaPdu, mBuf);
593 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
597 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
598 pst->event = (Event) UDX_EVT_STA_UPD_CFM;
600 return (SPstTsk(pst, mBuf));
602 } /* cmPkUdxStaUpdCfm */
606 * Fun: cmPkUdxStaProhTmrStart
608 * Desc: pack the primitive
618 S16 cmPkUdxStaProhTmrStart
625 S16 cmPkUdxStaProhTmrStart(pst, suId, rlcId)
632 Buffer *mBuf = NULLP;
634 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
636 #if (ERRCLASS & ERRCLS_ADD_RES)
639 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
640 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
641 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
643 #endif /* ERRCLASS & ERRCLS_ADD_RES */
648 switch (pst->selector)
652 cmPkUdxStruct((U8 *)rlcId, sizeof(CmLteRlcId),mBuf);
657 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
661 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
662 pst->event = (Event) UDX_EVT_STA_PHBT_TMR_START;
664 return (SPstTsk(pst, mBuf));
666 } /* cmPkUdxStaProhTmrStart */
670 * Fun: cmPkUdxStaUpdReq
672 * Desc: pack the primitive KwUiUdxUeIdChgCfm
687 RlcUdxStaPdu *pStaPdu
690 S16 cmPkUdxStaUpdReq(pst, suId, rlcId,pStaPdu)
694 RlcUdxStaPdu *pStaPdu;
698 Buffer *mBuf = NULLP;
700 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
702 #if (ERRCLASS & ERRCLS_ADD_RES)
705 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
706 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
707 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
709 #endif /* ERRCLASS & ERRCLS_ADD_RES */
714 switch (pst->selector)
718 cmPkUdxStruct((U8 *)pStaPdu, sizeof(RlcUdxStaPdu),mBuf);
719 cmPkUdxStruct((U8 *)rlcId, sizeof(CmLteRlcId),mBuf);
720 SPutStaticBuffer(pst->region,pst->pool,(Data *) pStaPdu,
721 sizeof(RlcUdxStaPdu),0);
727 CMCHKPK(oduPackPointer,(PTR) pStaPdu, mBuf);
728 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
732 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
733 pst->event = (Event) UDX_EVT_STA_UPD_REQ;
735 return (SPstTsk(pst, mBuf));
737 } /* cmPkUdxStaUpdReq */
741 * Fun: cmPkUdxStaPduReq
743 * Desc: pack the primitive KwUiUdxUeIdChgCfm
758 RlcUdxDlStaPdu *pStaPdu
761 S16 cmPkUdxStaPduReq(pst, suId, rlcId,pStaPdu)
765 RlcUdxDlStaPdu *pStaPdu;
769 Buffer *mBuf = NULLP;
771 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
773 #if (ERRCLASS & ERRCLS_ADD_RES)
776 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
777 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
778 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
780 #endif /* ERRCLASS & ERRCLS_ADD_RES */
785 switch (pst->selector)
789 cmPkUdxStruct((U8 *)pStaPdu, sizeof(RlcUdxDlStaPdu),mBuf);
790 cmPkUdxStruct((U8 *)rlcId, sizeof(CmLteRlcId),mBuf);
791 /* Free status Pdu here for LC */
792 SPutStaticBuffer(pst->region,pst->pool,(Data *) pStaPdu,
793 sizeof(RlcUdxDlStaPdu),0);
798 CMCHKPK(oduPackPointer,(PTR) pStaPdu, mBuf);
799 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
803 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
804 pst->event = (Event) UDX_EVT_STA_PDU_REQ;
806 return (SPstTsk(pst, mBuf));
808 } /* cmPkUdxStaUpdReq */
813 * Fun: cmPkUdxL2MeasReq
825 RlcL2MeasReqEvt *measReqEvt
828 S16 cmPkUdxL2MeasReq(pst, measReqEvt)
830 RlcL2MeasReqEvt *measReqEvt;
834 Buffer *mBuf = NULLP;
836 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
838 #if (ERRCLASS & ERRCLS_ADD_RES)
841 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
842 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
843 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
845 #endif /* ERRCLASS & ERRCLS_ADD_RES */
850 switch (pst->selector)
854 cmPkUdxStruct((U8 *)measReqEvt, sizeof(RlcL2MeasReqEvt),mBuf);
859 CMCHKPK(oduPackPointer,(PTR) measReqEvt, mBuf);
863 pst->event = (Event) UDX_EVT_L2MEAS_REQ;
865 return (SPstTsk(pst, mBuf));
867 } /* cmPkUdxStaUpdReq */
871 * Fun: cmPkUdxL2MeasReq
880 S16 cmPkUdxL2MeasSendReq
886 S16 cmPkUdxL2MeasSendReq(pst, measReqEvt)
892 Buffer *mBuf = NULLP;
894 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
896 #if (ERRCLASS & ERRCLS_ADD_RES)
899 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
900 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
901 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
903 #endif /* ERRCLASS & ERRCLS_ADD_RES */
908 switch (pst->selector)
913 CMCHKPKLOG(oduUnpackUInt8, measType, mBuf, EUDXXXX, pst);
917 pst->event = (Event) UDX_EVT_L2MEAS_SEND_REQ;
919 return (SPstTsk(pst, mBuf));
925 * Fun: cmPkUdxL2MeasStopReq
934 S16 cmPkUdxL2MeasStopReq
940 S16 cmPkUdxL2MeasStopReq(pst, measType)
946 Buffer *mBuf = NULLP;
948 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
950 #if (ERRCLASS & ERRCLS_ADD_RES)
953 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
954 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
955 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
957 #endif /* ERRCLASS & ERRCLS_ADD_RES */
962 switch (pst->selector)
967 CMCHKPKLOG(oduUnpackUInt8, measType, mBuf, EUDXXXX, pst);
971 pst->event = (Event) UDX_EVT_L2MEAS_STOP_REQ;
973 return (SPstTsk(pst, mBuf));
977 /******************************************************************************
979 *****************************************************************************/
983 * Fun: cmUnpkUdxBndReq
985 * Desc: unpack the primitive UdxBndReq
1002 S16 cmUnpkUdxBndReq(func, pst, mBuf)
1011 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, EUDXXXX, pst);
1012 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, EUDXXXX, pst);
1015 return ((*func)(pst, suId, spId));
1016 } /*end of function cmUnpkUdxBndReq*/
1020 * Fun: cmUnpkUdxUbndReq
1022 * Desc: unpack the primitive UdxUbndReq
1032 S16 cmUnpkUdxUbndReq
1039 S16 cmUnpkUdxUbndReq(func, pst, mBuf)
1048 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, EUDXXXX, pst);
1049 CMCHKUNPKLOG(SUnpkS16, &reason, mBuf, EUDXXXX, pst);
1051 return ((*func)(pst, spId, reason));
1052 } /*end of function cmUnpkUdxUbndReq*/
1056 * Fun: cmUnpkUdxBndCfm
1058 * Desc: unpack the primitive UdxBndCfm
1075 S16 cmUnpkUdxBndCfm(func, pst, mBuf)
1084 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, EUDXXXX, pst);
1085 CMCHKUNPKLOG(oduPackUInt8, &status, mBuf, EUDXXXX, pst);
1088 return ((*func)(pst, suId, status));
1089 } /*end of function cmUnpkUdxBndCfm*/
1094 * Fun: cmUnpkUdxCfgReq
1096 * Desc: unpack the primitive KwUiUdxCfgReq
1113 S16 cmUnpkUdxCfgReq(func, pst, mBuf)
1119 #if(ERRCLASS & ERRCLS_DEBUG)
1121 #endif /* ERRCLASS & ERRCLS_DEBUG */
1123 RlcCfgInfo tmpCfgInfo;
1124 RlcCfgInfo *cfgInfo; /*stack Variable because it is not freed */
1126 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
1127 switch(pst->selector)
1132 #if(ERRCLASS & ERRCLS_DEBUG)
1133 ret1 = cmUnpkUdxStruct(mBuf,0,(U8 *)&tmpCfgInfo,sizeof(RlcCfgInfo));
1137 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1138 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1139 (ErrVal)EUDXXXX, (ErrVal)ret1, "Unpacking failure");
1143 cmUnpkUdxStruct(mBuf,0,(U8 *)&tmpCfgInfo,sizeof(RlcCfgInfo));
1144 #endif /* ERRCLASS & ERRCLS_DEBUG */
1145 cfgInfo = &tmpCfgInfo;
1150 CMCHKUNPK(oduUnpackPointer,(PTR *) &cfgInfo, mBuf);
1157 return ((*func)(pst, spId, cfgInfo));
1158 } /* cmUnpkUdxCfgReq */
1163 * Fun: cmUnpkUdxCfgCfm
1165 * Desc: unpack the primitive KwUiUdxCfgCfm
1182 S16 cmUnpkUdxCfgCfm(func, pst, mBuf)
1190 RlcCfgCfmInfo *cfgCfmInfo = NULLP;
1192 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1194 switch(pst->selector)
1199 if((ret1 = SGetStaticBuffer(pst->region, pst->pool, (Data **)&cfgCfmInfo,\
1200 sizeof(RlcCfgCfmInfo),0)) != ROK)
1202 #if (ERRCLASS & ERRCLS_ADD_RES)
1205 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1206 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1207 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
1209 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1213 ret1 = cmUnpkUdxStruct(mBuf,0,(U8 *)cfgCfmInfo, sizeof(RlcCfgCfmInfo));
1214 #if(ERRCLASS & ERRCLS_DEBUG)
1218 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
1219 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
1220 (ErrVal)EUDXXXX, (ErrVal)ret1, "Unpacking failure");
1223 #endif /* ERRCLASS & ERRCLS_DEBUG */
1228 CMCHKUNPK(oduUnpackPointer,(PTR *) &cfgCfmInfo, mBuf);
1235 return ((*func)(pst, suId, cfgCfmInfo));
1236 } /* cmUnpkUdxCfgCfm */
1240 * Fun: cmUnpkUdxUeIdChgReq
1242 * Desc: unpack the primitive KwUiUdxUeIdChgReq
1252 S16 cmUnpkUdxUeIdChgReq
1259 S16 cmUnpkUdxUeIdChgReq(func, pst, mBuf)
1267 CkwUeInfo tmpUeInfo;
1268 CkwUeInfo tmpNewUeInfo;
1270 CkwUeInfo *newUeInfo;
1272 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
1273 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, EUDXXXX, pst);
1275 switch(pst->selector)
1280 cmUnpkUdxStruct(mBuf,0,(U8 *)&tmpNewUeInfo, sizeof(CkwUeInfo));
1281 cmUnpkUdxStruct(mBuf,sizeof(CkwUeInfo),(U8 *)&tmpUeInfo, sizeof(CkwUeInfo));
1283 ueInfo = &tmpUeInfo;
1284 newUeInfo = &tmpNewUeInfo;
1289 CMCHKUNPK(oduUnpackPointer,(PTR *) &ueInfo, mBuf);
1290 CMCHKUNPK(oduUnpackPointer,(PTR *) &newUeInfo, mBuf);
1295 printf("cmUnpkUdxUeIdChgReq()- selector =%d not supported \n", pst->selector);
1303 return ((*func)(pst, spId, transId, ueInfo, newUeInfo));
1305 } /* cmUnpkUdxUeIdChgReq */
1309 * Fun: cmUnpkUdxUeIdChgCfm
1311 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1321 S16 cmUnpkUdxUeIdChgCfm
1328 S16 cmUnpkUdxUeIdChgCfm(func, pst, mBuf)
1338 memset(&status, 0, sizeof(CmStatus));
1340 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1341 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, EUDXXXX, pst);
1343 CMCHKUNPK(cmUnpkCmStatus, &status, mBuf);
1347 return ((*func)(pst, suId, transId, status));
1349 } /* cmUnpkUdxUeIdChgCfm */
1353 * Fun: cmUnpkUdxStaUpdCfm
1355 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1365 S16 cmUnpkUdxStaUpdCfm
1372 S16 cmUnpkUdxStaUpdCfm(func, pst, mBuf)
1379 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1380 RlcUdxBufLst *pBufLst = NULLP; /* KW_FIX*/
1382 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1383 switch (pst->selector)
1391 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1392 CMCHKUNPK(oduUnpackPointer, (PTR *)&pBufLst,mBuf);
1399 return ((*func)(pst, suId, rlcId, pBufLst));
1401 } /* cmUnpkUdxUeIdChgCfm */
1405 * Fun: cmUnpkUdxStaUpdReq
1407 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1417 S16 cmUnpkUdxStaUpdReq
1424 S16 cmUnpkUdxStaUpdReq(func, pst, mBuf)
1431 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1432 RlcUdxStaPdu *pStaPdu = NULLP; /* KW_FIX */
1434 CmLteRlcId tmpRlcId;
1436 CMCHKUNPK(SUnpkS16, &spId, mBuf);
1437 switch (pst->selector)
1441 if((ret1 = SGetStaticBuffer(pst->region, pst->pool, (Data **)&pStaPdu,
1442 sizeof(RlcUdxStaPdu),0)) != ROK)
1444 #if (ERRCLASS & ERRCLS_ADD_RES)
1447 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1448 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1449 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
1451 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1454 ret1 = cmUnpkUdxStruct(mBuf,0,(U8 *)pStaPdu, sizeof(RlcUdxStaPdu));
1455 ret1 = cmUnpkUdxStruct(mBuf,sizeof(RlcUdxStaPdu),(U8 *)&tmpRlcId,sizeof(CmLteRlcId));
1461 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1462 CMCHKUNPK(oduUnpackPointer, (PTR *)&pStaPdu,mBuf);
1469 return ((*func)(pst, spId, rlcId, pStaPdu));
1471 } /* cmUnpkUdxUeIdChgCfm */
1475 * Fun: cmUnpkUdxStaPduReq
1477 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1487 S16 cmUnpkUdxStaPduReq
1494 S16 cmUnpkUdxStaPduReq(func, pst, mBuf)
1502 CmLteRlcId tmpRlcId;
1503 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1504 RlcUdxDlStaPdu *pStaPdu = NULLP; /* KW_FIX */
1506 CMCHKUNPK(SUnpkS16, &spId, mBuf);
1507 switch (pst->selector)
1511 if((ret1 = SGetStaticBuffer(pst->region, pst->pool, (Data **)&pStaPdu,
1512 sizeof(RlcUdxDlStaPdu),0)) != ROK)
1514 #if (ERRCLASS & ERRCLS_ADD_RES)
1517 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1518 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1519 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
1521 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1524 ret1 = cmUnpkUdxStruct(mBuf,0, (U8 *)pStaPdu, sizeof(RlcUdxDlStaPdu));
1525 ret1 = cmUnpkUdxStruct(mBuf,sizeof(RlcUdxDlStaPdu),(U8 *)&tmpRlcId,sizeof(CmLteRlcId));
1531 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1532 CMCHKUNPK(oduUnpackPointer, (PTR *)&pStaPdu,mBuf);
1538 return ((*func)(pst, spId, rlcId, pStaPdu));
1540 } /* cmUnpkUdxUeIdChgCfm */
1544 * Fun: cmUnpkUdxStaProhTmrStart
1546 * Desc: unpack the Status prohibit timer start Msg
1556 S16 cmUnpkUdxStaProhTmrStart
1558 UdxStaProhTmrStart func,
1563 S16 cmUnpkUdxStaProhTmrStart(func, pst, mBuf)
1564 UdxStaProhTmrStart func;
1570 CmLteRlcId tmpRlcId;
1571 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1573 CMCHKUNPK(SUnpkS16, &spId, mBuf);
1574 switch (pst->selector)
1578 cmUnpkUdxStruct(mBuf,0,(U8 *)&tmpRlcId,sizeof(CmLteRlcId));
1584 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1591 return ((*func)(pst, spId, rlcId));
1593 } /* cmUnpkUdxStaProhTmrStart */
1599 * Fun: cmUnpkUdxL2MeasReq
1608 S16 cmUnpkUdxL2MeasReq
1615 S16 cmUnpkUdxL2MeasReq(func, pst, mBuf)
1621 RlcL2MeasReqEvt tmpMeasReqEvt;
1622 RlcL2MeasReqEvt *measReqEvt = NULLP; /* KW_FIX */
1624 switch (pst->selector)
1628 cmUnpkUdxStruct(mBuf,0,(U8 *)&tmpMeasReqEvt,sizeof(RlcL2MeasReqEvt));
1629 measReqEvt = &tmpMeasReqEvt;
1634 CMCHKUNPK(oduUnpackPointer, (PTR *)&measReqEvt,mBuf);
1641 return ((*func)(pst, measReqEvt));
1642 } /* cmUnpkUdxL2MeasReq */
1646 * Fun: cmUnpkUdxL2MeasSendReq
1655 S16 cmUnpkUdxL2MeasSendReq
1657 UdxL2MeasSendReq func,
1662 S16 cmUnpkUdxL2MeasSendReq(func, pst, mBuf)
1663 UdxL2MeasSendReq func;
1668 U8 measType = 0; /* KW_FIX */
1670 switch (pst->selector)
1675 CMCHKUNPK(oduPackUInt8, &measType, mBuf);
1682 return ((*func)(pst, measType));
1683 } /* cmUnpkUdxL2MeasReq */
1687 * Fun: cmUnpkUdxL2MeasStopReq
1696 S16 cmUnpkUdxL2MeasStopReq
1698 UdxL2MeasStopReq func,
1703 S16 cmUnpkUdxL2MeasStopReq(func, pst, mBuf)
1704 UdxL2MeasSendReq func;
1709 U8 measType = 0; /* KW_FIX */
1711 switch (pst->selector)
1716 CMCHKUNPK(oduPackUInt8, &measType, mBuf);
1723 return ((*func)(pst, measType));
1724 } /* cmUnpkUdxL2MeasStopReq */
1729 /********************************************************************30**
1731 **********************************************************************/