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"
32 #include "rgu.h" /* RGU interface includes*/
33 #include "lkw.h" /* LKW defines */
34 #include "ckw.h" /* CKW defines */
36 /* extern (.x) include files */
38 #include "lkw.x" /* LKW */
39 #include "ckw.x" /* CKW */
42 #include "rlc_utils.h"
43 #include "rlc_dl_ul_inf.h" /* UDX defines */
51 * Desc: pack the primitive UdxBndReq
60 static S16 cmUnpkUdxStruct(Buffer *srcMBuf,uint32_t offset,uint8_t *dstBuf,uint32_t size)
64 return (SCpyMsgFix(srcMBuf,offset,size,dstBuf,&tmpLen));
66 } /*end of function cmPkUdxBndReq*/
72 * Desc: pack the primitive UdxBndReq
81 static S16 cmPkUdxStruct(uint8_t *srcBuf,MsgLen size,Buffer *dstMBuf)
84 return (SAddPstMsgMult(srcBuf,size,dstMBuf));
86 } /*end of function cmPkUdxBndReq*/
91 * Desc: pack the primitive UdxBndReq
100 S16 cmPkUdxBndReq(Pst *pst,SuId suId,SpId spId)
106 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
108 #if (ERRCLASS & ERRCLS_ADD_RES)
111 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
112 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
113 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
115 #endif /* ERRCLASS & ERRCLS_ADD_RES */
118 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
119 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
120 pst->event = (Event) UDX_EVT_BND_REQ;
122 return (SPstTsk(pst,mBuf));
123 } /*end of function cmPkUdxBndReq*/
127 * Fun: cmPkUdxUbndReq
129 * Desc: pack the primitive UdxUbndReq
138 S16 cmPkUdxUbndReq(Pst *pst,SpId spId,Reason reason)
144 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
146 #if (ERRCLASS & ERRCLS_ADD_RES)
149 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
150 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
151 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
153 #endif /* ERRCLASS & ERRCLS_ADD_RES */
156 CMCHKPKLOG(SPkS16, reason, mBuf, EUDXXXX, pst);
157 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
158 pst->event = (Event) UDX_EVT_UBND_REQ;
160 return (SPstTsk(pst,mBuf));
161 } /*end of function cmPkUdxUbndReq*/
167 * Desc: pack the primitive UdxBndCfm
176 S16 cmPkUdxBndCfm(Pst *pst,SuId suId,uint8_t status)
182 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
184 #if (ERRCLASS & ERRCLS_ADD_RES)
187 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
188 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
189 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
192 #endif /* ERRCLASS & ERRCLS_ADD_RES */
195 CMCHKPKLOG(oduUnpackUInt8, status, mBuf, EUDXXXX, pst);
196 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
197 pst->event = (Event) UDX_EVT_BND_CFM;
199 return (SPstTsk(pst,mBuf));
200 } /*end of function cmPkUdxBndCfm*/
207 * Desc: pack the primitive KwUiUdxCfgReq
216 S16 cmPkUdxCfgReq(Pst *pst,SpId spId,RlcCfgInfo *cfgInfo)
222 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
224 #if (ERRCLASS & ERRCLS_ADD_RES)
227 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
228 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
229 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
231 #endif /* ERRCLASS & ERRCLS_ADD_RES */
235 switch(pst->selector)
240 cmPkUdxStruct((uint8_t *)cfgInfo, sizeof(RlcCfgInfo),mBuf);
241 /* Need Not free CfgInfo here as it is stored
247 CMCHKPKLOG(oduPackPointer,(PTR)cfgInfo,mBuf,EUDXXXX,pst);
253 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
254 pst->event = (Event) UDX_EVT_CFG_REQ;
256 return (SPstTsk(pst,mBuf));
257 } /* cmPkUdxCfgReq */
264 * Desc: pack the primitive KwUiUdxCfgCfm
273 S16 cmPkUdxCfgCfm(Pst *pst,SuId suId,RlcCfgCfmInfo *cfgCfmInfo)
279 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
281 #if (ERRCLASS & ERRCLS_ADD_RES)
284 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
285 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
286 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
288 #endif /* ERRCLASS & ERRCLS_ADD_RES */
292 switch(pst->selector)
297 cmPkUdxStruct((uint8_t *)cfgCfmInfo, sizeof(RlcCfgCfmInfo),mBuf);
298 /* Need to free the cfgCfmInfo here as it is allocated
299 buffer call SPutStaticBuffer */
300 SPutStaticBuffer(pst->region,pst->pool,(Data *) cfgCfmInfo,
301 sizeof(RlcCfgCfmInfo),0);
306 CMCHKPKLOG(oduPackPointer,(PTR)cfgCfmInfo,mBuf,EUDXXXX,pst);
312 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
313 pst->event = (Event) UDX_EVT_CFG_CFM;
315 return (SPstTsk(pst,mBuf));
316 } /* cmPkUdxCfgCfm */
321 * Fun: cmPkUdxUeIdChgReq
323 * Desc: pack the primitive KwUiUdxUeIdChgReq
332 S16 cmPkUdxUeIdChgReq
342 Buffer *mBuf = NULLP;
345 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
347 #if (ERRCLASS & ERRCLS_ADD_RES)
350 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
351 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
352 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
354 #endif /* ERRCLASS & ERRCLS_ADD_RES */
359 switch(pst->selector)
364 cmPkUdxStruct((uint8_t *)newUeInfo, sizeof(CkwUeInfo),mBuf);
365 cmPkUdxStruct((uint8_t *)ueInfo, sizeof(CkwUeInfo),mBuf);
366 /* No need to free ueInfo here as it is stored */
371 CMCHKPKLOG(oduPackPointer,(PTR)newUeInfo,mBuf,EUDXXXX,pst);
372 CMCHKPKLOG(oduPackPointer,(PTR)ueInfo,mBuf,EUDXXXX,pst);
377 DU_LOG("\nERROR --> RLC : cmPkUdxUeIdChgReq()- selector =%d not supported \n", pst->selector);
382 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, EUDXXXX, pst);
383 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
384 pst->event = (Event) UDX_EVT_UEIDCHG_REQ;
386 return (SPstTsk(pst, mBuf));
388 } /* cmPkUdxUeIdChgReq */
392 * Fun: cmPkUdxUeIdChgCfm
394 * Desc: pack the primitive KwUiUdxUeIdChgCfm
403 S16 cmPkUdxUeIdChgCfm(Pst *pst,SuId suId,uint32_t transId,CmStatus status)
406 Buffer *mBuf = NULLP;
408 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
410 #if (ERRCLASS & ERRCLS_ADD_RES)
413 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
414 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
415 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
417 #endif /* ERRCLASS & ERRCLS_ADD_RES */
422 CMCHKPK(cmPkCmStatus, &status, mBuf);
423 CMCHKPKLOG(oduUnpackUInt32, transId, mBuf, EUDXXXX, pst);
424 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
425 pst->event = (Event) UDX_EVT_UEIDCHG_CFM;
427 return (SPstTsk(pst, mBuf));
429 } /* cmPkUdxUeIdChgCfm */
433 * Fun: cmPkUdxStaUpdCfm
435 * Desc: pack the primitive KwUiUdxUeIdChgCfm
444 S16 cmPkUdxStaUpdCfm(Pst *pst,SuId suId,CmLteRlcId *rlcId,RlcUdxBufLst *pStaPdu)
447 Buffer *mBuf = NULLP;
449 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
451 #if (ERRCLASS & ERRCLS_ADD_RES)
454 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
455 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
456 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
458 #endif /* ERRCLASS & ERRCLS_ADD_RES */
463 switch (pst->selector)
467 cmPkUdxStruct((uint8_t *)pStaPdu, sizeof(RlcUdxBufLst),mBuf);
468 cmPkUdxStruct((uint8_t *)rlcId, sizeof(CmLteRlcId),mBuf);
473 CMCHKPK(oduPackPointer,(PTR) pStaPdu, mBuf);
474 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
478 CMCHKPKLOG(SPkS16, suId, mBuf, EUDXXXX, pst);
479 pst->event = (Event) UDX_EVT_STA_UPD_CFM;
481 return (SPstTsk(pst, mBuf));
483 } /* cmPkUdxStaUpdCfm */
487 * Fun: cmPkUdxStaProhTmrStart
489 * Desc: pack the primitive
498 S16 cmPkUdxStaProhTmrStart(Pst *pst,SpId spId,CmLteRlcId *rlcId)
501 Buffer *mBuf = NULLP;
503 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
505 #if (ERRCLASS & ERRCLS_ADD_RES)
508 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
509 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
510 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
512 #endif /* ERRCLASS & ERRCLS_ADD_RES */
517 switch (pst->selector)
521 cmPkUdxStruct((uint8_t *)rlcId, sizeof(CmLteRlcId),mBuf);
526 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
530 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
531 pst->event = (Event) UDX_EVT_STA_PHBT_TMR_START;
533 return (SPstTsk(pst, mBuf));
535 } /* cmPkUdxStaProhTmrStart */
539 * Fun: cmPkUdxStaUpdReq
541 * Desc: pack the primitive KwUiUdxUeIdChgCfm
550 S16 cmPkUdxStaUpdReq(Pst *pst,SpId spId,CmLteRlcId *rlcId,RlcUdxStaPdu *pStaPdu)
553 Buffer *mBuf = NULLP;
555 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
557 #if (ERRCLASS & ERRCLS_ADD_RES)
560 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
561 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
562 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
564 #endif /* ERRCLASS & ERRCLS_ADD_RES */
569 switch (pst->selector)
573 cmPkUdxStruct((uint8_t *)pStaPdu, sizeof(RlcUdxStaPdu),mBuf);
574 cmPkUdxStruct((uint8_t *)rlcId, sizeof(CmLteRlcId),mBuf);
575 SPutStaticBuffer(pst->region,pst->pool,(Data *) pStaPdu,
576 sizeof(RlcUdxStaPdu),0);
582 CMCHKPK(oduPackPointer,(PTR) pStaPdu, mBuf);
583 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
587 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
588 pst->event = (Event) UDX_EVT_STA_UPD_REQ;
590 return (SPstTsk(pst, mBuf));
592 } /* cmPkUdxStaUpdReq */
596 * Fun: cmPkUdxStaPduReq
598 * Desc: pack the primitive KwUiUdxUeIdChgCfm
607 S16 cmPkUdxStaPduReq(Pst *pst,SpId spId,CmLteRlcId *rlcId,RlcUdxDlStaPdu *pStaPdu)
610 Buffer *mBuf = NULLP;
612 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
614 #if (ERRCLASS & ERRCLS_ADD_RES)
617 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
618 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
619 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
621 #endif /* ERRCLASS & ERRCLS_ADD_RES */
626 switch (pst->selector)
630 cmPkUdxStruct((uint8_t *)pStaPdu, sizeof(RlcUdxDlStaPdu),mBuf);
631 cmPkUdxStruct((uint8_t *)rlcId, sizeof(CmLteRlcId),mBuf);
632 /* Free status Pdu here for LC */
633 SPutStaticBuffer(pst->region,pst->pool,(Data *) pStaPdu,
634 sizeof(RlcUdxDlStaPdu),0);
639 CMCHKPK(oduPackPointer,(PTR) pStaPdu, mBuf);
640 CMCHKPK(oduPackPointer,(PTR) rlcId, mBuf);
644 CMCHKPKLOG(SPkS16, spId, mBuf, EUDXXXX, pst);
645 pst->event = (Event) UDX_EVT_STA_PDU_REQ;
647 return (SPstTsk(pst, mBuf));
649 } /* cmPkUdxStaUpdReq */
654 * Fun: cmPkUdxL2MeasReq
662 S16 cmPkUdxL2MeasReq(Pst *pst,RlcL2MeasReqEvt *measReqEvt)
665 Buffer *mBuf = NULLP;
667 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
669 #if (ERRCLASS & ERRCLS_ADD_RES)
672 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
673 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
674 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
676 #endif /* ERRCLASS & ERRCLS_ADD_RES */
681 switch (pst->selector)
685 cmPkUdxStruct((uint8_t *)measReqEvt, sizeof(RlcL2MeasReqEvt),mBuf);
690 CMCHKPK(oduPackPointer,(PTR) measReqEvt, mBuf);
694 pst->event = (Event) UDX_EVT_L2MEAS_REQ;
696 return (SPstTsk(pst, mBuf));
698 } /* cmPkUdxStaUpdReq */
702 * Fun: cmPkUdxL2MeasReq
710 S16 cmPkUdxL2MeasSendReq(Pst *pst,uint8_t measType)
713 Buffer *mBuf = NULLP;
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)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
724 #endif /* ERRCLASS & ERRCLS_ADD_RES */
729 switch (pst->selector)
734 CMCHKPKLOG(oduUnpackUInt8, measType, mBuf, EUDXXXX, pst);
738 pst->event = (Event) UDX_EVT_L2MEAS_SEND_REQ;
740 return (SPstTsk(pst, mBuf));
746 * Fun: cmPkUdxL2MeasStopReq
754 S16 cmPkUdxL2MeasStopReq(Pst *pst,uint8_t measType)
757 Buffer *mBuf = NULLP;
759 if((ret1 = SGetMsg(pst->region, pst->pool, &mBuf)) != ROK)
761 #if (ERRCLASS & ERRCLS_ADD_RES)
764 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
765 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
766 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
768 #endif /* ERRCLASS & ERRCLS_ADD_RES */
773 switch (pst->selector)
778 CMCHKPKLOG(oduUnpackUInt8, measType, mBuf, EUDXXXX, pst);
782 pst->event = (Event) UDX_EVT_L2MEAS_STOP_REQ;
784 return (SPstTsk(pst, mBuf));
788 /******************************************************************************
790 *****************************************************************************/
794 * Fun: cmUnpkUdxBndReq
796 * Desc: unpack the primitive UdxBndReq
805 S16 cmUnpkUdxBndReq(UdxBndReq func,Pst *pst,Buffer *mBuf)
810 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, EUDXXXX, pst);
811 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, EUDXXXX, pst);
814 return ((*func)(pst, suId, spId));
815 } /*end of function cmUnpkUdxBndReq*/
819 * Fun: cmUnpkUdxUbndReq
821 * Desc: unpack the primitive UdxUbndReq
830 S16 cmUnpkUdxUbndReq(UdxUbndReq func,Pst *pst,Buffer *mBuf)
835 CMCHKUNPKLOG(SUnpkS16, &spId, mBuf, EUDXXXX, pst);
836 CMCHKUNPKLOG(SUnpkS16, &reason, mBuf, EUDXXXX, pst);
838 return ((*func)(pst, spId, reason));
839 } /*end of function cmUnpkUdxUbndReq*/
843 * Fun: cmUnpkUdxBndCfm
845 * Desc: unpack the primitive UdxBndCfm
854 S16 cmUnpkUdxBndCfm(UdxBndCfm func,Pst *pst,Buffer *mBuf)
859 CMCHKUNPKLOG(SUnpkS16, &suId, mBuf, EUDXXXX, pst);
860 CMCHKUNPKLOG(oduPackUInt8, &status, mBuf, EUDXXXX, pst);
863 return ((*func)(pst, suId, status));
864 } /*end of function cmUnpkUdxBndCfm*/
869 * Fun: cmUnpkUdxCfgReq
871 * Desc: unpack the primitive KwUiUdxCfgReq
880 S16 cmUnpkUdxCfgReq(UdxCfgReq func,Pst *pst,Buffer *mBuf)
882 #if(ERRCLASS & ERRCLS_DEBUG)
884 #endif /* ERRCLASS & ERRCLS_DEBUG */
886 RlcCfgInfo tmpCfgInfo;
887 RlcCfgInfo *cfgInfo; /*stack Variable because it is not freed */
889 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
890 switch(pst->selector)
895 #if(ERRCLASS & ERRCLS_DEBUG)
896 ret1 = cmUnpkUdxStruct(mBuf,0,(uint8_t *)&tmpCfgInfo,sizeof(RlcCfgInfo));
900 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
901 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
902 (ErrVal)EUDXXXX, (ErrVal)ret1, "Unpacking failure");
906 cmUnpkUdxStruct(mBuf,0,(uint8_t *)&tmpCfgInfo,sizeof(RlcCfgInfo));
907 #endif /* ERRCLASS & ERRCLS_DEBUG */
908 cfgInfo = &tmpCfgInfo;
913 CMCHKUNPK(oduUnpackPointer,(PTR *) &cfgInfo, mBuf);
920 return ((*func)(pst, spId, cfgInfo));
921 } /* cmUnpkUdxCfgReq */
926 * Fun: cmUnpkUdxCfgCfm
928 * Desc: unpack the primitive KwUiUdxCfgCfm
937 S16 cmUnpkUdxCfgCfm(UdxCfgCfm func,Pst *pst,Buffer *mBuf)
941 RlcCfgCfmInfo *cfgCfmInfo = NULLP;
943 CMCHKUNPK(SUnpkS16, &suId, mBuf);
945 switch(pst->selector)
950 if((ret1 = SGetStaticBuffer(pst->region, pst->pool, (Data **)&cfgCfmInfo,\
951 sizeof(RlcCfgCfmInfo),0)) != ROK)
953 #if (ERRCLASS & ERRCLS_ADD_RES)
956 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
957 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
958 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
960 #endif /* ERRCLASS & ERRCLS_ADD_RES */
964 ret1 = cmUnpkUdxStruct(mBuf,0,(uint8_t *)cfgCfmInfo, sizeof(RlcCfgCfmInfo));
965 #if(ERRCLASS & ERRCLS_DEBUG)
969 SLogError(pst->dstEnt, pst->dstInst, pst->dstProcId,
970 __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
971 (ErrVal)EUDXXXX, (ErrVal)ret1, "Unpacking failure");
974 #endif /* ERRCLASS & ERRCLS_DEBUG */
979 CMCHKUNPK(oduUnpackPointer,(PTR *) &cfgCfmInfo, mBuf);
986 return ((*func)(pst, suId, cfgCfmInfo));
987 } /* cmUnpkUdxCfgCfm */
991 * Fun: cmUnpkUdxUeIdChgReq
993 * Desc: unpack the primitive KwUiUdxUeIdChgReq
1002 S16 cmUnpkUdxUeIdChgReq(UdxUeIdChgReq func,Pst *pst,Buffer *mBuf)
1005 uint32_t transId = 0;
1006 CkwUeInfo tmpUeInfo;
1007 CkwUeInfo tmpNewUeInfo;
1009 CkwUeInfo *newUeInfo;
1011 CMCHKUNPK(SUnpkS16, &(spId), mBuf);
1012 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, EUDXXXX, pst);
1014 switch(pst->selector)
1019 cmUnpkUdxStruct(mBuf,0,(uint8_t *)&tmpNewUeInfo, sizeof(CkwUeInfo));
1020 cmUnpkUdxStruct(mBuf,sizeof(CkwUeInfo),(uint8_t *)&tmpUeInfo, sizeof(CkwUeInfo));
1022 ueInfo = &tmpUeInfo;
1023 newUeInfo = &tmpNewUeInfo;
1028 CMCHKUNPK(oduUnpackPointer,(PTR *) &ueInfo, mBuf);
1029 CMCHKUNPK(oduUnpackPointer,(PTR *) &newUeInfo, mBuf);
1034 DU_LOG("\nERROR --> RLC : cmUnpkUdxUeIdChgReq()- selector =%d not supported \n", pst->selector);
1042 return ((*func)(pst, spId, transId, ueInfo, newUeInfo));
1044 } /* cmUnpkUdxUeIdChgReq */
1048 * Fun: cmUnpkUdxUeIdChgCfm
1050 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1059 S16 cmUnpkUdxUeIdChgCfm(UdxUeIdChgCfm func,Pst *pst,Buffer *mBuf)
1062 uint32_t transId = 0;
1065 memset(&status, 0, sizeof(CmStatus));
1067 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1068 CMCHKUNPKLOG(oduPackUInt32, &transId, mBuf, EUDXXXX, pst);
1070 CMCHKUNPK(cmUnpkCmStatus, &status, mBuf);
1074 return ((*func)(pst, suId, transId, status));
1076 } /* cmUnpkUdxUeIdChgCfm */
1080 * Fun: cmUnpkUdxStaUpdCfm
1082 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1091 S16 cmUnpkUdxStaUpdCfm(UdxStaUpdCfm func,Pst *pst,Buffer *mBuf)
1094 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1095 RlcUdxBufLst *pBufLst = NULLP; /* KW_FIX*/
1097 CMCHKUNPK(SUnpkS16, &suId, mBuf);
1098 switch (pst->selector)
1106 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1107 CMCHKUNPK(oduUnpackPointer, (PTR *)&pBufLst,mBuf);
1114 return ((*func)(pst, suId, rlcId, pBufLst));
1116 } /* cmUnpkUdxUeIdChgCfm */
1120 * Fun: cmUnpkUdxStaUpdReq
1122 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1131 S16 cmUnpkUdxStaUpdReq(UdxStaUpdReq func,Pst *pst,Buffer *mBuf)
1134 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1135 RlcUdxStaPdu *pStaPdu = NULLP; /* KW_FIX */
1137 CmLteRlcId tmpRlcId;
1139 CMCHKUNPK(SUnpkS16, &spId, mBuf);
1140 switch (pst->selector)
1144 if((ret1 = SGetStaticBuffer(pst->region, pst->pool, (Data **)&pStaPdu,
1145 sizeof(RlcUdxStaPdu),0)) != ROK)
1147 #if (ERRCLASS & ERRCLS_ADD_RES)
1150 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1151 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1152 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
1154 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1157 ret1 = cmUnpkUdxStruct(mBuf,0,(uint8_t *)pStaPdu, sizeof(RlcUdxStaPdu));
1158 ret1 = cmUnpkUdxStruct(mBuf,sizeof(RlcUdxStaPdu),(uint8_t *)&tmpRlcId,sizeof(CmLteRlcId));
1164 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1165 CMCHKUNPK(oduUnpackPointer, (PTR *)&pStaPdu,mBuf);
1172 return ((*func)(pst, spId, rlcId, pStaPdu));
1174 } /* cmUnpkUdxUeIdChgCfm */
1178 * Fun: cmUnpkUdxStaPduReq
1180 * Desc: unpack the primitive KwUiUdxUeIdChgCfm
1189 S16 cmUnpkUdxStaPduReq(UdxStaPduReq func,Pst *pst,Buffer *mBuf)
1193 CmLteRlcId tmpRlcId;
1194 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1195 RlcUdxDlStaPdu *pStaPdu = NULLP; /* KW_FIX */
1197 CMCHKUNPK(SUnpkS16, &spId, mBuf);
1198 switch (pst->selector)
1202 if((ret1 = SGetStaticBuffer(pst->region, pst->pool, (Data **)&pStaPdu,
1203 sizeof(RlcUdxDlStaPdu),0)) != ROK)
1205 #if (ERRCLASS & ERRCLS_ADD_RES)
1208 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1209 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1210 (ErrVal)EUDXXXX, (ErrVal)0, "SGetMsg() failed");
1212 #endif /* ERRCLASS & ERRCLS_ADD_RES */
1215 ret1 = cmUnpkUdxStruct(mBuf,0, (uint8_t *)pStaPdu, sizeof(RlcUdxDlStaPdu));
1216 ret1 = cmUnpkUdxStruct(mBuf,sizeof(RlcUdxDlStaPdu),(uint8_t *)&tmpRlcId,sizeof(CmLteRlcId));
1222 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1223 CMCHKUNPK(oduUnpackPointer, (PTR *)&pStaPdu,mBuf);
1229 return ((*func)(pst, spId, rlcId, pStaPdu));
1231 } /* cmUnpkUdxUeIdChgCfm */
1235 * Fun: cmUnpkUdxStaProhTmrStart
1237 * Desc: unpack the Status prohibit timer start Msg
1243 * File: rlc_dl_ul_inf.c
1246 S16 cmUnpkUdxStaProhTmrStart(UdxStaProhTmrStart func,Pst *pst,Buffer *mBuf)
1249 CmLteRlcId tmpRlcId;
1250 CmLteRlcId *rlcId = NULLP; /* KW_FIX */
1252 CMCHKUNPK(SUnpkS16, &spId, mBuf);
1253 switch (pst->selector)
1257 cmUnpkUdxStruct(mBuf,0,(uint8_t *)&tmpRlcId,sizeof(CmLteRlcId));
1263 CMCHKUNPK(oduUnpackPointer, (PTR *)&rlcId,mBuf);
1270 return ((*func)(pst, spId, rlcId));
1272 } /* cmUnpkUdxStaProhTmrStart */
1278 * Fun: cmUnpkUdxL2MeasReq
1286 S16 cmUnpkUdxL2MeasReq(UdxL2MeasReq func,Pst *pst,Buffer *mBuf)
1288 RlcL2MeasReqEvt tmpMeasReqEvt;
1289 RlcL2MeasReqEvt *measReqEvt = NULLP; /* KW_FIX */
1291 switch (pst->selector)
1295 cmUnpkUdxStruct(mBuf,0,(uint8_t *)&tmpMeasReqEvt,sizeof(RlcL2MeasReqEvt));
1296 measReqEvt = &tmpMeasReqEvt;
1301 CMCHKUNPK(oduUnpackPointer, (PTR *)&measReqEvt,mBuf);
1308 return ((*func)(pst, measReqEvt));
1309 } /* cmUnpkUdxL2MeasReq */
1313 * Fun: cmUnpkUdxL2MeasSendReq
1321 S16 cmUnpkUdxL2MeasSendReq(UdxL2MeasSendReq func,Pst *pst,Buffer *mBuf)
1323 uint8_t measType = 0; /* KW_FIX */
1325 switch (pst->selector)
1330 CMCHKUNPK(oduPackUInt8, &measType, mBuf);
1337 return ((*func)(pst, measType));
1338 } /* cmUnpkUdxL2MeasReq */
1342 * Fun: cmUnpkUdxL2MeasStopReq
1350 S16 cmUnpkUdxL2MeasStopReq(UdxL2MeasStopReq func,Pst *pst,Buffer *mBuf)
1352 uint8_t measType = 0; /* KW_FIX */
1354 switch (pst->selector)
1359 CMCHKUNPK(oduPackUInt8, &measType, mBuf);
1366 return ((*func)(pst, measType));
1367 } /* cmUnpkUdxL2MeasStopReq */
1372 /********************************************************************30**
1374 **********************************************************************/