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**
25 Desc: This file contains the packing/unpacking functions
26 for control plane primitives on CTF interface.
30 *********************************************************************21*/
32 /* header include files (.h) */
33 #include "common_def.h"
34 #include "ctf.h" /* CTF interface defines */
36 /* header/extern include files (.x) */
37 #ifdef TENB_AS_SECURITY
42 #ifdef TENB_AS_SECURITY
43 #define cmPkCtfCrnti oduUnpackUInt16
44 #define cmPkCtfCellId oduUnpackUInt16
45 #define cmUnpkCtfCellId oduPackUInt16
46 #define cmUnpkCtfCrnti oduPackUInt16
50 #if (defined(LCCTF) || defined(LWLCCTF))
54 * @brief Request from RRC to PHY to bind the CTF interface SAP.
58 * Function: cmPkCtfBndReq
61 * @param[in] SuId suId
62 * @param[in] SpId spId
75 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
76 #if (ERRCLASS & ERRCLS_ADD_RES)
77 /* ctf_c_001.main_3 Compilation warning fix with g++ */
78 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
79 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
80 (ErrVal)ECTF001, (ErrVal)0, (Txt*)&"Packing failed");
84 if (SPkS16(spId, mBuf) != ROK) {
85 #if (ERRCLASS & ERRCLS_ADD_RES)
86 /* ctf_c_001.main_3 Compilation warning fix with g++ */
87 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
88 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
89 (ErrVal)ECTF002, (ErrVal)0, (Txt*)&"Packing failed");
94 if (SPkS16(suId, mBuf) != ROK) {
95 #if (ERRCLASS & ERRCLS_ADD_RES)
96 /* ctf_c_001.main_3 Compilation warning fix with g++ */
97 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
98 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
99 (ErrVal)ECTF003, (ErrVal)0, (Txt*)&"Packing failed");
104 pst->event = (Event) EVTCTFBNDREQ;
105 return (SPstTsk(pst,mBuf));
110 * @brief Request from RRC to PHY to bind the CTF interface SAP.
114 * Function: cmUnpkCtfBndReq
116 * @param[in] Pst* pst
117 * @param[in] SuId suId
118 * @param[in] SpId spId
133 if (SUnpkS16(&suId, mBuf) != ROK) {
135 #if (ERRCLASS & ERRCLS_ADD_RES)
136 /* ctf_c_001.main_3 Compilation warning fix with g++ */
137 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
138 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
139 (ErrVal)ECTF004, (ErrVal)0, (Txt*)&"Packing failed");
143 if (SUnpkS16(&spId, mBuf) != ROK) {
145 #if (ERRCLASS & ERRCLS_ADD_RES)
146 /* ctf_c_001.main_3 Compilation warning fix with g++ */
147 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
148 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
149 (ErrVal)ECTF005, (ErrVal)0, (Txt*)&"Packing failed");
154 return ((*func)(pst, suId, spId));
159 * @brief Confirmation from PHY to RRC for the bind
160 * request for the CTF interface SAP.
164 * Function: cmPkCtfBndCfm
166 * @param[in] Pst* pst
167 * @param[in] SuId suId
168 * @param[in] uint8_t status
179 Buffer *mBuf = NULLP;
181 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
182 #if (ERRCLASS & ERRCLS_ADD_RES)
183 /* ctf_c_001.main_3 Compilation warning fix with g++ */
184 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
185 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
186 (ErrVal)ECTF006, (ErrVal)0, (Txt*)&"Packing failed");
190 if (oduUnpackUInt8(status, mBuf) != ROK) {
191 #if (ERRCLASS & ERRCLS_ADD_RES)
192 /* ctf_c_001.main_3 Compilation warning fix with g++ */
193 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
194 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
195 (ErrVal)ECTF007, (ErrVal)0, (Txt*)&"Packing failed");
200 if (SPkS16(suId, mBuf) != ROK) {
201 #if (ERRCLASS & ERRCLS_ADD_RES)
202 /* ctf_c_001.main_3 Compilation warning fix with g++ */
203 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
204 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
205 (ErrVal)ECTF008, (ErrVal)0, (Txt*)&"Packing failed");
210 pst->event = (Event) EVTCTFBNDCFM;
211 return (SPstTsk(pst,mBuf));
216 * @brief Confirmation from PHY to RRC for the bind
217 * request for the CTF interface SAP.
221 * Function: cmUnpkCtfBndCfm
223 * @param[in] Pst* pst
224 * @param[in] SuId suId
225 * @param[in] uint8_t status
240 if (SUnpkS16(&suId, mBuf) != ROK) {
242 #if (ERRCLASS & ERRCLS_ADD_RES)
243 /* ctf_c_001.main_3 Compilation warning fix with g++ */
244 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
245 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
246 (ErrVal)ECTF009, (ErrVal)0, (Txt*)&"Packing failed");
250 if (oduPackUInt8(&status, mBuf) != ROK) {
252 #if (ERRCLASS & ERRCLS_ADD_RES)
253 /* ctf_c_001.main_3 Compilation warning fix with g++ */
254 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
255 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
256 (ErrVal)ECTF010, (ErrVal)0, (Txt*)&"Packing failed");
261 return ((*func)(pst, suId, status));
266 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
270 * Function: cmPkCtfUbndReq
272 * @param[in] Pst* pst
273 * @param[in] SpId spId
274 * @param[in] Reason reason
285 Buffer *mBuf = NULLP;
287 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
288 #if (ERRCLASS & ERRCLS_ADD_RES)
289 /* ctf_c_001.main_3 Compilation warning fix with g++ */
290 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
291 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
292 (ErrVal)ECTF011, (ErrVal)0, (Txt*)&"Packing failed");
296 if (SPkS16(reason, mBuf) != ROK) {
297 #if (ERRCLASS & ERRCLS_ADD_RES)
298 /* ctf_c_001.main_3 Compilation warning fix with g++ */
299 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
300 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
301 (ErrVal)ECTF012, (ErrVal)0, (Txt*)&"Packing failed");
306 if (SPkS16(spId, mBuf) != ROK) {
307 #if (ERRCLASS & ERRCLS_ADD_RES)
308 /* ctf_c_001.main_3 Compilation warning fix with g++ */
309 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
310 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
311 (ErrVal)ECTF013, (ErrVal)0,(Txt*)&"Packing failed");
316 pst->event = (Event) EVTCTFUBNDREQ;
317 return (SPstTsk(pst,mBuf));
322 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
326 * Function: cmUnpkCtfUbndReq
328 * @param[in] Pst* pst
329 * @param[in] SpId spId
330 * @param[in] Reason reason
345 if (SUnpkS16(&spId, mBuf) != ROK) {
347 #if (ERRCLASS & ERRCLS_ADD_RES)
348 /* ctf_c_001.main_3 Compilation warning fix with g++ */
349 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
350 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
351 (ErrVal)ECTF014, (ErrVal)0, (Txt*)&"Packing failed");
355 if (SUnpkS16(&reason, mBuf) != ROK) {
357 #if (ERRCLASS & ERRCLS_ADD_RES)
358 /* ctf_c_001.main_3 Compilation warning fix with g++ */
359 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
360 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
361 (ErrVal)ECTF015, (ErrVal)0, (Txt*)&"Packing failed");
366 return ((*func)(pst, spId, reason));
370 /***********************************************************
372 * Func: cmRelCtfCfgReq
375 * Desc: This fucntion will release the memory used for ctf cfg req
383 **********************************************************/
384 static S16 cmRelCtfCfgReq
387 CtfCfgReqInfo *cfgReqInfo
390 /* ctf_c_001.main_4: Added support for vendor specific parameters */
392 if(cfgReqInfo->vendorParams.paramBuffer != NULLP) {
393 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool,
394 (Data *)cfgReqInfo->vendorParams.paramBuffer,
395 cfgReqInfo->vendorParams.buffLen);
398 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCfgReqInfo));
402 #ifdef TENB_AS_SECURITY
403 /***********************************************************
405 * Func: cmPkCtfNhKeyInfo
408 * Desc: Pack keNB* input parameter information
409 * @details This is one of the main structure in the KDF request primitive.
410 * -# This structure contains the configuration information as given by
411 * the Application to trigger key derivation at PHY layer for generation of kENB*.
412 * -# It take Next Hop key, DL Frequency and Physical cell Id as input.
413 * -# The result of configuration is indicated in KdfCfgCfm.
422 **********************************************************/
433 for(idx=31;idx>=0;idx--)
435 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
437 CMCHKPK(oduUnpackUInt16, param->physCellId, mBuf);
438 CMCHKPK(oduUnpackUInt16, param->dlCarrFreq, mBuf);
443 /***********************************************************
445 * Func: cmPkCtfKenbStarInfo
448 * Desc: Pack keNB* input parameter information
449 * @details This is one of the main structure in the KDF request primitive.
450 * -# This structure contains the configuration information as given by
451 * the Application to trigger key derivation at PHY layer for generation of kENB*.
452 * -# It take existing kENB, DL Frequency and Physical cell Id as input.
453 * -# The result of configuration is indicated in KdfCfgCfm.
462 **********************************************************/
463 S16 cmPkCtfKenbStarInfo
465 CtfKenbStarInfo *param,
473 for(idx=31;idx>=0;idx--)
475 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
477 CMCHKPK(oduUnpackUInt16, param->physCellId, mBuf);
478 CMCHKPK(oduUnpackUInt16, param->dlCarrFreq, mBuf);
484 /***********************************************************
486 * Func: cmPkCtfAskeyInfo
489 * Desc: Pack AS key generation input parameter information.
490 * @details This is one of the main structure in the KDF request primitive.
491 * -# This structure contains the configuration information as given by
492 * the Application to trigger key derivation at PHY layer for generation of AS Security keys.
493 * -# It take existing kENB, and integrity/cipherig Algorithm as input.
494 * -# The result of configuration is indicated in KdfCfgCfm.
503 **********************************************************/
512 for(idx=31;idx>=0;idx--)
514 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
516 CMCHKPK(oduUnpackUInt8, param->ciphAlgoType, mBuf);
517 CMCHKPK(oduUnpackUInt8, param->intgAlgoType, mBuf);
522 /***********************************************************
524 * Func: cmPkCtfKdfReqInfo
527 * Desc: Pack one of the 3 Key Derivation types.
528 * @details This is the encompassing structure in the KDF request primitive.
529 * -# This structure contains the configuration information as given by
530 * the Application to trigger key derivation at PHY layer for generation of keys.
531 * -# It takes key derivation type as input.
532 * -# The result of configuration is indicated in KdfCfgCfm.
541 **********************************************************/
542 S16 cmPkCtfKdfReqInfo
544 CtfKdfReqInfo *param,
550 switch (param->keyDerType)
553 CMCHKPK(cmPkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
556 CMCHKPK(cmPkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
559 CMCHKPK(cmPkCtfNhKeyInfo , ¶m->u.nhKeyInf, mBuf);
564 CMCHKPK(oduUnpackUInt8, param->keyDerType, mBuf);
570 * @brief Primitive Request from Application to PHY for
571 * security key derivation.
575 * Function: cmPkCtfKdfReq
577 * @param[in] Pst* pst
578 * @param[in] SpId spId
579 * @param[in] CtfCfgTransId transId
580 * @param[in] CtfCfgReqInfo* cfgReqInfo
588 CtfCfgTransId transId,
589 CtfKdfReqInfo* kdfReqInfo
592 Buffer *mBuf = NULLP;
594 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
595 #if (ERRCLASS & ERRCLS_ADD_RES)
596 /* ctf_c_001.main_3 Compilation warning fix with g++ */
597 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
598 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
599 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
601 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
604 if (pst->selector == ODU_SELECTOR_LC) {
605 if (cmPkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
606 #if (ERRCLASS & ERRCLS_ADD_RES)
607 /* ctf_c_001.main_3 Compilation warning fix with g++ */
608 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
609 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
610 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
612 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
617 else if (pst->selector == ODU_SELECTOR_LWLC) {
619 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
620 #if (ERRCLASS & ERRCLS_ADD_RES)
621 /* ctf_c_001.main_3 Compilation warning fix with g++ */
622 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
623 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
624 (ErrVal)ECTF019, (ErrVal)0, (Txt*)&"Packing failed");
626 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
630 if (SPkS16(spId, mBuf) != ROK) {
631 #if (ERRCLASS & ERRCLS_ADD_RES)
632 /* ctf_c_001.main_3 Compilation warning fix with g++ */
633 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
634 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
635 (ErrVal)ECTF020, (ErrVal)0, (Txt*)&"Packing failed");
637 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
641 if (pst->selector != ODU_SELECTOR_LWLC) {
642 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo)) != ROK) {
643 #if (ERRCLASS & ERRCLS_ADD_RES)
644 /* ctf_c_001.main_3 Compilation warning fix with g++ */
645 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
646 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
647 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
653 pst->event = (Event) EVTCTFKDFREQ;
654 return (SPstTsk(pst,mBuf));
658 /********************************************************************************************************************************/
659 /*START OF CNM PACK & UNPACK FUNCTIONS*/
660 /********************************************************************************************************************************/
661 S16 cmPkCtfCnmVendorSpecificInfo
663 CtfCnmVendorSpecificInfo *param,
668 if(param->numOfVendorSpecifcParam <= CTF_CNM_MAX_VENDOR_PARAMS)
670 for(i= param->numOfVendorSpecifcParam-1; i >= 0; i--)
672 CMCHKPK(oduUnpackUInt32,(uint32_t)param->vendorSpecifcParam[i], mBuf);
675 CMCHKPK(oduUnpackUInt16, param->numOfVendorSpecifcParam, mBuf);
679 S16 cmPkCtfCtfCnmCellSyncReq
681 CtfCnmCellSyncReq *param,
686 CMCHKPK(oduUnpackUInt16, param->nbrEarfcn, mBuf);
687 CMCHKPK(oduUnpackUInt16, param->nbrPCellId, mBuf);
688 CMCHKPK(oduUnpackUInt8, param->nbrTxAntCount, mBuf);
689 CMCHKPK(oduUnpackUInt8, param->nbrCellCp, mBuf);
690 CMCHKPK(oduUnpackUInt8, param->nbrCellNRb, mBuf);
691 CMCHKPK(oduUnpackUInt8, param->nbrSpecSfCfg, mBuf);
692 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
697 S16 cmPkCtfcfgReqInfo
699 CtfCnmInitSyncReq *param,
705 CMCHKPK(oduUnpackUInt8, param->searchType, mBuf);
706 CMCHKPK(oduUnpackUInt8, param->mibRequest, mBuf);
707 CMCHKPK(oduUnpackUInt16, param->earfcn, mBuf);
708 CMCHKPK(oduUnpackUInt8, param->measBandWidth, mBuf);
709 if(param->numOfPciList <= CTF_CNM_MAX_CELL_SEARCH)
711 for(i= param->numOfPciList-1; i >= 0; i--)
713 CMCHKPK(cmPkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
716 CMCHKPK(oduUnpackUInt16, param->numOfPciList, mBuf);
720 S16 cmUnpkCtfCnmVendorSpecificInfo
722 CtfCnmVendorSpecificInfo *param,
728 CMCHKUNPK(oduPackUInt16, ¶m->numOfVendorSpecifcParam, mBuf);
729 for(i=0; (i<param->numOfVendorSpecifcParam)&&(i < CTF_CNM_MAX_VENDOR_PARAMS); i++)
731 CMCHKUNPK(oduPackUInt32, ¶m->vendorSpecifcParam[i], mBuf);
736 S16 cmUnpkCtfCtfCnmCellSyncReq
738 CtfCnmCellSyncReq *param,
743 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
744 CMCHKUNPK(oduPackUInt8, ¶m->nbrSpecSfCfg, mBuf);
745 CMCHKUNPK(oduPackUInt8, ¶m->nbrCellNRb, mBuf);
746 CMCHKUNPK(oduPackUInt8, ¶m->nbrCellCp, mBuf);
747 CMCHKUNPK(oduPackUInt8, ¶m->nbrTxAntCount, mBuf);
748 CMCHKUNPK(oduPackUInt16, ¶m->nbrPCellId, mBuf);
749 CMCHKUNPK(oduPackUInt16, ¶m->nbrEarfcn, mBuf);
754 S16 cmUnpkCtfsyncReqInfo
756 CtfCnmInitSyncReq *param,
762 CMCHKUNPK(oduPackUInt16, ¶m->numOfPciList, mBuf);
763 for(i=0; (i < param->numOfPciList)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
765 CMCHKUNPK(cmUnpkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
768 CMCHKUNPK(oduPackUInt8, ¶m->measBandWidth, mBuf);
769 CMCHKUNPK(oduPackUInt16, ¶m->earfcn, mBuf);
770 CMCHKUNPK(oduPackUInt8, ¶m->mibRequest, mBuf);
771 CMCHKUNPK(oduPackUInt8, ¶m->searchType, mBuf);
775 * @brief Configuration Request from App to CL for
776 * cnm Cell Sync request.
780 * Function: cmPkCtfCnmCellSyncReq
782 * @param[in] Pst* pst
783 * @param[in] SpId spId
784 * @param[in] CtfCfgTransId * transId
785 * @param[in] CtfCnmCellSyncReq* ctfcnmCellSyncReq
789 S16 cmPkCtfCnmCellSyncReq
793 CtfCfgTransId *transId,
794 CtfCnmCellSyncReq * cfgReqInfo
798 Buffer *mBuf = NULLP;
800 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
801 #if (ERRCLASS & ERRCLS_ADD_RES)
802 /* ctf_c_001.main_3 Compilation warning fix with g++ */
803 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
804 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
805 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
807 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
810 if (pst->selector == ODU_SELECTOR_LC) {
811 if (cmPkCtfCtfCnmCellSyncReq(cfgReqInfo, mBuf) != ROK) {
812 #if (ERRCLASS & ERRCLS_ADD_RES)
813 /* ctf_c_001.main_3 Compilation warning fix with g++ */
814 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
815 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
816 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
818 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
823 else if (pst->selector == ODU_SELECTOR_LWLC) {
825 if (oduPackPointer((PTR)cfgReqInfo, mBuf) != ROK) {
826 #if (ERRCLASS & ERRCLS_ADD_RES)
827 /* ctf_c_001.main_3 Compilation warning fix with g++ */
828 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
829 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
830 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
832 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
838 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
839 #if (ERRCLASS & ERRCLS_ADD_RES)
840 /* ctf_c_001.main_3 Compilation warning fix with g++ */
841 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
842 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
843 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
845 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
849 if (SPkS16(spId, mBuf) != ROK) {
850 #if (ERRCLASS & ERRCLS_ADD_RES)
851 /* ctf_c_001.main_3 Compilation warning fix with g++ */
852 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
853 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
854 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
856 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
860 if (pst->selector != ODU_SELECTOR_LWLC) {
861 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
863 pst->event = (Event)EVTCTFCNMSYNCREQ;
864 return (SPstTsk(pst,mBuf));
868 * @brief Configuration Request from RRC to PHY for
869 * cell or dedicated configuration.
873 * Function: cmUnpkCtfCnmCellSyncReq
875 * @param[in] CtfCnmCellSyncReqMsg func
876 * @param[in] Pst* pst
877 * @param[in] Buffer *mBuf
881 S16 cmUnpkCtfCnmCellSyncReq
883 CtfCnmCellSyncReqMsg func,
890 CtfCfgTransId transId;
891 CtfCnmCellSyncReq *SyncReqMsg = NULLP;
893 if (SUnpkS16(&spId, mBuf) != ROK) {
895 #if (ERRCLASS & ERRCLS_ADD_RES)
896 /* ctf_c_001.main_3 Compilation warning fix with g++ */
897 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
898 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
899 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
903 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
905 #if (ERRCLASS & ERRCLS_ADD_RES)
906 /* ctf_c_001.main_3 Compilation warning fix with g++ */
907 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
908 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
909 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
913 if (pst->selector != ODU_SELECTOR_LWLC) {
914 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&SyncReqMsg, sizeof(CtfCnmCellSyncReq))) != ROK) {
915 #if (ERRCLASS & ERRCLS_ADD_RES)
916 /* ctf_c_001.main_3 Compilation warning fix with g++ */
917 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
918 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
919 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
925 if (pst->selector == ODU_SELECTOR_LWLC) {
926 if (oduUnpackPointer((PTR *)&SyncReqMsg, mBuf) != ROK) {
931 else if (pst->selector == ODU_SELECTOR_LC)
932 if (cmUnpkCtfCtfCnmCellSyncReq(SyncReqMsg, mBuf) != ROK) {
933 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)SyncReqMsg, sizeof(CtfCnmCellSyncReq));
935 #if (ERRCLASS & ERRCLS_ADD_RES)
936 /* ctf_c_001.main_3 Compilation warning fix with g++ */
937 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
938 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
939 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
944 return ((*func)(pst, spId, &transId, SyncReqMsg));
947 /*-----------------------------------------------------*/
951 * @brief Configuration Request from App to CL for
952 * cnm Init Sync request.
956 * Function: cmPkCtfCnmInitSyncReq
958 * @param[in] Pst* pst
959 * @param[in] SpId spId
960 * @param[in] CtfCfgTransId * transId
961 * @param[in] CtfCnmInitSyncReq* ctfcnmInitSyncReq
965 S16 cmPkCtfCnmInitSyncReq
969 CtfCfgTransId *transId,
970 CtfCnmInitSyncReq * cfgReqInfo
973 Buffer *mBuf = NULLP;
976 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
977 #if (ERRCLASS & ERRCLS_ADD_RES)
978 /* ctf_c_001.main_3 Compilation warning fix with g++ */
979 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
980 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
981 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
983 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
986 if (pst->selector == ODU_SELECTOR_LC) {
987 if (cmPkCtfcfgReqInfo(cfgReqInfo, mBuf) != ROK) {
988 #if (ERRCLASS & ERRCLS_ADD_RES)
989 /* ctf_c_001.main_3 Compilation warning fix with g++ */
990 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
991 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
992 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
994 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
999 else if (pst->selector == ODU_SELECTOR_LWLC) {
1001 if (oduPackPointer((PTR)cfgReqInfo, mBuf) != ROK) {
1002 #if (ERRCLASS & ERRCLS_ADD_RES)
1003 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1004 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1005 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1006 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1008 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1014 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1015 #if (ERRCLASS & ERRCLS_ADD_RES)
1016 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1017 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1018 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1019 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1021 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1025 if (SPkS16(spId, mBuf) != ROK) {
1026 #if (ERRCLASS & ERRCLS_ADD_RES)
1027 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1028 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1029 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1030 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1032 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1036 if (pst->selector != ODU_SELECTOR_LWLC) {
1037 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1039 pst->event = (Event)EVTCTFCNMINITSYNCREQ;
1040 return (SPstTsk(pst,mBuf));
1043 /*-----------------------------------------------------------------*/
1046 * @brief Configuration Request from RRC to PHY for
1047 * cell or dedicated configuration.
1051 * Function: cmUnpkCtfCnmInitSyncReq
1053 * @param[in] CtfCnmInitSyncReqMsg func
1054 * @param[in] Pst* pst
1055 * @param[in] Buffer *mBuf
1059 S16 cmUnpkCtfCnmInitSyncReq
1061 CtfCnmInitSyncReqMsg func,
1068 CtfCfgTransId transId;
1069 CtfCnmInitSyncReq *syncReqInfo = NULLP;
1071 if (SUnpkS16(&spId, mBuf) != ROK) {
1073 #if (ERRCLASS & ERRCLS_ADD_RES)
1074 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1075 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1076 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1077 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1081 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1083 #if (ERRCLASS & ERRCLS_ADD_RES)
1084 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1085 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1086 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1087 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1091 if (pst->selector != ODU_SELECTOR_LWLC) {
1092 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&syncReqInfo, sizeof(CtfCnmInitSyncReq))) != ROK) {
1093 #if (ERRCLASS & ERRCLS_ADD_RES)
1094 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1095 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1096 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1097 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1103 if (pst->selector == ODU_SELECTOR_LWLC) {
1104 if (oduUnpackPointer((PTR *)&syncReqInfo, mBuf) != ROK) {
1109 else if (pst->selector == ODU_SELECTOR_LC)
1110 if (cmUnpkCtfsyncReqInfo(syncReqInfo, mBuf) != ROK) {
1111 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)syncReqInfo, sizeof(CtfCnmInitSyncReq));
1113 #if (ERRCLASS & ERRCLS_ADD_RES)
1114 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1115 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1116 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1117 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1122 return ((*func)(pst, spId, &transId, syncReqInfo));
1124 /*-----------------------------------------------------------------------------*/
1126 S16 cmPkCtfctfCnmMibInfo
1128 CtfCnmMibInfo *param,
1133 CMCHKPK(oduUnpackUInt16, param->sfn, mBuf);
1134 CMCHKPK(oduUnpackUInt8, param->numTxAntennas, mBuf);
1135 CMCHKPK(oduUnpackUInt8, param->phichDuration, mBuf);
1136 CMCHKPK(oduUnpackUInt8, param->phichResource, mBuf);
1137 CMCHKPK(oduUnpackUInt8, param->dlSystemBandWidht, mBuf);
1142 S16 cmPkCtfctfCnmInitSyncInfo
1144 CtfCnmInitSyncInfo *param,
1149 CMCHKPK(oduUnpackUInt16, param->pci, mBuf);
1150 CMCHKPK(oduUnpackUInt8, param->rsrp, mBuf);
1151 CMCHKPK(oduUnpackUInt8, param->mibValidFlag, mBuf);
1152 CMCHKPK(oduUnpackUInt16, param->localSfn, mBuf);
1153 CMCHKPK(cmPkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1154 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1159 S16 cmPkCtfcfgRspInfo
1161 CtfCnmInitSyncRsp *param,
1167 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
1168 CMCHKPK(oduUnpackUInt16, param->earfcn, mBuf);
1169 if(param->numOfNeighbourInfo <= CTF_CNM_MAX_CELL_SEARCH)
1171 for(i= param->numOfNeighbourInfo-1; i >= 0; i--)
1173 CMCHKPK(cmPkCtfctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1176 CMCHKPK(oduUnpackUInt8, param->numOfNeighbourInfo, mBuf);
1182 * @brief Configuration Request from App to CL for
1183 * cnm Init Sync responce
1187 * Function: cmPkCtfCnmInitSyncRsp
1189 * @param[in] Pst* pst
1190 * @param[in] SpId spId
1191 * @param[in] CtfCfgTransId * transId
1192 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
1196 S16 cmPkCtfCnmInitSyncRsp
1200 CtfCfgTransId *transId,
1201 CtfCnmInitSyncRsp * cfgRspInfo
1204 Buffer *mBuf = NULLP;
1206 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1207 #if (ERRCLASS & ERRCLS_ADD_RES)
1208 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1209 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1210 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1211 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1213 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1216 if (pst->selector == ODU_SELECTOR_LC) {
1217 if (cmPkCtfcfgRspInfo(cfgRspInfo, mBuf) != ROK) {
1218 #if (ERRCLASS & ERRCLS_ADD_RES)
1219 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1220 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1221 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1222 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1224 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1229 else if (pst->selector == ODU_SELECTOR_LWLC) {
1231 if (oduPackPointer((PTR)cfgRspInfo, mBuf) != ROK) {
1232 #if (ERRCLASS & ERRCLS_ADD_RES)
1233 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1234 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1235 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1236 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1238 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1244 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1245 #if (ERRCLASS & ERRCLS_ADD_RES)
1246 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1247 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1248 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1249 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1251 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1255 if (SPkS16(spId, mBuf) != ROK) {
1256 #if (ERRCLASS & ERRCLS_ADD_RES)
1257 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1258 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1259 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1260 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1262 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1266 if (pst->selector != ODU_SELECTOR_LWLC) {
1267 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1269 pst->event = (Event)EVTCTFCNMINITSYNCRSP;
1270 return (SPstTsk(pst,mBuf));
1273 /*-----------------------------------------------------------------------------*/
1275 S16 cmUnpkCtfctfCnmMibInfo
1277 CtfCnmMibInfo *param,
1282 CMCHKUNPK(oduPackUInt8, ¶m->dlSystemBandWidht, mBuf);
1283 CMCHKUNPK(oduPackUInt8, ¶m->phichResource, mBuf);
1284 CMCHKUNPK(oduPackUInt8, ¶m->phichDuration, mBuf);
1285 CMCHKUNPK(oduPackUInt8, ¶m->numTxAntennas, mBuf);
1286 CMCHKUNPK(oduPackUInt16, ¶m->sfn, mBuf);
1291 S16 cmUnpkctfCnmInitSyncInfo
1293 CtfCnmInitSyncInfo *param,
1298 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1299 CMCHKUNPK(cmUnpkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1300 CMCHKUNPK(oduPackUInt16, ¶m->localSfn, mBuf);
1301 CMCHKUNPK(oduPackUInt8, ¶m->mibValidFlag, mBuf);
1302 CMCHKUNPK(oduPackUInt8, ¶m->rsrp, mBuf);
1303 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
1308 S16 cmUnpkCtfCnmInitSyncRspMsg
1310 CtfCnmInitSyncRsp *param,
1316 CMCHKUNPK(oduPackUInt8, ¶m->numOfNeighbourInfo, mBuf);
1317 for(i=0; (i < param->numOfNeighbourInfo)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
1319 CMCHKUNPK(cmUnpkctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1321 CMCHKUNPK(oduPackUInt16, ¶m->earfcn, mBuf);
1322 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
1327 * @brief Configuration Request from RRC to PHY for
1328 * cell or dedicated configuration.
1332 * Function: cmUnpkCtfCnmInitSyncRsp
1334 * @param[in] CtfCnmInitSyncRspMsg func
1335 * @param[in] Pst* pst
1336 * @param[in] Buffer *mBuf
1340 S16 cmUnpkCtfCnmInitSyncRsp
1342 CtfCnmInitSyncRspMsg func,
1349 CtfCfgTransId transId;
1350 CtfCnmInitSyncRsp *syncRspInfo = NULLP;
1352 if (SUnpkS16(&spId, mBuf) != ROK) {
1354 #if (ERRCLASS & ERRCLS_ADD_RES)
1355 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1356 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1357 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1358 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1362 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1364 #if (ERRCLASS & ERRCLS_ADD_RES)
1365 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1366 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1367 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1368 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1372 if (pst->selector != ODU_SELECTOR_LWLC) {
1373 if((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&syncRspInfo, sizeof(CtfCnmInitSyncRsp))) != ROK) {
1374 #if (ERRCLASS & ERRCLS_ADD_RES)
1375 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1376 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1377 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1378 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1384 if (pst->selector == ODU_SELECTOR_LWLC) {
1385 if(oduUnpackPointer((PTR *)&syncRspInfo, mBuf) != ROK) {
1390 else if (pst->selector == ODU_SELECTOR_LC)
1391 if(cmUnpkCtfCnmInitSyncRspMsg(syncRspInfo, mBuf) != ROK) {
1392 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)syncRspInfo, sizeof(CtfCnmInitSyncRsp));
1394 #if (ERRCLASS & ERRCLS_ADD_RES)
1395 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1396 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1397 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1398 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1403 return ((*func)(pst, spId, &transId, syncRspInfo));
1406 /*-----------------------------------------------------------------------*/
1408 S16 cmPkCtfCellSyncRsp
1410 CtfCnmCellSyncRsp *param,
1415 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
1420 * @brief Configuration Request from App to CL for
1421 * cnm Init Sync responce.
1425 * Function: cmPkCtfCnmCellSyncRsp
1427 * @param[in] Pst* pst
1428 * @param[in] SpId spId
1429 * @param[in] CtfCfgTransId * transId
1430 * @param[in] CtfCnmCellSyncRsp* ctfcnmCellSyncRsp
1434 S16 cmPkCtfCnmCellSyncRsp
1438 CtfCfgTransId *transId,
1439 CtfCnmCellSyncRsp * cfgRspInfo
1443 Buffer *mBuf = NULLP;
1445 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1446 #if (ERRCLASS & ERRCLS_ADD_RES)
1447 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1448 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1449 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1450 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1452 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1455 if (pst->selector == ODU_SELECTOR_LC) {
1456 if (cmPkCtfCellSyncRsp(cfgRspInfo, mBuf) != ROK) {
1457 #if (ERRCLASS & ERRCLS_ADD_RES)
1458 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1459 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1460 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1461 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1463 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1468 else if (pst->selector == ODU_SELECTOR_LWLC) {
1470 if (oduPackPointer((PTR)cfgRspInfo, mBuf) != ROK) {
1471 #if (ERRCLASS & ERRCLS_ADD_RES)
1472 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1473 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1474 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1475 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1477 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1483 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1484 #if (ERRCLASS & ERRCLS_ADD_RES)
1485 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1486 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1487 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1488 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1490 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1494 if (SPkS16(spId, mBuf) != ROK) {
1495 #if (ERRCLASS & ERRCLS_ADD_RES)
1496 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1497 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1498 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1499 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1501 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1505 if (pst->selector != ODU_SELECTOR_LWLC) {
1506 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1508 pst->event = (Event)EVTCTFCNMSYNCRSP;
1509 return (SPstTsk(pst,mBuf));
1513 /*------------------------------------------------------------*/
1515 S16 cmUnpkCtfCnmSyncRspMsg
1517 CtfCnmCellSyncRsp *param,
1522 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
1527 * @brief Configuration Request from RRC to PHY for
1528 * cell or dedicated configuration.
1532 * Function: cmUnpkCtfCnmCellSyncRsp
1534 * @param[in] CtfCnmCellSyncRspMsg func
1535 * @param[in] Pst* pst
1536 * @param[in] Buffer *mBuf
1540 S16 cmUnpkCtfCnmCellSyncRsp
1542 CtfCnmCellSyncRspMsg func,
1549 CtfCfgTransId transId;
1550 CtfCnmCellSyncRsp *syncRspMsg = NULLP;
1552 if (SUnpkS16(&spId, mBuf) != ROK) {
1554 #if (ERRCLASS & ERRCLS_ADD_RES)
1555 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1556 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1557 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1558 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1562 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1564 #if (ERRCLASS & ERRCLS_ADD_RES)
1565 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1566 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1567 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1568 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1572 if (pst->selector != ODU_SELECTOR_LWLC) {
1573 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&syncRspMsg, sizeof(CtfCnmCellSyncRsp))) != ROK) {
1574 #if (ERRCLASS & ERRCLS_ADD_RES)
1575 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1576 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1577 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1578 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1584 if (pst->selector == ODU_SELECTOR_LWLC) {
1585 if (oduUnpackPointer((PTR *)&syncRspMsg, mBuf) != ROK) {
1590 else if (pst->selector == ODU_SELECTOR_LC)
1591 if (cmUnpkCtfCnmSyncRspMsg(syncRspMsg, mBuf) != ROK) {
1592 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)syncRspMsg, sizeof(CtfCnmCellSyncRsp));
1594 #if (ERRCLASS & ERRCLS_ADD_RES)
1595 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1596 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1597 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1598 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1603 return ((*func)(pst, spId, &transId, syncRspMsg));
1606 /*---------------------------------------------------------------*/
1608 S16 cmPkCtfcfgIndInfo
1610 CtfCnmCellSyncInd *param,
1615 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
1616 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1621 * @brief Configuration Request from App to CL for
1622 * cnm Init Sync responce.
1626 * Function: cmPkCtfCnmCellSyncInd
1628 * @param[in] Pst* pst
1629 * @param[in] SpId spId
1630 * @param[in] CtfCfgTransId * transId
1631 * @param[in] CtfCnmCellSyncInd* ctfcnmCellSyncInd
1635 S16 cmPkCtfCnmCellSyncInd
1639 CtfCfgTransId *transId,
1640 CtfCnmCellSyncInd * cfgIndInfo
1644 Buffer *mBuf = NULLP;
1646 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1647 #if (ERRCLASS & ERRCLS_ADD_RES)
1648 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1649 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1650 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1651 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1653 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1656 if (pst->selector == ODU_SELECTOR_LC) {
1657 if (cmPkCtfcfgIndInfo(cfgIndInfo, mBuf) != ROK) {
1658 #if (ERRCLASS & ERRCLS_ADD_RES)
1659 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1660 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1661 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1662 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1664 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1669 else if (pst->selector == ODU_SELECTOR_LWLC) {
1671 if (oduPackPointer((PTR)cfgIndInfo, mBuf) != ROK) {
1672 #if (ERRCLASS & ERRCLS_ADD_RES)
1673 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1674 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1675 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1676 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1678 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1684 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1685 #if (ERRCLASS & ERRCLS_ADD_RES)
1686 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1687 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1688 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1689 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1691 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1695 if (SPkS16(spId, mBuf) != ROK) {
1696 #if (ERRCLASS & ERRCLS_ADD_RES)
1697 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1698 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1699 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1700 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1702 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1706 if (pst->selector != ODU_SELECTOR_LWLC) {
1707 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1709 pst->event = (Event)EVTCTFCNMSYNCIND;
1710 return (SPstTsk(pst,mBuf));
1714 /*---------------------------------------------------------------*/
1716 S16 cmUnpkCtfCnmSyncIndMsg
1718 CtfCnmCellSyncInd *param,
1723 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1724 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
1729 * @brief Configuration Request from RRC to PHY for
1730 * cell or dedicated configuration.
1734 * Function: cmUnpkCtfCnmCellSyncInd
1736 * @param[in] CtfCnmCellSyncIndMsg func
1737 * @param[in] Pst* pst
1738 * @param[in] Buffer *mBuf
1742 S16 cmUnpkCtfCnmCellSyncInd
1744 CtfCnmCellSyncIndMsg func,
1751 CtfCfgTransId transId;
1752 CtfCnmCellSyncInd *syncIndMsg = NULLP;
1754 if (SUnpkS16(&spId, mBuf) != ROK) {
1756 #if (ERRCLASS & ERRCLS_ADD_RES)
1757 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1758 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1759 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1760 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1764 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1766 #if (ERRCLASS & ERRCLS_ADD_RES)
1767 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1768 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1769 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1770 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1774 if (pst->selector != ODU_SELECTOR_LWLC) {
1775 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&syncIndMsg, sizeof(CtfCnmCellSyncInd))) != ROK) {
1776 #if (ERRCLASS & ERRCLS_ADD_RES)
1777 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1778 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1779 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1780 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1786 if (pst->selector == ODU_SELECTOR_LWLC) {
1787 if (oduUnpackPointer((PTR *)&syncIndMsg, mBuf) != ROK) {
1792 else if (pst->selector == ODU_SELECTOR_LC)
1793 if (cmUnpkCtfCnmSyncIndMsg(syncIndMsg, mBuf) != ROK) {
1794 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)syncIndMsg, sizeof(CtfCnmCellSyncInd));
1796 #if (ERRCLASS & ERRCLS_ADD_RES)
1797 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1798 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1799 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1800 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1805 return ((*func)(pst, spId, &transId, syncIndMsg));
1809 /********************************************************************************************************************************/
1810 /*END OF CNM PACK & UNPACK FUNCTIONS*/
1811 /********************************************************************************************************************************/
1817 * @brief Configuration Request from RRC to PHY for
1818 * cell or dedicated configuration.
1822 * Function: cmPkCtfCfgReq
1824 * @param[in] Pst* pst
1825 * @param[in] SpId spId
1826 * @param[in] CtfCfgTransId transId
1827 * @param[in] CtfCfgReqInfo* cfgReqInfo
1835 CtfCfgTransId transId,
1836 CtfCfgReqInfo* cfgReqInfo
1839 Buffer *mBuf = NULLP;
1841 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1842 #if (ERRCLASS & ERRCLS_ADD_RES)
1843 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1844 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1845 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1846 (ErrVal)ECTF016, (ErrVal)0, "Packing failed");
1848 cmRelCtfCfgReq(pst, cfgReqInfo);
1851 if (pst->selector == ODU_SELECTOR_LC) {
1852 if (cmPkCtfCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
1853 #if (ERRCLASS & ERRCLS_ADD_RES)
1854 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1855 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1856 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1857 (ErrVal)ECTF017, (ErrVal)0, "Packing failed");
1859 cmRelCtfCfgReq(pst, cfgReqInfo);
1864 else if (pst->selector == ODU_SELECTOR_LWLC) {
1865 if (oduPackPointer((PTR)cfgReqInfo, mBuf) != ROK) {
1866 #if (ERRCLASS & ERRCLS_ADD_RES)
1867 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1868 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1869 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1870 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1872 cmRelCtfCfgReq(pst, cfgReqInfo);
1877 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
1878 #if (ERRCLASS & ERRCLS_ADD_RES)
1879 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1880 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1881 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1882 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1884 cmRelCtfCfgReq(pst, cfgReqInfo);
1888 if (SPkS16(spId, mBuf) != ROK) {
1889 #if (ERRCLASS & ERRCLS_ADD_RES)
1890 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1891 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1892 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1893 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1895 cmRelCtfCfgReq(pst, cfgReqInfo);
1899 if (pst->selector != ODU_SELECTOR_LWLC) {
1900 cmRelCtfCfgReq(pst, cfgReqInfo);
1902 pst->event = (Event) EVTCTFCFGREQ;
1903 return (SPstTsk(pst,mBuf));
1906 #ifdef TENB_AS_SECURITY
1907 /***********************************************************
1909 * Func: cmPkCtfKenbCfgInfo
1912 * Desc: Key derivation funtion Input Information
1913 * @details This funtion packs the the CtfKenbCfgInfo structure
1914 * which contains the eNodeB key and Algorithm Type for
1915 * deriving AS security keys.
1924 **********************************************************/
1925 S16 cmUnpkCtfNhKeyInfo
1927 CtfNhKeyInfo *param,
1934 CMCHKUNPK(oduPackUInt16, ¶m->dlCarrFreq, mBuf);
1935 CMCHKUNPK(oduPackUInt16, ¶m->physCellId, mBuf);
1936 for(idx=0;idx<32;idx++)
1938 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
1943 /***********************************************************
1945 * Func: cmPkCtfKenbCfgInfo
1948 * Desc: Key derivation funtion Input Information
1949 * @details This funtion packs the the CtfKenbCfgInfo structure
1950 * which contains the eNodeB key and Algorithm Type for
1951 * deriving AS security keys.
1960 **********************************************************/
1961 S16 cmUnpkCtfKenbStarInfo
1963 CtfKenbStarInfo *param,
1970 CMCHKUNPK(oduPackUInt16, ¶m->dlCarrFreq, mBuf);
1971 CMCHKUNPK(oduPackUInt16, ¶m->physCellId, mBuf);
1972 for(idx=0;idx<32;idx++)
1974 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
1980 /***********************************************************
1982 * Func: cmPkCtfKenbCfgInfo
1985 * Desc: Key derivation funtion Input Information
1986 * @details This funtion packs the the CtfKenbCfgInfo structure
1987 * which contains the eNodeB key and Algorithm Type for
1988 * deriving AS security keys.
1997 **********************************************************/
1998 S16 cmUnpkCtfAskeyInfo
2000 CtfAsKeyInfo *param,
2006 CMCHKUNPK(oduPackUInt8, ¶m->intgAlgoType, mBuf);
2007 CMCHKUNPK(oduPackUInt8, ¶m->ciphAlgoType, mBuf);
2008 for(idx=0;idx<32;idx++)
2010 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
2015 /***********************************************************
2017 * Func: cmPkCtfKenbCfgInfo
2020 * Desc: Key derivation funtion Input Information
2021 * @details This funtion packs the the CtfKenbCfgInfo structure
2022 * which contains the eNodeB key and Algorithm Type for
2023 * deriving AS security keys.
2032 * **********************************************************/
2033 S16 cmUnpkCtfKdfReqInfo
2035 CtfKdfReqInfo *param,
2040 CMCHKUNPK(oduPackUInt8, ¶m->keyDerType, mBuf);
2041 switch (param->keyDerType)
2044 CMCHKUNPK(cmUnpkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
2047 CMCHKUNPK(cmUnpkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
2050 CMCHKUNPK(cmUnpkCtfNhKeyInfo, ¶m->u.nhKeyInf, mBuf);
2059 * @brief Configuration Request from RRC to PHY for
2060 * cell or dedicated configuration.
2064 * Function: cmUnpkCtfCfgReq
2066 * @param[in] Pst* pst
2067 * @param[in] SpId spId
2068 * @param[in] CtfCfgTransId transId
2069 * @param[in] CtfCfgReqInfo* cfgReqInfo
2081 CtfCfgTransId transId;
2082 CtfKdfReqInfo *kdfReqInfo = NULLP;
2085 if (SUnpkS16(&spId, mBuf) != ROK) {
2087 #if (ERRCLASS & ERRCLS_ADD_RES)
2088 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2089 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2090 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2091 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2096 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2098 #if (ERRCLASS & ERRCLS_ADD_RES)
2099 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2100 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2101 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2102 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2107 if (pst->selector != ODU_SELECTOR_LWLC) {
2108 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&kdfReqInfo, sizeof(CtfKdfReqInfo))) != ROK) {
2109 #if (ERRCLASS & ERRCLS_ADD_RES)
2110 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2111 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2112 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2113 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2121 if (pst->selector == ODU_SELECTOR_LWLC) {
2122 /*if (oduUnpackPointer((PTR *)&cfgReqInfo, mBuf) != ROK) {
2127 else if (pst->selector == ODU_SELECTOR_LC)
2128 if (cmUnpkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
2129 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
2131 #if (ERRCLASS & ERRCLS_ADD_RES)
2132 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2133 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2134 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2135 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2140 return ((*func)(pst, spId, transId, kdfReqInfo));
2147 * @brief Configuration Request from RRC to PHY for
2148 * cell or dedicated configuration.
2152 * Function: cmUnpkCtfCfgReq
2154 * @param[in] Pst* pst
2155 * @param[in] SpId spId
2156 * @param[in] CtfCfgTransId transId
2157 * @param[in] CtfCfgReqInfo* cfgReqInfo
2169 CtfCfgTransId transId;
2170 CtfCfgReqInfo *cfgReqInfo = NULLP;
2173 if (SUnpkS16(&spId, mBuf) != ROK) {
2175 #if (ERRCLASS & ERRCLS_ADD_RES)
2176 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2177 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2178 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2179 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2183 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2185 #if (ERRCLASS & ERRCLS_ADD_RES)
2186 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2187 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2188 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2189 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2193 if (pst->selector != ODU_SELECTOR_LWLC) {
2194 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&cfgReqInfo, sizeof(CtfCfgReqInfo))) != ROK) {
2195 #if (ERRCLASS & ERRCLS_ADD_RES)
2196 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2197 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2198 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2199 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2205 if (pst->selector == ODU_SELECTOR_LWLC) {
2206 if (oduUnpackPointer((PTR *)&cfgReqInfo, mBuf) != ROK) {
2211 else if (pst->selector == ODU_SELECTOR_LC)
2212 if (cmUnpkCtfCfgReqInfo(pst,cfgReqInfo, mBuf) != ROK) {
2213 cmRelCtfCfgReq(pst, cfgReqInfo);
2215 #if (ERRCLASS & ERRCLS_ADD_RES)
2216 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2217 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2218 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2219 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2224 return ((*func)(pst, spId, transId, cfgReqInfo));
2227 #ifdef TENB_AS_SECURITY
2228 /***********************************************************
2230 * Func: cmPkCtfKenbCfgInfo
2233 * Desc: Key derivation funtion Input Information
2234 * @details This funtion packs the the CtfKenbCfgInfo structure
2235 * which contains the eNodeB key and Algorithm Type for
2236 * deriving AS security keys.
2245 **********************************************************/
2246 S16 cmPkCtfNhKeyCfmInfo
2248 CtfNhKeyCfmInfo *param,
2255 for(idx=31;idx>=0;idx--)
2257 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
2262 /***********************************************************
2264 * Func: cmPkCtfKenbCfgInfo
2267 * Desc: Key derivation funtion Input Information
2268 * @details This funtion packs the the CtfKenbCfgInfo structure
2269 * which contains the eNodeB key and Algorithm Type for
2270 * deriving AS security keys.
2279 **********************************************************/
2280 S16 cmPkCtfKenbStarCfmInfo
2282 CtfKenbStarCfmInfo *param,
2290 for(idx=31;idx>=0;idx--)
2292 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
2298 /***********************************************************
2300 * Func: cmPkCtfKenbCfgInfo
2303 * Desc: Key derivation funtion Input Information
2304 * @details This funtion packs the the CtfKenbCfgInfo structure
2305 * which contains the eNodeB key and Algorithm Type for
2306 * deriving AS security keys.
2315 **********************************************************/
2316 S16 cmPkCtfAskeyCfmInfo
2318 CtfAskeyCfmInfo *param,
2325 for(idx=15;idx>=0;idx--)
2327 CMCHKPK(oduUnpackUInt8,param->cpCiphKey[idx],mBuf);
2329 for(idx=15;idx>=0;idx--)
2331 CMCHKPK(oduUnpackUInt8,param->upCiphKey[idx],mBuf);
2333 for(idx=15;idx>=0;idx--)
2335 CMCHKPK(oduUnpackUInt8,param->intKey[idx],mBuf);
2340 /***********************************************************
2342 * Func: cmPkCtfKenbCfgInfo
2345 * Desc: Key derivation funtion Input Information
2346 * @details This funtion packs the the CtfKenbCfgInfo structure
2347 * which contains the eNodeB key and Algorithm Type for
2348 * deriving AS security keys.
2357 * **********************************************************/
2358 S16 cmPkCtfKdfCfmInfo
2360 CtfKdfCfmInfo *param,
2365 switch (param->keyDerType)
2368 CMCHKPK(cmPkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
2371 CMCHKPK(cmPkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
2374 CMCHKPK(cmPkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
2379 CMCHKPK(oduUnpackUInt8, param->keyDerType, mBuf);
2384 * @brief Configuration Confirm from PHY to RRC.
2388 * Function: cmPkCtfCfgCfm
2390 * @param[in] Pst* pst
2391 * @param[in] SuId suId
2392 * @param[in] CtfCfgTransId transId
2393 * @param[in] uint8_t status
2401 CtfCfgTransId transId,
2402 CtfKdfCfmInfo *kdfCfmInfo,
2406 Buffer *mBuf = NULLP;
2408 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2409 #if (ERRCLASS & ERRCLS_ADD_RES)
2410 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2411 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2412 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2413 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2415 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2419 if (oduUnpackUInt8(status, mBuf) != ROK) {
2420 #if (ERRCLASS & ERRCLS_ADD_RES)
2421 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2422 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2423 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2424 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2426 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2431 if (cmPkCtfKdfCfmInfo(kdfCfmInfo, mBuf) != ROK) {
2432 #if (ERRCLASS & ERRCLS_ADD_RES)
2433 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2434 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2435 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2436 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2438 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2443 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2444 #if (ERRCLASS & ERRCLS_ADD_RES)
2445 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2446 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2447 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2448 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2450 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2455 if (SPkS16(suId, mBuf) != ROK) {
2456 #if (ERRCLASS & ERRCLS_ADD_RES)
2457 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2458 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2459 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2460 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2462 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2467 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo)) != ROK)
2469 #if (ERRCLASS & ERRCLS_ADD_RES)
2470 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2471 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2472 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2473 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
2479 pst->event = (Event) EVTCTFKDFCFM;
2480 return (SPstTsk(pst,mBuf));
2485 * @brief Configuration Confirm from PHY to RRC.
2489 * Function: cmPkCtfCfgCfm
2491 * @param[in] Pst* pst
2492 * @param[in] SuId suId
2493 * @param[in] CtfCfgTransId transId
2494 * @param[in] uint8_t status
2502 CtfCfgTransId transId,
2506 Buffer *mBuf = NULLP;
2508 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2509 #if (ERRCLASS & ERRCLS_ADD_RES)
2510 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2511 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2512 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2513 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2517 if (oduUnpackUInt8(status, mBuf) != ROK) {
2518 #if (ERRCLASS & ERRCLS_ADD_RES)
2519 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2520 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2521 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2522 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2527 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2528 #if (ERRCLASS & ERRCLS_ADD_RES)
2529 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2530 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2531 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2532 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2537 if (SPkS16(suId, mBuf) != ROK) {
2538 #if (ERRCLASS & ERRCLS_ADD_RES)
2539 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2540 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2541 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2542 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2547 pst->event = (Event) EVTCTFCFGCFM;
2548 return (SPstTsk(pst,mBuf));
2552 * @brief ENB STOP Indication from PHY to ENB-APP.
2556 * Function: cmPkCtfEnbStopInd
2558 * @param[in] Pst* pst
2559 * @param[in] SuId suId
2560 * @param[in] CtfCfgTransId transId
2564 S16 cmPkCtfEnbStopInd
2568 CtfCfgTransId transId
2571 Buffer *mBuf = NULLP;
2573 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2574 #if (ERRCLASS & ERRCLS_ADD_RES)
2575 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2576 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2577 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2578 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2582 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2583 #if (ERRCLASS & ERRCLS_ADD_RES)
2584 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2585 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2586 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2587 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2592 if (SPkS16(suId, mBuf) != ROK) {
2593 #if (ERRCLASS & ERRCLS_ADD_RES)
2594 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2595 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2596 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2597 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2602 pst->event = (Event) EVTCTFENBSTOPIND;
2603 return (SPstTsk(pst,mBuf));
2606 #ifdef TENB_AS_SECURITY
2607 /***********************************************************
2609 * Func: cmPkCtfKenbCfgInfo
2612 * Desc: Key derivation funtion Input Information
2613 * @details This funtion packs the the CtfKenbCfgInfo structure
2614 * which contains the eNodeB key and Algorithm Type for
2615 * deriving AS security keys.
2624 **********************************************************/
2625 S16 cmUnpkCtfNhKeyCfmInfo
2627 CtfNhKeyCfmInfo *param,
2634 for(idx=0;idx<32;idx++)
2636 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
2641 /***********************************************************
2643 * Func: cmPkCtfKenbCfgInfo
2646 * Desc: Key derivation funtion Input Information
2647 * @details This funtion packs the the CtfKenbCfgInfo structure
2648 * which contains the eNodeB key and Algorithm Type for
2649 * deriving AS security keys.
2658 **********************************************************/
2659 S16 cmUnpkCtfKenbStarCfmInfo
2661 CtfKenbStarCfmInfo *param,
2668 for(idx=0;idx<32;idx++)
2670 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
2676 /***********************************************************
2678 * Func: cmPkCtfKenbCfgInfo
2681 * Desc: Key derivation funtion Input Information
2682 * @details This funtion packs the the CtfKenbCfgInfo structure
2683 * which contains the eNodeB key and Algorithm Type for
2684 * deriving AS security keys.
2693 **********************************************************/
2694 S16 cmUnpkCtfAskeyCfmInfo
2696 CtfAskeyCfmInfo *param,
2704 for(idx=0;idx<16;idx++)
2706 CMCHKUNPK(oduPackUInt8,¶m->intKey[idx],mBuf);
2708 for(idx=0;idx<16;idx++)
2710 CMCHKUNPK(oduPackUInt8,¶m->upCiphKey[idx],mBuf);
2712 for(idx=0;idx<16;idx++)
2714 CMCHKUNPK(oduPackUInt8,¶m->cpCiphKey[idx],mBuf);
2719 /***********************************************************
2721 * Func: cmPkCtfKenbCfgInfo
2724 * Desc: Key derivation funtion Input Information
2725 * @details This funtion packs the the CtfKenbCfgInfo structure
2726 * which contains the eNodeB key and Algorithm Type for
2727 * deriving AS security keys.
2736 * **********************************************************/
2737 S16 cmUnpkCtfKdfCfmInfo
2739 CtfKdfCfmInfo *param,
2745 CMCHKUNPK(oduPackUInt8, ¶m->keyDerType, mBuf);
2746 switch (param->keyDerType)
2749 CMCHKUNPK(cmUnpkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
2752 CMCHKUNPK(cmUnpkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
2755 CMCHKUNPK(cmUnpkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
2764 * @brief Configuration Confirm from PHY to RRC.
2768 * Function: cmUnpkCtfCfgCfm
2770 * @param[in] Pst* pst
2771 * @param[in] SuId suId
2772 * @param[in] CtfCfgTransId transId
2773 * @param[in] uint8_t status
2785 CtfCfgTransId transId;
2787 CtfKdfCfmInfo kdfCfmInfo;
2790 if (SUnpkS16(&suId, mBuf) != ROK) {
2792 #if (ERRCLASS & ERRCLS_ADD_RES)
2793 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2794 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2795 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2796 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
2800 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2802 #if (ERRCLASS & ERRCLS_ADD_RES)
2803 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2804 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2805 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2806 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
2810 if (cmUnpkCtfKdfCfmInfo(&kdfCfmInfo, mBuf) != ROK) {
2812 #if (ERRCLASS & ERRCLS_ADD_RES)
2813 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2814 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2815 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2816 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
2821 if (oduPackUInt8(&status, mBuf) != ROK) {
2823 #if (ERRCLASS & ERRCLS_ADD_RES)
2824 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2825 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2826 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2827 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
2832 return ((*func)(pst, suId, transId,&kdfCfmInfo, status));
2838 * @brief Configuration Confirm from PHY to RRC.
2842 * Function: cmUnpkCtfCfgCfm
2844 * @param[in] Pst* pst
2845 * @param[in] SuId suId
2846 * @param[in] CtfCfgTransId transId
2847 * @param[in] uint8_t status
2859 CtfCfgTransId transId;
2863 if (SUnpkS16(&suId, mBuf) != ROK) {
2865 #if (ERRCLASS & ERRCLS_ADD_RES)
2866 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2867 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2868 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2869 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
2873 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2875 #if (ERRCLASS & ERRCLS_ADD_RES)
2876 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2877 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2878 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2879 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
2883 if (oduPackUInt8(&status, mBuf) != ROK) {
2885 #if (ERRCLASS & ERRCLS_ADD_RES)
2886 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2887 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2888 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2889 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
2894 return ((*func)(pst, suId, transId, status));
2898 * @brief ENB STOP Indication from PHY to ENB-APP
2902 * Function: cmUnpkCtfEnbStopInd
2904 * @param[in] Pst* pst
2905 * @param[in] SuId suId
2906 * @param[in] CtfCfgTransId transId
2910 S16 cmUnpkCtfEnbStopInd
2918 CtfCfgTransId transId;
2920 if (SUnpkS16(&suId, mBuf) != ROK) {
2922 #if (ERRCLASS & ERRCLS_ADD_RES)
2923 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2924 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2925 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2926 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
2930 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2932 #if (ERRCLASS & ERRCLS_ADD_RES)
2933 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2934 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2935 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2936 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
2941 return ((*func)(pst, suId, transId));
2946 * @brief UE ID Change Request from RRC to PHY.
2950 * Function: cmPkCtfUeIdChgReq
2952 * @param[in] Pst* pst
2953 * @param[in] SpId spId
2954 * @param[in] CtfCfgTransId transId
2955 * @param[in] CtfUeInfo * ueInfo
2956 * @param[in] CtfUeInfo * newUeInfo
2960 S16 cmPkCtfUeIdChgReq
2964 CtfCfgTransId transId,
2966 CtfUeInfo * newUeInfo
2969 Buffer *mBuf = NULLP;
2971 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2972 #if (ERRCLASS & ERRCLS_ADD_RES)
2973 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2974 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2975 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2976 (ErrVal)ECTF033, (ErrVal)0, (Txt*)&"Packing failed");
2978 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
2979 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
2982 if (pst->selector == ODU_SELECTOR_LC) {
2983 if (cmPkCtfUeInfo(newUeInfo, mBuf) != ROK) {
2984 #if (ERRCLASS & ERRCLS_ADD_RES)
2985 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2986 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2987 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2988 (ErrVal)ECTF034, (ErrVal)0, (Txt*)&"Packing failed");
2990 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
2991 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
2996 else if (pst->selector == ODU_SELECTOR_LWLC) {
2997 if (oduPackPointer((PTR)newUeInfo, mBuf) != ROK) {
2998 #if (ERRCLASS & ERRCLS_ADD_RES)
2999 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3000 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3001 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3002 (ErrVal)ECTF035, (ErrVal)0, (Txt*)&"Packing failed");
3004 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3005 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3010 if (pst->selector == ODU_SELECTOR_LC) {
3011 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3012 #if (ERRCLASS & ERRCLS_ADD_RES)
3013 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3014 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3015 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3016 (ErrVal)ECTF036, (ErrVal)0, (Txt*)&"Packing failed");
3018 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3019 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3024 else if (pst->selector == ODU_SELECTOR_LWLC) {
3025 if (oduPackPointer((PTR)ueInfo, mBuf) != ROK) {
3026 #if (ERRCLASS & ERRCLS_ADD_RES)
3027 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3028 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3029 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3030 (ErrVal)ECTF037, (ErrVal)0, (Txt*)&"Packing failed");
3032 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3033 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3038 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3039 #if (ERRCLASS & ERRCLS_ADD_RES)
3040 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3041 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3042 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3043 (ErrVal)ECTF038, (ErrVal)0, (Txt*)&"Packing failed");
3045 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3046 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3050 if (SPkS16(spId, mBuf) != ROK) {
3051 #if (ERRCLASS & ERRCLS_ADD_RES)
3052 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3053 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3054 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3055 (ErrVal)ECTF039, (ErrVal)0, (Txt*)&"Packing failed");
3057 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3058 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3062 if (pst->selector != ODU_SELECTOR_LWLC) {
3063 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3064 #if (ERRCLASS & ERRCLS_ADD_RES)
3065 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3066 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3067 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3068 (ErrVal)ECTF040, (ErrVal)0, (Txt*)&"Packing failed");
3073 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo)) != ROK) {
3074 #if (ERRCLASS & ERRCLS_ADD_RES)
3075 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3076 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3077 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3078 (ErrVal)ECTF041, (ErrVal)0, (Txt*)&"Packing failed");
3084 pst->event = (Event) EVTCTFUEIDCHGREQ;
3085 return (SPstTsk(pst,mBuf));
3090 * @brief UE ID Change Request from RRC to PHY.
3094 * Function: cmUnpkCtfUeIdChgReq
3096 * @param[in] Pst* pst
3097 * @param[in] SpId spId
3098 * @param[in] CtfCfgTransId transId
3099 * @param[in] CtfUeInfo * ueInfo
3100 * @param[in] CtfUeInfo * newUeInfo
3104 S16 cmUnpkCtfUeIdChgReq
3112 CtfCfgTransId transId;
3113 CtfUeInfo *ueInfo = NULLP;
3114 CtfUeInfo *newUeInfo = NULLP;
3117 if (SUnpkS16(&spId, mBuf) != ROK) {
3119 #if (ERRCLASS & ERRCLS_ADD_RES)
3120 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3121 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3122 (Txt*)& __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3123 (ErrVal)ECTF042, (ErrVal)0, (Txt*)&"Packing failed");
3127 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3129 #if (ERRCLASS & ERRCLS_ADD_RES)
3130 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3131 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3132 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3133 (ErrVal)ECTF043, (ErrVal)0, (Txt*)&"Packing failed");
3137 if (pst->selector != ODU_SELECTOR_LWLC) {
3138 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3139 #if (ERRCLASS & ERRCLS_ADD_RES)
3140 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3141 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3142 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3143 (ErrVal)ECTF044, (ErrVal)0, (Txt*)&"Packing failed");
3149 if (pst->selector == ODU_SELECTOR_LWLC) {
3150 if (oduUnpackPointer((PTR *)&ueInfo, mBuf) != ROK) {
3155 else if (pst->selector == ODU_SELECTOR_LC)
3156 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3157 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3159 #if (ERRCLASS & ERRCLS_ADD_RES)
3160 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3161 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3162 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3163 (ErrVal)ECTF045, (ErrVal)0, (Txt*)&"Packing failed");
3167 if (pst->selector != ODU_SELECTOR_LWLC) {
3168 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&newUeInfo, sizeof(CtfUeInfo))) != ROK) {
3169 #if (ERRCLASS & ERRCLS_ADD_RES)
3170 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3171 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3172 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3173 (ErrVal)ECTF046, (ErrVal)0, (Txt*)&"Packing failed");
3176 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3180 if (pst->selector == ODU_SELECTOR_LWLC) {
3181 if (oduUnpackPointer((PTR *)&newUeInfo, mBuf) != ROK) {
3186 else if (pst->selector == ODU_SELECTOR_LC)
3187 if (cmUnpkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3188 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3189 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3191 #if (ERRCLASS & ERRCLS_ADD_RES)
3192 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3193 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3194 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3195 (ErrVal)ECTF047, (ErrVal)0, (Txt*)&"Packing failed");
3200 return ((*func)(pst, spId, transId, ueInfo, newUeInfo));
3205 * @brief UE ID Change Confirm from PHY to RRC.
3209 * Function: cmPkCtfUeIdChgCfm
3211 * @param[in] Pst* pst
3212 * @param[in] SuId suId
3213 * @param[in] CtfCfgTransId transId
3214 * @param[in] CtfUeInfo * ueInfo
3215 * @param[in] uint8_t status
3219 S16 cmPkCtfUeIdChgCfm
3223 CtfCfgTransId transId,
3228 Buffer *mBuf = NULLP;
3230 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3231 #if (ERRCLASS & ERRCLS_ADD_RES)
3232 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3233 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3234 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3235 (ErrVal)ECTF048, (ErrVal)0, (Txt*)&"Packing failed");
3237 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3240 if (cmPkCmStatus(&status, mBuf) != ROK) {
3241 #if (ERRCLASS & ERRCLS_ADD_RES)
3242 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3243 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3244 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3245 (ErrVal)ECTF049, (ErrVal)0, (Txt*)&"Packing failed");
3247 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3251 if (pst->selector == ODU_SELECTOR_LC) {
3252 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3253 #if (ERRCLASS & ERRCLS_ADD_RES)
3254 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3255 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3256 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3257 (ErrVal)ECTF050, (ErrVal)0, (Txt*)&"Packing failed");
3259 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3264 else if (pst->selector == ODU_SELECTOR_LWLC) {
3265 if (oduPackPointer((PTR)ueInfo, mBuf) != ROK) {
3266 #if (ERRCLASS & ERRCLS_ADD_RES)
3267 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3268 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3269 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3270 (ErrVal)ECTF051, (ErrVal)0, (Txt*)&"Packing failed");
3272 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3277 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3278 #if (ERRCLASS & ERRCLS_ADD_RES)
3279 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3280 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3281 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3282 (ErrVal)ECTF052, (ErrVal)0, (Txt*)&"Packing failed");
3284 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3288 if (SPkS16(suId, mBuf) != ROK) {
3289 #if (ERRCLASS & ERRCLS_ADD_RES)
3290 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3291 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3292 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3293 (ErrVal)ECTF053, (ErrVal)0, (Txt*)&"Packing failed");
3295 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3299 if (pst->selector != ODU_SELECTOR_LWLC) {
3300 if (SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3301 #if (ERRCLASS & ERRCLS_ADD_RES)
3302 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3303 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3304 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3305 (ErrVal)ECTF054, (ErrVal)0, (Txt*)&"Packing failed");
3311 pst->event = (Event) EVTCTFUEIDCHGCFM;
3312 return (SPstTsk(pst,mBuf));
3317 * @brief UE ID Change Confirm from PHY to RRC.
3321 * Function: cmUnpkCtfUeIdChgCfm
3323 * @param[in] Pst* pst
3324 * @param[in] SuId suId
3325 * @param[in] CtfCfgTransId transId
3326 * @param[in] CtfUeInfo * ueInfo
3327 * @param[in] uint8_t status
3331 S16 cmUnpkCtfUeIdChgCfm
3339 CtfCfgTransId transId;
3340 CtfUeInfo *ueInfo = NULLP;
3344 if (SUnpkS16(&suId, mBuf) != ROK) {
3346 #if (ERRCLASS & ERRCLS_ADD_RES)
3347 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3348 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3349 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3350 (ErrVal)ECTF055, (ErrVal)0, (Txt*)&"Packing failed");
3354 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3356 #if (ERRCLASS & ERRCLS_ADD_RES)
3357 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3358 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3359 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3360 (ErrVal)ECTF056, (ErrVal)0, (Txt*)&"Packing failed");
3364 if (pst->selector != ODU_SELECTOR_LWLC) {
3365 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3366 #if (ERRCLASS & ERRCLS_ADD_RES)
3367 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3368 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3369 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3370 (ErrVal)ECTF057, (ErrVal)0, (Txt*)&"Packing failed");
3376 if (pst->selector == ODU_SELECTOR_LWLC) {
3377 if (oduUnpackPointer((PTR *)&ueInfo, mBuf) != ROK) {
3382 else if (pst->selector == ODU_SELECTOR_LC)
3383 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3384 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3386 #if (ERRCLASS & ERRCLS_ADD_RES)
3387 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3388 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3389 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3390 (ErrVal)ECTF058, (ErrVal)0, (Txt*)&"Packing failed");
3394 if (cmUnpkCmStatus(&status, mBuf) != ROK) {
3395 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3397 #if (ERRCLASS & ERRCLS_ADD_RES)
3398 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3399 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3400 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3401 (ErrVal)ECTF059, (ErrVal)0, (Txt*)&"Packing failed");
3406 return ((*func)(pst, suId, transId, ueInfo, status));
3410 /***********************************************************
3412 * Func: cmPkCtfCfgTransId
3415 * Desc: Transaction ID between CTF and RRC.
3424 **********************************************************/
3425 S16 cmPkCtfCfgTransId
3427 CtfCfgTransId *param,
3433 for (i=CTF_CFG_TRANSID_SIZE-1; i >= 0; i--) {
3434 CMCHKPK(oduUnpackUInt8, param->trans[i], mBuf);
3441 /***********************************************************
3443 * Func: cmUnpkCtfCfgTransId
3446 * Desc: Transaction ID between CTF and RRC.
3455 **********************************************************/
3456 S16 cmUnpkCtfCfgTransId
3458 CtfCfgTransId *param,
3465 for (i=0; i<CTF_CFG_TRANSID_SIZE; i++) {
3466 CMCHKUNPK(oduPackUInt8, ¶m->trans[i], mBuf);
3473 /***********************************************************
3475 * Func: cmPkCtfUeInfo
3478 * Desc: * UE ID information
3487 **********************************************************/
3495 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
3496 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
3502 /***********************************************************
3504 * Func: cmUnpkCtfUeInfo
3507 * Desc: * UE ID information
3516 **********************************************************/
3524 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
3525 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
3531 /***********************************************************
3533 * Func: cmPkCtfBwCfgInfo
3536 * Desc: Bandwidth Configuration
3537 * @details This structure contains the uplink and downlink bandwidth
3538 * information for configuration at PHY.
3547 **********************************************************/
3548 S16 cmPkCtfBwCfgInfo
3550 CtfBwCfgInfo *param,
3556 CMCHKPK(oduUnpackUInt8, param->eUtraBand, mBuf);
3557 CMCHKPK(oduUnpackUInt32, param->ulBw, mBuf);
3558 CMCHKPK(oduUnpackUInt32, param->dlBw, mBuf);
3559 /* ctf_c_001.main_4: Removed packing of param->pres */
3565 /***********************************************************
3567 * Func: cmUnpkCtfBwCfgInfo
3570 * Desc: Bandwidth Configuration
3571 * @details This structure contains the uplink and downlink bandwidth
3572 * information for configuration at PHY.
3581 **********************************************************/
3582 S16 cmUnpkCtfBwCfgInfo
3584 CtfBwCfgInfo *param,
3591 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
3592 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3593 param->dlBw = (CtfBandwidth)tmpEnum;
3594 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3595 param->ulBw = (CtfBandwidth)tmpEnum;
3596 CMCHKUNPK(oduPackUInt8, ¶m->eUtraBand, mBuf);
3602 /***********************************************************
3604 * Func: cmPkCtfTxSchemeCfg
3607 * Desc: Transmission Scheme Configuration
3608 * @details This structure contains the transmission scheme related information.
3617 **********************************************************/
3618 S16 cmPkCtfTxSchemeCfg
3620 CtfTxSchemeCfg *param,
3625 CMCHKPK(oduUnpackUInt32, param->cycPfx, mBuf);
3626 CMCHKPK(oduUnpackUInt32, param->scSpacing, mBuf);
3627 CMCHKPK(oduUnpackUInt32, param->duplexMode, mBuf);
3628 /* ctf_c_001.main_4: Removed packing of param->pres */
3634 /***********************************************************
3636 * Func: cmUnpkCtfTxSchemeCfg
3639 * Desc: Transmission Scheme Configuration
3640 * @details This structure contains the transmission scheme related information.
3649 **********************************************************/
3650 S16 cmUnpkCtfTxSchemeCfg
3652 CtfTxSchemeCfg *param,
3659 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
3660 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3661 param->duplexMode = (CtfDuplexMode)tmpEnum;
3662 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3663 param->scSpacing = (CtfSCSpacing)tmpEnum;
3664 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3665 param->cycPfx = (CtfCPCfg)tmpEnum;
3671 /***********************************************************
3673 * Func: cmPkCtfAntennaCfgInfo
3676 * Desc: Antenna Ports configuration
3677 * @details This structure contains the antenna configuration information for
3678 * configuration at PHY.
3687 **********************************************************/
3688 S16 cmPkCtfAntennaCfgInfo
3690 CtfAntennaCfgInfo *param,
3695 CMCHKPK(oduUnpackUInt32, param->antPortsCnt, mBuf);
3701 /***********************************************************
3703 * Func: cmUnpkCtfAntennaCfgInfo
3706 * Desc: Antenna Ports configuration
3707 * @details This structure contains the antenna configuration information for
3708 * configuration at PHY.
3717 **********************************************************/
3718 S16 cmUnpkCtfAntennaCfgInfo
3720 CtfAntennaCfgInfo *param,
3726 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3727 param->antPortsCnt = (CtfAntennaPortsCount)tmpEnum;
3733 /***********************************************************
3735 * Func: cmPkCtfPrachCfgInfo
3738 * Desc: PRACH configuration
3739 * @details This structure contains the configuration information for PRACH at PHY.
3740 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
3741 * sequences.[Ref: 36.211, 5.7.2]
3742 * -# PRACH preamble format is derived from PRACH Configuration Index.
3743 * [Ref: 36.211, Table 5.7.1-2]
3744 * -# PrachFreqOffset is the first physical resource block allocated to
3745 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
3746 * [Ref: 36.211, 5.7.1]
3755 **********************************************************/
3756 S16 cmPkCtfPrachCfgInfo
3758 CtfPrachCfgInfo *param,
3763 /*ctf_c_001.main_1*/
3764 if(param->pres != FALSE)
3766 CMCHKPK(oduUnpackUInt8, param->prachFreqOffset, mBuf);
3767 CMCHKPK(oduUnpackUInt8, param->highSpeedFlag, mBuf);
3768 CMCHKPK(oduUnpackUInt8, param->zeroCorrelationZoneCfg, mBuf);
3769 CMCHKPK(oduUnpackUInt8, param->prachCfgIndex, mBuf);
3770 CMCHKPK(oduUnpackUInt16, param->rootSequenceIndex, mBuf);
3772 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
3778 /***********************************************************
3780 * Func: cmUnpkCtfPrachCfgInfo
3783 * Desc: PRACH configuration
3784 * @details This structure contains the configuration information for PRACH at PHY.
3785 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
3786 * sequences.[Ref: 36.211, 5.7.2]
3787 * -# PRACH preamble format is derived from PRACH Configuration Index.
3788 * [Ref: 36.211, Table 5.7.1-2]
3789 * -# PrachFreqOffset is the first physical resource block allocated to
3790 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
3791 * [Ref: 36.211, 5.7.1]
3800 **********************************************************/
3801 S16 cmUnpkCtfPrachCfgInfo
3803 CtfPrachCfgInfo *param,
3808 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
3809 /*ctf_c_001.main_1*/
3810 if(param->pres != FALSE)
3812 CMCHKUNPK(oduPackUInt16, ¶m->rootSequenceIndex, mBuf);
3813 CMCHKUNPK(oduPackUInt8, ¶m->prachCfgIndex, mBuf);
3814 CMCHKUNPK(oduPackUInt8, ¶m->zeroCorrelationZoneCfg, mBuf);
3815 CMCHKUNPK(oduPackUInt8, ¶m->highSpeedFlag, mBuf);
3816 CMCHKUNPK(oduPackUInt8, ¶m->prachFreqOffset, mBuf);
3823 /***********************************************************
3825 * Func: cmPkCtfPdschCfgInfo
3828 * Desc: PDSCH configuration
3829 * @details This structure contains the PDSCH configuration information for
3830 * configuration at PHY.
3839 **********************************************************/
3840 S16 cmPkCtfPdschCfgInfo
3842 CtfPdschCfgInfo *param,
3847 /*ctf_c_001.main_1*/
3848 if(param->pres != FALSE)
3850 CMCHKPK(oduUnpackUInt8, param->p_b, mBuf);
3851 CMCHKPK(SPkS16, param->refSigPwr, mBuf);
3853 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
3859 /***********************************************************
3861 * Func: cmUnpkCtfPdschCfgInfo
3864 * Desc: PDSCH configuration
3865 * @details This structure contains the PDSCH configuration information for
3866 * configuration at PHY.
3875 **********************************************************/
3876 S16 cmUnpkCtfPdschCfgInfo
3878 CtfPdschCfgInfo *param,
3883 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
3884 /*ctf_c_001.main_1*/
3885 if(param->pres != FALSE)
3887 CMCHKUNPK(SUnpkS16, ¶m->refSigPwr, mBuf);
3888 CMCHKUNPK(oduPackUInt8, ¶m->p_b, mBuf);
3895 /***********************************************************
3897 * Func: cmPkCtfPuschCfgBasic
3900 * Desc: Basic PUSCH configuration
3901 * @details This structure contains the basic PUSCH configuration information for
3902 * configuration at PHY.
3911 **********************************************************/
3912 S16 cmPkCtfPuschCfgBasic
3914 CtfPuschCfgBasic *param,
3919 CMCHKPK(oduUnpackUInt8, param->enable64QAM, mBuf);
3920 CMCHKPK(oduUnpackUInt8, param->hoppingOffset, mBuf);
3921 CMCHKPK(oduUnpackUInt32, param->hoppingMode, mBuf);
3922 CMCHKPK(oduUnpackUInt8, param->noOfsubBands, mBuf);
3928 /***********************************************************
3930 * Func: cmUnpkCtfPuschCfgBasic
3933 * Desc: Basic PUSCH configuration
3934 * @details This structure contains the basic PUSCH configuration information for
3935 * configuration at PHY.
3944 **********************************************************/
3945 S16 cmUnpkCtfPuschCfgBasic
3947 CtfPuschCfgBasic *param,
3953 CMCHKUNPK(oduPackUInt8, ¶m->noOfsubBands, mBuf);
3954 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
3955 param->hoppingMode = (CtfPuschHoppingMode)tmpEnum;
3956 CMCHKUNPK(oduPackUInt8, ¶m->hoppingOffset, mBuf);
3957 CMCHKUNPK(oduPackUInt8, ¶m->enable64QAM, mBuf);
3963 /***********************************************************
3965 * Func: cmPkCtfPuschUlRS
3968 * Desc: PUSCH Uplink Reference Signals configuration
3969 * @details This structure contains the PUSCH configuration information for
3970 * uplink reference signals configuration at PHY.
3979 **********************************************************/
3980 S16 cmPkCtfPuschUlRS
3982 CtfPuschUlRS *param,
3987 CMCHKPK(oduUnpackUInt8, param->cycShift, mBuf);
3988 CMCHKPK(oduUnpackUInt8, param->grpNum, mBuf);
3989 CMCHKPK(oduUnpackUInt8, param->seqHopEnabled, mBuf);
3990 CMCHKPK(oduUnpackUInt8, param->grpHopEnabled, mBuf);
3996 /***********************************************************
3998 * Func: cmUnpkCtfPuschUlRS
4001 * Desc: PUSCH Uplink Reference Signals configuration
4002 * @details This structure contains the PUSCH configuration information for
4003 * uplink reference signals configuration at PHY.
4012 **********************************************************/
4013 S16 cmUnpkCtfPuschUlRS
4015 CtfPuschUlRS *param,
4021 CMCHKUNPK(oduPackUInt8, ¶m->grpHopEnabled, mBuf);
4022 CMCHKUNPK(oduPackUInt8, ¶m->seqHopEnabled, mBuf);
4023 CMCHKUNPK(oduPackUInt8, ¶m->grpNum, mBuf);
4024 CMCHKUNPK(oduPackUInt8, ¶m->cycShift, mBuf);
4030 /***********************************************************
4032 * Func: cmPkCtfPuschCfgInfo
4035 * Desc: PUSCH configuration
4036 * @details This structure contains the information for PUSCH
4037 * configuration at PHY.
4046 **********************************************************/
4047 S16 cmPkCtfPuschCfgInfo
4049 CtfPuschCfgInfo *param,
4054 /*ctf_c_001.main_1*/
4055 if(param->pres != FALSE)
4057 CMCHKPK(cmPkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4058 CMCHKPK(cmPkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4060 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4066 /***********************************************************
4068 * Func: cmUnpkCtfPuschCfgInfo
4071 * Desc: PUSCH configuration
4072 * @details This structure contains the information for PUSCH
4073 * configuration at PHY.
4082 **********************************************************/
4083 S16 cmUnpkCtfPuschCfgInfo
4085 CtfPuschCfgInfo *param,
4090 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4091 /*ctf_c_001.main_1*/
4092 if(param->pres != FALSE)
4094 CMCHKUNPK(cmUnpkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4095 CMCHKUNPK(cmUnpkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4102 /***********************************************************
4104 * Func: cmPkCtfPhichCfgInfo
4107 * Desc: PHICH configuration
4108 * @details This structure contains the duration and resource information for
4109 * PHICH configuration at PHY.
4118 **********************************************************/
4119 S16 cmPkCtfPhichCfgInfo
4121 CtfPhichCfgInfo *param,
4126 /*ctf_c_001.main_1*/
4127 if(param->pres != FALSE)
4129 CMCHKPK(oduUnpackUInt32, param->resource, mBuf);
4130 CMCHKPK(oduUnpackUInt32, param->duration, mBuf);
4132 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4138 /***********************************************************
4140 * Func: cmUnpkCtfPhichCfgInfo
4143 * Desc: PHICH configuration
4144 * @details This structure contains the duration and resource information for
4145 * PHICH configuration at PHY.
4154 **********************************************************/
4155 S16 cmUnpkCtfPhichCfgInfo
4157 CtfPhichCfgInfo *param,
4163 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4164 /*ctf_c_001.main_1*/
4165 if(param->pres != FALSE)
4167 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4168 param->duration = (CtfPhichDuration)tmpEnum;
4169 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4170 param->resource = (CtfPhichResource)tmpEnum;
4177 /***********************************************************
4179 * Func: cmPkCtfPucchCfgInfo
4182 * Desc: PUCCH configuration
4183 * @details This structure contains the information for PUCCH
4184 * configuration at PHY.
4193 **********************************************************/
4194 S16 cmPkCtfPucchCfgInfo
4196 CtfPucchCfgInfo *param,
4202 /*ctf_c_001.main_1*/
4203 if(param->pres != FALSE)
4205 CMCHKPK(oduUnpackUInt32, param->deltaShift, mBuf);
4206 CMCHKPK(oduUnpackUInt16, param->n1PUCCH, mBuf);
4207 CMCHKPK(oduUnpackUInt8, param->nCS, mBuf);
4208 CMCHKPK(oduUnpackUInt8, param->nRB, mBuf);
4210 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4216 /***********************************************************
4218 * Func: cmUnpkCtfPucchCfgInfo
4221 * Desc: PUCCH configuration
4222 * @details This structure contains the information for PUCCH
4223 * configuration at PHY.
4232 **********************************************************/
4233 S16 cmUnpkCtfPucchCfgInfo
4235 CtfPucchCfgInfo *param,
4241 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4242 /*ctf_c_001.main_1*/
4243 if(param->pres != FALSE)
4245 CMCHKUNPK(oduPackUInt8, ¶m->nRB, mBuf);
4246 CMCHKUNPK(oduPackUInt8, ¶m->nCS, mBuf);
4247 CMCHKUNPK(oduPackUInt16, ¶m->n1PUCCH, mBuf);
4248 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4249 param->deltaShift = (CtfPucchDeltaShift)tmpEnum;
4256 /***********************************************************
4258 * Func: cmPkCtfSrsUlCfgInfo
4261 * Desc: SRS uplink configuration
4262 * @details This structure contains the information for setting-up/release
4263 * of uplink SRS configuration at PHY.
4272 **********************************************************/
4273 S16 cmPkCtfSrsUlCfgInfo
4275 CtfSrsUlCfgInfo *param,
4280 /*ctf_c_001.main_1*/
4281 if(param->pres != FALSE)
4283 CMCHKPK(oduUnpackUInt8, param->srsSetup.srsMaxUpPts, mBuf);
4284 CMCHKPK(oduUnpackUInt8, param->srsSetup.srsANSimultTx, mBuf);
4285 CMCHKPK(oduUnpackUInt8, param->srsSetup.sfCfg, mBuf);
4286 CMCHKPK(oduUnpackUInt8, param->srsSetup.srsBw, mBuf);
4287 CMCHKPK(oduUnpackUInt8, param->srsCfgType, mBuf);
4289 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4295 /***********************************************************
4297 * Func: cmUnpkCtfSrsUlCfgInfo
4300 * Desc: SRS uplink configuration
4301 * @details This structure contains the information for setting-up/release
4302 * of uplink SRS configuration at PHY.
4311 **********************************************************/
4312 S16 cmUnpkCtfSrsUlCfgInfo
4314 CtfSrsUlCfgInfo *param,
4319 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4320 /*ctf_c_001.main_1*/
4321 if(param->pres != FALSE)
4323 CMCHKUNPK(oduPackUInt8, ¶m->srsCfgType, mBuf);
4324 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.srsBw, mBuf);
4325 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.sfCfg, mBuf);
4326 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.srsANSimultTx, mBuf);
4327 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.srsMaxUpPts, mBuf);
4334 /***********************************************************
4336 * Func: cmPkCtfTddSfCfgInfo
4339 * Desc: Subframe Configuration for TDD mode.
4340 * @details This structure contains the information for setting-up
4341 * the subframe for TDD mode at PHY.
4350 **********************************************************/
4351 S16 cmPkCtfTddSfCfgInfo
4353 CtfTddSfCfgInfo *param,
4358 /*ctf_c_001.main_1*/
4359 if(param->pres != FALSE)
4361 CMCHKPK(oduUnpackUInt8, param->spclSfPatterns, mBuf);
4362 CMCHKPK(oduUnpackUInt8, param->sfAssignment, mBuf);
4364 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4368 /* ctf_c_001.main_4: Added support for vendor specific parameters */
4370 /***********************************************************
4372 * Func: cmPkCtfVendorSpecParams
4375 * Desc: Vendor Specific Parameter configuration
4376 * @details This structure contains the Parameters which is spaciftc to
4386 **********************************************************/
4387 S16 cmPkCtfVendorSpecParams
4389 CtfVendorSpecific *param,
4394 if( param->buffLen != 0) {
4395 SAddPreMsgMultInOrder(param->paramBuffer,param->buffLen,mBuf);
4397 CMCHKPK(oduUnpackUInt16,param->buffLen,mBuf);
4402 /***********************************************************
4404 * Func: cmUnpkCtfVendorSpecParams
4407 * Desc: Vendor Specific Parameter configuration
4408 * @details This structure contains the Parameters which is spaciftc to
4418 **********************************************************/
4419 S16 cmUnpkCtfVendorSpecParams
4422 CtfVendorSpecific *param,
4427 CMCHKUNPK(oduPackUInt16, ¶m->buffLen, mBuf);
4429 if(param->buffLen != 0) {
4430 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)¶m->paramBuffer, param->buffLen)) != ROK) {
4431 #if (ERRCLASS & ERRCLS_ADD_RES)
4432 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
4433 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
4434 (ErrVal)ECTF060, (ErrVal)0, (Txt*)&"Unpacking failed");
4438 SRemPreMsgMult(param->paramBuffer, param->buffLen,mBuf) ;
4441 param->paramBuffer = NULLP ;
4448 /***********************************************************
4450 * Func: cmUnpkCtfTddSfCfgInfo
4453 * Desc: Subframe Configuration for TDD mode.
4454 * @details This structure contains the information for setting-up
4455 * the subframe for TDD mode at PHY.
4464 **********************************************************/
4465 S16 cmUnpkCtfTddSfCfgInfo
4467 CtfTddSfCfgInfo *param,
4472 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4473 /*ctf_c_001.main_1*/
4474 if(param->pres != FALSE)
4476 CMCHKUNPK(oduPackUInt8, ¶m->sfAssignment, mBuf);
4477 CMCHKUNPK(oduPackUInt8, ¶m->spclSfPatterns, mBuf);
4481 /***********************************************************
4483 * Func: cmPkCtfUnLicnsdCellParam
4486 * Desc: Packing unlicensed SDL cell specific parameter
4495 **********************************************************/
4496 static S16 cmPkCtfUnLicnsdCellParam
4498 CtfUnLicnsdCfgInfo *param,
4505 CMCHKPK(SPkS32, param->txPowerLimit, mBuf);
4506 CMCHKPK(oduUnpackUInt8, param->coExistMethod, mBuf);
4507 CMCHKPK(oduUnpackUInt8, param->lteOnPeriod, mBuf);
4508 CMCHKPK(oduUnpackUInt8, param->ccaMethod, mBuf);
4509 CMCHKPK(oduUnpackUInt8, param->adaptiveTx, mBuf);
4510 CMCHKPK(oduUnpackUInt16, param->transPeriod, mBuf);
4511 CMCHKPK(oduUnpackUInt16, param->listenPrd, mBuf);
4512 CMCHKPK(SPkS16, param->energyTh, mBuf);
4513 CMCHKPK(oduUnpackUInt16, param->scanTimePrd, mBuf);
4514 CMCHKPK(oduUnpackUInt16, param->activityTh, mBuf);
4516 for(idx = 0; idx < param->numFreq; idx++)
4518 CMCHKPK(oduUnpackUInt32, param->earfcn[idx], mBuf);
4521 CMCHKPK(oduUnpackUInt8, param->numFreq, mBuf);
4526 /***********************************************************
4528 * Func: cmPkCtfCellCfgInfo
4531 * Desc: Cell Configuration Information
4532 * @details This structure contains the information for setting-up
4533 * of a cell and its associated resources at PHY.
4542 **********************************************************/
4543 S16 cmPkCtfCellCfgInfo
4545 CtfCellCfgInfo *param,
4554 for (i = CTF_MAX_CE_LEVEL-1; i >= 0; i--) {
4555 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
4556 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].lastPreamble, mBuf);
4557 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].firstPreamble, mBuf);
4559 CMCHKPK(oduUnpackUInt8, param->mPdcchStart, mBuf);
4560 CMCHKPK(oduUnpackUInt8, param->catMenabled, mBuf);
4562 if(param->unLicnsdCfgPres)
4564 DU_LOG("\nDEBUG --> pverma param->unLicnsdCfgPres cm/ctf -->%d\n",param->unLicnsdCfgPres);
4565 CMCHKPK(cmPkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
4567 CMCHKPK(oduUnpackUInt8, param->unLicnsdCfgPres, mBuf);
4568 /*Added for rgu dynamic delta*/
4569 CMCHKPK(oduUnpackUInt8, param->numDlUePerTti, mBuf);
4570 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
4571 CMCHKPK(oduUnpackUInt16, param->ulEarfcn, mBuf);
4572 CMCHKPK(oduUnpackUInt16, param->dlEarfcn, mBuf);
4573 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
4574 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
4575 /* Packing PHY configuration parameters */
4576 CMCHKPK(oduUnpackUInt32, param->period, mBuf);
4577 CMCHKPK(oduUnpackUInt32, param->counter, mBuf);
4578 CMCHKPK(oduUnpackUInt16, param->opMode, mBuf);
4580 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
4581 CMCHKPK(oduUnpackUInt8, param->rachSrRepModePres, mBuf);
4582 CMCHKPK(oduUnpackUInt16, param->rachSrRepMode, mBuf);
4584 CMCHKPK(oduUnpackUInt8, param->dataRepModePres, mBuf);
4585 CMCHKPK(oduUnpackUInt16, param->dataRepMode, mBuf);
4587 CMCHKPK(oduUnpackUInt8, param->phySyncModePres, mBuf);
4588 CMCHKPK(oduUnpackUInt16, param->phySyncMode, mBuf);
4590 CMCHKPK(oduUnpackUInt8, param->rxAntennaPortsPres, mBuf);
4591 CMCHKPK(oduUnpackUInt16, param->rxAntennaPorts, mBuf);
4593 CMCHKPK(oduUnpackUInt8, param->txAntennaPortsPres, mBuf);
4594 CMCHKPK(oduUnpackUInt16, param->txAntennaPorts, mBuf);
4596 CMCHKPK(oduUnpackUInt8, param->pucchProbDtxAckPres, mBuf);
4597 CMCHKPK(oduUnpackUInt16, param->pucchProbDtxAck, mBuf);
4599 CMCHKPK(oduUnpackUInt8, param->puschProbDtxAckPres, mBuf);
4600 CMCHKPK(oduUnpackUInt16, param->puschProbDtxAck, mBuf);
4602 CMCHKPK(oduUnpackUInt8, param->srsDopEstFactorPres, mBuf);
4603 CMCHKPK(oduUnpackUInt16, param->srsDopEstFactor, mBuf);
4605 CMCHKPK(oduUnpackUInt8, param->prachPkRatio0Pres, mBuf);
4606 CMCHKPK(oduUnpackUInt16, param->prachPkRatio0, mBuf);
4608 CMCHKPK(oduUnpackUInt8, param->prachPkRatio4Pres, mBuf);
4609 CMCHKPK(oduUnpackUInt16, param->prachPkRatio4, mBuf);
4611 CMCHKPK(oduUnpackUInt8, param->pucchNoiseGammaPres, mBuf);
4612 CMCHKPK(oduUnpackUInt16, param->pucchNoiseGamma, mBuf);
4614 CMCHKPK(oduUnpackUInt8, param->extWinMarginPres, mBuf);
4615 CMCHKPK(oduUnpackUInt16, param->extWinMargin, mBuf);
4617 CMCHKPK(oduUnpackUInt8, param->dciPowOsPres, mBuf);
4618 CMCHKPK(oduUnpackUInt16, param->dciPowOs, mBuf);
4620 CMCHKPK(oduUnpackUInt8, param->cfiPowOsPres, mBuf);
4621 CMCHKPK(oduUnpackUInt16, param->cfiPowOs, mBuf);
4623 CMCHKPK(oduUnpackUInt8, param->syncSigPowOsPres, mBuf);
4624 CMCHKPK(oduUnpackUInt16, param->syncSigPowOs, mBuf);
4626 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
4627 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
4628 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
4629 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
4630 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
4631 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
4632 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
4633 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
4634 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
4635 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
4636 CMCHKPK(oduUnpackUInt8, param->physCellId, mBuf);
4637 CMCHKPK(oduUnpackUInt8, param->physCellIdPres, mBuf);
4639 CMCHKPK(SPkS16, param->macSapId, mBuf);
4640 CMCHKPK(SPkS16, param->schSapId, mBuf);
4642 CMCHKPK(oduUnpackUInt8, param->cellIdGrpId, mBuf);
4643 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4646 /***********************************************************
4648 * Func: cmUnpkCtfUnLicnsdCellParam
4651 * Desc: Unpacking unLicensed SDL cell specific parameter
4660 **********************************************************/
4661 static S16 cmUnpkCtfUnLicnsdCellParam
4663 CtfUnLicnsdCfgInfo *param,
4669 CMCHKUNPK(oduPackUInt8, ¶m->numFreq, mBuf);
4671 for(idx = 0; idx < param->numFreq; idx++)
4673 CMCHKUNPK(oduPackUInt32, ¶m->earfcn[idx], mBuf);
4676 CMCHKUNPK(oduPackUInt16, ¶m->activityTh, mBuf);
4677 CMCHKUNPK(oduPackUInt16, ¶m->scanTimePrd, mBuf);
4678 CMCHKUNPK(SUnpkS16, ¶m->energyTh, mBuf);
4679 CMCHKUNPK(oduPackUInt16, ¶m->listenPrd, mBuf);
4680 CMCHKUNPK(oduPackUInt16, ¶m->transPeriod, mBuf);
4681 CMCHKUNPK(oduPackUInt8, ¶m->adaptiveTx, mBuf);
4682 CMCHKUNPK(oduPackUInt8, ¶m->ccaMethod, mBuf);
4683 CMCHKUNPK(oduPackUInt8, ¶m->lteOnPeriod, mBuf);
4684 CMCHKUNPK(oduPackUInt8, ¶m->coExistMethod, mBuf);
4685 CMCHKUNPK(SUnpkS32, ¶m->txPowerLimit, mBuf);
4691 /***********************************************************
4693 * Func: cmUnpkCtfCellCfgInfo
4696 * Desc: Cell Configuration Information
4697 * @details This structure contains the information for setting-up
4698 * of a cell and its associated resources at PHY.
4707 **********************************************************/
4708 S16 cmUnpkCtfCellCfgInfo
4710 CtfCellCfgInfo *param,
4718 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
4719 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4720 CMCHKUNPK(oduPackUInt8, ¶m->cellIdGrpId, mBuf);
4722 CMCHKUNPK(SUnpkS16, ¶m->schSapId, mBuf);
4723 CMCHKUNPK(SUnpkS16, ¶m->macSapId, mBuf);
4725 CMCHKUNPK(oduPackUInt8, ¶m->physCellIdPres, mBuf);
4726 CMCHKUNPK(oduPackUInt8, ¶m->physCellId, mBuf);
4727 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
4728 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
4729 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
4730 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
4731 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
4732 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
4733 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
4734 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
4735 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
4736 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
4738 CMCHKUNPK(oduPackUInt16, ¶m->syncSigPowOs, mBuf);
4739 CMCHKUNPK(oduPackUInt8, ¶m->syncSigPowOsPres, mBuf);
4741 CMCHKUNPK(oduPackUInt16, ¶m->cfiPowOs, mBuf);
4742 CMCHKUNPK(oduPackUInt8, ¶m->cfiPowOsPres, mBuf);
4744 CMCHKUNPK(oduPackUInt16, ¶m->dciPowOs, mBuf);
4745 CMCHKUNPK(oduPackUInt8, ¶m->dciPowOsPres, mBuf);
4747 CMCHKUNPK(oduPackUInt16, ¶m->extWinMargin, mBuf);
4748 CMCHKUNPK(oduPackUInt8, ¶m->extWinMarginPres, mBuf);
4750 CMCHKUNPK(oduPackUInt16, ¶m->pucchNoiseGamma, mBuf);
4751 CMCHKUNPK(oduPackUInt8, ¶m->pucchNoiseGammaPres, mBuf);
4753 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio4, mBuf);
4754 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio4Pres, mBuf);
4756 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio0, mBuf);
4757 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio0Pres, mBuf);
4759 CMCHKUNPK(oduPackUInt16, ¶m->srsDopEstFactor, mBuf);
4760 CMCHKUNPK(oduPackUInt8, ¶m->srsDopEstFactorPres, mBuf);
4762 CMCHKUNPK(oduPackUInt16, ¶m->puschProbDtxAck, mBuf);
4763 CMCHKUNPK(oduPackUInt8, ¶m->puschProbDtxAckPres, mBuf);
4765 CMCHKUNPK(oduPackUInt16, ¶m->pucchProbDtxAck, mBuf);
4766 CMCHKUNPK(oduPackUInt8, ¶m->pucchProbDtxAckPres, mBuf);
4768 CMCHKUNPK(oduPackUInt16, ¶m->txAntennaPorts, mBuf);
4769 CMCHKUNPK(oduPackUInt8, ¶m->txAntennaPortsPres, mBuf);
4771 CMCHKUNPK(oduPackUInt16, ¶m->rxAntennaPorts, mBuf);
4772 CMCHKUNPK(oduPackUInt8, ¶m->rxAntennaPortsPres, mBuf);
4774 CMCHKUNPK(oduPackUInt16, ¶m->phySyncMode, mBuf);
4775 CMCHKUNPK(oduPackUInt8, ¶m->phySyncModePres, mBuf);
4777 CMCHKUNPK(oduPackUInt16, ¶m->dataRepMode, mBuf);
4778 CMCHKUNPK(oduPackUInt8, ¶m->dataRepModePres, mBuf);
4780 CMCHKUNPK(oduPackUInt16, ¶m->rachSrRepMode, mBuf);
4781 CMCHKUNPK(oduPackUInt8, ¶m->rachSrRepModePres, mBuf);
4783 /* UnPacking PHY configuration parameters */
4784 CMCHKUNPK(oduPackUInt16, ¶m->opMode, mBuf);
4785 CMCHKUNPK(oduPackUInt32, ¶m->counter, mBuf);
4786 CMCHKUNPK(oduPackUInt32, ¶m->period, mBuf);
4787 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
4788 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
4789 CMCHKUNPK(oduPackUInt16, ¶m->dlEarfcn, mBuf);
4790 CMCHKUNPK(oduPackUInt16, ¶m->ulEarfcn, mBuf);
4791 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
4792 /* Added for rgu dynamic delta change*/
4793 CMCHKUNPK(oduPackUInt8, ¶m->numDlUePerTti, mBuf);
4794 CMCHKUNPK(oduPackUInt8, ¶m->unLicnsdCfgPres, mBuf);
4796 if(param->unLicnsdCfgPres)
4798 DU_LOG("\nDEBUG --> pverma param->unLicnsdCfgPres 2 -->%d \n",param->unLicnsdCfgPres);
4799 CMCHKUNPK(cmUnpkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
4802 CMCHKUNPK(oduPackUInt8, ¶m->catMenabled, mBuf);
4803 CMCHKUNPK(oduPackUInt8, ¶m->mPdcchStart, mBuf);
4805 for (i = 0; i < CTF_MAX_CE_LEVEL; i++) {
4806 CMCHKUNPK(oduPackUInt8, ¶m->ceLevelInfo[i].firstPreamble, mBuf);
4807 CMCHKUNPK(oduPackUInt8, ¶m->ceLevelInfo[i].lastPreamble, mBuf);
4808 CMCHKUNPK(oduPackUInt8, ¶m->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
4816 /* ctf_c_001.main_4: Modified cmPkCtfCellRecfgInfo() to Add support for
4817 * vendor specific parameters */
4818 /***********************************************************
4820 * Func: cmPkCtfCellRecfgInfo
4823 * Desc: Cell Re-configuration Information
4824 * @details This structure contains the information for reconfiguration
4825 * of a cell and its associated resources at PHY.
4834 **********************************************************/
4835 S16 cmPkCtfCellRecfgInfo
4837 CtfCellRecfgInfo *param,
4843 #ifdef ENABLE_API_LOG
4844 CMCHKPK(oduUnpackUInt8, param->enableAPILog, mBuf);
4845 #endif /* ENABLE_API_LOG */
4846 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
4847 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
4848 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
4849 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
4850 CMCHKPK(oduUnpackUInt8, param->rachSrRepModePres, mBuf);
4851 CMCHKPK(oduUnpackUInt16, param->rachSrRepMode, mBuf);
4853 CMCHKPK(oduUnpackUInt8, param->dataRepModePres, mBuf);
4854 CMCHKPK(oduUnpackUInt16, param->dataRepMode, mBuf);
4856 CMCHKPK(oduUnpackUInt8, param->phySyncModePres, mBuf);
4857 CMCHKPK(oduUnpackUInt16, param->phySyncMode, mBuf);
4859 CMCHKPK(oduUnpackUInt8, param->rxAntennaPortsPres, mBuf);
4860 CMCHKPK(oduUnpackUInt16, param->rxAntennaPorts, mBuf);
4862 CMCHKPK(oduUnpackUInt8, param->txAntennaPortsPres, mBuf);
4863 CMCHKPK(oduUnpackUInt16, param->txAntennaPorts, mBuf);
4865 CMCHKPK(oduUnpackUInt8, param->pucchProbDtxAckPres, mBuf);
4866 CMCHKPK(oduUnpackUInt16, param->pucchProbDtxAck, mBuf);
4869 CMCHKPK(oduUnpackUInt8, param->puschProbDtxAckPres, mBuf);
4870 CMCHKPK(oduUnpackUInt16, param->puschProbDtxAck, mBuf);
4872 CMCHKPK(oduUnpackUInt8, param->srsDopEstFactorPres, mBuf);
4873 CMCHKPK(oduUnpackUInt16, param->srsDopEstFactor, mBuf);
4875 CMCHKPK(oduUnpackUInt8, param->prachPkRatio0Pres, mBuf);
4876 CMCHKPK(oduUnpackUInt16, param->prachPkRatio0, mBuf);
4878 CMCHKPK(oduUnpackUInt8, param->prachPkRatio4Pres, mBuf);
4879 CMCHKPK(oduUnpackUInt16, param->prachPkRatio4, mBuf);
4881 CMCHKPK(oduUnpackUInt8, param->pucchNoiseGammaPres, mBuf);
4882 CMCHKPK(oduUnpackUInt16, param->pucchNoiseGamma, mBuf);
4884 CMCHKPK(oduUnpackUInt8, param->extWinMarginPres, mBuf);
4885 CMCHKPK(oduUnpackUInt16, param->extWinMargin, mBuf);
4887 CMCHKPK(oduUnpackUInt8, param->dciPowOsPres, mBuf);
4888 CMCHKPK(oduUnpackUInt16, param->dciPowOs, mBuf);
4890 CMCHKPK(oduUnpackUInt8, param->cfiPowOsPres, mBuf);
4891 CMCHKPK(oduUnpackUInt16, param->cfiPowOs, mBuf);
4893 CMCHKPK(oduUnpackUInt8, param->syncSigPowOsPres, mBuf);
4894 CMCHKPK(oduUnpackUInt16, param->syncSigPowOs, mBuf);
4896 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
4897 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
4898 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
4899 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
4900 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
4901 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
4902 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
4903 CMCHKPK(cmPkLteTimingInfo, ¶m->actvnTime, mBuf);
4905 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
4906 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
4907 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
4908 CMCHKPK(oduUnpackUInt8, param->physCellId, mBuf);
4909 CMCHKPK(oduUnpackUInt8, param->physCellIdPres, mBuf);
4910 CMCHKPK(oduUnpackUInt8, param->cellIdGrpId, mBuf);
4911 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4912 CMCHKPK(oduUnpackUInt32, param->ctfReCfgType, mBuf);
4918 /***********************************************************
4920 * Func: cmUnpkCtfCellRecfgInfo
4923 * Desc: Cell Re-configuration Information
4924 * @details This structure contains the information for reconfiguration
4925 * of a cell and its associated resources at PHY.
4934 **********************************************************/
4935 S16 cmUnpkCtfCellRecfgInfo
4937 CtfCellRecfgInfo *param,
4944 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
4945 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4946 param->ctfReCfgType = (CtfReCfgType)tmpEnum;
4947 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4948 CMCHKUNPK(oduPackUInt8, ¶m->cellIdGrpId, mBuf);
4949 CMCHKUNPK(oduPackUInt8, ¶m->physCellIdPres, mBuf);
4950 CMCHKUNPK(oduPackUInt8, ¶m->physCellId, mBuf);
4951 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
4952 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
4953 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
4955 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvnTime, mBuf);
4956 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
4957 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
4958 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
4959 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
4960 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
4961 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
4962 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
4964 CMCHKUNPK(oduPackUInt16, ¶m->syncSigPowOs, mBuf);
4965 CMCHKUNPK(oduPackUInt8, ¶m->syncSigPowOsPres, mBuf);
4967 CMCHKUNPK(oduPackUInt16, ¶m->cfiPowOs, mBuf);
4968 CMCHKUNPK(oduPackUInt8, ¶m->cfiPowOsPres, mBuf);
4970 CMCHKUNPK(oduPackUInt16, ¶m->dciPowOs, mBuf);
4971 CMCHKUNPK(oduPackUInt8, ¶m->dciPowOsPres, mBuf);
4973 CMCHKUNPK(oduPackUInt16, ¶m->extWinMargin, mBuf);
4974 CMCHKUNPK(oduPackUInt8, ¶m->extWinMarginPres, mBuf);
4976 CMCHKUNPK(oduPackUInt16, ¶m->pucchNoiseGamma, mBuf);
4977 CMCHKUNPK(oduPackUInt8, ¶m->pucchNoiseGammaPres, mBuf);
4979 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio4, mBuf);
4980 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio4Pres, mBuf);
4982 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio0, mBuf);
4983 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio0Pres, mBuf);
4985 CMCHKUNPK(oduPackUInt16, ¶m->srsDopEstFactor, mBuf);
4986 CMCHKUNPK(oduPackUInt8, ¶m->srsDopEstFactorPres, mBuf);
4988 CMCHKUNPK(oduPackUInt16, ¶m->puschProbDtxAck, mBuf);
4989 CMCHKUNPK(oduPackUInt8, ¶m->puschProbDtxAckPres, mBuf);
4991 CMCHKUNPK(oduPackUInt16, ¶m->pucchProbDtxAck, mBuf);
4992 CMCHKUNPK(oduPackUInt8, ¶m->pucchProbDtxAckPres, mBuf);
4994 CMCHKUNPK(oduPackUInt16, ¶m->txAntennaPorts, mBuf);
4995 CMCHKUNPK(oduPackUInt8, ¶m->txAntennaPortsPres, mBuf);
4997 CMCHKUNPK(oduPackUInt16, ¶m->rxAntennaPorts, mBuf);
4998 CMCHKUNPK(oduPackUInt8, ¶m->rxAntennaPortsPres, mBuf);
5000 CMCHKUNPK(oduPackUInt16, ¶m->phySyncMode, mBuf);
5001 CMCHKUNPK(oduPackUInt8, ¶m->phySyncModePres, mBuf);
5003 CMCHKUNPK(oduPackUInt16, ¶m->dataRepMode, mBuf);
5004 CMCHKUNPK(oduPackUInt8, ¶m->dataRepModePres, mBuf);
5006 CMCHKUNPK(oduPackUInt16, ¶m->rachSrRepMode, mBuf);
5007 CMCHKUNPK(oduPackUInt8, ¶m->rachSrRepModePres, mBuf);
5009 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5010 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5011 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5012 DU_LOG("\nDEBUG --> param->pilotSigPwr = %d\nparam->priSigPwr = %d\n param->secSigPwr = %d\n",param->pilotSigPwr,param->priSigPwr,param->secSigPwr);
5013 #ifdef ENABLE_API_LOG
5014 CMCHKUNPK(oduPackUInt8, ¶m->enableAPILog, mBuf);
5015 #endif /* ENABLE_API_LOG */
5021 /***********************************************************
5023 * Func: cmPkCtfDedPdschCfgInfo
5026 * Desc: Dedicated PDSCH Configuration
5027 * @details This structure contains the information for PDSCH configuration
5028 * specific to an UE.
5037 **********************************************************/
5038 S16 cmPkCtfDedPdschCfgInfo
5040 CtfDedPdschCfgInfo *param,
5045 /*ctf_c_001.main_1*/
5046 if(param->pres != FALSE)
5047 CMCHKPK(oduUnpackUInt32, param->pA, mBuf);
5048 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5054 /***********************************************************
5056 * Func: cmUnpkCtfDedPdschCfgInfo
5059 * Desc: Dedicated PDSCH Configuration
5060 * @details This structure contains the information for PDSCH configuration
5061 * specific to an UE.
5070 **********************************************************/
5071 S16 cmUnpkCtfDedPdschCfgInfo
5073 CtfDedPdschCfgInfo *param,
5079 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5080 /*ctf_c_001.main_1*/
5081 if(param->pres != FALSE)
5083 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5084 param->pA = (CtfPdschPaParam)tmpEnum;
5091 /***********************************************************
5093 * Func: cmPkCtfDedPucchCfgInfo
5096 * Desc: Dedicated PUCCH Configuration
5097 * @details This structure contains the information for setting-up/release
5098 * PUCCH configuration specific to an UE.
5107 **********************************************************/
5108 S16 cmPkCtfDedPucchCfgInfo
5110 CtfDedPucchCfgInfo *param,
5116 /*ctf_c_001.main_1*/
5117 if(param->pres != FALSE)
5120 /*ctf_c_001.main_4:115549: packing tddAckNackFBMode and tddAckNackCfgPres */
5121 if (param->tddAckNackCfgPres != FALSE)
5123 CMCHKPK(oduUnpackUInt32, param->tddAckNackFBMode, mBuf);
5126 CMCHKPK(oduUnpackUInt8, param->tddAckNackCfgPres, mBuf);
5127 #endif /* CTF_VER3 */
5128 CMCHKPK(oduUnpackUInt16, param->pucchSetup.n1PUCCHRep, mBuf);
5130 /*ctf_c_001.main_4:115549: packing pucchSetup.repFactPres */
5131 if (param->pucchSetup.repFactPres)
5133 CMCHKPK(oduUnpackUInt32, param->pucchSetup.repFact, mBuf);
5136 CMCHKPK(oduUnpackUInt8, param->pucchSetup.repFactPres, mBuf);
5138 CMCHKPK(oduUnpackUInt32, param->pucchSetup.repFact, mBuf);
5139 #endif /* CTF_VER3 */
5140 CMCHKPK(oduUnpackUInt8, param->dedPucchCfgType, mBuf);
5142 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5148 /***********************************************************
5150 * Func: cmUnpkCtfDedPucchCfgInfo
5153 * Desc: Dedicated PUCCH Configuration
5154 * @details This structure contains the information for setting-up/release
5155 * PUCCH configuration specific to an UE.
5164 **********************************************************/
5165 S16 cmUnpkCtfDedPucchCfgInfo
5167 CtfDedPucchCfgInfo *param,
5173 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5174 /*ctf_c_001.main_1*/
5175 if(param->pres != FALSE)
5177 CMCHKUNPK(oduPackUInt8, ¶m->dedPucchCfgType, mBuf);
5179 /* ctf_c_001.main_4:115549: unpacking pucchSetup.repFactPres */
5180 CMCHKUNPK(oduPackUInt8, ¶m->pucchSetup.repFactPres, mBuf);
5182 if (param->pucchSetup.repFactPres)
5184 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->pucchSetup.repFact, mBuf);
5187 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->pucchSetup.repFact, mBuf);
5188 #endif /*CTF_VER3 */
5189 CMCHKUNPK(oduPackUInt16, ¶m->pucchSetup.n1PUCCHRep, mBuf);
5191 /*ctf_c_001.main_4:115549: unpacking tddAckNackCfgPres and tddAckNackFBMode */
5192 CMCHKUNPK(oduPackUInt8, ¶m->tddAckNackCfgPres, mBuf);
5194 if (param->tddAckNackCfgPres != FALSE)
5196 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->tddAckNackFBMode, mBuf);
5198 #endif /* CTF_VER3 */
5205 /***********************************************************
5207 * Func: cmPkCtfDedPuschCfgInfo
5210 * Desc: Dedicated PUSCH Configuration
5211 * @details This structure contains the information for PUCCH
5212 * configuration specific to an UE.
5221 **********************************************************/
5222 S16 cmPkCtfDedPuschCfgInfo
5224 CtfDedPuschCfgInfo *param,
5229 /*ctf_c_001.main_1*/
5230 if(param->pres != FALSE)
5232 CMCHKPK(oduUnpackUInt8, param->betaOffsetCqiIdx, mBuf);
5233 CMCHKPK(oduUnpackUInt8, param->betaOffsetRiIdx, mBuf);
5234 CMCHKPK(oduUnpackUInt8, param->betaOffsetAckIdx, mBuf);
5236 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5242 /***********************************************************
5244 * Func: cmUnpkCtfDedPuschCfgInfo
5247 * Desc: Dedicated PUSCH Configuration
5248 * @details This structure contains the information for PUCCH
5249 * configuration specific to an UE.
5258 **********************************************************/
5259 S16 cmUnpkCtfDedPuschCfgInfo
5261 CtfDedPuschCfgInfo *param,
5266 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5267 /*ctf_c_001.main_1*/
5268 if(param->pres != FALSE)
5270 CMCHKUNPK(oduPackUInt8, ¶m->betaOffsetAckIdx, mBuf);
5271 CMCHKUNPK(oduPackUInt8, ¶m->betaOffsetRiIdx, mBuf);
5272 CMCHKUNPK(oduPackUInt8, ¶m->betaOffsetCqiIdx, mBuf);
5280 /***********************************************************
5282 * Func: cmPkCtfCqiRptModePeriodic
5285 * Desc: Periodic CQI Report Configuration
5286 * @details This structure contains the information for periodic CQI report
5287 * related configuration specific to an UE.
5296 **********************************************************/
5297 S16 cmPkCtfCqiRptModePeriodic
5299 CtfCqiRptModePeriodic *param,
5304 /* ctf_c_001.main_2: added packning for cqiMask*/
5306 CMCHKPK(oduUnpackUInt32, (uint32_t )param->cqiSetup.cqiMask.cqiMaskSetup, mBuf);
5307 CMCHKPK(oduUnpackUInt8, param->cqiSetup.cqiMask.pres, mBuf);
5308 #endif /* CTF_VER1 */
5309 CMCHKPK(oduUnpackUInt8, param->cqiSetup.simultaneousAckNack, mBuf);
5310 CMCHKPK(oduUnpackUInt16, param->cqiSetup.riCfgIndx, mBuf);
5311 CMCHKPK(oduUnpackUInt8, param->cqiSetup.riCfgPres, mBuf);
5312 CMCHKPK(oduUnpackUInt8, param->cqiSetup.subbandCqi.k, mBuf);
5313 CMCHKPK(oduUnpackUInt8, param->cqiSetup.formatIndicator, mBuf);
5314 CMCHKPK(oduUnpackUInt16, param->cqiSetup.cqiPmiCfgIndx, mBuf);
5315 CMCHKPK(oduUnpackUInt16, param->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
5316 CMCHKPK(oduUnpackUInt8, param->cqiPeriodicCfgType, mBuf);
5322 /***********************************************************
5324 * Func: cmUnpkCtfCqiRptModePeriodic
5327 * Desc: Periodic CQI Report Configuration
5328 * @details This structure contains the information for periodic CQI report
5329 * related configuration specific to an UE.
5338 **********************************************************/
5339 S16 cmUnpkCtfCqiRptModePeriodic
5341 CtfCqiRptModePeriodic *param,
5349 CMCHKUNPK(oduPackUInt8, ¶m->cqiPeriodicCfgType, mBuf);
5350 CMCHKUNPK(oduPackUInt16, ¶m->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
5351 CMCHKUNPK(oduPackUInt16, ¶m->cqiSetup.cqiPmiCfgIndx, mBuf);
5352 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.formatIndicator, mBuf);
5353 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.subbandCqi.k, mBuf);
5354 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.riCfgPres, mBuf);
5355 CMCHKUNPK(oduPackUInt16, ¶m->cqiSetup.riCfgIndx, mBuf);
5356 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.simultaneousAckNack, mBuf);
5357 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
5359 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.cqiMask.pres, mBuf);
5360 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5361 param->cqiSetup.cqiMask.cqiMaskSetup = tmpEnum;
5362 #endif /* CTF_VER1 */
5368 /***********************************************************
5370 * Func: cmPkCtfCqiReportCfgInfo
5373 * Desc: CQI Report Configuration
5374 * @details This structure contains the information for CQI report
5375 * related configuration specific to an UE.
5384 **********************************************************/
5385 S16 cmPkCtfCqiReportCfgInfo
5387 CtfCqiReportCfgInfo *param,
5392 /*ctf_c_001.main_1*/
5393 if(param->pres != FALSE)
5397 * ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
5398 *report configuration in the same message
5400 if(param->reportMode.aPeriodicRpt.pres != FALSE)
5402 CMCHKPK(oduUnpackUInt32, param->reportMode.aPeriodicRpt.aPeriodicRptMode, mBuf);
5404 CMCHKPK(oduUnpackUInt8, param->reportMode.aPeriodicRpt.pres, mBuf);
5406 if(param->reportMode.periodicRpt.pres != FALSE)
5408 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
5410 CMCHKPK(oduUnpackUInt8, param->reportMode.periodicRpt.pres, mBuf);
5412 #else /* CTF_VER2 */
5414 switch(param->reportingMode) {
5415 case CTF_CQI_RPTMODE_PRDIOC:
5416 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
5418 case CTF_CQI_RPTMODE_APRDIOC:
5419 CMCHKPK(oduUnpackUInt32, param->reportMode.aPeriodicRpt, mBuf);
5424 CMCHKPK(oduUnpackUInt8, param->reportingMode, mBuf);
5425 #endif /* CTF_VER2 */
5427 /* ctf_c_001.main_2: added packning for pmiRiRpt*/
5429 CMCHKPK(oduUnpackUInt32, param->pmiRiRpt.pmiRiRptSetup, mBuf);
5430 CMCHKPK(oduUnpackUInt8, param->pmiRiRpt.pres, mBuf);
5431 #endif /* CTF_VER1 */
5434 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5440 /***********************************************************
5442 * Func: cmUnpkCtfCqiReportCfgInfo
5445 * Desc: CQI Report Configuration
5446 * @details This structure contains the information for CQI report
5447 * related configuration specific to an UE.
5456 **********************************************************/
5457 S16 cmUnpkCtfCqiReportCfgInfo
5459 CtfCqiReportCfgInfo *param,
5463 #if defined (CTF_VER1) || defined (CTF_VER2)
5467 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5468 /*ctf_c_001.main_1*/
5469 if(param->pres != FALSE)
5471 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
5473 CMCHKUNPK(oduPackUInt8, ¶m->pmiRiRpt.pres, mBuf);
5474 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5475 param->pmiRiRpt.pmiRiRptSetup = tmpEnum;
5476 #endif /* CTF_VER1 */
5480 *ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
5481 *report configuration in the same message
5483 CMCHKUNPK(oduPackUInt8, ¶m->reportMode.periodicRpt.pres, mBuf)
5484 if(param->reportMode.periodicRpt.pres != FALSE)
5486 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
5489 CMCHKUNPK(oduPackUInt8, ¶m->reportMode.aPeriodicRpt.pres, mBuf)
5490 if(param->reportMode.aPeriodicRpt.pres != FALSE)
5492 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5493 param->reportMode.aPeriodicRpt.aPeriodicRptMode =
5494 (CtfCqiRptModeAperiodic)tmpEnum;
5497 #else /* CTF_VER2 */
5499 CMCHKUNPK(oduPackUInt8, ¶m->reportingMode, mBuf);
5500 switch(param->reportingMode) {
5501 case CTF_CQI_RPTMODE_APRDIOC:
5502 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->reportMode.aPeriodicRpt, mBuf);
5504 case CTF_CQI_RPTMODE_PRDIOC:
5505 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
5510 #endif /* CTF_VER2 */
5517 /***********************************************************
5519 * Func: cmPkCtfDedSrsUlCfgInfo
5522 * Desc: Dedicated Uplink SRS Configuration
5523 * @details This structure contains the information for setting-up/release
5524 * UL SRS configuration specific to an UE.
5533 **********************************************************/
5534 S16 cmPkCtfDedSrsUlCfgInfo
5536 CtfDedSrsUlCfgInfo *param,
5541 /*ctf_c_001.main_1*/
5542 if(param->pres != FALSE)
5544 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.cyclicShift, mBuf);
5545 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.txComb, mBuf);
5546 CMCHKPK(oduUnpackUInt16, param->dedSrsSetup.srsCfgIdx, mBuf);
5547 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.duration, mBuf);
5548 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.freqDmnPos, mBuf);
5549 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.srsHopngBw, mBuf);
5550 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.srsBw, mBuf);
5551 CMCHKPK(oduUnpackUInt8, param->dedSrsUlCfgType, mBuf);
5553 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5559 /***********************************************************
5561 * Func: cmUnpkCtfDedSrsUlCfgInfo
5564 * Desc: Dedicated Uplink SRS Configuration
5565 * @details This structure contains the information for setting-up/release
5566 * UL SRS configuration specific to an UE.
5575 **********************************************************/
5576 S16 cmUnpkCtfDedSrsUlCfgInfo
5578 CtfDedSrsUlCfgInfo *param,
5583 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5584 /*ctf_c_001.main_1*/
5585 if(param->pres != FALSE)
5587 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsUlCfgType, mBuf);
5588 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.srsBw, mBuf);
5589 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.srsHopngBw, mBuf);
5590 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.freqDmnPos, mBuf);
5591 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.duration, mBuf);
5592 CMCHKUNPK(oduPackUInt16, ¶m->dedSrsSetup.srsCfgIdx, mBuf);
5593 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.txComb, mBuf);
5594 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.cyclicShift, mBuf);
5601 /***********************************************************
5603 * Func: cmPkCtfDedSRCfgInfo
5606 * Desc: Dedicated SR Configuration
5607 * @details This structure contains the information for setting-up/release
5608 * SR configuration specific to an UE at PHY.
5617 **********************************************************/
5618 S16 cmPkCtfDedSRCfgInfo
5620 CtfDedSRCfgInfo *param,
5625 /*ctf_c_001.main_1*/
5626 if(param->pres != FALSE)
5628 CMCHKPK(oduUnpackUInt8, param->dedSrSetup.srCfgIdx, mBuf);
5629 CMCHKPK(oduUnpackUInt16, param->dedSrSetup.srPUCCHRi, mBuf);
5630 CMCHKPK(oduUnpackUInt8, param->dedSRCfgType, mBuf);
5632 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5638 /***********************************************************
5640 * Func: cmUnpkCtfDedSRCfgInfo
5643 * Desc: Dedicated SR Configuration
5644 * @details This structure contains the information for setting-up/release
5645 * SR configuration specific to an UE at PHY.
5654 **********************************************************/
5655 S16 cmUnpkCtfDedSRCfgInfo
5657 CtfDedSRCfgInfo *param,
5663 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5664 /*ctf_c_001.main_1*/
5665 if(param->pres != FALSE)
5667 CMCHKUNPK(oduPackUInt8, ¶m->dedSRCfgType, mBuf);
5668 CMCHKUNPK(oduPackUInt16, ¶m->dedSrSetup.srPUCCHRi, mBuf);
5669 CMCHKUNPK(oduPackUInt8, ¶m->dedSrSetup.srCfgIdx, mBuf);
5674 #endif /* TFU_UPGRADE */
5677 /***********************************************************
5679 * Func: cmPkCtfDedAntCfgInfo
5682 * Desc: Dedicated Antenna Configuration
5683 * @details This structure contains the information for antenna related
5684 * configuration specific to an UE at PHY.
5693 **********************************************************/
5694 S16 cmPkCtfDedAntCfgInfo
5696 CtfDedAntCfgInfo *param,
5703 #endif /* CTF_VER2 */
5706 /*ctf_c_001.main_1*/
5707 if(param->pres != FALSE)
5709 CMCHKPK(oduUnpackUInt32, param->ueTxAntSelection.txAntSelect, mBuf);
5710 CMCHKPK(oduUnpackUInt8, param->ueTxAntSelection.cfgType, mBuf);
5711 /* ctf_c_001.main_3 txMode is of type enum and is 32bit length */
5712 CMCHKPK(oduUnpackUInt32, (uint32_t)param->txMode, mBuf);
5715 *ctf_c_001.main_2: Added Packing of CodeBookSubsetRestriction parameter
5717 switch(param->codeBookSubsetRes.ctfCdBkRestType)
5720 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
5725 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
5730 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
5735 for(idx = 0; idx < 8; idx++)
5736 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
5737 n4TxAntTm4[idx], mBuf);
5741 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
5746 CMCHKPK(oduUnpackUInt16, param->codeBookSubsetRes.codeBookSubsetRestn.
5751 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
5756 CMCHKPK(oduUnpackUInt16, param->codeBookSubsetRes.codeBookSubsetRestn.
5763 CMCHKPK(oduUnpackUInt32, param->codeBookSubsetRes.ctfCdBkRestType, mBuf);
5764 #endif /* CTF_VER2 */
5766 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5772 /***********************************************************
5774 * Func: cmUnpkCtfDedAntCfgInfo
5777 * Desc: Dedicated Antenna Configuration
5778 * @details This structure contains the information for antenna related
5779 * configuration specific to an UE at PHY.
5788 **********************************************************/
5789 S16 cmUnpkCtfDedAntCfgInfo
5791 CtfDedAntCfgInfo *param,
5797 #endif /* CTF_VER2 */
5802 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5803 /*ctf_c_001.main_1*/
5804 if(param->pres != FALSE)
5808 * Added Unpacking for CodeBookSubsetRestriction parameter
5810 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5811 param->codeBookSubsetRes.ctfCdBkRestType = (CtfCdBkSubsetRestnType)tmpEnum;
5812 switch(param->codeBookSubsetRes.ctfCdBkRestType)
5815 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5820 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5825 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5830 for(idx = 7; idx >= 0; idx--)
5832 CMCHKUNPK(oduPackUInt8, &(param->codeBookSubsetRes.codeBookSubsetRestn.
5833 n4TxAntTm4[idx]), mBuf);
5838 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5843 CMCHKUNPK(oduPackUInt16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5848 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5853 CMCHKUNPK(oduPackUInt16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
5859 #endif /* CTF_VER2 */
5860 /* ctf_c_001.main_3 Enum is 32bit length */
5861 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5862 param->txMode = (CtfUeTxAntMode)tmpEnum;
5863 CMCHKUNPK(oduPackUInt8, ¶m->ueTxAntSelection.cfgType, mBuf);
5864 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5865 param->ueTxAntSelection.txAntSelect = (CtfUeTxAntSelectType)tmpEnum;
5871 /***********************************************************
5873 * Func: cmPkCtfUeSecCellCfgInfo
5876 * Desc: Secondary Cell Configuration for a UE
5877 * @details This structure contains the information for
5878 * secondary cells for the UE
5886 **********************************************************/
5887 S16 cmPkCtfUeSecCellCfgInfo
5889 CtfUeSecCellCfgInfo *param,
5893 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
5894 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
5898 /***********************************************************
5900 * Func: cmPkCtfSecCellCfgInfo
5903 * Desc: Secondary Cell Configuration for a UE
5904 * @details This structure contains the information for
5905 * secondary cells for the UE
5913 **********************************************************/
5914 S16 cmPkCtfSecCellCfgInfo
5916 CtfSecCellCfgInfo *param,
5922 for(idx = param->numSCells - 1; idx >= 0; idx--)
5924 CMCHKPK(cmPkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[(uint8_t)idx], mBuf);
5926 CMCHKPK(oduUnpackUInt32, param->sCellAction, mBuf);
5927 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
5932 /***********************************************************
5934 * Func: cmUnpkCtfUeSecCellCfgInfo
5937 * Desc: Secondary Cell Configuration for a UE
5938 * @details This structure contains the information for
5939 * secondary cells for the UE
5947 **********************************************************/
5948 S16 cmUnpkCtfUeSecCellCfgInfo
5950 CtfUeSecCellCfgInfo *param,
5954 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
5955 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
5960 /***********************************************************
5962 * Func: cmUnpkCtfSecCellCfgInfo
5965 * Desc: Secondary Cell Configuration for a UE
5966 * @details This structure contains the information for
5967 * secondary cells for the UE
5975 **********************************************************/
5977 S16 cmUnpkCtfSecCellCfgInfo
5979 CtfSecCellCfgInfo *param,
5985 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
5986 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->sCellAction, mBuf);
5987 for(idx = 0 ; idx < param->numSCells; idx++)
5989 CMCHKUNPK(cmUnpkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[idx], mBuf);
5996 /***********************************************************
5998 * Func: cmPkCtfUeCatCfgInfo
6001 * Desc: UE Category Configuration
6002 * @details This structure contains the information for configuring
6003 * the UE category at PHY.
6012 **********************************************************/
6013 S16 cmPkCtfUeCatCfgInfo
6015 CtfUeCatCfgInfo *param,
6021 /*ctf_c_001.main_1*/
6022 if(param->pres != FALSE)
6023 CMCHKPK(oduUnpackUInt32, param->ueCategory, mBuf);
6024 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6030 /***********************************************************
6032 * Func: cmUnpkCtfUeCatCfgInfo
6035 * Desc: UE Category Configuration
6036 * @details This structure contains the information for configuring
6037 * the UE category at PHY.
6046 **********************************************************/
6047 S16 cmUnpkCtfUeCatCfgInfo
6049 CtfUeCatCfgInfo *param,
6055 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6056 /*ctf_c_001.main_1*/
6057 if(param->pres != FALSE)
6058 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->ueCategory, mBuf);
6064 /***********************************************************
6066 * Func: cmPkCtfDedCfgInfo
6069 * Desc: Dedicated Configuration Information
6070 * @details This structure contains the information for configuration
6071 * of UE-specific physical channel resources at PHY.
6080 **********************************************************/
6081 S16 cmPkCtfDedCfgInfo
6083 CtfDedCfgInfo *param,
6089 CMCHKPK(oduUnpackUInt8, param->isEmtcUe, mBuf);
6091 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
6093 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
6094 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
6095 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
6096 #endif /* TFU_UPGRADE */
6097 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
6098 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
6099 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
6100 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
6101 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
6102 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6108 /***********************************************************
6110 * Func: cmUnpkCtfDedCfgInfo
6113 * Desc: Dedicated Configuration Information
6114 * @details This structure contains the information for configuration
6115 * of UE-specific physical channel resources at PHY.
6124 **********************************************************/
6125 S16 cmUnpkCtfDedCfgInfo
6127 CtfDedCfgInfo *param,
6132 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6133 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
6134 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
6135 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
6136 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
6137 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
6139 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
6140 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
6141 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
6142 #endif /* TFU_UPGRADE */
6143 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
6145 CMCHKUNPK(oduPackUInt8, ¶m->isEmtcUe, mBuf);
6152 /***********************************************************
6154 * Func: cmPkCtfDedRecfgInfo
6157 * Desc: Dedicated Re-configuration Information
6158 * @details This structure contains the information for re-configuration
6159 * of UE-specific physical channel resources at PHY.
6168 **********************************************************/
6169 S16 cmPkCtfDedRecfgInfo
6171 CtfDedRecfgInfo *param,
6176 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
6177 /*ctf_c_001.main_1*/
6178 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
6180 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
6181 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
6182 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
6183 #endif /* TFU_UPGRADE */
6184 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
6185 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
6186 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
6187 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
6188 /* ctf_c_001.main_4: ReEst Fix */
6190 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
6192 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
6194 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
6195 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6201 /***********************************************************
6203 * Func: cmUnpkCtfDedRecfgInfo
6206 * Desc: Dedicated Re-configuration Information
6207 * @details This structure contains the information for re-configuration
6208 * of UE-specific physical channel resources at PHY.
6217 **********************************************************/
6218 S16 cmUnpkCtfDedRecfgInfo
6220 CtfDedRecfgInfo *param,
6225 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6226 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
6227 /* ctf_c_001.main_4: ReEst Fix */
6229 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
6231 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
6233 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
6234 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
6235 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
6236 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
6238 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
6239 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
6240 /*ctf_c_001.main_1*/
6241 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
6242 #endif /* TFU_UPGRADE */
6243 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
6245 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
6252 /***********************************************************
6254 * Func: cmPkCtfCellReleaseInfo
6257 * Desc: Cell Release Information
6258 * @details This structure contains the information for release/removal
6259 * of a cell and its assocated resources at PHY.
6268 **********************************************************/
6269 S16 cmPkCtfCellReleaseInfo
6271 CtfCellReleaseInfo *param,
6276 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6282 /***********************************************************
6284 * Func: cmUnpkCtfCellReleaseInfo
6287 * Desc: Cell Release Information
6288 * @details This structure contains the information for release/removal
6289 * of a cell and its assocated resources at PHY.
6298 **********************************************************/
6299 S16 cmUnpkCtfCellReleaseInfo
6301 CtfCellReleaseInfo *param,
6306 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6312 /***********************************************************
6314 * Func: cmPkCtfDedReleaseInfo
6317 * Desc: Dedicated Release Information
6318 * @details This structure contains the information for release/removal
6319 * of dedicated/UE-specific configuration at PHY.
6328 **********************************************************/
6329 S16 cmPkCtfDedReleaseInfo
6331 CtfDedReleaseInfo *param,
6336 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
6337 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
6338 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6344 /***********************************************************
6346 * Func: cmUnpkCtfDedReleaseInfo
6349 * Desc: Dedicated Release Information
6350 * @details This structure contains the information for release/removal
6351 * of dedicated/UE-specific configuration at PHY.
6360 **********************************************************/
6361 S16 cmUnpkCtfDedReleaseInfo
6363 CtfDedReleaseInfo *param,
6368 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6369 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
6370 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
6376 /***********************************************************
6378 * Func: cmPkCtfCfgInfo
6381 * Desc: Configuration Information
6382 * @details This structure contains the information for setting-up
6383 * cell or UE-specific configuration at PHY.
6392 **********************************************************/
6400 switch(param->cfgElem) {
6402 CMCHKPK(cmPkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
6405 CMCHKPK(cmPkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
6410 CMCHKPK(oduUnpackUInt8, param->cfgElem, mBuf);
6416 /***********************************************************
6418 * Func: cmUnpkCtfCfgInfo
6421 * Desc: Configuration Information
6422 * @details This structure contains the information for setting-up
6423 * cell or UE-specific configuration at PHY.
6432 **********************************************************/
6433 S16 cmUnpkCtfCfgInfo
6441 CMCHKUNPK(oduPackUInt8, ¶m->cfgElem, mBuf);
6442 switch(param->cfgElem) {
6444 CMCHKUNPK(cmUnpkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
6447 CMCHKUNPK(cmUnpkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
6457 /***********************************************************
6459 * Func: cmPkCtfReCfgInfo
6462 * Desc: Re-configuration Information
6463 * @details This structure contains the information for re-configuring
6464 * cell or UE-specific configuration at PHY.
6473 **********************************************************/
6474 S16 cmPkCtfReCfgInfo
6476 CtfReCfgInfo *param,
6482 switch(param->cfgElem) {
6484 CMCHKPK(cmPkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
6487 CMCHKPK(cmPkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
6489 /* Starts - Fix for CR ccpu00123185 */
6490 case CTF_TX_PWR_CFG:
6491 CMCHKPK(cmPkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
6493 /* ends - Fix for CR ccpu00123185 */
6495 CMCHKPK(cmPkCtfCellStop, ¶m->u.cellRecfg, mBuf);
6501 CMCHKPK(oduUnpackUInt8, param->cfgElem, mBuf);
6507 /***********************************************************
6509 * Func: cmUnpkCtfReCfgInfo
6512 * Desc: Re-configuration Information
6513 * @details This structure contains the information for re-configuring
6514 * cell or UE-specific configuration at PHY.
6523 **********************************************************/
6524 S16 cmUnpkCtfReCfgInfo
6526 CtfReCfgInfo *param,
6532 CMCHKUNPK(oduPackUInt8, ¶m->cfgElem, mBuf);
6533 switch(param->cfgElem) {
6535 CMCHKUNPK(cmUnpkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
6538 CMCHKUNPK(cmUnpkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
6540 /* Starts - Fix for CR ccpu00123185 */
6541 case CTF_TX_PWR_CFG:
6542 CMCHKUNPK(cmUnpkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
6544 /* ends - Fix for CR ccpu00123185 */
6546 CMCHKUNPK(cmUnpkCtfCellStop, ¶m->u.cellRecfg, mBuf);
6556 /***********************************************************
6558 * Func: cmPkCtfReleaseInfo
6561 * Desc: Release configuration Information
6562 * @details This structure contains the information for releasing
6563 * cell or UE-specific configuration at PHY.
6572 **********************************************************/
6573 S16 cmPkCtfReleaseInfo
6575 CtfReleaseInfo *param,
6581 switch(param->cfgElem) {
6583 CMCHKPK(cmPkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
6586 CMCHKPK(cmPkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
6591 CMCHKPK(oduUnpackUInt8, param->cfgElem, mBuf);
6597 /***********************************************************
6599 * Func: cmUnpkCtfReleaseInfo
6602 * Desc: Release configuration Information
6603 * @details This structure contains the information for releasing
6604 * cell or UE-specific configuration at PHY.
6613 **********************************************************/
6614 S16 cmUnpkCtfReleaseInfo
6616 CtfReleaseInfo *param,
6622 CMCHKUNPK(oduPackUInt8, ¶m->cfgElem, mBuf);
6623 switch(param->cfgElem) {
6625 CMCHKUNPK(cmUnpkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
6628 CMCHKUNPK(cmUnpkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
6638 /***********************************************************
6640 * Func: cmPkCtfCfgReqInfo
6643 * Desc: Configuration Request information
6644 * @details This is the main structure in the Configuration request primitive.
6645 * -# This structure contains the configuration information as given by
6646 * the RRC to configure PHY layer for common/dedicated resources.
6647 * -# It can contain Config/Reconfig/Release.
6648 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
6657 **********************************************************/
6658 S16 cmPkCtfCfgReqInfo
6660 CtfCfgReqInfo *param,
6665 /* ctf_c_001.main_4: Added support for vendor specific parameters */
6667 CMCHKPK(cmPkCtfVendorSpecParams, ¶m->vendorParams, mBuf);
6669 switch(param->cfgType) {
6671 CMCHKPK(cmPkCtfReleaseInfo, ¶m->u.release, mBuf);
6674 CMCHKPK(cmPkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
6677 CMCHKPK(cmPkCtfCfgInfo, ¶m->u.cfg, mBuf);
6682 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
6688 /* ctf_c_001.main_4: Modified cmUnpkCtfCfgReqInfo() to add support
6689 * for vendor specific parameters */
6690 /***********************************************************
6692 * Func: cmUnpkCtfCfgReqInfo
6695 * Desc: Configuration Request information
6696 * @details This is the main structure in the Configuration request primitive.
6697 * -# This structure contains the configuration information as given by
6698 * the RRC to configure PHY layer for common/dedicated resources.
6699 * -# It can contain Config/Reconfig/Release.
6700 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
6709 **********************************************************/
6710 S16 cmUnpkCtfCfgReqInfo
6713 CtfCfgReqInfo *param,
6723 CMCHKUNPK(oduPackUInt8, ¶m->cfgType, mBuf);
6724 switch(param->cfgType) {
6726 CMCHKUNPK(cmUnpkCtfCfgInfo, ¶m->u.cfg, mBuf);
6729 CMCHKUNPK(cmUnpkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
6732 CMCHKUNPK(cmUnpkCtfReleaseInfo, ¶m->u.release, mBuf);
6738 if((retVal = cmUnpkCtfVendorSpecParams(pst, ¶m->vendorParams, mBuf)) != ROK)
6744 /* Starts - Fix for CR ccpu00123185 */
6745 /***********************************************************
6747 * Func: cmPkCtfCellPwrcfgInfo
6750 * Desc: Cell Re-configuration Information
6751 * @details This structure contains the information for reconfiguration of Reference Signal Power
6752 * of a cell and its associated resources at PHY.
6761 **********************************************************/
6762 S16 cmPkCtfCellPwrcfgInfo
6764 CtfCellRecfgInfo *param,
6769 /* Added the pack for newly added reference signal Power*/
6770 CMCHKPK(oduUnpackUInt32, (uint32_t)param->ctfCellStatus, mBuf);
6771 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
6772 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
6773 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
6775 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
6776 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6782 /***********************************************************
6784 * Func: cmUnpkCtfCellPwrcfgInfo
6787 * Desc: Cell Re-configuration Information
6788 * @details This structure contains the information for reconfiguration
6789 * of a cell and its associated resources at PHY.
6798 **********************************************************/
6799 S16 cmUnpkCtfCellPwrcfgInfo
6801 CtfCellRecfgInfo *param,
6806 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
6807 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6809 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
6810 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
6811 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
6812 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
6813 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->ctfCellStatus, mBuf);
6818 /***********************************************************
6820 * Func: cmPkCtfCellStop
6823 * Desc: Cell Re-configuration Information
6824 * @details This structure contains the information for reconfiguration of Reference Signal Power
6825 * of a cell and its associated resources at PHY.
6834 **********************************************************/
6837 CtfCellRecfgInfo *param,
6842 /* Added the pack for newly added reference signal Power*/
6843 CMCHKPK(oduUnpackUInt32, (uint32_t)param->ctfCellStatus, mBuf);
6844 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
6845 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
6846 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
6848 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
6849 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6853 /***********************************************************
6855 * Func: cmUnpkCtfCellStop
6858 * Desc: Cell Re-configuration Information
6859 * @details This structure contains the information for reconfiguration
6860 * of a cell and its associated resources at PHY.
6869 **********************************************************/
6870 S16 cmUnpkCtfCellStop
6872 CtfCellRecfgInfo *param,
6877 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6879 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
6880 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
6881 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
6882 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
6883 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->ctfCellStatus, mBuf);
6888 /* Periodic REM Scan for TPM */
6889 /***********************************************************
6891 * Func: cmPkPerRemScanCellInfo
6894 * Desc: Periodic REM cell search response
6895 * @details This Message contains cell search results.
6904 **********************************************************/
6905 S16 cmPkPerRemScanCellInfo
6907 CtfPeriodicRemCellInfo *param,
6912 CMCHKPK(oduUnpackUInt16,param->pci, mBuf);
6913 CMCHKPK(oduUnpackUInt8, param->rsrp, mBuf);
6914 CMCHKPK(oduUnpackUInt8, param->dlBw, mBuf);
6915 CMCHKPK(oduUnpackUInt8, param->numTx, mBuf);
6920 /***********************************************************
6922 * Func: cmPkCtfPeriodicCellSearchRsp
6925 * Desc: Periodic REM cell search response
6926 * @details This Message contains Periodic REM scan results.
6935 **********************************************************/
6936 S16 cmPkCtfPeriodicCellSearchRsp
6938 CtfPeriodicRemCellSearchRsp *param,
6944 for(idx = param->numCells - 1; idx >=0; idx--)
6946 CMCHKPK(cmPkPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
6948 CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
6954 * @brief Configuration Request from App to CL for
6955 * cnm Init Sync responce
6959 * Function: cmPkCtfPeriodicRemCellSearchRsp
6961 * @param[in] Pst* pst
6962 * @param[in] SpId spId
6963 * @param[in] CtfCfgTransId * transId
6964 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
6968 S16 cmPkCtfPeriodicRemCellSearchRsp
6972 CtfCfgTransId *transId,
6973 CtfPeriodicRemCellSearchRsp *CellCfgRsp
6976 Buffer *mBuf = NULLP;
6978 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
6979 #if (ERRCLASS & ERRCLS_ADD_RES)
6980 /* ctf_c_001.main_3 Compilation warning fix with g++ */
6981 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
6982 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
6983 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
6985 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellCfgRsp,
6986 sizeof(CtfPeriodicRemCellSearchRsp));
6989 if (pst->selector == ODU_SELECTOR_LC) {
6990 if (cmPkCtfPeriodicCellSearchRsp(CellCfgRsp, mBuf) != ROK) {
6991 #if (ERRCLASS & ERRCLS_ADD_RES)
6992 /* ctf_c_001.main_3 Compilation warning fix with g++ */
6993 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
6994 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
6995 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
6997 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellCfgRsp,
6998 sizeof(CtfPeriodicRemCellSearchRsp));
7003 else if (pst->selector == ODU_SELECTOR_LWLC) {
7005 if (oduPackPointer((PTR)CellCfgRsp, mBuf) != ROK) {
7006 #if (ERRCLASS & ERRCLS_ADD_RES)
7007 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7008 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7009 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7010 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
7012 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellCfgRsp,
7013 sizeof(CtfPeriodicRemCellSearchRsp));
7019 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
7020 #if (ERRCLASS & ERRCLS_ADD_RES)
7021 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7022 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7023 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7024 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
7026 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellCfgRsp,
7027 sizeof(CtfPeriodicRemCellSearchRsp));
7031 if (SPkS16(spId, mBuf) != ROK) {
7032 #if (ERRCLASS & ERRCLS_ADD_RES)
7033 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7034 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7035 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7036 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
7038 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellCfgRsp,
7039 sizeof(CtfPeriodicRemCellSearchRsp));
7043 if (pst->selector != ODU_SELECTOR_LWLC) {
7044 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellCfgRsp,
7045 sizeof(CtfPeriodicRemCellSearchRsp));
7047 pst->event = (Event)EVTCTFPREMCELLSRCHRSP;
7048 return (SPstTsk(pst,mBuf));
7051 S16 cmUnpkCtfPerRemScanCellInfo
7053 CtfPeriodicRemCellInfo *param,
7058 CMCHKUNPK(oduPackUInt8, ¶m->numTx, mBuf);
7059 CMCHKUNPK(oduPackUInt8, ¶m->dlBw, mBuf);
7060 CMCHKUNPK(oduPackUInt8, ¶m->rsrp, mBuf);
7061 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
7065 S16 cmUnpkCtfPerRemCellSrch
7067 CtfPeriodicRemCellSearchRsp *param,
7073 CMCHKUNPK(oduPackUInt8, ¶m->numCells, mBuf);
7074 for(idx = 0; idx < (param->numCells); idx++)
7076 CMCHKUNPK(cmUnpkCtfPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
7083 * @brief ENB STOP Indication from PHY to ENB-APP
7087 * Function: cmUnpkPerRemCellSrchRsp
7089 * @param[in] Pst* pst
7090 * @param[in] SuId suId
7091 * @param[in] CtfCfgTransId transId
7095 S16 cmUnpkPerRemCellSrchRsp
7097 CtfPerRemCellSrchRsp func,
7103 CtfCfgTransId transId;
7104 CtfPeriodicRemCellSearchRsp *CellSrchRsp = NULLP;
7106 if (SUnpkS16(&suId, mBuf) != ROK) {
7108 #if (ERRCLASS & ERRCLS_ADD_RES)
7109 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7110 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7111 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7112 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
7116 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
7118 #if (ERRCLASS & ERRCLS_ADD_RES)
7119 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7120 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7121 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7122 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
7126 if (pst->selector != ODU_SELECTOR_LWLC) {
7127 if ((SGetSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data **)&CellSrchRsp,
7128 sizeof(CtfPeriodicRemCellSearchRsp))) != ROK) {
7129 #if (ERRCLASS & ERRCLS_ADD_RES)
7130 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7131 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7132 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7133 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
7139 if (pst->selector == ODU_SELECTOR_LWLC) {
7140 if (oduUnpackPointer((PTR *)&CellSrchRsp, mBuf) != ROK) {
7145 else if (pst->selector == ODU_SELECTOR_LC)
7146 if (cmUnpkCtfPerRemCellSrch(CellSrchRsp, mBuf) != ROK) {
7147 SPutSBufNewForDebug(__FILE__,__FUNCTION__,__LINE__,pst->region, pst->pool, (Data *)CellSrchRsp,
7148 sizeof(CtfPeriodicRemCellSearchRsp));
7150 #if (ERRCLASS & ERRCLS_ADD_RES)
7151 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7152 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7153 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7154 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
7160 return ((*func)(pst, suId, &transId, CellSrchRsp));
7162 /* Periodic REM Scan for TPM End */
7164 /* ends - Fix for CR ccpu00123185 */
7167 /**********************************************************************
7169 **********************************************************************/