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
74 S16 cmPkCtfBndReq(pst, suId, spId)
82 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
83 #if (ERRCLASS & ERRCLS_ADD_RES)
84 /* ctf_c_001.main_3 Compilation warning fix with g++ */
85 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
86 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
87 (ErrVal)ECTF001, (ErrVal)0, (Txt*)&"Packing failed");
91 if (SPkS16(spId, mBuf) != ROK) {
92 #if (ERRCLASS & ERRCLS_ADD_RES)
93 /* ctf_c_001.main_3 Compilation warning fix with g++ */
94 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
95 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
96 (ErrVal)ECTF002, (ErrVal)0, (Txt*)&"Packing failed");
101 if (SPkS16(suId, mBuf) != ROK) {
102 #if (ERRCLASS & ERRCLS_ADD_RES)
103 /* ctf_c_001.main_3 Compilation warning fix with g++ */
104 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
105 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
106 (ErrVal)ECTF003, (ErrVal)0, (Txt*)&"Packing failed");
111 pst->event = (Event) EVTCTFBNDREQ;
112 return (SPstTsk(pst,mBuf));
117 * @brief Request from RRC to PHY to bind the CTF interface SAP.
121 * Function: cmUnpkCtfBndReq
123 * @param[in] Pst* pst
124 * @param[in] SuId suId
125 * @param[in] SpId spId
137 S16 cmUnpkCtfBndReq(func, pst, mBuf)
147 if (SUnpkS16(&suId, mBuf) != ROK) {
149 #if (ERRCLASS & ERRCLS_ADD_RES)
150 /* ctf_c_001.main_3 Compilation warning fix with g++ */
151 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
152 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
153 (ErrVal)ECTF004, (ErrVal)0, (Txt*)&"Packing failed");
157 if (SUnpkS16(&spId, mBuf) != ROK) {
159 #if (ERRCLASS & ERRCLS_ADD_RES)
160 /* ctf_c_001.main_3 Compilation warning fix with g++ */
161 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
162 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
163 (ErrVal)ECTF005, (ErrVal)0, (Txt*)&"Packing failed");
168 return ((*func)(pst, suId, spId));
173 * @brief Confirmation from PHY to RRC for the bind
174 * request for the CTF interface SAP.
178 * Function: cmPkCtfBndCfm
180 * @param[in] Pst* pst
181 * @param[in] SuId suId
182 * @param[in] uint8_t status
194 S16 cmPkCtfBndCfm(pst, suId, status)
200 Buffer *mBuf = NULLP;
202 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
203 #if (ERRCLASS & ERRCLS_ADD_RES)
204 /* ctf_c_001.main_3 Compilation warning fix with g++ */
205 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
206 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
207 (ErrVal)ECTF006, (ErrVal)0, (Txt*)&"Packing failed");
211 if (oduUnpackUInt8(status, mBuf) != ROK) {
212 #if (ERRCLASS & ERRCLS_ADD_RES)
213 /* ctf_c_001.main_3 Compilation warning fix with g++ */
214 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
215 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
216 (ErrVal)ECTF007, (ErrVal)0, (Txt*)&"Packing failed");
221 if (SPkS16(suId, mBuf) != ROK) {
222 #if (ERRCLASS & ERRCLS_ADD_RES)
223 /* ctf_c_001.main_3 Compilation warning fix with g++ */
224 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
225 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
226 (ErrVal)ECTF008, (ErrVal)0, (Txt*)&"Packing failed");
231 pst->event = (Event) EVTCTFBNDCFM;
232 return (SPstTsk(pst,mBuf));
237 * @brief Confirmation from PHY to RRC for the bind
238 * request for the CTF interface SAP.
242 * Function: cmUnpkCtfBndCfm
244 * @param[in] Pst* pst
245 * @param[in] SuId suId
246 * @param[in] uint8_t status
258 S16 cmUnpkCtfBndCfm(func, pst, mBuf)
268 if (SUnpkS16(&suId, mBuf) != ROK) {
270 #if (ERRCLASS & ERRCLS_ADD_RES)
271 /* ctf_c_001.main_3 Compilation warning fix with g++ */
272 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
273 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
274 (ErrVal)ECTF009, (ErrVal)0, (Txt*)&"Packing failed");
278 if (oduPackUInt8(&status, mBuf) != ROK) {
280 #if (ERRCLASS & ERRCLS_ADD_RES)
281 /* ctf_c_001.main_3 Compilation warning fix with g++ */
282 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
283 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
284 (ErrVal)ECTF010, (ErrVal)0, (Txt*)&"Packing failed");
289 return ((*func)(pst, suId, status));
294 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
298 * Function: cmPkCtfUbndReq
300 * @param[in] Pst* pst
301 * @param[in] SpId spId
302 * @param[in] Reason reason
314 S16 cmPkCtfUbndReq(pst, spId, reason)
320 Buffer *mBuf = NULLP;
322 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
323 #if (ERRCLASS & ERRCLS_ADD_RES)
324 /* ctf_c_001.main_3 Compilation warning fix with g++ */
325 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
326 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
327 (ErrVal)ECTF011, (ErrVal)0, (Txt*)&"Packing failed");
331 if (SPkS16(reason, mBuf) != ROK) {
332 #if (ERRCLASS & ERRCLS_ADD_RES)
333 /* ctf_c_001.main_3 Compilation warning fix with g++ */
334 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
335 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
336 (ErrVal)ECTF012, (ErrVal)0, (Txt*)&"Packing failed");
341 if (SPkS16(spId, mBuf) != ROK) {
342 #if (ERRCLASS & ERRCLS_ADD_RES)
343 /* ctf_c_001.main_3 Compilation warning fix with g++ */
344 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
345 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
346 (ErrVal)ECTF013, (ErrVal)0,(Txt*)&"Packing failed");
351 pst->event = (Event) EVTCTFUBNDREQ;
352 return (SPstTsk(pst,mBuf));
357 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
361 * Function: cmUnpkCtfUbndReq
363 * @param[in] Pst* pst
364 * @param[in] SpId spId
365 * @param[in] Reason reason
377 S16 cmUnpkCtfUbndReq(func, pst, mBuf)
387 if (SUnpkS16(&spId, mBuf) != ROK) {
389 #if (ERRCLASS & ERRCLS_ADD_RES)
390 /* ctf_c_001.main_3 Compilation warning fix with g++ */
391 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
392 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
393 (ErrVal)ECTF014, (ErrVal)0, (Txt*)&"Packing failed");
397 if (SUnpkS16(&reason, mBuf) != ROK) {
399 #if (ERRCLASS & ERRCLS_ADD_RES)
400 /* ctf_c_001.main_3 Compilation warning fix with g++ */
401 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
402 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
403 (ErrVal)ECTF015, (ErrVal)0, (Txt*)&"Packing failed");
408 return ((*func)(pst, spId, reason));
412 /***********************************************************
414 * Func: cmRelCtfCfgReq
417 * Desc: This fucntion will release the memory used for ctf cfg req
425 **********************************************************/
427 static S16 cmRelCtfCfgReq
430 CtfCfgReqInfo *cfgReqInfo
433 static S16 cmRelCtfCfgReq(pst,cfgReqInfo)
435 CtfCfgReqInfo *param;
438 /* ctf_c_001.main_4: Added support for vendor specific parameters */
440 if(cfgReqInfo->vendorParams.paramBuffer != NULLP) {
441 SPutSBuf(pst->region, pst->pool,
442 (Data *)cfgReqInfo->vendorParams.paramBuffer,
443 cfgReqInfo->vendorParams.buffLen);
446 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCfgReqInfo));
450 #ifdef TENB_AS_SECURITY
451 /***********************************************************
453 * Func: cmPkCtfNhKeyInfo
456 * Desc: Pack keNB* input parameter information
457 * @details This is one of the main structure in the KDF request primitive.
458 * -# This structure contains the configuration information as given by
459 * the Application to trigger key derivation at PHY layer for generation of kENB*.
460 * -# It take Next Hop key, DL Frequency and Physical cell Id as input.
461 * -# The result of configuration is indicated in KdfCfgCfm.
470 **********************************************************/
478 S16 cmPkCtfNhKeyInfo(param, mBuf)
487 for(idx=31;idx>=0;idx--)
489 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
491 CMCHKPK(oduUnpackUInt16, param->physCellId, mBuf);
492 CMCHKPK(oduUnpackUInt16, param->dlCarrFreq, mBuf);
497 /***********************************************************
499 * Func: cmPkCtfKenbStarInfo
502 * Desc: Pack keNB* input parameter information
503 * @details This is one of the main structure in the KDF request primitive.
504 * -# This structure contains the configuration information as given by
505 * the Application to trigger key derivation at PHY layer for generation of kENB*.
506 * -# It take existing kENB, DL Frequency and Physical cell Id as input.
507 * -# The result of configuration is indicated in KdfCfgCfm.
516 **********************************************************/
518 S16 cmPkCtfKenbStarInfo
520 CtfKenbStarInfo *param,
524 S16 cmPkCtfKenbStarInfo(param, mBuf)
525 CtfKenbStarInfo *param;
533 for(idx=31;idx>=0;idx--)
535 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
537 CMCHKPK(oduUnpackUInt16, param->physCellId, mBuf);
538 CMCHKPK(oduUnpackUInt16, param->dlCarrFreq, mBuf);
544 /***********************************************************
546 * Func: cmPkCtfAskeyInfo
549 * Desc: Pack AS key generation input parameter information.
550 * @details This is one of the main structure in the KDF request primitive.
551 * -# This structure contains the configuration information as given by
552 * the Application to trigger key derivation at PHY layer for generation of AS Security keys.
553 * -# It take existing kENB, and integrity/cipherig Algorithm as input.
554 * -# The result of configuration is indicated in KdfCfgCfm.
563 **********************************************************/
571 S16 cmPkCtfAskeyInfo(param, mBuf)
581 for(idx=31;idx>=0;idx--)
583 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
585 CMCHKPK(oduUnpackUInt8, param->ciphAlgoType, mBuf);
586 CMCHKPK(oduUnpackUInt8, param->intgAlgoType, mBuf);
591 /***********************************************************
593 * Func: cmPkCtfKdfReqInfo
596 * Desc: Pack one of the 3 Key Derivation types.
597 * @details This is the encompassing structure in the KDF request primitive.
598 * -# This structure contains the configuration information as given by
599 * the Application to trigger key derivation at PHY layer for generation of keys.
600 * -# It takes key derivation type as input.
601 * -# The result of configuration is indicated in KdfCfgCfm.
610 **********************************************************/
612 S16 cmPkCtfKdfReqInfo
614 CtfKdfReqInfo *param,
618 S16 cmPkCtfKdfReqInfo(param, mBuf)
619 CtfKdfReqInfo *param;
625 switch (param->keyDerType)
628 CMCHKPK(cmPkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
631 CMCHKPK(cmPkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
634 CMCHKPK(cmPkCtfNhKeyInfo , ¶m->u.nhKeyInf, mBuf);
639 CMCHKPK(oduUnpackUInt8, param->keyDerType, mBuf);
645 * @brief Primitive Request from Application to PHY for
646 * security key derivation.
650 * Function: cmPkCtfKdfReq
652 * @param[in] Pst* pst
653 * @param[in] SpId spId
654 * @param[in] CtfCfgTransId transId
655 * @param[in] CtfCfgReqInfo* cfgReqInfo
664 CtfCfgTransId transId,
665 CtfKdfReqInfo* kdfReqInfo
668 S16 cmPkCtfKdfReq(pst, spId, transId, kdfReqInfo)
671 CtfCfgTransId transId;
672 CtfKdfReqInfo* kdfReqInfo;
675 Buffer *mBuf = NULLP;
679 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
680 #if (ERRCLASS & ERRCLS_ADD_RES)
681 /* ctf_c_001.main_3 Compilation warning fix with g++ */
682 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
683 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
684 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
686 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
689 if (pst->selector == ODU_SELECTOR_LC) {
690 if (cmPkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
691 #if (ERRCLASS & ERRCLS_ADD_RES)
692 /* ctf_c_001.main_3 Compilation warning fix with g++ */
693 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
694 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
695 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
697 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
702 else if (pst->selector == ODU_SELECTOR_LWLC) {
704 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
705 #if (ERRCLASS & ERRCLS_ADD_RES)
706 /* ctf_c_001.main_3 Compilation warning fix with g++ */
707 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
708 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
709 (ErrVal)ECTF019, (ErrVal)0, (Txt*)&"Packing failed");
711 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
715 if (SPkS16(spId, mBuf) != ROK) {
716 #if (ERRCLASS & ERRCLS_ADD_RES)
717 /* ctf_c_001.main_3 Compilation warning fix with g++ */
718 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
719 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
720 (ErrVal)ECTF020, (ErrVal)0, (Txt*)&"Packing failed");
722 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
726 if (pst->selector != ODU_SELECTOR_LWLC) {
727 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo)) != ROK) {
728 #if (ERRCLASS & ERRCLS_ADD_RES)
729 /* ctf_c_001.main_3 Compilation warning fix with g++ */
730 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
731 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
732 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
738 pst->event = (Event) EVTCTFKDFREQ;
739 return (SPstTsk(pst,mBuf));
743 /********************************************************************************************************************************/
744 /*START OF CNM PACK & UNPACK FUNCTIONS*/
745 /********************************************************************************************************************************/
747 S16 cmPkCtfCnmVendorSpecificInfo
749 CtfCnmVendorSpecificInfo *param,
753 CtfCnmVendorSpecificInfo *param;
758 if(param->numOfVendorSpecifcParam <= CTF_CNM_MAX_VENDOR_PARAMS)
760 for(i= param->numOfVendorSpecifcParam-1; i >= 0; i--)
762 CMCHKPK(oduUnpackUInt32,(uint32_t)param->vendorSpecifcParam[i], mBuf);
765 CMCHKPK(oduUnpackUInt16, param->numOfVendorSpecifcParam, mBuf);
770 S16 cmPkCtfCtfCnmCellSyncReq
772 CtfCnmCellSyncReq *param,
776 S16 cmPkCtfCtfCnmCellSyncReq(param, mBuf)
777 CtfCnmCellSyncReq *param;
782 CMCHKPK(oduUnpackUInt16, param->nbrEarfcn, mBuf);
783 CMCHKPK(oduUnpackUInt16, param->nbrPCellId, mBuf);
784 CMCHKPK(oduUnpackUInt8, param->nbrTxAntCount, mBuf);
785 CMCHKPK(oduUnpackUInt8, param->nbrCellCp, mBuf);
786 CMCHKPK(oduUnpackUInt8, param->nbrCellNRb, mBuf);
787 CMCHKPK(oduUnpackUInt8, param->nbrSpecSfCfg, mBuf);
788 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
794 S16 cmPkCtfcfgReqInfo
796 CtfCnmInitSyncReq *param,
800 S16 cmPkCtfcfgReqInfo(param, mBuf)
801 CtfCnmInitSyncReq *param;
807 CMCHKPK(oduUnpackUInt8, param->searchType, mBuf);
808 CMCHKPK(oduUnpackUInt8, param->mibRequest, mBuf);
809 CMCHKPK(oduUnpackUInt16, param->earfcn, mBuf);
810 CMCHKPK(oduUnpackUInt8, param->measBandWidth, mBuf);
811 if(param->numOfPciList <= CTF_CNM_MAX_CELL_SEARCH)
813 for(i= param->numOfPciList-1; i >= 0; i--)
815 CMCHKPK(cmPkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
818 CMCHKPK(oduUnpackUInt16, param->numOfPciList, mBuf);
823 S16 cmUnpkCtfCnmVendorSpecificInfo
825 CtfCnmVendorSpecificInfo *param,
829 S16 cmUnpkCtfCnmVendorSpecificInfo(param, mBuf)
830 CtfCnmVendorSpecificInfo *param;
836 CMCHKUNPK(oduPackUInt16, ¶m->numOfVendorSpecifcParam, mBuf);
837 for(i=0; (i<param->numOfVendorSpecifcParam)&&(i < CTF_CNM_MAX_VENDOR_PARAMS); i++)
839 CMCHKUNPK(oduPackUInt32, ¶m->vendorSpecifcParam[i], mBuf);
845 S16 cmUnpkCtfCtfCnmCellSyncReq
847 CtfCnmCellSyncReq *param,
851 S16 cmUnpkCtfCtfCnmCellSyncReq(param, mBuf)
852 CtfCnmCellSyncReq *param;
858 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
859 CMCHKUNPK(oduPackUInt8, ¶m->nbrSpecSfCfg, mBuf);
860 CMCHKUNPK(oduPackUInt8, ¶m->nbrCellNRb, mBuf);
861 CMCHKUNPK(oduPackUInt8, ¶m->nbrCellCp, mBuf);
862 CMCHKUNPK(oduPackUInt8, ¶m->nbrTxAntCount, mBuf);
863 CMCHKUNPK(oduPackUInt16, ¶m->nbrPCellId, mBuf);
864 CMCHKUNPK(oduPackUInt16, ¶m->nbrEarfcn, mBuf);
870 S16 cmUnpkCtfsyncReqInfo
872 CtfCnmInitSyncReq *param,
876 S16 cmUnpkCtfsyncReqInfo(param, mBuf)
877 CtfCnmInitSyncReq *param;
883 CMCHKUNPK(oduPackUInt16, ¶m->numOfPciList, mBuf);
884 for(i=0; (i < param->numOfPciList)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
886 CMCHKUNPK(cmUnpkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
889 CMCHKUNPK(oduPackUInt8, ¶m->measBandWidth, mBuf);
890 CMCHKUNPK(oduPackUInt16, ¶m->earfcn, mBuf);
891 CMCHKUNPK(oduPackUInt8, ¶m->mibRequest, mBuf);
892 CMCHKUNPK(oduPackUInt8, ¶m->searchType, mBuf);
896 * @brief Configuration Request from App to CL for
897 * cnm Cell Sync request.
901 * Function: cmPkCtfCnmCellSyncReq
903 * @param[in] Pst* pst
904 * @param[in] SpId spId
905 * @param[in] CtfCfgTransId * transId
906 * @param[in] CtfCnmCellSyncReq* ctfcnmCellSyncReq
911 S16 cmPkCtfCnmCellSyncReq
915 CtfCfgTransId *transId,
916 CtfCnmCellSyncReq * cfgReqInfo
919 S16 cmPkCtfCnmCellSyncReq(pst, spId, transId, cfgReqInfo)
922 CtfCfgTransId *transId;
923 CtfCnmCellSyncReq * cfgReqInfo;
927 Buffer *mBuf = NULLP;
930 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
931 #if (ERRCLASS & ERRCLS_ADD_RES)
932 /* ctf_c_001.main_3 Compilation warning fix with g++ */
933 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
934 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
935 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
937 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
940 if (pst->selector == ODU_SELECTOR_LC) {
941 if (cmPkCtfCtfCnmCellSyncReq(cfgReqInfo, mBuf) != ROK) {
942 #if (ERRCLASS & ERRCLS_ADD_RES)
943 /* ctf_c_001.main_3 Compilation warning fix with g++ */
944 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
945 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
946 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
948 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
953 else if (pst->selector == ODU_SELECTOR_LWLC) {
955 if (oduPackPointer((PTR)cfgReqInfo, mBuf) != ROK) {
956 #if (ERRCLASS & ERRCLS_ADD_RES)
957 /* ctf_c_001.main_3 Compilation warning fix with g++ */
958 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
959 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
960 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
962 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
968 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
969 #if (ERRCLASS & ERRCLS_ADD_RES)
970 /* ctf_c_001.main_3 Compilation warning fix with g++ */
971 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
972 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
973 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
975 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
979 if (SPkS16(spId, mBuf) != ROK) {
980 #if (ERRCLASS & ERRCLS_ADD_RES)
981 /* ctf_c_001.main_3 Compilation warning fix with g++ */
982 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
983 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
984 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
986 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
990 if (pst->selector != ODU_SELECTOR_LWLC) {
991 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
993 pst->event = (Event)EVTCTFCNMSYNCREQ;
994 return (SPstTsk(pst,mBuf));
998 * @brief Configuration Request from RRC to PHY for
999 * cell or dedicated configuration.
1003 * Function: cmUnpkCtfCnmCellSyncReq
1005 * @param[in] CtfCnmCellSyncReqMsg func
1006 * @param[in] Pst* pst
1007 * @param[in] Buffer *mBuf
1012 S16 cmUnpkCtfCnmCellSyncReq
1014 CtfCnmCellSyncReqMsg func,
1019 S16 cmUnpkCtfCnmCellSyncReq(func, pst, mBuf)
1020 CtfCnmCellSyncReqMsg func;
1027 CtfCfgTransId transId;
1028 CtfCnmCellSyncReq *SyncReqMsg = NULLP;
1030 if (SUnpkS16(&spId, mBuf) != ROK) {
1032 #if (ERRCLASS & ERRCLS_ADD_RES)
1033 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1034 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1035 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1036 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1040 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1042 #if (ERRCLASS & ERRCLS_ADD_RES)
1043 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1044 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1045 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1046 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1050 if (pst->selector != ODU_SELECTOR_LWLC) {
1051 if ((SGetSBuf(pst->region, pst->pool, (Data **)&SyncReqMsg, sizeof(CtfCnmCellSyncReq))) != ROK) {
1052 #if (ERRCLASS & ERRCLS_ADD_RES)
1053 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1054 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1055 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1056 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1062 if (pst->selector == ODU_SELECTOR_LWLC) {
1063 if (oduUnpackPointer((PTR *)&SyncReqMsg, mBuf) != ROK) {
1068 else if (pst->selector == ODU_SELECTOR_LC)
1069 if (cmUnpkCtfCtfCnmCellSyncReq(SyncReqMsg, mBuf) != ROK) {
1070 SPutSBuf(pst->region, pst->pool, (Data *)SyncReqMsg, sizeof(CtfCnmCellSyncReq));
1072 #if (ERRCLASS & ERRCLS_ADD_RES)
1073 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1074 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1075 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1076 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1081 return ((*func)(pst, spId, &transId, SyncReqMsg));
1084 /*-----------------------------------------------------*/
1088 * @brief Configuration Request from App to CL for
1089 * cnm Init Sync request.
1093 * Function: cmPkCtfCnmInitSyncReq
1095 * @param[in] Pst* pst
1096 * @param[in] SpId spId
1097 * @param[in] CtfCfgTransId * transId
1098 * @param[in] CtfCnmInitSyncReq* ctfcnmInitSyncReq
1103 S16 cmPkCtfCnmInitSyncReq
1107 CtfCfgTransId *transId,
1108 CtfCnmInitSyncReq * cfgReqInfo
1111 S16 cmPkCtfCnmInitSyncReq(pst, spId, transId, cfgReqInfo)
1114 CtfCfgTransId *transId;
1115 CtfCnmInitSyncReq * cfgReqInfo;
1118 Buffer *mBuf = NULLP;
1121 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1122 #if (ERRCLASS & ERRCLS_ADD_RES)
1123 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1124 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1125 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1126 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1128 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1131 if (pst->selector == ODU_SELECTOR_LC) {
1132 if (cmPkCtfcfgReqInfo(cfgReqInfo, mBuf) != ROK) {
1133 #if (ERRCLASS & ERRCLS_ADD_RES)
1134 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1135 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1136 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1137 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1139 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1144 else if (pst->selector == ODU_SELECTOR_LWLC) {
1146 if (oduPackPointer((PTR)cfgReqInfo, mBuf) != ROK) {
1147 #if (ERRCLASS & ERRCLS_ADD_RES)
1148 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1149 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1150 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1151 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1153 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1159 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1160 #if (ERRCLASS & ERRCLS_ADD_RES)
1161 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1162 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1163 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1164 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1166 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1170 if (SPkS16(spId, mBuf) != ROK) {
1171 #if (ERRCLASS & ERRCLS_ADD_RES)
1172 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1173 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1174 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1175 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1177 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1181 if (pst->selector != ODU_SELECTOR_LWLC) {
1182 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1184 pst->event = (Event)EVTCTFCNMINITSYNCREQ;
1185 return (SPstTsk(pst,mBuf));
1188 /*-----------------------------------------------------------------*/
1191 * @brief Configuration Request from RRC to PHY for
1192 * cell or dedicated configuration.
1196 * Function: cmUnpkCtfCnmInitSyncReq
1198 * @param[in] CtfCnmInitSyncReqMsg func
1199 * @param[in] Pst* pst
1200 * @param[in] Buffer *mBuf
1205 S16 cmUnpkCtfCnmInitSyncReq
1207 CtfCnmInitSyncReqMsg func,
1212 S16 cmUnpkCtfCnmInitSyncReq(func, pst, mBuf)
1213 CtfCnmInitSyncReqMsg func;
1220 CtfCfgTransId transId;
1221 CtfCnmInitSyncReq *syncReqInfo = NULLP;
1223 if (SUnpkS16(&spId, mBuf) != ROK) {
1225 #if (ERRCLASS & ERRCLS_ADD_RES)
1226 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1227 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1228 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1229 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1233 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1235 #if (ERRCLASS & ERRCLS_ADD_RES)
1236 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1237 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1238 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1239 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1243 if (pst->selector != ODU_SELECTOR_LWLC) {
1244 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncReqInfo, sizeof(CtfCnmInitSyncReq))) != 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 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1249 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1255 if (pst->selector == ODU_SELECTOR_LWLC) {
1256 if (oduUnpackPointer((PTR *)&syncReqInfo, mBuf) != ROK) {
1261 else if (pst->selector == ODU_SELECTOR_LC)
1262 if (cmUnpkCtfsyncReqInfo(syncReqInfo, mBuf) != ROK) {
1263 SPutSBuf(pst->region, pst->pool, (Data *)syncReqInfo, sizeof(CtfCnmInitSyncReq));
1265 #if (ERRCLASS & ERRCLS_ADD_RES)
1266 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1267 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1268 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1269 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1274 return ((*func)(pst, spId, &transId, syncReqInfo));
1276 /*-----------------------------------------------------------------------------*/
1279 S16 cmPkCtfctfCnmMibInfo
1281 CtfCnmMibInfo *param,
1285 S16 cmPkCtfctfCnmMibInfo(param, mBuf)
1286 CtfCnmMibInfo *param;
1291 CMCHKPK(oduUnpackUInt16, param->sfn, mBuf);
1292 CMCHKPK(oduUnpackUInt8, param->numTxAntennas, mBuf);
1293 CMCHKPK(oduUnpackUInt8, param->phichDuration, mBuf);
1294 CMCHKPK(oduUnpackUInt8, param->phichResource, mBuf);
1295 CMCHKPK(oduUnpackUInt8, param->dlSystemBandWidht, mBuf);
1301 S16 cmPkCtfctfCnmInitSyncInfo
1303 CtfCnmInitSyncInfo *param,
1307 S16 cmPkCtfctfCnmInitSyncInfo(param, mBuf)
1308 CtfCnmInitSyncInfo *param;
1313 CMCHKPK(oduUnpackUInt16, param->pci, mBuf);
1314 CMCHKPK(oduUnpackUInt8, param->rsrp, mBuf);
1315 CMCHKPK(oduUnpackUInt8, param->mibValidFlag, mBuf);
1316 CMCHKPK(oduUnpackUInt16, param->localSfn, mBuf);
1317 CMCHKPK(cmPkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1318 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1324 S16 cmPkCtfcfgRspInfo
1326 CtfCnmInitSyncRsp *param,
1330 S16 cmPkCtfcfgRspInfo(param, mBuf)
1331 CtfCnmInitSyncRsp *param;
1338 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
1339 CMCHKPK(oduUnpackUInt16, param->earfcn, mBuf);
1340 if(param->numOfNeighbourInfo <= CTF_CNM_MAX_CELL_SEARCH)
1342 for(i= param->numOfNeighbourInfo-1; i >= 0; i--)
1344 CMCHKPK(cmPkCtfctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1347 CMCHKPK(oduUnpackUInt8, param->numOfNeighbourInfo, mBuf);
1353 * @brief Configuration Request from App to CL for
1354 * cnm Init Sync responce
1358 * Function: cmPkCtfCnmInitSyncRsp
1360 * @param[in] Pst* pst
1361 * @param[in] SpId spId
1362 * @param[in] CtfCfgTransId * transId
1363 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
1368 S16 cmPkCtfCnmInitSyncRsp
1372 CtfCfgTransId *transId,
1373 CtfCnmInitSyncRsp * cfgRspInfo
1376 S16 cmPkCtfCnmInitSyncRsp(pst, spId, transId, cfgRspInfo)
1379 CtfCfgTransId *transId;
1380 CtfCnmInitSyncRsp * cfgRspInfo;
1383 Buffer *mBuf = NULLP;
1385 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1386 #if (ERRCLASS & ERRCLS_ADD_RES)
1387 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1388 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1389 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1390 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1392 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1395 if (pst->selector == ODU_SELECTOR_LC) {
1396 if (cmPkCtfcfgRspInfo(cfgRspInfo, mBuf) != ROK) {
1397 #if (ERRCLASS & ERRCLS_ADD_RES)
1398 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1399 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1400 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1401 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1403 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1408 else if (pst->selector == ODU_SELECTOR_LWLC) {
1410 if (oduPackPointer((PTR)cfgRspInfo, mBuf) != ROK) {
1411 #if (ERRCLASS & ERRCLS_ADD_RES)
1412 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1413 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1414 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1415 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1417 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1423 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1424 #if (ERRCLASS & ERRCLS_ADD_RES)
1425 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1426 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1427 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1428 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1430 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1434 if (SPkS16(spId, mBuf) != ROK) {
1435 #if (ERRCLASS & ERRCLS_ADD_RES)
1436 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1437 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1438 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1439 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1441 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1445 if (pst->selector != ODU_SELECTOR_LWLC) {
1446 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1448 pst->event = (Event)EVTCTFCNMINITSYNCRSP;
1449 return (SPstTsk(pst,mBuf));
1452 /*-----------------------------------------------------------------------------*/
1455 S16 cmUnpkCtfctfCnmMibInfo
1457 CtfCnmMibInfo *param,
1461 S16 cmUnpkCtfctfCnmMibInfo(param, mBuf)
1462 CtfCnmMibInfo *param;
1468 CMCHKUNPK(oduPackUInt8, ¶m->dlSystemBandWidht, mBuf);
1469 CMCHKUNPK(oduPackUInt8, ¶m->phichResource, mBuf);
1470 CMCHKUNPK(oduPackUInt8, ¶m->phichDuration, mBuf);
1471 CMCHKUNPK(oduPackUInt8, ¶m->numTxAntennas, mBuf);
1472 CMCHKUNPK(oduPackUInt16, ¶m->sfn, mBuf);
1478 S16 cmUnpkctfCnmInitSyncInfo
1480 CtfCnmInitSyncInfo *param,
1484 S16 cmUnpkctfCnmInitSyncInfo(param, mBuf)
1485 CtfCnmInitSyncInfo *param;
1490 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1491 CMCHKUNPK(cmUnpkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1492 CMCHKUNPK(oduPackUInt16, ¶m->localSfn, mBuf);
1493 CMCHKUNPK(oduPackUInt8, ¶m->mibValidFlag, mBuf);
1494 CMCHKUNPK(oduPackUInt8, ¶m->rsrp, mBuf);
1495 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
1501 S16 cmUnpkCtfCnmInitSyncRspMsg
1503 CtfCnmInitSyncRsp *param,
1507 S16 cmUnpkCtfCnmInitSyncRspMsg(param, mBuf)
1508 CtfCnmInitSyncRsp *param;
1515 CMCHKUNPK(oduPackUInt8, ¶m->numOfNeighbourInfo, mBuf);
1516 for(i=0; (i < param->numOfNeighbourInfo)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
1518 CMCHKUNPK(cmUnpkctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1520 CMCHKUNPK(oduPackUInt16, ¶m->earfcn, mBuf);
1521 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
1526 * @brief Configuration Request from RRC to PHY for
1527 * cell or dedicated configuration.
1531 * Function: cmUnpkCtfCnmInitSyncRsp
1533 * @param[in] CtfCnmInitSyncRspMsg func
1534 * @param[in] Pst* pst
1535 * @param[in] Buffer *mBuf
1540 S16 cmUnpkCtfCnmInitSyncRsp
1542 CtfCnmInitSyncRspMsg func,
1547 S16 cmUnpkCtfCnmInitSyncRsp(func, pst, mBuf)
1548 CtfCnmInitSyncRspMsg func;
1555 CtfCfgTransId transId;
1556 CtfCnmInitSyncRsp *syncRspInfo = NULLP;
1558 if (SUnpkS16(&spId, mBuf) != ROK) {
1560 #if (ERRCLASS & ERRCLS_ADD_RES)
1561 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1562 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1563 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1564 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1568 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1570 #if (ERRCLASS & ERRCLS_ADD_RES)
1571 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1572 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1573 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1574 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1578 if (pst->selector != ODU_SELECTOR_LWLC) {
1579 if((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspInfo, sizeof(CtfCnmInitSyncRsp))) != ROK) {
1580 #if (ERRCLASS & ERRCLS_ADD_RES)
1581 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1582 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1583 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1584 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1590 if (pst->selector == ODU_SELECTOR_LWLC) {
1591 if(oduUnpackPointer((PTR *)&syncRspInfo, mBuf) != ROK) {
1596 else if (pst->selector == ODU_SELECTOR_LC)
1597 if(cmUnpkCtfCnmInitSyncRspMsg(syncRspInfo, mBuf) != ROK) {
1598 SPutSBuf(pst->region, pst->pool, (Data *)syncRspInfo, sizeof(CtfCnmInitSyncRsp));
1600 #if (ERRCLASS & ERRCLS_ADD_RES)
1601 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1602 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1603 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1604 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1609 return ((*func)(pst, spId, &transId, syncRspInfo));
1612 /*-----------------------------------------------------------------------*/
1615 S16 cmPkCtfCellSyncRsp
1617 CtfCnmCellSyncRsp *param,
1621 S16 cmPkCtfCellSyncRsp(param, mBuf)
1622 CtfCnmCellSyncRsp *param;
1628 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
1633 * @brief Configuration Request from App to CL for
1634 * cnm Init Sync responce.
1638 * Function: cmPkCtfCnmCellSyncRsp
1640 * @param[in] Pst* pst
1641 * @param[in] SpId spId
1642 * @param[in] CtfCfgTransId * transId
1643 * @param[in] CtfCnmCellSyncRsp* ctfcnmCellSyncRsp
1648 S16 cmPkCtfCnmCellSyncRsp
1652 CtfCfgTransId *transId,
1653 CtfCnmCellSyncRsp * cfgRspInfo
1656 S16 cmPkCtfCnmCellSyncRsp(pst, spId, transId, cfgRspInfo)
1659 CtfCfgTransId *transId;
1660 CtfCnmCellSyncRsp * cfgRspInfo;
1664 Buffer *mBuf = NULLP;
1666 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1667 #if (ERRCLASS & ERRCLS_ADD_RES)
1668 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1669 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1670 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1671 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1673 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1676 if (pst->selector == ODU_SELECTOR_LC) {
1677 if (cmPkCtfCellSyncRsp(cfgRspInfo, mBuf) != ROK) {
1678 #if (ERRCLASS & ERRCLS_ADD_RES)
1679 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1680 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1681 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1682 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1684 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1689 else if (pst->selector == ODU_SELECTOR_LWLC) {
1691 if (oduPackPointer((PTR)cfgRspInfo, mBuf) != ROK) {
1692 #if (ERRCLASS & ERRCLS_ADD_RES)
1693 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1694 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1695 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1696 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1698 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1704 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1705 #if (ERRCLASS & ERRCLS_ADD_RES)
1706 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1707 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1708 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1709 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1711 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1715 if (SPkS16(spId, mBuf) != ROK) {
1716 #if (ERRCLASS & ERRCLS_ADD_RES)
1717 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1718 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1719 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1720 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1722 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1726 if (pst->selector != ODU_SELECTOR_LWLC) {
1727 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1729 pst->event = (Event)EVTCTFCNMSYNCRSP;
1730 return (SPstTsk(pst,mBuf));
1734 /*------------------------------------------------------------*/
1737 S16 cmUnpkCtfCnmSyncRspMsg
1739 CtfCnmCellSyncRsp *param,
1743 S16 cmUnpkCtfCnmSyncRspMsg(param, mBuf)
1744 CtfCnmCellSyncRsp *param;
1750 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
1755 * @brief Configuration Request from RRC to PHY for
1756 * cell or dedicated configuration.
1760 * Function: cmUnpkCtfCnmCellSyncRsp
1762 * @param[in] CtfCnmCellSyncRspMsg func
1763 * @param[in] Pst* pst
1764 * @param[in] Buffer *mBuf
1769 S16 cmUnpkCtfCnmCellSyncRsp
1771 CtfCnmCellSyncRspMsg func,
1776 S16 cmUnpkCtfCnmCellSyncRsp(func, pst, mBuf)
1777 CtfCnmCellSyncRspMsg func;
1784 CtfCfgTransId transId;
1785 CtfCnmCellSyncRsp *syncRspMsg = NULLP;
1787 if (SUnpkS16(&spId, mBuf) != ROK) {
1789 #if (ERRCLASS & ERRCLS_ADD_RES)
1790 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1791 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1792 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1793 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1797 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1799 #if (ERRCLASS & ERRCLS_ADD_RES)
1800 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1801 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1802 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1803 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1807 if (pst->selector != ODU_SELECTOR_LWLC) {
1808 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspMsg, sizeof(CtfCnmCellSyncRsp))) != ROK) {
1809 #if (ERRCLASS & ERRCLS_ADD_RES)
1810 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1811 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1812 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1813 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1819 if (pst->selector == ODU_SELECTOR_LWLC) {
1820 if (oduUnpackPointer((PTR *)&syncRspMsg, mBuf) != ROK) {
1825 else if (pst->selector == ODU_SELECTOR_LC)
1826 if (cmUnpkCtfCnmSyncRspMsg(syncRspMsg, mBuf) != ROK) {
1827 SPutSBuf(pst->region, pst->pool, (Data *)syncRspMsg, sizeof(CtfCnmCellSyncRsp));
1829 #if (ERRCLASS & ERRCLS_ADD_RES)
1830 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1831 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1832 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1833 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1838 return ((*func)(pst, spId, &transId, syncRspMsg));
1841 /*---------------------------------------------------------------*/
1844 S16 cmPkCtfcfgIndInfo
1846 CtfCnmCellSyncInd *param,
1850 S16 cmPkCtfcfgIndInfo(param, mBuf)
1851 CtfCnmCellSyncInd *param;
1857 CMCHKPK(oduUnpackUInt8, param->status, mBuf);
1858 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1863 * @brief Configuration Request from App to CL for
1864 * cnm Init Sync responce.
1868 * Function: cmPkCtfCnmCellSyncInd
1870 * @param[in] Pst* pst
1871 * @param[in] SpId spId
1872 * @param[in] CtfCfgTransId * transId
1873 * @param[in] CtfCnmCellSyncInd* ctfcnmCellSyncInd
1878 S16 cmPkCtfCnmCellSyncInd
1882 CtfCfgTransId *transId,
1883 CtfCnmCellSyncInd * cfgIndInfo
1886 S16 cmPkCtfCnmCellSyncInd(pst, spId, transId, cfgIndInfo)
1889 CtfCfgTransId *transId;
1890 CtfCnmCellSyncInd * cfgIndInfo;
1894 Buffer *mBuf = NULLP;
1896 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1897 #if (ERRCLASS & ERRCLS_ADD_RES)
1898 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1899 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1900 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1901 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1903 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1906 if (pst->selector == ODU_SELECTOR_LC) {
1907 if (cmPkCtfcfgIndInfo(cfgIndInfo, mBuf) != ROK) {
1908 #if (ERRCLASS & ERRCLS_ADD_RES)
1909 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1910 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1911 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1912 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1914 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1919 else if (pst->selector == ODU_SELECTOR_LWLC) {
1921 if (oduPackPointer((PTR)cfgIndInfo, mBuf) != ROK) {
1922 #if (ERRCLASS & ERRCLS_ADD_RES)
1923 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1924 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1925 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1926 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1928 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1934 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1935 #if (ERRCLASS & ERRCLS_ADD_RES)
1936 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1937 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1938 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1939 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1941 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1945 if (SPkS16(spId, mBuf) != ROK) {
1946 #if (ERRCLASS & ERRCLS_ADD_RES)
1947 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1948 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1949 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1950 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1952 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1956 if (pst->selector != ODU_SELECTOR_LWLC) {
1957 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1959 pst->event = (Event)EVTCTFCNMSYNCIND;
1960 return (SPstTsk(pst,mBuf));
1964 /*---------------------------------------------------------------*/
1967 S16 cmUnpkCtfCnmSyncIndMsg
1969 CtfCnmCellSyncInd *param,
1973 S16 cmUnpkCtfCnmSyncIndMsg(param, mBuf)
1974 CtfCnmCellSyncInd *param;
1980 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1981 CMCHKUNPK(oduPackUInt8, ¶m->status, mBuf);
1986 * @brief Configuration Request from RRC to PHY for
1987 * cell or dedicated configuration.
1991 * Function: cmUnpkCtfCnmCellSyncInd
1993 * @param[in] CtfCnmCellSyncIndMsg func
1994 * @param[in] Pst* pst
1995 * @param[in] Buffer *mBuf
2000 S16 cmUnpkCtfCnmCellSyncInd
2002 CtfCnmCellSyncIndMsg func,
2007 S16 cmUnpkCtfCnmCellSyncInd(func, pst, mBuf)
2008 CtfCnmCellSyncIndMsg func;
2015 CtfCfgTransId transId;
2016 CtfCnmCellSyncInd *syncIndMsg = NULLP;
2018 if (SUnpkS16(&spId, mBuf) != ROK) {
2020 #if (ERRCLASS & ERRCLS_ADD_RES)
2021 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2022 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2023 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2024 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2028 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2030 #if (ERRCLASS & ERRCLS_ADD_RES)
2031 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2032 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2033 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2034 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2038 if (pst->selector != ODU_SELECTOR_LWLC) {
2039 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncIndMsg, sizeof(CtfCnmCellSyncInd))) != ROK) {
2040 #if (ERRCLASS & ERRCLS_ADD_RES)
2041 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2042 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2043 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2044 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2050 if (pst->selector == ODU_SELECTOR_LWLC) {
2051 if (oduUnpackPointer((PTR *)&syncIndMsg, mBuf) != ROK) {
2056 else if (pst->selector == ODU_SELECTOR_LC)
2057 if (cmUnpkCtfCnmSyncIndMsg(syncIndMsg, mBuf) != ROK) {
2058 SPutSBuf(pst->region, pst->pool, (Data *)syncIndMsg, sizeof(CtfCnmCellSyncInd));
2060 #if (ERRCLASS & ERRCLS_ADD_RES)
2061 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2062 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2063 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2064 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2069 return ((*func)(pst, spId, &transId, syncIndMsg));
2073 /********************************************************************************************************************************/
2074 /*END OF CNM PACK & UNPACK FUNCTIONS*/
2075 /********************************************************************************************************************************/
2081 * @brief Configuration Request from RRC to PHY for
2082 * cell or dedicated configuration.
2086 * Function: cmPkCtfCfgReq
2088 * @param[in] Pst* pst
2089 * @param[in] SpId spId
2090 * @param[in] CtfCfgTransId transId
2091 * @param[in] CtfCfgReqInfo* cfgReqInfo
2100 CtfCfgTransId transId,
2101 CtfCfgReqInfo* cfgReqInfo
2104 S16 cmPkCtfCfgReq(pst, spId, transId, cfgReqInfo)
2107 CtfCfgTransId transId;
2108 CtfCfgReqInfo* cfgReqInfo;
2111 Buffer *mBuf = NULLP;
2113 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2114 #if (ERRCLASS & ERRCLS_ADD_RES)
2115 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2116 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2117 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2118 (ErrVal)ECTF016, (ErrVal)0, "Packing failed");
2120 cmRelCtfCfgReq(pst, cfgReqInfo);
2123 if (pst->selector == ODU_SELECTOR_LC) {
2124 if (cmPkCtfCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
2125 #if (ERRCLASS & ERRCLS_ADD_RES)
2126 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2127 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2128 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2129 (ErrVal)ECTF017, (ErrVal)0, "Packing failed");
2131 cmRelCtfCfgReq(pst, cfgReqInfo);
2136 else if (pst->selector == ODU_SELECTOR_LWLC) {
2137 if (oduPackPointer((PTR)cfgReqInfo, mBuf) != ROK) {
2138 #if (ERRCLASS & ERRCLS_ADD_RES)
2139 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2140 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2141 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2142 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
2144 cmRelCtfCfgReq(pst, cfgReqInfo);
2149 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2150 #if (ERRCLASS & ERRCLS_ADD_RES)
2151 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2152 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2153 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2154 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
2156 cmRelCtfCfgReq(pst, cfgReqInfo);
2160 if (SPkS16(spId, mBuf) != ROK) {
2161 #if (ERRCLASS & ERRCLS_ADD_RES)
2162 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2163 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2164 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2165 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
2167 cmRelCtfCfgReq(pst, cfgReqInfo);
2171 if (pst->selector != ODU_SELECTOR_LWLC) {
2172 cmRelCtfCfgReq(pst, cfgReqInfo);
2174 pst->event = (Event) EVTCTFCFGREQ;
2175 return (SPstTsk(pst,mBuf));
2178 #ifdef TENB_AS_SECURITY
2179 /***********************************************************
2181 * Func: cmPkCtfKenbCfgInfo
2184 * Desc: Key derivation funtion Input Information
2185 * @details This funtion packs the the CtfKenbCfgInfo structure
2186 * which contains the eNodeB key and Algorithm Type for
2187 * deriving AS security keys.
2196 **********************************************************/
2198 S16 cmUnpkCtfNhKeyInfo
2200 CtfNhKeyInfo *param,
2204 S16 cmUnpkCtfNhKeyInfo(param, mBuf)
2205 CtfNhKeyInfo *param;
2213 CMCHKUNPK(oduPackUInt16, ¶m->dlCarrFreq, mBuf);
2214 CMCHKUNPK(oduPackUInt16, ¶m->physCellId, mBuf);
2215 for(idx=0;idx<32;idx++)
2217 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
2222 /***********************************************************
2224 * Func: cmPkCtfKenbCfgInfo
2227 * Desc: Key derivation funtion Input Information
2228 * @details This funtion packs the the CtfKenbCfgInfo structure
2229 * which contains the eNodeB key and Algorithm Type for
2230 * deriving AS security keys.
2239 **********************************************************/
2241 S16 cmUnpkCtfKenbStarInfo
2243 CtfKenbStarInfo *param,
2247 S16 cmUnpkCtfKenbStarInfo(param, mBuf)
2248 CtfKenbStarInfo *param;
2256 CMCHKUNPK(oduPackUInt16, ¶m->dlCarrFreq, mBuf);
2257 CMCHKUNPK(oduPackUInt16, ¶m->physCellId, mBuf);
2258 for(idx=0;idx<32;idx++)
2260 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
2266 /***********************************************************
2268 * Func: cmPkCtfKenbCfgInfo
2271 * Desc: Key derivation funtion Input Information
2272 * @details This funtion packs the the CtfKenbCfgInfo structure
2273 * which contains the eNodeB key and Algorithm Type for
2274 * deriving AS security keys.
2283 **********************************************************/
2285 S16 cmUnpkCtfAskeyInfo
2287 CtfAsKeyInfo *param,
2291 S16 cmUnpkCtfAskeyInfo(param, mBuf)
2292 CtfAskeyInfo *param;
2300 CMCHKUNPK(oduPackUInt8, ¶m->intgAlgoType, mBuf);
2301 CMCHKUNPK(oduPackUInt8, ¶m->ciphAlgoType, mBuf);
2302 for(idx=0;idx<32;idx++)
2304 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
2309 /***********************************************************
2311 * Func: cmPkCtfKenbCfgInfo
2314 * Desc: Key derivation funtion Input Information
2315 * @details This funtion packs the the CtfKenbCfgInfo structure
2316 * which contains the eNodeB key and Algorithm Type for
2317 * deriving AS security keys.
2326 * **********************************************************/
2328 S16 cmUnpkCtfKdfReqInfo
2330 CtfKdfReqInfo *param,
2334 S16 cmUnpkCtfKdfReqInfo(param, mBuf)
2335 CtfKdfReqInfo *param;
2341 CMCHKUNPK(oduPackUInt8, ¶m->keyDerType, mBuf);
2342 switch (param->keyDerType)
2345 CMCHKUNPK(cmUnpkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
2348 CMCHKUNPK(cmUnpkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
2351 CMCHKUNPK(cmUnpkCtfNhKeyInfo, ¶m->u.nhKeyInf, mBuf);
2360 * @brief Configuration Request from RRC to PHY for
2361 * cell or dedicated configuration.
2365 * Function: cmUnpkCtfCfgReq
2367 * @param[in] Pst* pst
2368 * @param[in] SpId spId
2369 * @param[in] CtfCfgTransId transId
2370 * @param[in] CtfCfgReqInfo* cfgReqInfo
2382 S16 cmUnpkCtfKdfReq(func, pst, mBuf)
2389 CtfCfgTransId transId;
2390 CtfKdfReqInfo *kdfReqInfo = NULLP;
2393 if (SUnpkS16(&spId, mBuf) != ROK) {
2395 #if (ERRCLASS & ERRCLS_ADD_RES)
2396 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2397 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2398 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2399 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2404 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2406 #if (ERRCLASS & ERRCLS_ADD_RES)
2407 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2408 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2409 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2410 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2415 if (pst->selector != ODU_SELECTOR_LWLC) {
2416 if ((SGetSBuf(pst->region, pst->pool, (Data **)&kdfReqInfo, sizeof(CtfKdfReqInfo))) != ROK) {
2417 #if (ERRCLASS & ERRCLS_ADD_RES)
2418 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2419 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2420 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2421 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2429 if (pst->selector == ODU_SELECTOR_LWLC) {
2430 /*if (oduUnpackPointer((PTR *)&cfgReqInfo, mBuf) != ROK) {
2435 else if (pst->selector == ODU_SELECTOR_LC)
2436 if (cmUnpkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
2437 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
2439 #if (ERRCLASS & ERRCLS_ADD_RES)
2440 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2441 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2442 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2443 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2448 return ((*func)(pst, spId, transId, kdfReqInfo));
2455 * @brief Configuration Request from RRC to PHY for
2456 * cell or dedicated configuration.
2460 * Function: cmUnpkCtfCfgReq
2462 * @param[in] Pst* pst
2463 * @param[in] SpId spId
2464 * @param[in] CtfCfgTransId transId
2465 * @param[in] CtfCfgReqInfo* cfgReqInfo
2477 S16 cmUnpkCtfCfgReq(func, pst, mBuf)
2484 CtfCfgTransId transId;
2485 CtfCfgReqInfo *cfgReqInfo = NULLP;
2488 if (SUnpkS16(&spId, mBuf) != ROK) {
2490 #if (ERRCLASS & ERRCLS_ADD_RES)
2491 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2492 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2493 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2494 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2498 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2500 #if (ERRCLASS & ERRCLS_ADD_RES)
2501 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2502 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2503 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2504 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2508 if (pst->selector != ODU_SELECTOR_LWLC) {
2509 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo, sizeof(CtfCfgReqInfo))) != ROK) {
2510 #if (ERRCLASS & ERRCLS_ADD_RES)
2511 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2512 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2513 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2514 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2520 if (pst->selector == ODU_SELECTOR_LWLC) {
2521 if (oduUnpackPointer((PTR *)&cfgReqInfo, mBuf) != ROK) {
2526 else if (pst->selector == ODU_SELECTOR_LC)
2527 if (cmUnpkCtfCfgReqInfo(pst,cfgReqInfo, mBuf) != ROK) {
2528 cmRelCtfCfgReq(pst, cfgReqInfo);
2530 #if (ERRCLASS & ERRCLS_ADD_RES)
2531 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2532 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2533 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2534 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2539 return ((*func)(pst, spId, transId, cfgReqInfo));
2542 #ifdef TENB_AS_SECURITY
2543 /***********************************************************
2545 * Func: cmPkCtfKenbCfgInfo
2548 * Desc: Key derivation funtion Input Information
2549 * @details This funtion packs the the CtfKenbCfgInfo structure
2550 * which contains the eNodeB key and Algorithm Type for
2551 * deriving AS security keys.
2560 **********************************************************/
2562 S16 cmPkCtfNhKeyCfmInfo
2564 CtfNhKeyCfmInfo *param,
2568 S16 cmPkCtfNhKeyCfmInfo(param, mBuf)
2569 CtfNhKeyCfmInfo *param;
2577 for(idx=31;idx>=0;idx--)
2579 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
2584 /***********************************************************
2586 * Func: cmPkCtfKenbCfgInfo
2589 * Desc: Key derivation funtion Input Information
2590 * @details This funtion packs the the CtfKenbCfgInfo structure
2591 * which contains the eNodeB key and Algorithm Type for
2592 * deriving AS security keys.
2601 **********************************************************/
2603 S16 cmPkCtfKenbStarCfmInfo
2605 CtfKenbStarCfmInfo *param,
2609 S16 cmPkCtfKenbStarCfmInfo(param, mBuf)
2610 CtfKenbStarCfmInfo *param;
2618 for(idx=31;idx>=0;idx--)
2620 CMCHKPK(oduUnpackUInt8,param->secKey[idx],mBuf);
2626 /***********************************************************
2628 * Func: cmPkCtfKenbCfgInfo
2631 * Desc: Key derivation funtion Input Information
2632 * @details This funtion packs the the CtfKenbCfgInfo structure
2633 * which contains the eNodeB key and Algorithm Type for
2634 * deriving AS security keys.
2643 **********************************************************/
2645 S16 cmPkCtfAskeyCfmInfo
2647 CtfAskeyCfmInfo *param,
2651 S16 cmPkCtfAskeyCfmInfo(param, mBuf)
2652 CtfAskeyCfmInfo *param;
2660 for(idx=15;idx>=0;idx--)
2662 CMCHKPK(oduUnpackUInt8,param->cpCiphKey[idx],mBuf);
2664 for(idx=15;idx>=0;idx--)
2666 CMCHKPK(oduUnpackUInt8,param->upCiphKey[idx],mBuf);
2668 for(idx=15;idx>=0;idx--)
2670 CMCHKPK(oduUnpackUInt8,param->intKey[idx],mBuf);
2675 /***********************************************************
2677 * Func: cmPkCtfKenbCfgInfo
2680 * Desc: Key derivation funtion Input Information
2681 * @details This funtion packs the the CtfKenbCfgInfo structure
2682 * which contains the eNodeB key and Algorithm Type for
2683 * deriving AS security keys.
2692 * **********************************************************/
2694 S16 cmPkCtfKdfCfmInfo
2696 CtfKdfCfmInfo *param,
2700 S16 cmPkCtfKdfCfmInfo(param, mBuf)
2701 CtfKdfCfmInfo *param;
2707 switch (param->keyDerType)
2710 CMCHKPK(cmPkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
2713 CMCHKPK(cmPkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
2716 CMCHKPK(cmPkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
2721 CMCHKPK(oduUnpackUInt8, param->keyDerType, mBuf);
2726 * @brief Configuration Confirm from PHY to RRC.
2730 * Function: cmPkCtfCfgCfm
2732 * @param[in] Pst* pst
2733 * @param[in] SuId suId
2734 * @param[in] CtfCfgTransId transId
2735 * @param[in] uint8_t status
2744 CtfCfgTransId transId,
2745 CtfKdfCfmInfo *kdfCfmInfo,
2749 S16 cmPkCtfKdfCfm(pst, suId, transId, status)
2752 CtfCfgTransId transId;
2756 Buffer *mBuf = NULLP;
2758 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2759 #if (ERRCLASS & ERRCLS_ADD_RES)
2760 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2761 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2762 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2763 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2765 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2769 if (oduUnpackUInt8(status, mBuf) != ROK) {
2770 #if (ERRCLASS & ERRCLS_ADD_RES)
2771 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2772 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2773 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2774 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2776 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2781 if (cmPkCtfKdfCfmInfo(kdfCfmInfo, mBuf) != ROK) {
2782 #if (ERRCLASS & ERRCLS_ADD_RES)
2783 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2784 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2785 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2786 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2788 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2793 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2794 #if (ERRCLASS & ERRCLS_ADD_RES)
2795 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2796 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2797 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2798 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2800 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2805 if (SPkS16(suId, mBuf) != ROK) {
2806 #if (ERRCLASS & ERRCLS_ADD_RES)
2807 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2808 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2809 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2810 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2812 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2817 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo)) != ROK)
2819 #if (ERRCLASS & ERRCLS_ADD_RES)
2820 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2821 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2822 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2823 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
2829 pst->event = (Event) EVTCTFKDFCFM;
2830 return (SPstTsk(pst,mBuf));
2835 * @brief Configuration Confirm from PHY to RRC.
2839 * Function: cmPkCtfCfgCfm
2841 * @param[in] Pst* pst
2842 * @param[in] SuId suId
2843 * @param[in] CtfCfgTransId transId
2844 * @param[in] uint8_t status
2853 CtfCfgTransId transId,
2857 S16 cmPkCtfCfgCfm(pst, suId, transId, status)
2860 CtfCfgTransId transId;
2864 Buffer *mBuf = NULLP;
2866 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2867 #if (ERRCLASS & ERRCLS_ADD_RES)
2868 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2869 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2870 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2871 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2875 if (oduUnpackUInt8(status, mBuf) != ROK) {
2876 #if (ERRCLASS & ERRCLS_ADD_RES)
2877 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2878 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2879 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2880 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2885 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2886 #if (ERRCLASS & ERRCLS_ADD_RES)
2887 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2888 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2889 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2890 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2895 if (SPkS16(suId, mBuf) != ROK) {
2896 #if (ERRCLASS & ERRCLS_ADD_RES)
2897 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2898 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2899 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2900 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2905 pst->event = (Event) EVTCTFCFGCFM;
2906 return (SPstTsk(pst,mBuf));
2910 * @brief ENB STOP Indication from PHY to ENB-APP.
2914 * Function: cmPkCtfEnbStopInd
2916 * @param[in] Pst* pst
2917 * @param[in] SuId suId
2918 * @param[in] CtfCfgTransId transId
2923 S16 cmPkCtfEnbStopInd
2927 CtfCfgTransId transId
2930 S16 cmPkCtfEnbStopInd(pst, suId, transId)
2933 CtfCfgTransId transId;
2936 Buffer *mBuf = NULLP;
2938 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2939 #if (ERRCLASS & ERRCLS_ADD_RES)
2940 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2941 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2942 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2943 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2947 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2948 #if (ERRCLASS & ERRCLS_ADD_RES)
2949 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2950 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2951 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2952 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2957 if (SPkS16(suId, mBuf) != ROK) {
2958 #if (ERRCLASS & ERRCLS_ADD_RES)
2959 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2960 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2961 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2962 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2967 pst->event = (Event) EVTCTFENBSTOPIND;
2968 return (SPstTsk(pst,mBuf));
2971 #ifdef TENB_AS_SECURITY
2972 /***********************************************************
2974 * Func: cmPkCtfKenbCfgInfo
2977 * Desc: Key derivation funtion Input Information
2978 * @details This funtion packs the the CtfKenbCfgInfo structure
2979 * which contains the eNodeB key and Algorithm Type for
2980 * deriving AS security keys.
2989 **********************************************************/
2991 S16 cmUnpkCtfNhKeyCfmInfo
2993 CtfNhKeyCfmInfo *param,
2997 S16 cmUnpkCtfNhKeyCfmInfo(param, mBuf)
2998 CtfNhKeyCfmInfo *param;
3006 for(idx=0;idx<32;idx++)
3008 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
3013 /***********************************************************
3015 * Func: cmPkCtfKenbCfgInfo
3018 * Desc: Key derivation funtion Input Information
3019 * @details This funtion packs the the CtfKenbCfgInfo structure
3020 * which contains the eNodeB key and Algorithm Type for
3021 * deriving AS security keys.
3030 **********************************************************/
3032 S16 cmUnpkCtfKenbStarCfmInfo
3034 CtfKenbStarCfmInfo *param,
3038 S16 cmUnpkCtfKenbStarCfmInfo(param, mBuf)
3039 CtfKenbStarCfmInfo *param;
3047 for(idx=0;idx<32;idx++)
3049 CMCHKUNPK(oduPackUInt8,¶m->secKey[idx],mBuf);
3055 /***********************************************************
3057 * Func: cmPkCtfKenbCfgInfo
3060 * Desc: Key derivation funtion Input Information
3061 * @details This funtion packs the the CtfKenbCfgInfo structure
3062 * which contains the eNodeB key and Algorithm Type for
3063 * deriving AS security keys.
3072 **********************************************************/
3074 S16 cmUnpkCtfAskeyCfmInfo
3076 CtfAskeyCfmInfo *param,
3080 S16 cmUnpkCtfAskeyCfmInfo(param, mBuf)
3081 CtfAskeyCfmInfo *param;
3089 for(idx=0;idx<16;idx++)
3091 CMCHKUNPK(oduPackUInt8,¶m->intKey[idx],mBuf);
3093 for(idx=0;idx<16;idx++)
3095 CMCHKUNPK(oduPackUInt8,¶m->upCiphKey[idx],mBuf);
3097 for(idx=0;idx<16;idx++)
3099 CMCHKUNPK(oduPackUInt8,¶m->cpCiphKey[idx],mBuf);
3104 /***********************************************************
3106 * Func: cmPkCtfKenbCfgInfo
3109 * Desc: Key derivation funtion Input Information
3110 * @details This funtion packs the the CtfKenbCfgInfo structure
3111 * which contains the eNodeB key and Algorithm Type for
3112 * deriving AS security keys.
3121 * **********************************************************/
3123 S16 cmUnpkCtfKdfCfmInfo
3125 CtfKdfCfmInfo *param,
3129 S16 cmUnpkCtfKdfCfmInfo(param, mBuf)
3130 CtfKdfCfmInfo *param;
3136 CMCHKUNPK(oduPackUInt8, ¶m->keyDerType, mBuf);
3137 switch (param->keyDerType)
3140 CMCHKUNPK(cmUnpkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
3143 CMCHKUNPK(cmUnpkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
3146 CMCHKUNPK(cmUnpkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
3155 * @brief Configuration Confirm from PHY to RRC.
3159 * Function: cmUnpkCtfCfgCfm
3161 * @param[in] Pst* pst
3162 * @param[in] SuId suId
3163 * @param[in] CtfCfgTransId transId
3164 * @param[in] uint8_t status
3176 S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3183 CtfCfgTransId transId;
3185 CtfKdfCfmInfo kdfCfmInfo;
3188 if (SUnpkS16(&suId, mBuf) != ROK) {
3190 #if (ERRCLASS & ERRCLS_ADD_RES)
3191 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3192 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3193 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3194 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3198 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3200 #if (ERRCLASS & ERRCLS_ADD_RES)
3201 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3202 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3203 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3204 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3208 if (cmUnpkCtfKdfCfmInfo(&kdfCfmInfo, mBuf) != ROK) {
3210 #if (ERRCLASS & ERRCLS_ADD_RES)
3211 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3212 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3213 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3214 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3219 if (oduPackUInt8(&status, mBuf) != ROK) {
3221 #if (ERRCLASS & ERRCLS_ADD_RES)
3222 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3223 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3224 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3225 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3230 return ((*func)(pst, suId, transId,&kdfCfmInfo, status));
3236 * @brief Configuration Confirm from PHY to RRC.
3240 * Function: cmUnpkCtfCfgCfm
3242 * @param[in] Pst* pst
3243 * @param[in] SuId suId
3244 * @param[in] CtfCfgTransId transId
3245 * @param[in] uint8_t status
3257 S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3264 CtfCfgTransId transId;
3268 if (SUnpkS16(&suId, mBuf) != ROK) {
3270 #if (ERRCLASS & ERRCLS_ADD_RES)
3271 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3272 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3273 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3274 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3278 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3280 #if (ERRCLASS & ERRCLS_ADD_RES)
3281 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3282 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3283 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3284 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3288 if (oduPackUInt8(&status, mBuf) != ROK) {
3290 #if (ERRCLASS & ERRCLS_ADD_RES)
3291 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3292 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3293 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3294 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3299 return ((*func)(pst, suId, transId, status));
3303 * @brief ENB STOP Indication from PHY to ENB-APP
3307 * Function: cmUnpkCtfEnbStopInd
3309 * @param[in] Pst* pst
3310 * @param[in] SuId suId
3311 * @param[in] CtfCfgTransId transId
3316 S16 cmUnpkCtfEnbStopInd
3323 S16 cmUnpkCtfEnbStopInd(func, pst, mBuf)
3330 CtfCfgTransId transId;
3333 if (SUnpkS16(&suId, mBuf) != ROK) {
3335 #if (ERRCLASS & ERRCLS_ADD_RES)
3336 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3337 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3338 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3339 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3343 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3345 #if (ERRCLASS & ERRCLS_ADD_RES)
3346 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3347 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3348 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3349 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3354 return ((*func)(pst, suId, transId));
3359 * @brief UE ID Change Request from RRC to PHY.
3363 * Function: cmPkCtfUeIdChgReq
3365 * @param[in] Pst* pst
3366 * @param[in] SpId spId
3367 * @param[in] CtfCfgTransId transId
3368 * @param[in] CtfUeInfo * ueInfo
3369 * @param[in] CtfUeInfo * newUeInfo
3374 S16 cmPkCtfUeIdChgReq
3378 CtfCfgTransId transId,
3380 CtfUeInfo * newUeInfo
3383 S16 cmPkCtfUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
3386 CtfCfgTransId transId;
3388 CtfUeInfo * newUeInfo;
3391 Buffer *mBuf = NULLP;
3393 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3394 #if (ERRCLASS & ERRCLS_ADD_RES)
3395 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3396 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3397 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3398 (ErrVal)ECTF033, (ErrVal)0, (Txt*)&"Packing failed");
3400 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3401 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3404 if (pst->selector == ODU_SELECTOR_LC) {
3405 if (cmPkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3406 #if (ERRCLASS & ERRCLS_ADD_RES)
3407 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3408 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3409 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3410 (ErrVal)ECTF034, (ErrVal)0, (Txt*)&"Packing failed");
3412 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3413 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3418 else if (pst->selector == ODU_SELECTOR_LWLC) {
3419 if (oduPackPointer((PTR)newUeInfo, mBuf) != ROK) {
3420 #if (ERRCLASS & ERRCLS_ADD_RES)
3421 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3422 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3423 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3424 (ErrVal)ECTF035, (ErrVal)0, (Txt*)&"Packing failed");
3426 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3427 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3432 if (pst->selector == ODU_SELECTOR_LC) {
3433 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3434 #if (ERRCLASS & ERRCLS_ADD_RES)
3435 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3436 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3437 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3438 (ErrVal)ECTF036, (ErrVal)0, (Txt*)&"Packing failed");
3440 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3441 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3446 else if (pst->selector == ODU_SELECTOR_LWLC) {
3447 if (oduPackPointer((PTR)ueInfo, mBuf) != ROK) {
3448 #if (ERRCLASS & ERRCLS_ADD_RES)
3449 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3450 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3451 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3452 (ErrVal)ECTF037, (ErrVal)0, (Txt*)&"Packing failed");
3454 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3455 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3460 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3461 #if (ERRCLASS & ERRCLS_ADD_RES)
3462 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3463 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3464 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3465 (ErrVal)ECTF038, (ErrVal)0, (Txt*)&"Packing failed");
3467 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3468 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3472 if (SPkS16(spId, mBuf) != ROK) {
3473 #if (ERRCLASS & ERRCLS_ADD_RES)
3474 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3475 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3476 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3477 (ErrVal)ECTF039, (ErrVal)0, (Txt*)&"Packing failed");
3479 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3480 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3484 if (pst->selector != ODU_SELECTOR_LWLC) {
3485 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3486 #if (ERRCLASS & ERRCLS_ADD_RES)
3487 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3488 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3489 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3490 (ErrVal)ECTF040, (ErrVal)0, (Txt*)&"Packing failed");
3495 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo)) != ROK) {
3496 #if (ERRCLASS & ERRCLS_ADD_RES)
3497 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3498 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3499 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3500 (ErrVal)ECTF041, (ErrVal)0, (Txt*)&"Packing failed");
3506 pst->event = (Event) EVTCTFUEIDCHGREQ;
3507 return (SPstTsk(pst,mBuf));
3512 * @brief UE ID Change Request from RRC to PHY.
3516 * Function: cmUnpkCtfUeIdChgReq
3518 * @param[in] Pst* pst
3519 * @param[in] SpId spId
3520 * @param[in] CtfCfgTransId transId
3521 * @param[in] CtfUeInfo * ueInfo
3522 * @param[in] CtfUeInfo * newUeInfo
3527 S16 cmUnpkCtfUeIdChgReq
3534 S16 cmUnpkCtfUeIdChgReq(func, pst, mBuf)
3541 CtfCfgTransId transId;
3542 CtfUeInfo *ueInfo = NULLP;
3543 CtfUeInfo *newUeInfo = NULLP;
3546 if (SUnpkS16(&spId, mBuf) != ROK) {
3548 #if (ERRCLASS & ERRCLS_ADD_RES)
3549 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3550 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3551 (Txt*)& __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3552 (ErrVal)ECTF042, (ErrVal)0, (Txt*)&"Packing failed");
3556 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3558 #if (ERRCLASS & ERRCLS_ADD_RES)
3559 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3560 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3561 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3562 (ErrVal)ECTF043, (ErrVal)0, (Txt*)&"Packing failed");
3566 if (pst->selector != ODU_SELECTOR_LWLC) {
3567 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3568 #if (ERRCLASS & ERRCLS_ADD_RES)
3569 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3570 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3571 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3572 (ErrVal)ECTF044, (ErrVal)0, (Txt*)&"Packing failed");
3578 if (pst->selector == ODU_SELECTOR_LWLC) {
3579 if (oduUnpackPointer((PTR *)&ueInfo, mBuf) != ROK) {
3584 else if (pst->selector == ODU_SELECTOR_LC)
3585 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3586 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3588 #if (ERRCLASS & ERRCLS_ADD_RES)
3589 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3590 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3591 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3592 (ErrVal)ECTF045, (ErrVal)0, (Txt*)&"Packing failed");
3596 if (pst->selector != ODU_SELECTOR_LWLC) {
3597 if ((SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo, sizeof(CtfUeInfo))) != ROK) {
3598 #if (ERRCLASS & ERRCLS_ADD_RES)
3599 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3600 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3601 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3602 (ErrVal)ECTF046, (ErrVal)0, (Txt*)&"Packing failed");
3605 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3609 if (pst->selector == ODU_SELECTOR_LWLC) {
3610 if (oduUnpackPointer((PTR *)&newUeInfo, mBuf) != ROK) {
3615 else if (pst->selector == ODU_SELECTOR_LC)
3616 if (cmUnpkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3617 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3618 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3620 #if (ERRCLASS & ERRCLS_ADD_RES)
3621 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3622 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3623 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3624 (ErrVal)ECTF047, (ErrVal)0, (Txt*)&"Packing failed");
3629 return ((*func)(pst, spId, transId, ueInfo, newUeInfo));
3634 * @brief UE ID Change Confirm from PHY to RRC.
3638 * Function: cmPkCtfUeIdChgCfm
3640 * @param[in] Pst* pst
3641 * @param[in] SuId suId
3642 * @param[in] CtfCfgTransId transId
3643 * @param[in] CtfUeInfo * ueInfo
3644 * @param[in] uint8_t status
3649 S16 cmPkCtfUeIdChgCfm
3653 CtfCfgTransId transId,
3658 S16 cmPkCtfUeIdChgCfm(pst, suId, transId, ueInfo, status)
3661 CtfCfgTransId transId;
3666 Buffer *mBuf = NULLP;
3668 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3669 #if (ERRCLASS & ERRCLS_ADD_RES)
3670 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3671 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3672 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3673 (ErrVal)ECTF048, (ErrVal)0, (Txt*)&"Packing failed");
3675 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3678 if (cmPkCmStatus(&status, mBuf) != ROK) {
3679 #if (ERRCLASS & ERRCLS_ADD_RES)
3680 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3681 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3682 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3683 (ErrVal)ECTF049, (ErrVal)0, (Txt*)&"Packing failed");
3685 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3689 if (pst->selector == ODU_SELECTOR_LC) {
3690 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3691 #if (ERRCLASS & ERRCLS_ADD_RES)
3692 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3693 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3694 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3695 (ErrVal)ECTF050, (ErrVal)0, (Txt*)&"Packing failed");
3697 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3702 else if (pst->selector == ODU_SELECTOR_LWLC) {
3703 if (oduPackPointer((PTR)ueInfo, mBuf) != ROK) {
3704 #if (ERRCLASS & ERRCLS_ADD_RES)
3705 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3706 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3707 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3708 (ErrVal)ECTF051, (ErrVal)0, (Txt*)&"Packing failed");
3710 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3715 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3716 #if (ERRCLASS & ERRCLS_ADD_RES)
3717 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3718 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3719 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3720 (ErrVal)ECTF052, (ErrVal)0, (Txt*)&"Packing failed");
3722 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3726 if (SPkS16(suId, mBuf) != ROK) {
3727 #if (ERRCLASS & ERRCLS_ADD_RES)
3728 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3729 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3730 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3731 (ErrVal)ECTF053, (ErrVal)0, (Txt*)&"Packing failed");
3733 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3737 if (pst->selector != ODU_SELECTOR_LWLC) {
3738 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3739 #if (ERRCLASS & ERRCLS_ADD_RES)
3740 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3741 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3742 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3743 (ErrVal)ECTF054, (ErrVal)0, (Txt*)&"Packing failed");
3749 pst->event = (Event) EVTCTFUEIDCHGCFM;
3750 return (SPstTsk(pst,mBuf));
3755 * @brief UE ID Change Confirm from PHY to RRC.
3759 * Function: cmUnpkCtfUeIdChgCfm
3761 * @param[in] Pst* pst
3762 * @param[in] SuId suId
3763 * @param[in] CtfCfgTransId transId
3764 * @param[in] CtfUeInfo * ueInfo
3765 * @param[in] uint8_t status
3770 S16 cmUnpkCtfUeIdChgCfm
3777 S16 cmUnpkCtfUeIdChgCfm(func, pst, mBuf)
3784 CtfCfgTransId transId;
3785 CtfUeInfo *ueInfo = NULLP;
3789 if (SUnpkS16(&suId, mBuf) != ROK) {
3791 #if (ERRCLASS & ERRCLS_ADD_RES)
3792 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3793 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3794 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3795 (ErrVal)ECTF055, (ErrVal)0, (Txt*)&"Packing failed");
3799 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3801 #if (ERRCLASS & ERRCLS_ADD_RES)
3802 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3803 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3804 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3805 (ErrVal)ECTF056, (ErrVal)0, (Txt*)&"Packing failed");
3809 if (pst->selector != ODU_SELECTOR_LWLC) {
3810 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3811 #if (ERRCLASS & ERRCLS_ADD_RES)
3812 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3813 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3814 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3815 (ErrVal)ECTF057, (ErrVal)0, (Txt*)&"Packing failed");
3821 if (pst->selector == ODU_SELECTOR_LWLC) {
3822 if (oduUnpackPointer((PTR *)&ueInfo, mBuf) != ROK) {
3827 else if (pst->selector == ODU_SELECTOR_LC)
3828 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3829 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3831 #if (ERRCLASS & ERRCLS_ADD_RES)
3832 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3833 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3834 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3835 (ErrVal)ECTF058, (ErrVal)0, (Txt*)&"Packing failed");
3839 if (cmUnpkCmStatus(&status, mBuf) != ROK) {
3840 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3842 #if (ERRCLASS & ERRCLS_ADD_RES)
3843 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3844 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3845 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3846 (ErrVal)ECTF059, (ErrVal)0, (Txt*)&"Packing failed");
3851 return ((*func)(pst, suId, transId, ueInfo, status));
3855 /***********************************************************
3857 * Func: cmPkCtfCfgTransId
3860 * Desc: Transaction ID between CTF and RRC.
3869 **********************************************************/
3871 S16 cmPkCtfCfgTransId
3873 CtfCfgTransId *param,
3877 S16 cmPkCtfCfgTransId(param, mBuf)
3878 CtfCfgTransId *param;
3885 for (i=CTF_CFG_TRANSID_SIZE-1; i >= 0; i--) {
3886 CMCHKPK(oduUnpackUInt8, param->trans[i], mBuf);
3893 /***********************************************************
3895 * Func: cmUnpkCtfCfgTransId
3898 * Desc: Transaction ID between CTF and RRC.
3907 **********************************************************/
3909 S16 cmUnpkCtfCfgTransId
3911 CtfCfgTransId *param,
3915 S16 cmUnpkCtfCfgTransId(param, mBuf)
3916 CtfCfgTransId *param;
3923 for (i=0; i<CTF_CFG_TRANSID_SIZE; i++) {
3924 CMCHKUNPK(oduPackUInt8, ¶m->trans[i], mBuf);
3931 /***********************************************************
3933 * Func: cmPkCtfUeInfo
3936 * Desc: * UE ID information
3945 **********************************************************/
3953 S16 cmPkCtfUeInfo(param, mBuf)
3960 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
3961 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
3967 /***********************************************************
3969 * Func: cmUnpkCtfUeInfo
3972 * Desc: * UE ID information
3981 **********************************************************/
3989 S16 cmUnpkCtfUeInfo(param, mBuf)
3996 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
3997 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
4003 /***********************************************************
4005 * Func: cmPkCtfBwCfgInfo
4008 * Desc: Bandwidth Configuration
4009 * @details This structure contains the uplink and downlink bandwidth
4010 * information for configuration at PHY.
4019 **********************************************************/
4021 S16 cmPkCtfBwCfgInfo
4023 CtfBwCfgInfo *param,
4027 S16 cmPkCtfBwCfgInfo(param, mBuf)
4028 CtfBwCfgInfo *param;
4034 CMCHKPK(oduUnpackUInt8, param->eUtraBand, mBuf);
4035 CMCHKPK(oduUnpackUInt32, param->ulBw, mBuf);
4036 CMCHKPK(oduUnpackUInt32, param->dlBw, mBuf);
4037 /* ctf_c_001.main_4: Removed packing of param->pres */
4043 /***********************************************************
4045 * Func: cmUnpkCtfBwCfgInfo
4048 * Desc: Bandwidth Configuration
4049 * @details This structure contains the uplink and downlink bandwidth
4050 * information for configuration at PHY.
4059 **********************************************************/
4061 S16 cmUnpkCtfBwCfgInfo
4063 CtfBwCfgInfo *param,
4067 S16 cmUnpkCtfBwCfgInfo(param, mBuf)
4068 CtfBwCfgInfo *param;
4075 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4076 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4077 param->dlBw = (CtfBandwidth)tmpEnum;
4078 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4079 param->ulBw = (CtfBandwidth)tmpEnum;
4080 CMCHKUNPK(oduPackUInt8, ¶m->eUtraBand, mBuf);
4086 /***********************************************************
4088 * Func: cmPkCtfTxSchemeCfg
4091 * Desc: Transmission Scheme Configuration
4092 * @details This structure contains the transmission scheme related information.
4101 **********************************************************/
4103 S16 cmPkCtfTxSchemeCfg
4105 CtfTxSchemeCfg *param,
4109 S16 cmPkCtfTxSchemeCfg(param, mBuf)
4110 CtfTxSchemeCfg *param;
4116 CMCHKPK(oduUnpackUInt32, param->cycPfx, mBuf);
4117 CMCHKPK(oduUnpackUInt32, param->scSpacing, mBuf);
4118 CMCHKPK(oduUnpackUInt32, param->duplexMode, mBuf);
4119 /* ctf_c_001.main_4: Removed packing of param->pres */
4125 /***********************************************************
4127 * Func: cmUnpkCtfTxSchemeCfg
4130 * Desc: Transmission Scheme Configuration
4131 * @details This structure contains the transmission scheme related information.
4140 **********************************************************/
4142 S16 cmUnpkCtfTxSchemeCfg
4144 CtfTxSchemeCfg *param,
4148 S16 cmUnpkCtfTxSchemeCfg(param, mBuf)
4149 CtfTxSchemeCfg *param;
4156 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4157 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4158 param->duplexMode = (CtfDuplexMode)tmpEnum;
4159 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4160 param->scSpacing = (CtfSCSpacing)tmpEnum;
4161 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4162 param->cycPfx = (CtfCPCfg)tmpEnum;
4168 /***********************************************************
4170 * Func: cmPkCtfAntennaCfgInfo
4173 * Desc: Antenna Ports configuration
4174 * @details This structure contains the antenna configuration information for
4175 * configuration at PHY.
4184 **********************************************************/
4186 S16 cmPkCtfAntennaCfgInfo
4188 CtfAntennaCfgInfo *param,
4192 S16 cmPkCtfAntennaCfgInfo(param, mBuf)
4193 CtfAntennaCfgInfo *param;
4199 CMCHKPK(oduUnpackUInt32, param->antPortsCnt, mBuf);
4205 /***********************************************************
4207 * Func: cmUnpkCtfAntennaCfgInfo
4210 * Desc: Antenna Ports configuration
4211 * @details This structure contains the antenna configuration information for
4212 * configuration at PHY.
4221 **********************************************************/
4223 S16 cmUnpkCtfAntennaCfgInfo
4225 CtfAntennaCfgInfo *param,
4229 S16 cmUnpkCtfAntennaCfgInfo(param, mBuf)
4230 CtfAntennaCfgInfo *param;
4236 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4237 param->antPortsCnt = (CtfAntennaPortsCount)tmpEnum;
4243 /***********************************************************
4245 * Func: cmPkCtfPrachCfgInfo
4248 * Desc: PRACH configuration
4249 * @details This structure contains the configuration information for PRACH at PHY.
4250 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4251 * sequences.[Ref: 36.211, 5.7.2]
4252 * -# PRACH preamble format is derived from PRACH Configuration Index.
4253 * [Ref: 36.211, Table 5.7.1-2]
4254 * -# PrachFreqOffset is the first physical resource block allocated to
4255 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4256 * [Ref: 36.211, 5.7.1]
4265 **********************************************************/
4267 S16 cmPkCtfPrachCfgInfo
4269 CtfPrachCfgInfo *param,
4273 S16 cmPkCtfPrachCfgInfo(param, mBuf)
4274 CtfPrachCfgInfo *param;
4280 /*ctf_c_001.main_1*/
4281 if(param->pres != FALSE)
4283 CMCHKPK(oduUnpackUInt8, param->prachFreqOffset, mBuf);
4284 CMCHKPK(oduUnpackUInt8, param->highSpeedFlag, mBuf);
4285 CMCHKPK(oduUnpackUInt8, param->zeroCorrelationZoneCfg, mBuf);
4286 CMCHKPK(oduUnpackUInt8, param->prachCfgIndex, mBuf);
4287 CMCHKPK(oduUnpackUInt16, param->rootSequenceIndex, mBuf);
4289 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4295 /***********************************************************
4297 * Func: cmUnpkCtfPrachCfgInfo
4300 * Desc: PRACH configuration
4301 * @details This structure contains the configuration information for PRACH at PHY.
4302 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4303 * sequences.[Ref: 36.211, 5.7.2]
4304 * -# PRACH preamble format is derived from PRACH Configuration Index.
4305 * [Ref: 36.211, Table 5.7.1-2]
4306 * -# PrachFreqOffset is the first physical resource block allocated to
4307 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4308 * [Ref: 36.211, 5.7.1]
4317 **********************************************************/
4319 S16 cmUnpkCtfPrachCfgInfo
4321 CtfPrachCfgInfo *param,
4325 S16 cmUnpkCtfPrachCfgInfo(param, mBuf)
4326 CtfPrachCfgInfo *param;
4332 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4333 /*ctf_c_001.main_1*/
4334 if(param->pres != FALSE)
4336 CMCHKUNPK(oduPackUInt16, ¶m->rootSequenceIndex, mBuf);
4337 CMCHKUNPK(oduPackUInt8, ¶m->prachCfgIndex, mBuf);
4338 CMCHKUNPK(oduPackUInt8, ¶m->zeroCorrelationZoneCfg, mBuf);
4339 CMCHKUNPK(oduPackUInt8, ¶m->highSpeedFlag, mBuf);
4340 CMCHKUNPK(oduPackUInt8, ¶m->prachFreqOffset, mBuf);
4347 /***********************************************************
4349 * Func: cmPkCtfPdschCfgInfo
4352 * Desc: PDSCH configuration
4353 * @details This structure contains the PDSCH configuration information for
4354 * configuration at PHY.
4363 **********************************************************/
4365 S16 cmPkCtfPdschCfgInfo
4367 CtfPdschCfgInfo *param,
4371 S16 cmPkCtfPdschCfgInfo(param, mBuf)
4372 CtfPdschCfgInfo *param;
4377 /*ctf_c_001.main_1*/
4378 if(param->pres != FALSE)
4380 CMCHKPK(oduUnpackUInt8, param->p_b, mBuf);
4381 CMCHKPK(SPkS16, param->refSigPwr, mBuf);
4383 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4389 /***********************************************************
4391 * Func: cmUnpkCtfPdschCfgInfo
4394 * Desc: PDSCH configuration
4395 * @details This structure contains the PDSCH configuration information for
4396 * configuration at PHY.
4405 **********************************************************/
4407 S16 cmUnpkCtfPdschCfgInfo
4409 CtfPdschCfgInfo *param,
4413 S16 cmUnpkCtfPdschCfgInfo(param, mBuf)
4414 CtfPdschCfgInfo *param;
4420 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4421 /*ctf_c_001.main_1*/
4422 if(param->pres != FALSE)
4424 CMCHKUNPK(SUnpkS16, ¶m->refSigPwr, mBuf);
4425 CMCHKUNPK(oduPackUInt8, ¶m->p_b, mBuf);
4432 /***********************************************************
4434 * Func: cmPkCtfPuschCfgBasic
4437 * Desc: Basic PUSCH configuration
4438 * @details This structure contains the basic PUSCH configuration information for
4439 * configuration at PHY.
4448 **********************************************************/
4450 S16 cmPkCtfPuschCfgBasic
4452 CtfPuschCfgBasic *param,
4456 S16 cmPkCtfPuschCfgBasic(param, mBuf)
4457 CtfPuschCfgBasic *param;
4463 CMCHKPK(oduUnpackUInt8, param->enable64QAM, mBuf);
4464 CMCHKPK(oduUnpackUInt8, param->hoppingOffset, mBuf);
4465 CMCHKPK(oduUnpackUInt32, param->hoppingMode, mBuf);
4466 CMCHKPK(oduUnpackUInt8, param->noOfsubBands, mBuf);
4472 /***********************************************************
4474 * Func: cmUnpkCtfPuschCfgBasic
4477 * Desc: Basic PUSCH configuration
4478 * @details This structure contains the basic PUSCH configuration information for
4479 * configuration at PHY.
4488 **********************************************************/
4490 S16 cmUnpkCtfPuschCfgBasic
4492 CtfPuschCfgBasic *param,
4496 S16 cmUnpkCtfPuschCfgBasic(param, mBuf)
4497 CtfPuschCfgBasic *param;
4504 CMCHKUNPK(oduPackUInt8, ¶m->noOfsubBands, mBuf);
4505 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4506 param->hoppingMode = (CtfPuschHoppingMode)tmpEnum;
4507 CMCHKUNPK(oduPackUInt8, ¶m->hoppingOffset, mBuf);
4508 CMCHKUNPK(oduPackUInt8, ¶m->enable64QAM, mBuf);
4514 /***********************************************************
4516 * Func: cmPkCtfPuschUlRS
4519 * Desc: PUSCH Uplink Reference Signals configuration
4520 * @details This structure contains the PUSCH configuration information for
4521 * uplink reference signals configuration at PHY.
4530 **********************************************************/
4532 S16 cmPkCtfPuschUlRS
4534 CtfPuschUlRS *param,
4538 S16 cmPkCtfPuschUlRS(param, mBuf)
4539 CtfPuschUlRS *param;
4545 CMCHKPK(oduUnpackUInt8, param->cycShift, mBuf);
4546 CMCHKPK(oduUnpackUInt8, param->grpNum, mBuf);
4547 CMCHKPK(oduUnpackUInt8, param->seqHopEnabled, mBuf);
4548 CMCHKPK(oduUnpackUInt8, param->grpHopEnabled, mBuf);
4554 /***********************************************************
4556 * Func: cmUnpkCtfPuschUlRS
4559 * Desc: PUSCH Uplink Reference Signals configuration
4560 * @details This structure contains the PUSCH configuration information for
4561 * uplink reference signals configuration at PHY.
4570 **********************************************************/
4572 S16 cmUnpkCtfPuschUlRS
4574 CtfPuschUlRS *param,
4578 S16 cmUnpkCtfPuschUlRS(param, mBuf)
4579 CtfPuschUlRS *param;
4585 CMCHKUNPK(oduPackUInt8, ¶m->grpHopEnabled, mBuf);
4586 CMCHKUNPK(oduPackUInt8, ¶m->seqHopEnabled, mBuf);
4587 CMCHKUNPK(oduPackUInt8, ¶m->grpNum, mBuf);
4588 CMCHKUNPK(oduPackUInt8, ¶m->cycShift, mBuf);
4594 /***********************************************************
4596 * Func: cmPkCtfPuschCfgInfo
4599 * Desc: PUSCH configuration
4600 * @details This structure contains the information for PUSCH
4601 * configuration at PHY.
4610 **********************************************************/
4612 S16 cmPkCtfPuschCfgInfo
4614 CtfPuschCfgInfo *param,
4618 S16 cmPkCtfPuschCfgInfo(param, mBuf)
4619 CtfPuschCfgInfo *param;
4625 /*ctf_c_001.main_1*/
4626 if(param->pres != FALSE)
4628 CMCHKPK(cmPkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4629 CMCHKPK(cmPkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4631 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4637 /***********************************************************
4639 * Func: cmUnpkCtfPuschCfgInfo
4642 * Desc: PUSCH configuration
4643 * @details This structure contains the information for PUSCH
4644 * configuration at PHY.
4653 **********************************************************/
4655 S16 cmUnpkCtfPuschCfgInfo
4657 CtfPuschCfgInfo *param,
4661 S16 cmUnpkCtfPuschCfgInfo(param, mBuf)
4662 CtfPuschCfgInfo *param;
4668 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4669 /*ctf_c_001.main_1*/
4670 if(param->pres != FALSE)
4672 CMCHKUNPK(cmUnpkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4673 CMCHKUNPK(cmUnpkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4680 /***********************************************************
4682 * Func: cmPkCtfPhichCfgInfo
4685 * Desc: PHICH configuration
4686 * @details This structure contains the duration and resource information for
4687 * PHICH configuration at PHY.
4696 **********************************************************/
4698 S16 cmPkCtfPhichCfgInfo
4700 CtfPhichCfgInfo *param,
4704 S16 cmPkCtfPhichCfgInfo(param, mBuf)
4705 CtfPhichCfgInfo *param;
4711 /*ctf_c_001.main_1*/
4712 if(param->pres != FALSE)
4714 CMCHKPK(oduUnpackUInt32, param->resource, mBuf);
4715 CMCHKPK(oduUnpackUInt32, param->duration, mBuf);
4717 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4723 /***********************************************************
4725 * Func: cmUnpkCtfPhichCfgInfo
4728 * Desc: PHICH configuration
4729 * @details This structure contains the duration and resource information for
4730 * PHICH configuration at PHY.
4739 **********************************************************/
4741 S16 cmUnpkCtfPhichCfgInfo
4743 CtfPhichCfgInfo *param,
4747 S16 cmUnpkCtfPhichCfgInfo(param, mBuf)
4748 CtfPhichCfgInfo *param;
4755 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4756 /*ctf_c_001.main_1*/
4757 if(param->pres != FALSE)
4759 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4760 param->duration = (CtfPhichDuration)tmpEnum;
4761 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4762 param->resource = (CtfPhichResource)tmpEnum;
4769 /***********************************************************
4771 * Func: cmPkCtfPucchCfgInfo
4774 * Desc: PUCCH configuration
4775 * @details This structure contains the information for PUCCH
4776 * configuration at PHY.
4785 **********************************************************/
4787 S16 cmPkCtfPucchCfgInfo
4789 CtfPucchCfgInfo *param,
4793 S16 cmPkCtfPucchCfgInfo(param, mBuf)
4794 CtfPucchCfgInfo *param;
4800 /*ctf_c_001.main_1*/
4801 if(param->pres != FALSE)
4803 CMCHKPK(oduUnpackUInt32, param->deltaShift, mBuf);
4804 CMCHKPK(oduUnpackUInt16, param->n1PUCCH, mBuf);
4805 CMCHKPK(oduUnpackUInt8, param->nCS, mBuf);
4806 CMCHKPK(oduUnpackUInt8, param->nRB, mBuf);
4808 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4814 /***********************************************************
4816 * Func: cmUnpkCtfPucchCfgInfo
4819 * Desc: PUCCH configuration
4820 * @details This structure contains the information for PUCCH
4821 * configuration at PHY.
4830 **********************************************************/
4832 S16 cmUnpkCtfPucchCfgInfo
4834 CtfPucchCfgInfo *param,
4838 S16 cmUnpkCtfPucchCfgInfo(param, mBuf)
4839 CtfPucchCfgInfo *param;
4846 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4847 /*ctf_c_001.main_1*/
4848 if(param->pres != FALSE)
4850 CMCHKUNPK(oduPackUInt8, ¶m->nRB, mBuf);
4851 CMCHKUNPK(oduPackUInt8, ¶m->nCS, mBuf);
4852 CMCHKUNPK(oduPackUInt16, ¶m->n1PUCCH, mBuf);
4853 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
4854 param->deltaShift = (CtfPucchDeltaShift)tmpEnum;
4861 /***********************************************************
4863 * Func: cmPkCtfSrsUlCfgInfo
4866 * Desc: SRS uplink configuration
4867 * @details This structure contains the information for setting-up/release
4868 * of uplink SRS configuration at PHY.
4877 **********************************************************/
4879 S16 cmPkCtfSrsUlCfgInfo
4881 CtfSrsUlCfgInfo *param,
4885 S16 cmPkCtfSrsUlCfgInfo(param, mBuf)
4886 CtfSrsUlCfgInfo *param;
4892 /*ctf_c_001.main_1*/
4893 if(param->pres != FALSE)
4895 CMCHKPK(oduUnpackUInt8, param->srsSetup.srsMaxUpPts, mBuf);
4896 CMCHKPK(oduUnpackUInt8, param->srsSetup.srsANSimultTx, mBuf);
4897 CMCHKPK(oduUnpackUInt8, param->srsSetup.sfCfg, mBuf);
4898 CMCHKPK(oduUnpackUInt8, param->srsSetup.srsBw, mBuf);
4899 CMCHKPK(oduUnpackUInt8, param->srsCfgType, mBuf);
4901 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4907 /***********************************************************
4909 * Func: cmUnpkCtfSrsUlCfgInfo
4912 * Desc: SRS uplink configuration
4913 * @details This structure contains the information for setting-up/release
4914 * of uplink SRS configuration at PHY.
4923 **********************************************************/
4925 S16 cmUnpkCtfSrsUlCfgInfo
4927 CtfSrsUlCfgInfo *param,
4931 S16 cmUnpkCtfSrsUlCfgInfo(param, mBuf)
4932 CtfSrsUlCfgInfo *param;
4938 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
4939 /*ctf_c_001.main_1*/
4940 if(param->pres != FALSE)
4942 CMCHKUNPK(oduPackUInt8, ¶m->srsCfgType, mBuf);
4943 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.srsBw, mBuf);
4944 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.sfCfg, mBuf);
4945 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.srsANSimultTx, mBuf);
4946 CMCHKUNPK(oduPackUInt8, ¶m->srsSetup.srsMaxUpPts, mBuf);
4953 /***********************************************************
4955 * Func: cmPkCtfTddSfCfgInfo
4958 * Desc: Subframe Configuration for TDD mode.
4959 * @details This structure contains the information for setting-up
4960 * the subframe for TDD mode at PHY.
4969 **********************************************************/
4971 S16 cmPkCtfTddSfCfgInfo
4973 CtfTddSfCfgInfo *param,
4977 S16 cmPkCtfTddSfCfgInfo(param, mBuf)
4978 CtfTddSfCfgInfo *param;
4984 /*ctf_c_001.main_1*/
4985 if(param->pres != FALSE)
4987 CMCHKPK(oduUnpackUInt8, param->spclSfPatterns, mBuf);
4988 CMCHKPK(oduUnpackUInt8, param->sfAssignment, mBuf);
4990 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
4994 /* ctf_c_001.main_4: Added support for vendor specific parameters */
4996 /***********************************************************
4998 * Func: cmPkCtfVendorSpecParams
5001 * Desc: Vendor Specific Parameter configuration
5002 * @details This structure contains the Parameters which is spaciftc to
5012 **********************************************************/
5014 S16 cmPkCtfVendorSpecParams
5016 CtfVendorSpecific *param,
5020 S16 cmPkCtfVendorSpecParams(param, mBuf)
5021 CtfVendorSpecific *param;
5026 if( param->buffLen != 0) {
5027 SAddPreMsgMultInOrder(param->paramBuffer,param->buffLen,mBuf);
5029 CMCHKPK(oduUnpackUInt16,param->buffLen,mBuf);
5034 /***********************************************************
5036 * Func: cmUnpkCtfVendorSpecParams
5039 * Desc: Vendor Specific Parameter configuration
5040 * @details This structure contains the Parameters which is spaciftc to
5050 **********************************************************/
5052 S16 cmUnpkCtfVendorSpecParams
5055 CtfVendorSpecific *param,
5059 S16 cmUnpkCtfVendorSpecParams(pst, param, mBuf)
5061 CtfVendorSpecific *param;
5067 CMCHKUNPK(oduPackUInt16, ¶m->buffLen, mBuf);
5069 if(param->buffLen != 0) {
5070 if ((SGetSBuf(pst->region, pst->pool, (Data **)¶m->paramBuffer, param->buffLen)) != ROK) {
5071 #if (ERRCLASS & ERRCLS_ADD_RES)
5072 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
5073 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
5074 (ErrVal)ECTF060, (ErrVal)0, (Txt*)&"Unpacking failed");
5078 SRemPreMsgMult(param->paramBuffer, param->buffLen,mBuf) ;
5081 param->paramBuffer = NULLP ;
5088 /***********************************************************
5090 * Func: cmUnpkCtfTddSfCfgInfo
5093 * Desc: Subframe Configuration for TDD mode.
5094 * @details This structure contains the information for setting-up
5095 * the subframe for TDD mode at PHY.
5104 **********************************************************/
5106 S16 cmUnpkCtfTddSfCfgInfo
5108 CtfTddSfCfgInfo *param,
5112 S16 cmUnpkCtfTddSfCfgInfo(param, mBuf)
5113 CtfTddSfCfgInfo *param;
5119 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5120 /*ctf_c_001.main_1*/
5121 if(param->pres != FALSE)
5123 CMCHKUNPK(oduPackUInt8, ¶m->sfAssignment, mBuf);
5124 CMCHKUNPK(oduPackUInt8, ¶m->spclSfPatterns, mBuf);
5128 /***********************************************************
5130 * Func: cmPkCtfUnLicnsdCellParam
5133 * Desc: Packing unlicensed SDL cell specific parameter
5142 **********************************************************/
5144 static S16 cmPkCtfUnLicnsdCellParam
5146 CtfUnLicnsdCfgInfo *param,
5150 static S16 cmPkCtfUnLicnsdCellParam(param, mBuf)
5151 CtfUnLicnsdCfgInfo *param;
5158 CMCHKPK(SPkS32, param->txPowerLimit, mBuf);
5159 CMCHKPK(oduUnpackUInt8, param->coExistMethod, mBuf);
5160 CMCHKPK(oduUnpackUInt8, param->lteOnPeriod, mBuf);
5161 CMCHKPK(oduUnpackUInt8, param->ccaMethod, mBuf);
5162 CMCHKPK(oduUnpackUInt8, param->adaptiveTx, mBuf);
5163 CMCHKPK(oduUnpackUInt16, param->transPeriod, mBuf);
5164 CMCHKPK(oduUnpackUInt16, param->listenPrd, mBuf);
5165 CMCHKPK(SPkS16, param->energyTh, mBuf);
5166 CMCHKPK(oduUnpackUInt16, param->scanTimePrd, mBuf);
5167 CMCHKPK(oduUnpackUInt16, param->activityTh, mBuf);
5169 for(idx = 0; idx < param->numFreq; idx++)
5171 CMCHKPK(oduUnpackUInt32, param->earfcn[idx], mBuf);
5174 CMCHKPK(oduUnpackUInt8, param->numFreq, mBuf);
5179 /***********************************************************
5181 * Func: cmPkCtfCellCfgInfo
5184 * Desc: Cell Configuration Information
5185 * @details This structure contains the information for setting-up
5186 * of a cell and its associated resources at PHY.
5195 **********************************************************/
5197 S16 cmPkCtfCellCfgInfo
5199 CtfCellCfgInfo *param,
5203 S16 cmPkCtfCellCfgInfo(param, mBuf)
5204 CtfCellCfgInfo *param;
5213 for (i = CTF_MAX_CE_LEVEL-1; i >= 0; i--) {
5214 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5215 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].lastPreamble, mBuf);
5216 CMCHKPK(oduUnpackUInt8, param->ceLevelInfo[i].firstPreamble, mBuf);
5218 CMCHKPK(oduUnpackUInt8, param->mPdcchStart, mBuf);
5219 CMCHKPK(oduUnpackUInt8, param->catMenabled, mBuf);
5221 if(param->unLicnsdCfgPres)
5223 printf("pverma param->unLicnsdCfgPres cm/ctf -->%d\n",param->unLicnsdCfgPres);
5224 CMCHKPK(cmPkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5226 CMCHKPK(oduUnpackUInt8, param->unLicnsdCfgPres, mBuf);
5227 /*Added for rgu dynamic delta*/
5228 CMCHKPK(oduUnpackUInt8, param->numDlUePerTti, mBuf);
5229 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5230 CMCHKPK(oduUnpackUInt16, param->ulEarfcn, mBuf);
5231 CMCHKPK(oduUnpackUInt16, param->dlEarfcn, mBuf);
5232 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5233 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5234 /* Packing PHY configuration parameters */
5235 CMCHKPK(oduUnpackUInt32, param->period, mBuf);
5236 CMCHKPK(oduUnpackUInt32, param->counter, mBuf);
5237 CMCHKPK(oduUnpackUInt16, param->opMode, mBuf);
5239 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5240 CMCHKPK(oduUnpackUInt8, param->rachSrRepModePres, mBuf);
5241 CMCHKPK(oduUnpackUInt16, param->rachSrRepMode, mBuf);
5243 CMCHKPK(oduUnpackUInt8, param->dataRepModePres, mBuf);
5244 CMCHKPK(oduUnpackUInt16, param->dataRepMode, mBuf);
5246 CMCHKPK(oduUnpackUInt8, param->phySyncModePres, mBuf);
5247 CMCHKPK(oduUnpackUInt16, param->phySyncMode, mBuf);
5249 CMCHKPK(oduUnpackUInt8, param->rxAntennaPortsPres, mBuf);
5250 CMCHKPK(oduUnpackUInt16, param->rxAntennaPorts, mBuf);
5252 CMCHKPK(oduUnpackUInt8, param->txAntennaPortsPres, mBuf);
5253 CMCHKPK(oduUnpackUInt16, param->txAntennaPorts, mBuf);
5255 CMCHKPK(oduUnpackUInt8, param->pucchProbDtxAckPres, mBuf);
5256 CMCHKPK(oduUnpackUInt16, param->pucchProbDtxAck, mBuf);
5258 CMCHKPK(oduUnpackUInt8, param->puschProbDtxAckPres, mBuf);
5259 CMCHKPK(oduUnpackUInt16, param->puschProbDtxAck, mBuf);
5261 CMCHKPK(oduUnpackUInt8, param->srsDopEstFactorPres, mBuf);
5262 CMCHKPK(oduUnpackUInt16, param->srsDopEstFactor, mBuf);
5264 CMCHKPK(oduUnpackUInt8, param->prachPkRatio0Pres, mBuf);
5265 CMCHKPK(oduUnpackUInt16, param->prachPkRatio0, mBuf);
5267 CMCHKPK(oduUnpackUInt8, param->prachPkRatio4Pres, mBuf);
5268 CMCHKPK(oduUnpackUInt16, param->prachPkRatio4, mBuf);
5270 CMCHKPK(oduUnpackUInt8, param->pucchNoiseGammaPres, mBuf);
5271 CMCHKPK(oduUnpackUInt16, param->pucchNoiseGamma, mBuf);
5273 CMCHKPK(oduUnpackUInt8, param->extWinMarginPres, mBuf);
5274 CMCHKPK(oduUnpackUInt16, param->extWinMargin, mBuf);
5276 CMCHKPK(oduUnpackUInt8, param->dciPowOsPres, mBuf);
5277 CMCHKPK(oduUnpackUInt16, param->dciPowOs, mBuf);
5279 CMCHKPK(oduUnpackUInt8, param->cfiPowOsPres, mBuf);
5280 CMCHKPK(oduUnpackUInt16, param->cfiPowOs, mBuf);
5282 CMCHKPK(oduUnpackUInt8, param->syncSigPowOsPres, mBuf);
5283 CMCHKPK(oduUnpackUInt16, param->syncSigPowOs, mBuf);
5285 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5286 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5287 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5288 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5289 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5290 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5291 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5292 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5293 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5294 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5295 CMCHKPK(oduUnpackUInt8, param->physCellId, mBuf);
5296 CMCHKPK(oduUnpackUInt8, param->physCellIdPres, mBuf);
5298 CMCHKPK(SPkS16, param->macSapId, mBuf);
5299 CMCHKPK(SPkS16, param->schSapId, mBuf);
5301 CMCHKPK(oduUnpackUInt8, param->cellIdGrpId, mBuf);
5302 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5305 /***********************************************************
5307 * Func: cmUnpkCtfUnLicnsdCellParam
5310 * Desc: Unpacking unLicensed SDL cell specific parameter
5319 **********************************************************/
5321 static S16 cmUnpkCtfUnLicnsdCellParam
5323 CtfUnLicnsdCfgInfo *param,
5327 static S16 cmUnpkCtfUnLicnsdCellParam(param, mBuf)
5328 CtfUnLicnsdCfgInfo *param;
5335 CMCHKUNPK(oduPackUInt8, ¶m->numFreq, mBuf);
5337 for(idx = 0; idx < param->numFreq; idx++)
5339 CMCHKUNPK(oduPackUInt32, ¶m->earfcn[idx], mBuf);
5342 CMCHKUNPK(oduPackUInt16, ¶m->activityTh, mBuf);
5343 CMCHKUNPK(oduPackUInt16, ¶m->scanTimePrd, mBuf);
5344 CMCHKUNPK(SUnpkS16, ¶m->energyTh, mBuf);
5345 CMCHKUNPK(oduPackUInt16, ¶m->listenPrd, mBuf);
5346 CMCHKUNPK(oduPackUInt16, ¶m->transPeriod, mBuf);
5347 CMCHKUNPK(oduPackUInt8, ¶m->adaptiveTx, mBuf);
5348 CMCHKUNPK(oduPackUInt8, ¶m->ccaMethod, mBuf);
5349 CMCHKUNPK(oduPackUInt8, ¶m->lteOnPeriod, mBuf);
5350 CMCHKUNPK(oduPackUInt8, ¶m->coExistMethod, mBuf);
5351 CMCHKUNPK(SUnpkS32, ¶m->txPowerLimit, mBuf);
5357 /***********************************************************
5359 * Func: cmUnpkCtfCellCfgInfo
5362 * Desc: Cell Configuration Information
5363 * @details This structure contains the information for setting-up
5364 * of a cell and its associated resources at PHY.
5373 **********************************************************/
5375 S16 cmUnpkCtfCellCfgInfo
5377 CtfCellCfgInfo *param,
5381 S16 cmUnpkCtfCellCfgInfo(param, mBuf)
5382 CtfCellCfgInfo *param;
5390 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5391 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5392 CMCHKUNPK(oduPackUInt8, ¶m->cellIdGrpId, mBuf);
5394 CMCHKUNPK(SUnpkS16, ¶m->schSapId, mBuf);
5395 CMCHKUNPK(SUnpkS16, ¶m->macSapId, mBuf);
5397 CMCHKUNPK(oduPackUInt8, ¶m->physCellIdPres, mBuf);
5398 CMCHKUNPK(oduPackUInt8, ¶m->physCellId, mBuf);
5399 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5400 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5401 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5402 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5403 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5404 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5405 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5406 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5407 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5408 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5410 CMCHKUNPK(oduPackUInt16, ¶m->syncSigPowOs, mBuf);
5411 CMCHKUNPK(oduPackUInt8, ¶m->syncSigPowOsPres, mBuf);
5413 CMCHKUNPK(oduPackUInt16, ¶m->cfiPowOs, mBuf);
5414 CMCHKUNPK(oduPackUInt8, ¶m->cfiPowOsPres, mBuf);
5416 CMCHKUNPK(oduPackUInt16, ¶m->dciPowOs, mBuf);
5417 CMCHKUNPK(oduPackUInt8, ¶m->dciPowOsPres, mBuf);
5419 CMCHKUNPK(oduPackUInt16, ¶m->extWinMargin, mBuf);
5420 CMCHKUNPK(oduPackUInt8, ¶m->extWinMarginPres, mBuf);
5422 CMCHKUNPK(oduPackUInt16, ¶m->pucchNoiseGamma, mBuf);
5423 CMCHKUNPK(oduPackUInt8, ¶m->pucchNoiseGammaPres, mBuf);
5425 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio4, mBuf);
5426 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio4Pres, mBuf);
5428 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio0, mBuf);
5429 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio0Pres, mBuf);
5431 CMCHKUNPK(oduPackUInt16, ¶m->srsDopEstFactor, mBuf);
5432 CMCHKUNPK(oduPackUInt8, ¶m->srsDopEstFactorPres, mBuf);
5434 CMCHKUNPK(oduPackUInt16, ¶m->puschProbDtxAck, mBuf);
5435 CMCHKUNPK(oduPackUInt8, ¶m->puschProbDtxAckPres, mBuf);
5437 CMCHKUNPK(oduPackUInt16, ¶m->pucchProbDtxAck, mBuf);
5438 CMCHKUNPK(oduPackUInt8, ¶m->pucchProbDtxAckPres, mBuf);
5440 CMCHKUNPK(oduPackUInt16, ¶m->txAntennaPorts, mBuf);
5441 CMCHKUNPK(oduPackUInt8, ¶m->txAntennaPortsPres, mBuf);
5443 CMCHKUNPK(oduPackUInt16, ¶m->rxAntennaPorts, mBuf);
5444 CMCHKUNPK(oduPackUInt8, ¶m->rxAntennaPortsPres, mBuf);
5446 CMCHKUNPK(oduPackUInt16, ¶m->phySyncMode, mBuf);
5447 CMCHKUNPK(oduPackUInt8, ¶m->phySyncModePres, mBuf);
5449 CMCHKUNPK(oduPackUInt16, ¶m->dataRepMode, mBuf);
5450 CMCHKUNPK(oduPackUInt8, ¶m->dataRepModePres, mBuf);
5452 CMCHKUNPK(oduPackUInt16, ¶m->rachSrRepMode, mBuf);
5453 CMCHKUNPK(oduPackUInt8, ¶m->rachSrRepModePres, mBuf);
5455 /* UnPacking PHY configuration parameters */
5456 CMCHKUNPK(oduPackUInt16, ¶m->opMode, mBuf);
5457 CMCHKUNPK(oduPackUInt32, ¶m->counter, mBuf);
5458 CMCHKUNPK(oduPackUInt32, ¶m->period, mBuf);
5459 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5460 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5461 CMCHKUNPK(oduPackUInt16, ¶m->dlEarfcn, mBuf);
5462 CMCHKUNPK(oduPackUInt16, ¶m->ulEarfcn, mBuf);
5463 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5464 /* Added for rgu dynamic delta change*/
5465 CMCHKUNPK(oduPackUInt8, ¶m->numDlUePerTti, mBuf);
5466 CMCHKUNPK(oduPackUInt8, ¶m->unLicnsdCfgPres, mBuf);
5468 if(param->unLicnsdCfgPres)
5470 printf("pverma param->unLicnsdCfgPres 2 -->%d \n",param->unLicnsdCfgPres);
5471 CMCHKUNPK(cmUnpkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5474 CMCHKUNPK(oduPackUInt8, ¶m->catMenabled, mBuf);
5475 CMCHKUNPK(oduPackUInt8, ¶m->mPdcchStart, mBuf);
5477 for (i = 0; i < CTF_MAX_CE_LEVEL; i++) {
5478 CMCHKUNPK(oduPackUInt8, ¶m->ceLevelInfo[i].firstPreamble, mBuf);
5479 CMCHKUNPK(oduPackUInt8, ¶m->ceLevelInfo[i].lastPreamble, mBuf);
5480 CMCHKUNPK(oduPackUInt8, ¶m->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5488 /* ctf_c_001.main_4: Modified cmPkCtfCellRecfgInfo() to Add support for
5489 * vendor specific parameters */
5490 /***********************************************************
5492 * Func: cmPkCtfCellRecfgInfo
5495 * Desc: Cell Re-configuration Information
5496 * @details This structure contains the information for reconfiguration
5497 * of a cell and its associated resources at PHY.
5506 **********************************************************/
5508 S16 cmPkCtfCellRecfgInfo
5510 CtfCellRecfgInfo *param,
5514 S16 cmPkCtfCellRecfgInfo(param, mBuf)
5515 CtfCellRecfgInfo *param;
5521 #ifdef ENABLE_API_LOG
5522 CMCHKPK(oduUnpackUInt8, param->enableAPILog, mBuf);
5523 #endif /* ENABLE_API_LOG */
5524 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5525 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5526 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5527 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5528 CMCHKPK(oduUnpackUInt8, param->rachSrRepModePres, mBuf);
5529 CMCHKPK(oduUnpackUInt16, param->rachSrRepMode, mBuf);
5531 CMCHKPK(oduUnpackUInt8, param->dataRepModePres, mBuf);
5532 CMCHKPK(oduUnpackUInt16, param->dataRepMode, mBuf);
5534 CMCHKPK(oduUnpackUInt8, param->phySyncModePres, mBuf);
5535 CMCHKPK(oduUnpackUInt16, param->phySyncMode, mBuf);
5537 CMCHKPK(oduUnpackUInt8, param->rxAntennaPortsPres, mBuf);
5538 CMCHKPK(oduUnpackUInt16, param->rxAntennaPorts, mBuf);
5540 CMCHKPK(oduUnpackUInt8, param->txAntennaPortsPres, mBuf);
5541 CMCHKPK(oduUnpackUInt16, param->txAntennaPorts, mBuf);
5543 CMCHKPK(oduUnpackUInt8, param->pucchProbDtxAckPres, mBuf);
5544 CMCHKPK(oduUnpackUInt16, param->pucchProbDtxAck, mBuf);
5547 CMCHKPK(oduUnpackUInt8, param->puschProbDtxAckPres, mBuf);
5548 CMCHKPK(oduUnpackUInt16, param->puschProbDtxAck, mBuf);
5550 CMCHKPK(oduUnpackUInt8, param->srsDopEstFactorPres, mBuf);
5551 CMCHKPK(oduUnpackUInt16, param->srsDopEstFactor, mBuf);
5553 CMCHKPK(oduUnpackUInt8, param->prachPkRatio0Pres, mBuf);
5554 CMCHKPK(oduUnpackUInt16, param->prachPkRatio0, mBuf);
5556 CMCHKPK(oduUnpackUInt8, param->prachPkRatio4Pres, mBuf);
5557 CMCHKPK(oduUnpackUInt16, param->prachPkRatio4, mBuf);
5559 CMCHKPK(oduUnpackUInt8, param->pucchNoiseGammaPres, mBuf);
5560 CMCHKPK(oduUnpackUInt16, param->pucchNoiseGamma, mBuf);
5562 CMCHKPK(oduUnpackUInt8, param->extWinMarginPres, mBuf);
5563 CMCHKPK(oduUnpackUInt16, param->extWinMargin, mBuf);
5565 CMCHKPK(oduUnpackUInt8, param->dciPowOsPres, mBuf);
5566 CMCHKPK(oduUnpackUInt16, param->dciPowOs, mBuf);
5568 CMCHKPK(oduUnpackUInt8, param->cfiPowOsPres, mBuf);
5569 CMCHKPK(oduUnpackUInt16, param->cfiPowOs, mBuf);
5571 CMCHKPK(oduUnpackUInt8, param->syncSigPowOsPres, mBuf);
5572 CMCHKPK(oduUnpackUInt16, param->syncSigPowOs, mBuf);
5574 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5575 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5576 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5577 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5578 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5579 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5580 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5581 CMCHKPK(cmPkLteTimingInfo, ¶m->actvnTime, mBuf);
5583 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5584 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5585 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5586 CMCHKPK(oduUnpackUInt8, param->physCellId, mBuf);
5587 CMCHKPK(oduUnpackUInt8, param->physCellIdPres, mBuf);
5588 CMCHKPK(oduUnpackUInt8, param->cellIdGrpId, mBuf);
5589 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5590 CMCHKPK(oduUnpackUInt32, param->ctfReCfgType, mBuf);
5596 /***********************************************************
5598 * Func: cmUnpkCtfCellRecfgInfo
5601 * Desc: Cell Re-configuration Information
5602 * @details This structure contains the information for reconfiguration
5603 * of a cell and its associated resources at PHY.
5612 **********************************************************/
5614 S16 cmUnpkCtfCellRecfgInfo
5616 CtfCellRecfgInfo *param,
5620 S16 cmUnpkCtfCellRecfgInfo(param, mBuf)
5621 CtfCellRecfgInfo *param;
5628 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5629 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5630 param->ctfReCfgType = (CtfReCfgType)tmpEnum;
5631 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5632 CMCHKUNPK(oduPackUInt8, ¶m->cellIdGrpId, mBuf);
5633 CMCHKUNPK(oduPackUInt8, ¶m->physCellIdPres, mBuf);
5634 CMCHKUNPK(oduPackUInt8, ¶m->physCellId, mBuf);
5635 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5636 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5637 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5639 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvnTime, mBuf);
5640 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5641 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5642 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5643 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5644 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5645 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5646 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5648 CMCHKUNPK(oduPackUInt16, ¶m->syncSigPowOs, mBuf);
5649 CMCHKUNPK(oduPackUInt8, ¶m->syncSigPowOsPres, mBuf);
5651 CMCHKUNPK(oduPackUInt16, ¶m->cfiPowOs, mBuf);
5652 CMCHKUNPK(oduPackUInt8, ¶m->cfiPowOsPres, mBuf);
5654 CMCHKUNPK(oduPackUInt16, ¶m->dciPowOs, mBuf);
5655 CMCHKUNPK(oduPackUInt8, ¶m->dciPowOsPres, mBuf);
5657 CMCHKUNPK(oduPackUInt16, ¶m->extWinMargin, mBuf);
5658 CMCHKUNPK(oduPackUInt8, ¶m->extWinMarginPres, mBuf);
5660 CMCHKUNPK(oduPackUInt16, ¶m->pucchNoiseGamma, mBuf);
5661 CMCHKUNPK(oduPackUInt8, ¶m->pucchNoiseGammaPres, mBuf);
5663 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio4, mBuf);
5664 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio4Pres, mBuf);
5666 CMCHKUNPK(oduPackUInt16, ¶m->prachPkRatio0, mBuf);
5667 CMCHKUNPK(oduPackUInt8, ¶m->prachPkRatio0Pres, mBuf);
5669 CMCHKUNPK(oduPackUInt16, ¶m->srsDopEstFactor, mBuf);
5670 CMCHKUNPK(oduPackUInt8, ¶m->srsDopEstFactorPres, mBuf);
5672 CMCHKUNPK(oduPackUInt16, ¶m->puschProbDtxAck, mBuf);
5673 CMCHKUNPK(oduPackUInt8, ¶m->puschProbDtxAckPres, mBuf);
5675 CMCHKUNPK(oduPackUInt16, ¶m->pucchProbDtxAck, mBuf);
5676 CMCHKUNPK(oduPackUInt8, ¶m->pucchProbDtxAckPres, mBuf);
5678 CMCHKUNPK(oduPackUInt16, ¶m->txAntennaPorts, mBuf);
5679 CMCHKUNPK(oduPackUInt8, ¶m->txAntennaPortsPres, mBuf);
5681 CMCHKUNPK(oduPackUInt16, ¶m->rxAntennaPorts, mBuf);
5682 CMCHKUNPK(oduPackUInt8, ¶m->rxAntennaPortsPres, mBuf);
5684 CMCHKUNPK(oduPackUInt16, ¶m->phySyncMode, mBuf);
5685 CMCHKUNPK(oduPackUInt8, ¶m->phySyncModePres, mBuf);
5687 CMCHKUNPK(oduPackUInt16, ¶m->dataRepMode, mBuf);
5688 CMCHKUNPK(oduPackUInt8, ¶m->dataRepModePres, mBuf);
5690 CMCHKUNPK(oduPackUInt16, ¶m->rachSrRepMode, mBuf);
5691 CMCHKUNPK(oduPackUInt8, ¶m->rachSrRepModePres, mBuf);
5693 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5694 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5695 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5696 printf("param->pilotSigPwr = %d\nparam->priSigPwr = %d\n param->secSigPwr = %d\n",param->pilotSigPwr,param->priSigPwr,param->secSigPwr);
5697 #ifdef ENABLE_API_LOG
5698 CMCHKUNPK(oduPackUInt8, ¶m->enableAPILog, mBuf);
5699 #endif /* ENABLE_API_LOG */
5705 /***********************************************************
5707 * Func: cmPkCtfDedPdschCfgInfo
5710 * Desc: Dedicated PDSCH Configuration
5711 * @details This structure contains the information for PDSCH configuration
5712 * specific to an UE.
5721 **********************************************************/
5723 S16 cmPkCtfDedPdschCfgInfo
5725 CtfDedPdschCfgInfo *param,
5729 S16 cmPkCtfDedPdschCfgInfo(param, mBuf)
5730 CtfDedPdschCfgInfo *param;
5736 /*ctf_c_001.main_1*/
5737 if(param->pres != FALSE)
5738 CMCHKPK(oduUnpackUInt32, param->pA, mBuf);
5739 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5745 /***********************************************************
5747 * Func: cmUnpkCtfDedPdschCfgInfo
5750 * Desc: Dedicated PDSCH Configuration
5751 * @details This structure contains the information for PDSCH configuration
5752 * specific to an UE.
5761 **********************************************************/
5763 S16 cmUnpkCtfDedPdschCfgInfo
5765 CtfDedPdschCfgInfo *param,
5769 S16 cmUnpkCtfDedPdschCfgInfo(param, mBuf)
5770 CtfDedPdschCfgInfo *param;
5776 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5777 /*ctf_c_001.main_1*/
5778 if(param->pres != FALSE)
5780 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
5781 param->pA = (CtfPdschPaParam)tmpEnum;
5788 /***********************************************************
5790 * Func: cmPkCtfDedPucchCfgInfo
5793 * Desc: Dedicated PUCCH Configuration
5794 * @details This structure contains the information for setting-up/release
5795 * PUCCH configuration specific to an UE.
5804 **********************************************************/
5806 S16 cmPkCtfDedPucchCfgInfo
5808 CtfDedPucchCfgInfo *param,
5812 S16 cmPkCtfDedPucchCfgInfo(param, mBuf)
5813 CtfDedPucchCfgInfo *param;
5819 /*ctf_c_001.main_1*/
5820 if(param->pres != FALSE)
5823 /*ctf_c_001.main_4:115549: packing tddAckNackFBMode and tddAckNackCfgPres */
5824 if (param->tddAckNackCfgPres != FALSE)
5826 CMCHKPK(oduUnpackUInt32, param->tddAckNackFBMode, mBuf);
5829 CMCHKPK(oduUnpackUInt8, param->tddAckNackCfgPres, mBuf);
5830 #endif /* CTF_VER3 */
5831 CMCHKPK(oduUnpackUInt16, param->pucchSetup.n1PUCCHRep, mBuf);
5833 /*ctf_c_001.main_4:115549: packing pucchSetup.repFactPres */
5834 if (param->pucchSetup.repFactPres)
5836 CMCHKPK(oduUnpackUInt32, param->pucchSetup.repFact, mBuf);
5839 CMCHKPK(oduUnpackUInt8, param->pucchSetup.repFactPres, mBuf);
5841 CMCHKPK(oduUnpackUInt32, param->pucchSetup.repFact, mBuf);
5842 #endif /* CTF_VER3 */
5843 CMCHKPK(oduUnpackUInt8, param->dedPucchCfgType, mBuf);
5845 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5851 /***********************************************************
5853 * Func: cmUnpkCtfDedPucchCfgInfo
5856 * Desc: Dedicated PUCCH Configuration
5857 * @details This structure contains the information for setting-up/release
5858 * PUCCH configuration specific to an UE.
5867 **********************************************************/
5869 S16 cmUnpkCtfDedPucchCfgInfo
5871 CtfDedPucchCfgInfo *param,
5875 S16 cmUnpkCtfDedPucchCfgInfo(param, mBuf)
5876 CtfDedPucchCfgInfo *param;
5882 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5883 /*ctf_c_001.main_1*/
5884 if(param->pres != FALSE)
5886 CMCHKUNPK(oduPackUInt8, ¶m->dedPucchCfgType, mBuf);
5888 /* ctf_c_001.main_4:115549: unpacking pucchSetup.repFactPres */
5889 CMCHKUNPK(oduPackUInt8, ¶m->pucchSetup.repFactPres, mBuf);
5891 if (param->pucchSetup.repFactPres)
5893 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->pucchSetup.repFact, mBuf);
5896 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->pucchSetup.repFact, mBuf);
5897 #endif /*CTF_VER3 */
5898 CMCHKUNPK(oduPackUInt16, ¶m->pucchSetup.n1PUCCHRep, mBuf);
5900 /*ctf_c_001.main_4:115549: unpacking tddAckNackCfgPres and tddAckNackFBMode */
5901 CMCHKUNPK(oduPackUInt8, ¶m->tddAckNackCfgPres, mBuf);
5903 if (param->tddAckNackCfgPres != FALSE)
5905 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->tddAckNackFBMode, mBuf);
5907 #endif /* CTF_VER3 */
5914 /***********************************************************
5916 * Func: cmPkCtfDedPuschCfgInfo
5919 * Desc: Dedicated PUSCH Configuration
5920 * @details This structure contains the information for PUCCH
5921 * configuration specific to an UE.
5930 **********************************************************/
5932 S16 cmPkCtfDedPuschCfgInfo
5934 CtfDedPuschCfgInfo *param,
5938 S16 cmPkCtfDedPuschCfgInfo(param, mBuf)
5939 CtfDedPuschCfgInfo *param;
5945 /*ctf_c_001.main_1*/
5946 if(param->pres != FALSE)
5948 CMCHKPK(oduUnpackUInt8, param->betaOffsetCqiIdx, mBuf);
5949 CMCHKPK(oduUnpackUInt8, param->betaOffsetRiIdx, mBuf);
5950 CMCHKPK(oduUnpackUInt8, param->betaOffsetAckIdx, mBuf);
5952 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
5958 /***********************************************************
5960 * Func: cmUnpkCtfDedPuschCfgInfo
5963 * Desc: Dedicated PUSCH Configuration
5964 * @details This structure contains the information for PUCCH
5965 * configuration specific to an UE.
5974 **********************************************************/
5976 S16 cmUnpkCtfDedPuschCfgInfo
5978 CtfDedPuschCfgInfo *param,
5982 S16 cmUnpkCtfDedPuschCfgInfo(param, mBuf)
5983 CtfDedPuschCfgInfo *param;
5989 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
5990 /*ctf_c_001.main_1*/
5991 if(param->pres != FALSE)
5993 CMCHKUNPK(oduPackUInt8, ¶m->betaOffsetAckIdx, mBuf);
5994 CMCHKUNPK(oduPackUInt8, ¶m->betaOffsetRiIdx, mBuf);
5995 CMCHKUNPK(oduPackUInt8, ¶m->betaOffsetCqiIdx, mBuf);
6003 /***********************************************************
6005 * Func: cmPkCtfCqiRptModePeriodic
6008 * Desc: Periodic CQI Report Configuration
6009 * @details This structure contains the information for periodic CQI report
6010 * related configuration specific to an UE.
6019 **********************************************************/
6021 S16 cmPkCtfCqiRptModePeriodic
6023 CtfCqiRptModePeriodic *param,
6027 S16 cmPkCtfCqiRptModePeriodic(param, mBuf)
6028 CtfCqiRptModePeriodic *param;
6033 /* ctf_c_001.main_2: added packning for cqiMask*/
6035 CMCHKPK(oduUnpackUInt32, (uint32_t )param->cqiSetup.cqiMask.cqiMaskSetup, mBuf);
6036 CMCHKPK(oduUnpackUInt8, param->cqiSetup.cqiMask.pres, mBuf);
6037 #endif /* CTF_VER1 */
6038 CMCHKPK(oduUnpackUInt8, param->cqiSetup.simultaneousAckNack, mBuf);
6039 CMCHKPK(oduUnpackUInt16, param->cqiSetup.riCfgIndx, mBuf);
6040 CMCHKPK(oduUnpackUInt8, param->cqiSetup.riCfgPres, mBuf);
6041 CMCHKPK(oduUnpackUInt8, param->cqiSetup.subbandCqi.k, mBuf);
6042 CMCHKPK(oduUnpackUInt8, param->cqiSetup.formatIndicator, mBuf);
6043 CMCHKPK(oduUnpackUInt16, param->cqiSetup.cqiPmiCfgIndx, mBuf);
6044 CMCHKPK(oduUnpackUInt16, param->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6045 CMCHKPK(oduUnpackUInt8, param->cqiPeriodicCfgType, mBuf);
6051 /***********************************************************
6053 * Func: cmUnpkCtfCqiRptModePeriodic
6056 * Desc: Periodic CQI Report Configuration
6057 * @details This structure contains the information for periodic CQI report
6058 * related configuration specific to an UE.
6067 **********************************************************/
6069 S16 cmUnpkCtfCqiRptModePeriodic
6071 CtfCqiRptModePeriodic *param,
6075 S16 cmUnpkCtfCqiRptModePeriodic(param, mBuf)
6076 CtfCqiRptModePeriodic *param;
6084 CMCHKUNPK(oduPackUInt8, ¶m->cqiPeriodicCfgType, mBuf);
6085 CMCHKUNPK(oduPackUInt16, ¶m->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6086 CMCHKUNPK(oduPackUInt16, ¶m->cqiSetup.cqiPmiCfgIndx, mBuf);
6087 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.formatIndicator, mBuf);
6088 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.subbandCqi.k, mBuf);
6089 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.riCfgPres, mBuf);
6090 CMCHKUNPK(oduPackUInt16, ¶m->cqiSetup.riCfgIndx, mBuf);
6091 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.simultaneousAckNack, mBuf);
6092 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6094 CMCHKUNPK(oduPackUInt8, ¶m->cqiSetup.cqiMask.pres, mBuf);
6095 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6096 param->cqiSetup.cqiMask.cqiMaskSetup = tmpEnum;
6097 #endif /* CTF_VER1 */
6103 /***********************************************************
6105 * Func: cmPkCtfCqiReportCfgInfo
6108 * Desc: CQI Report Configuration
6109 * @details This structure contains the information for CQI report
6110 * related configuration specific to an UE.
6119 **********************************************************/
6121 S16 cmPkCtfCqiReportCfgInfo
6123 CtfCqiReportCfgInfo *param,
6127 S16 cmPkCtfCqiReportCfgInfo(param, mBuf)
6128 CtfCqiReportCfgInfo *param;
6134 /*ctf_c_001.main_1*/
6135 if(param->pres != FALSE)
6139 * ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6140 *report configuration in the same message
6142 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6144 CMCHKPK(oduUnpackUInt32, param->reportMode.aPeriodicRpt.aPeriodicRptMode, mBuf);
6146 CMCHKPK(oduUnpackUInt8, param->reportMode.aPeriodicRpt.pres, mBuf);
6148 if(param->reportMode.periodicRpt.pres != FALSE)
6150 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6152 CMCHKPK(oduUnpackUInt8, param->reportMode.periodicRpt.pres, mBuf);
6154 #else /* CTF_VER2 */
6156 switch(param->reportingMode) {
6157 case CTF_CQI_RPTMODE_PRDIOC:
6158 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6160 case CTF_CQI_RPTMODE_APRDIOC:
6161 CMCHKPK(oduUnpackUInt32, param->reportMode.aPeriodicRpt, mBuf);
6166 CMCHKPK(oduUnpackUInt8, param->reportingMode, mBuf);
6167 #endif /* CTF_VER2 */
6169 /* ctf_c_001.main_2: added packning for pmiRiRpt*/
6171 CMCHKPK(oduUnpackUInt32, param->pmiRiRpt.pmiRiRptSetup, mBuf);
6172 CMCHKPK(oduUnpackUInt8, param->pmiRiRpt.pres, mBuf);
6173 #endif /* CTF_VER1 */
6176 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6182 /***********************************************************
6184 * Func: cmUnpkCtfCqiReportCfgInfo
6187 * Desc: CQI Report Configuration
6188 * @details This structure contains the information for CQI report
6189 * related configuration specific to an UE.
6198 **********************************************************/
6200 S16 cmUnpkCtfCqiReportCfgInfo
6202 CtfCqiReportCfgInfo *param,
6206 S16 cmUnpkCtfCqiReportCfgInfo(param, mBuf)
6207 CtfCqiReportCfgInfo *param;
6211 #if defined (CTF_VER1) || defined (CTF_VER2)
6215 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6216 /*ctf_c_001.main_1*/
6217 if(param->pres != FALSE)
6219 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6221 CMCHKUNPK(oduPackUInt8, ¶m->pmiRiRpt.pres, mBuf);
6222 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6223 param->pmiRiRpt.pmiRiRptSetup = tmpEnum;
6224 #endif /* CTF_VER1 */
6228 *ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6229 *report configuration in the same message
6231 CMCHKUNPK(oduPackUInt8, ¶m->reportMode.periodicRpt.pres, mBuf)
6232 if(param->reportMode.periodicRpt.pres != FALSE)
6234 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6237 CMCHKUNPK(oduPackUInt8, ¶m->reportMode.aPeriodicRpt.pres, mBuf)
6238 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6240 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6241 param->reportMode.aPeriodicRpt.aPeriodicRptMode =
6242 (CtfCqiRptModeAperiodic)tmpEnum;
6245 #else /* CTF_VER2 */
6247 CMCHKUNPK(oduPackUInt8, ¶m->reportingMode, mBuf);
6248 switch(param->reportingMode) {
6249 case CTF_CQI_RPTMODE_APRDIOC:
6250 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->reportMode.aPeriodicRpt, mBuf);
6252 case CTF_CQI_RPTMODE_PRDIOC:
6253 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6258 #endif /* CTF_VER2 */
6265 /***********************************************************
6267 * Func: cmPkCtfDedSrsUlCfgInfo
6270 * Desc: Dedicated Uplink SRS Configuration
6271 * @details This structure contains the information for setting-up/release
6272 * UL SRS configuration specific to an UE.
6281 **********************************************************/
6283 S16 cmPkCtfDedSrsUlCfgInfo
6285 CtfDedSrsUlCfgInfo *param,
6289 S16 cmPkCtfDedSrsUlCfgInfo(param, mBuf)
6290 CtfDedSrsUlCfgInfo *param;
6296 /*ctf_c_001.main_1*/
6297 if(param->pres != FALSE)
6299 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.cyclicShift, mBuf);
6300 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.txComb, mBuf);
6301 CMCHKPK(oduUnpackUInt16, param->dedSrsSetup.srsCfgIdx, mBuf);
6302 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.duration, mBuf);
6303 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.freqDmnPos, mBuf);
6304 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.srsHopngBw, mBuf);
6305 CMCHKPK(oduUnpackUInt8, param->dedSrsSetup.srsBw, mBuf);
6306 CMCHKPK(oduUnpackUInt8, param->dedSrsUlCfgType, mBuf);
6308 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6314 /***********************************************************
6316 * Func: cmUnpkCtfDedSrsUlCfgInfo
6319 * Desc: Dedicated Uplink SRS Configuration
6320 * @details This structure contains the information for setting-up/release
6321 * UL SRS configuration specific to an UE.
6330 **********************************************************/
6332 S16 cmUnpkCtfDedSrsUlCfgInfo
6334 CtfDedSrsUlCfgInfo *param,
6338 S16 cmUnpkCtfDedSrsUlCfgInfo(param, mBuf)
6339 CtfDedSrsUlCfgInfo *param;
6345 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6346 /*ctf_c_001.main_1*/
6347 if(param->pres != FALSE)
6349 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsUlCfgType, mBuf);
6350 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.srsBw, mBuf);
6351 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.srsHopngBw, mBuf);
6352 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.freqDmnPos, mBuf);
6353 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.duration, mBuf);
6354 CMCHKUNPK(oduPackUInt16, ¶m->dedSrsSetup.srsCfgIdx, mBuf);
6355 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.txComb, mBuf);
6356 CMCHKUNPK(oduPackUInt8, ¶m->dedSrsSetup.cyclicShift, mBuf);
6363 /***********************************************************
6365 * Func: cmPkCtfDedSRCfgInfo
6368 * Desc: Dedicated SR Configuration
6369 * @details This structure contains the information for setting-up/release
6370 * SR configuration specific to an UE at PHY.
6379 **********************************************************/
6381 S16 cmPkCtfDedSRCfgInfo
6383 CtfDedSRCfgInfo *param,
6387 S16 cmPkCtfDedSRCfgInfo(param, mBuf)
6388 CtfDedSRCfgInfo *param;
6394 /*ctf_c_001.main_1*/
6395 if(param->pres != FALSE)
6397 CMCHKPK(oduUnpackUInt8, param->dedSrSetup.srCfgIdx, mBuf);
6398 CMCHKPK(oduUnpackUInt16, param->dedSrSetup.srPUCCHRi, mBuf);
6399 CMCHKPK(oduUnpackUInt8, param->dedSRCfgType, mBuf);
6401 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6407 /***********************************************************
6409 * Func: cmUnpkCtfDedSRCfgInfo
6412 * Desc: Dedicated SR Configuration
6413 * @details This structure contains the information for setting-up/release
6414 * SR configuration specific to an UE at PHY.
6423 **********************************************************/
6425 S16 cmUnpkCtfDedSRCfgInfo
6427 CtfDedSRCfgInfo *param,
6431 S16 cmUnpkCtfDedSRCfgInfo(param, mBuf)
6432 CtfDedSRCfgInfo *param;
6438 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6439 /*ctf_c_001.main_1*/
6440 if(param->pres != FALSE)
6442 CMCHKUNPK(oduPackUInt8, ¶m->dedSRCfgType, mBuf);
6443 CMCHKUNPK(oduPackUInt16, ¶m->dedSrSetup.srPUCCHRi, mBuf);
6444 CMCHKUNPK(oduPackUInt8, ¶m->dedSrSetup.srCfgIdx, mBuf);
6449 #endif /* TFU_UPGRADE */
6452 /***********************************************************
6454 * Func: cmPkCtfDedAntCfgInfo
6457 * Desc: Dedicated Antenna Configuration
6458 * @details This structure contains the information for antenna related
6459 * configuration specific to an UE at PHY.
6468 **********************************************************/
6470 S16 cmPkCtfDedAntCfgInfo
6472 CtfDedAntCfgInfo *param,
6476 S16 cmPkCtfDedAntCfgInfo(param, mBuf)
6477 CtfDedAntCfgInfo *param;
6484 #endif /* CTF_VER2 */
6487 /*ctf_c_001.main_1*/
6488 if(param->pres != FALSE)
6490 CMCHKPK(oduUnpackUInt32, param->ueTxAntSelection.txAntSelect, mBuf);
6491 CMCHKPK(oduUnpackUInt8, param->ueTxAntSelection.cfgType, mBuf);
6492 /* ctf_c_001.main_3 txMode is of type enum and is 32bit length */
6493 CMCHKPK(oduUnpackUInt32, (uint32_t)param->txMode, mBuf);
6496 *ctf_c_001.main_2: Added Packing of CodeBookSubsetRestriction parameter
6498 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6501 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
6506 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
6511 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
6516 for(idx = 0; idx < 8; idx++)
6517 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
6518 n4TxAntTm4[idx], mBuf);
6522 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
6527 CMCHKPK(oduUnpackUInt16, param->codeBookSubsetRes.codeBookSubsetRestn.
6532 CMCHKPK(oduUnpackUInt8, param->codeBookSubsetRes.codeBookSubsetRestn.
6537 CMCHKPK(oduUnpackUInt16, param->codeBookSubsetRes.codeBookSubsetRestn.
6544 CMCHKPK(oduUnpackUInt32, param->codeBookSubsetRes.ctfCdBkRestType, mBuf);
6545 #endif /* CTF_VER2 */
6547 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6553 /***********************************************************
6555 * Func: cmUnpkCtfDedAntCfgInfo
6558 * Desc: Dedicated Antenna Configuration
6559 * @details This structure contains the information for antenna related
6560 * configuration specific to an UE at PHY.
6569 **********************************************************/
6571 S16 cmUnpkCtfDedAntCfgInfo
6573 CtfDedAntCfgInfo *param,
6577 S16 cmUnpkCtfDedAntCfgInfo(param, mBuf)
6578 CtfDedAntCfgInfo *param;
6584 #endif /* CTF_VER2 */
6589 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6590 /*ctf_c_001.main_1*/
6591 if(param->pres != FALSE)
6595 * Added Unpacking for CodeBookSubsetRestriction parameter
6597 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6598 param->codeBookSubsetRes.ctfCdBkRestType = (CtfCdBkSubsetRestnType)tmpEnum;
6599 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6602 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6607 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6612 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6617 for(idx = 7; idx >= 0; idx--)
6619 CMCHKUNPK(oduPackUInt8, &(param->codeBookSubsetRes.codeBookSubsetRestn.
6620 n4TxAntTm4[idx]), mBuf);
6625 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6630 CMCHKUNPK(oduPackUInt16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6635 CMCHKUNPK(oduPackUInt8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6640 CMCHKUNPK(oduPackUInt16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6646 #endif /* CTF_VER2 */
6647 /* ctf_c_001.main_3 Enum is 32bit length */
6648 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6649 param->txMode = (CtfUeTxAntMode)tmpEnum;
6650 CMCHKUNPK(oduPackUInt8, ¶m->ueTxAntSelection.cfgType, mBuf);
6651 CMCHKUNPK(oduPackUInt32, (uint32_t *)&tmpEnum, mBuf);
6652 param->ueTxAntSelection.txAntSelect = (CtfUeTxAntSelectType)tmpEnum;
6658 /***********************************************************
6660 * Func: cmPkCtfUeSecCellCfgInfo
6663 * Desc: Secondary Cell Configuration for a UE
6664 * @details This structure contains the information for
6665 * secondary cells for the UE
6673 **********************************************************/
6675 S16 cmPkCtfUeSecCellCfgInfo
6677 CtfUeSecCellCfgInfo *param,
6681 S16 cmPkCtfUeSecCellCfgInfo(*param, mBuf)
6682 CtfUeSecCellCfgInfo *param;
6686 CMCHKPK(oduUnpackUInt16, param->sCellId, mBuf);
6687 CMCHKPK(oduUnpackUInt8, param->sCellIdx, mBuf);
6691 /***********************************************************
6693 * Func: cmPkCtfSecCellCfgInfo
6696 * Desc: Secondary Cell Configuration for a UE
6697 * @details This structure contains the information for
6698 * secondary cells for the UE
6706 **********************************************************/
6708 S16 cmPkCtfSecCellCfgInfo
6710 CtfSecCellCfgInfo *param,
6714 S16 cmPkCtfSecCellCfgInfo(*param, mBuf)
6715 CtfSecCellCfgInfo *param;
6721 for(idx = param->numSCells - 1; idx >= 0; idx--)
6723 CMCHKPK(cmPkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[(uint8_t)idx], mBuf);
6725 CMCHKPK(oduUnpackUInt32, param->sCellAction, mBuf);
6726 CMCHKPK(oduUnpackUInt8, param->numSCells, mBuf);
6731 /***********************************************************
6733 * Func: cmUnpkCtfUeSecCellCfgInfo
6736 * Desc: Secondary Cell Configuration for a UE
6737 * @details This structure contains the information for
6738 * secondary cells for the UE
6746 **********************************************************/
6748 S16 cmUnpkCtfUeSecCellCfgInfo
6750 CtfUeSecCellCfgInfo *param,
6754 S16 cmUnpkCtfUeSecCellCfgInfo(*param, mBuf)
6755 CtfUeSecCellCfgInfo *param;
6759 CMCHKUNPK(oduPackUInt8, ¶m->sCellIdx, mBuf);
6760 CMCHKUNPK(oduPackUInt16, ¶m->sCellId, mBuf);
6765 /***********************************************************
6767 * Func: cmUnpkCtfSecCellCfgInfo
6770 * Desc: Secondary Cell Configuration for a UE
6771 * @details This structure contains the information for
6772 * secondary cells for the UE
6780 **********************************************************/
6783 S16 cmUnpkCtfSecCellCfgInfo
6785 CtfSecCellCfgInfo *param,
6789 S16 cmUnpkCtfSecCellCfgInfo(*param, mBuf)
6790 CtfSecCellCfgInfo *param;
6796 CMCHKUNPK(oduPackUInt8, ¶m->numSCells, mBuf);
6797 CMCHKUNPK(oduPackUInt32, (uint32_t*)¶m->sCellAction, mBuf);
6798 for(idx = 0 ; idx < param->numSCells; idx++)
6800 CMCHKUNPK(cmUnpkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[idx], mBuf);
6807 /***********************************************************
6809 * Func: cmPkCtfUeCatCfgInfo
6812 * Desc: UE Category Configuration
6813 * @details This structure contains the information for configuring
6814 * the UE category at PHY.
6823 **********************************************************/
6825 S16 cmPkCtfUeCatCfgInfo
6827 CtfUeCatCfgInfo *param,
6831 S16 cmPkCtfUeCatCfgInfo(param, mBuf)
6832 CtfUeCatCfgInfo *param;
6838 /*ctf_c_001.main_1*/
6839 if(param->pres != FALSE)
6840 CMCHKPK(oduUnpackUInt32, param->ueCategory, mBuf);
6841 CMCHKPK(oduUnpackUInt8, param->pres, mBuf);
6847 /***********************************************************
6849 * Func: cmUnpkCtfUeCatCfgInfo
6852 * Desc: UE Category Configuration
6853 * @details This structure contains the information for configuring
6854 * the UE category at PHY.
6863 **********************************************************/
6865 S16 cmUnpkCtfUeCatCfgInfo
6867 CtfUeCatCfgInfo *param,
6871 S16 cmUnpkCtfUeCatCfgInfo(param, mBuf)
6872 CtfUeCatCfgInfo *param;
6878 CMCHKUNPK(oduPackUInt8, ¶m->pres, mBuf);
6879 /*ctf_c_001.main_1*/
6880 if(param->pres != FALSE)
6881 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->ueCategory, mBuf);
6887 /***********************************************************
6889 * Func: cmPkCtfDedCfgInfo
6892 * Desc: Dedicated Configuration Information
6893 * @details This structure contains the information for configuration
6894 * of UE-specific physical channel resources at PHY.
6903 **********************************************************/
6905 S16 cmPkCtfDedCfgInfo
6907 CtfDedCfgInfo *param,
6911 S16 cmPkCtfDedCfgInfo(param, mBuf)
6912 CtfDedCfgInfo *param;
6918 CMCHKPK(oduUnpackUInt8, param->isEmtcUe, mBuf);
6920 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
6922 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
6923 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
6924 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
6925 #endif /* TFU_UPGRADE */
6926 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
6927 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
6928 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
6929 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
6930 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
6931 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
6937 /***********************************************************
6939 * Func: cmUnpkCtfDedCfgInfo
6942 * Desc: Dedicated Configuration Information
6943 * @details This structure contains the information for configuration
6944 * of UE-specific physical channel resources at PHY.
6953 **********************************************************/
6955 S16 cmUnpkCtfDedCfgInfo
6957 CtfDedCfgInfo *param,
6961 S16 cmUnpkCtfDedCfgInfo(param, mBuf)
6962 CtfDedCfgInfo *param;
6968 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
6969 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
6970 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
6971 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
6972 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
6973 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
6975 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
6976 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
6977 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
6978 #endif /* TFU_UPGRADE */
6979 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
6981 CMCHKUNPK(oduPackUInt8, ¶m->isEmtcUe, mBuf);
6988 /***********************************************************
6990 * Func: cmPkCtfDedRecfgInfo
6993 * Desc: Dedicated Re-configuration Information
6994 * @details This structure contains the information for re-configuration
6995 * of UE-specific physical channel resources at PHY.
7004 **********************************************************/
7006 S16 cmPkCtfDedRecfgInfo
7008 CtfDedRecfgInfo *param,
7012 S16 cmPkCtfDedRecfgInfo(param, mBuf)
7013 CtfDedRecfgInfo *param;
7019 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7020 /*ctf_c_001.main_1*/
7021 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7023 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7024 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7025 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7026 #endif /* TFU_UPGRADE */
7027 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7028 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7029 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7030 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7031 /* ctf_c_001.main_4: ReEst Fix */
7033 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7035 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7037 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7038 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7044 /***********************************************************
7046 * Func: cmUnpkCtfDedRecfgInfo
7049 * Desc: Dedicated Re-configuration Information
7050 * @details This structure contains the information for re-configuration
7051 * of UE-specific physical channel resources at PHY.
7060 **********************************************************/
7062 S16 cmUnpkCtfDedRecfgInfo
7064 CtfDedRecfgInfo *param,
7068 S16 cmUnpkCtfDedRecfgInfo(param, mBuf)
7069 CtfDedRecfgInfo *param;
7075 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7076 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7077 /* ctf_c_001.main_4: ReEst Fix */
7079 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7081 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7083 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7084 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7085 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7086 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7088 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7089 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7090 /*ctf_c_001.main_1*/
7091 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7092 #endif /* TFU_UPGRADE */
7093 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7095 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7102 /***********************************************************
7104 * Func: cmPkCtfCellReleaseInfo
7107 * Desc: Cell Release Information
7108 * @details This structure contains the information for release/removal
7109 * of a cell and its assocated resources at PHY.
7118 **********************************************************/
7120 S16 cmPkCtfCellReleaseInfo
7122 CtfCellReleaseInfo *param,
7126 S16 cmPkCtfCellReleaseInfo(param, mBuf)
7127 CtfCellReleaseInfo *param;
7133 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7139 /***********************************************************
7141 * Func: cmUnpkCtfCellReleaseInfo
7144 * Desc: Cell Release Information
7145 * @details This structure contains the information for release/removal
7146 * of a cell and its assocated resources at PHY.
7155 **********************************************************/
7157 S16 cmUnpkCtfCellReleaseInfo
7159 CtfCellReleaseInfo *param,
7163 S16 cmUnpkCtfCellReleaseInfo(param, mBuf)
7164 CtfCellReleaseInfo *param;
7170 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7176 /***********************************************************
7178 * Func: cmPkCtfDedReleaseInfo
7181 * Desc: Dedicated Release Information
7182 * @details This structure contains the information for release/removal
7183 * of dedicated/UE-specific configuration at PHY.
7192 **********************************************************/
7194 S16 cmPkCtfDedReleaseInfo
7196 CtfDedReleaseInfo *param,
7200 S16 cmPkCtfDedReleaseInfo(param, mBuf)
7201 CtfDedReleaseInfo *param;
7206 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7207 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7208 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7214 /***********************************************************
7216 * Func: cmUnpkCtfDedReleaseInfo
7219 * Desc: Dedicated Release Information
7220 * @details This structure contains the information for release/removal
7221 * of dedicated/UE-specific configuration at PHY.
7230 **********************************************************/
7232 S16 cmUnpkCtfDedReleaseInfo
7234 CtfDedReleaseInfo *param,
7238 S16 cmUnpkCtfDedReleaseInfo(param, mBuf)
7239 CtfDedReleaseInfo *param;
7245 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7246 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7247 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7253 /***********************************************************
7255 * Func: cmPkCtfCfgInfo
7258 * Desc: Configuration Information
7259 * @details This structure contains the information for setting-up
7260 * cell or UE-specific configuration at PHY.
7269 **********************************************************/
7277 S16 cmPkCtfCfgInfo(param, mBuf)
7284 switch(param->cfgElem) {
7286 CMCHKPK(cmPkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7289 CMCHKPK(cmPkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7294 CMCHKPK(oduUnpackUInt8, param->cfgElem, mBuf);
7300 /***********************************************************
7302 * Func: cmUnpkCtfCfgInfo
7305 * Desc: Configuration Information
7306 * @details This structure contains the information for setting-up
7307 * cell or UE-specific configuration at PHY.
7316 **********************************************************/
7318 S16 cmUnpkCtfCfgInfo
7324 S16 cmUnpkCtfCfgInfo(param, mBuf)
7331 CMCHKUNPK(oduPackUInt8, ¶m->cfgElem, mBuf);
7332 switch(param->cfgElem) {
7334 CMCHKUNPK(cmUnpkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7337 CMCHKUNPK(cmUnpkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7347 /***********************************************************
7349 * Func: cmPkCtfReCfgInfo
7352 * Desc: Re-configuration Information
7353 * @details This structure contains the information for re-configuring
7354 * cell or UE-specific configuration at PHY.
7363 **********************************************************/
7365 S16 cmPkCtfReCfgInfo
7367 CtfReCfgInfo *param,
7371 S16 cmPkCtfReCfgInfo(param, mBuf)
7372 CtfReCfgInfo *param;
7378 switch(param->cfgElem) {
7380 CMCHKPK(cmPkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7383 CMCHKPK(cmPkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7385 /* Starts - Fix for CR ccpu00123185 */
7386 case CTF_TX_PWR_CFG:
7387 CMCHKPK(cmPkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7389 /* ends - Fix for CR ccpu00123185 */
7391 CMCHKPK(cmPkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7397 CMCHKPK(oduUnpackUInt8, param->cfgElem, mBuf);
7403 /***********************************************************
7405 * Func: cmUnpkCtfReCfgInfo
7408 * Desc: Re-configuration Information
7409 * @details This structure contains the information for re-configuring
7410 * cell or UE-specific configuration at PHY.
7419 **********************************************************/
7421 S16 cmUnpkCtfReCfgInfo
7423 CtfReCfgInfo *param,
7427 S16 cmUnpkCtfReCfgInfo(param, mBuf)
7428 CtfReCfgInfo *param;
7434 CMCHKUNPK(oduPackUInt8, ¶m->cfgElem, mBuf);
7435 switch(param->cfgElem) {
7437 CMCHKUNPK(cmUnpkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7440 CMCHKUNPK(cmUnpkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7442 /* Starts - Fix for CR ccpu00123185 */
7443 case CTF_TX_PWR_CFG:
7444 CMCHKUNPK(cmUnpkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7446 /* ends - Fix for CR ccpu00123185 */
7448 CMCHKUNPK(cmUnpkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7458 /***********************************************************
7460 * Func: cmPkCtfReleaseInfo
7463 * Desc: Release configuration Information
7464 * @details This structure contains the information for releasing
7465 * cell or UE-specific configuration at PHY.
7474 **********************************************************/
7476 S16 cmPkCtfReleaseInfo
7478 CtfReleaseInfo *param,
7482 S16 cmPkCtfReleaseInfo(param, mBuf)
7483 CtfReleaseInfo *param;
7489 switch(param->cfgElem) {
7491 CMCHKPK(cmPkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7494 CMCHKPK(cmPkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7499 CMCHKPK(oduUnpackUInt8, param->cfgElem, mBuf);
7505 /***********************************************************
7507 * Func: cmUnpkCtfReleaseInfo
7510 * Desc: Release configuration Information
7511 * @details This structure contains the information for releasing
7512 * cell or UE-specific configuration at PHY.
7521 **********************************************************/
7523 S16 cmUnpkCtfReleaseInfo
7525 CtfReleaseInfo *param,
7529 S16 cmUnpkCtfReleaseInfo(param, mBuf)
7530 CtfReleaseInfo *param;
7536 CMCHKUNPK(oduPackUInt8, ¶m->cfgElem, mBuf);
7537 switch(param->cfgElem) {
7539 CMCHKUNPK(cmUnpkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7542 CMCHKUNPK(cmUnpkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7552 /***********************************************************
7554 * Func: cmPkCtfCfgReqInfo
7557 * Desc: Configuration Request information
7558 * @details This is the main structure in the Configuration request primitive.
7559 * -# This structure contains the configuration information as given by
7560 * the RRC to configure PHY layer for common/dedicated resources.
7561 * -# It can contain Config/Reconfig/Release.
7562 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7571 **********************************************************/
7573 S16 cmPkCtfCfgReqInfo
7575 CtfCfgReqInfo *param,
7579 S16 cmPkCtfCfgReqInfo(param, mBuf)
7580 CtfCfgReqInfo *param;
7586 /* ctf_c_001.main_4: Added support for vendor specific parameters */
7588 CMCHKPK(cmPkCtfVendorSpecParams, ¶m->vendorParams, mBuf);
7590 switch(param->cfgType) {
7592 CMCHKPK(cmPkCtfReleaseInfo, ¶m->u.release, mBuf);
7595 CMCHKPK(cmPkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7598 CMCHKPK(cmPkCtfCfgInfo, ¶m->u.cfg, mBuf);
7603 CMCHKPK(oduUnpackUInt8, param->cfgType, mBuf);
7609 /* ctf_c_001.main_4: Modified cmUnpkCtfCfgReqInfo() to add support
7610 * for vendor specific parameters */
7611 /***********************************************************
7613 * Func: cmUnpkCtfCfgReqInfo
7616 * Desc: Configuration Request information
7617 * @details This is the main structure in the Configuration request primitive.
7618 * -# This structure contains the configuration information as given by
7619 * the RRC to configure PHY layer for common/dedicated resources.
7620 * -# It can contain Config/Reconfig/Release.
7621 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7630 **********************************************************/
7632 S16 cmUnpkCtfCfgReqInfo
7635 CtfCfgReqInfo *param,
7639 S16 cmUnpkCtfCfgReqInfo(param, mBuf)
7641 CtfCfgReqInfo *param;
7651 CMCHKUNPK(oduPackUInt8, ¶m->cfgType, mBuf);
7652 switch(param->cfgType) {
7654 CMCHKUNPK(cmUnpkCtfCfgInfo, ¶m->u.cfg, mBuf);
7657 CMCHKUNPK(cmUnpkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7660 CMCHKUNPK(cmUnpkCtfReleaseInfo, ¶m->u.release, mBuf);
7666 if((retVal = cmUnpkCtfVendorSpecParams(pst, ¶m->vendorParams, mBuf)) != ROK)
7672 /* Starts - Fix for CR ccpu00123185 */
7673 /***********************************************************
7675 * Func: cmPkCtfCellPwrcfgInfo
7678 * Desc: Cell Re-configuration Information
7679 * @details This structure contains the information for reconfiguration of Reference Signal Power
7680 * of a cell and its associated resources at PHY.
7689 **********************************************************/
7691 S16 cmPkCtfCellPwrcfgInfo
7693 CtfCellRecfgInfo *param,
7697 S16 cmPkCtfCellPwrcfgInfo(param, mBuf)
7698 CtfCellRecfgInfo *param;
7704 /* Added the pack for newly added reference signal Power*/
7705 CMCHKPK(oduUnpackUInt32, (uint32_t)param->ctfCellStatus, mBuf);
7706 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7707 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7708 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7710 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7711 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7717 /***********************************************************
7719 * Func: cmUnpkCtfCellPwrcfgInfo
7722 * Desc: Cell Re-configuration Information
7723 * @details This structure contains the information for reconfiguration
7724 * of a cell and its associated resources at PHY.
7733 **********************************************************/
7735 S16 cmUnpkCtfCellPwrcfgInfo
7737 CtfCellRecfgInfo *param,
7741 S16 cmUnpkCtfCellPwrcfgInfo(param, mBuf)
7742 CtfCellRecfgInfo *param;
7748 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
7749 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7751 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7752 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7753 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7754 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7755 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->ctfCellStatus, mBuf);
7760 /***********************************************************
7762 * Func: cmPkCtfCellStop
7765 * Desc: Cell Re-configuration Information
7766 * @details This structure contains the information for reconfiguration of Reference Signal Power
7767 * of a cell and its associated resources at PHY.
7776 **********************************************************/
7780 CtfCellRecfgInfo *param,
7784 S16 cmPkCtfCellStop(param, mBuf)
7785 CtfCellRecfgInfo *param;
7791 /* Added the pack for newly added reference signal Power*/
7792 CMCHKPK(oduUnpackUInt32, (uint32_t)param->ctfCellStatus, mBuf);
7793 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7794 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7795 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7797 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7798 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7802 /***********************************************************
7804 * Func: cmUnpkCtfCellStop
7807 * Desc: Cell Re-configuration Information
7808 * @details This structure contains the information for reconfiguration
7809 * of a cell and its associated resources at PHY.
7818 **********************************************************/
7820 S16 cmUnpkCtfCellStop
7822 CtfCellRecfgInfo *param,
7826 S16 cmUnpkCtfCellStop(param, mBuf)
7827 CtfCellRecfgInfo *param;
7833 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7835 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7836 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7837 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7838 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7839 CMCHKUNPK(oduPackUInt32, (uint32_t *)¶m->ctfCellStatus, mBuf);
7844 /* Periodic REM Scan for TPM */
7845 /***********************************************************
7847 * Func: cmPkPerRemScanCellInfo
7850 * Desc: Periodic REM cell search response
7851 * @details This Message contains cell search results.
7860 **********************************************************/
7862 S16 cmPkPerRemScanCellInfo
7864 CtfPeriodicRemCellInfo *param,
7868 S16 cmPkPerRemScanCellInfo(param, mBuf)
7869 CtfPeriodicRemCellInfo *param;
7874 CMCHKPK(oduUnpackUInt16,param->pci, mBuf);
7875 CMCHKPK(oduUnpackUInt8, param->rsrp, mBuf);
7876 CMCHKPK(oduUnpackUInt8, param->dlBw, mBuf);
7877 CMCHKPK(oduUnpackUInt8, param->numTx, mBuf);
7882 /***********************************************************
7884 * Func: cmPkCtfPeriodicCellSearchRsp
7887 * Desc: Periodic REM cell search response
7888 * @details This Message contains Periodic REM scan results.
7897 **********************************************************/
7899 S16 cmPkCtfPeriodicCellSearchRsp
7901 CtfPeriodicRemCellSearchRsp *param,
7905 S16 cmPkCtfPeriodicCellSearchRsp(param, mBuf)
7906 CtfPeriodicRemCellSearchRsp *param;
7912 for(idx = param->numCells - 1; idx >=0; idx--)
7914 CMCHKPK(cmPkPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
7916 CMCHKPK(oduUnpackUInt8, param->numCells, mBuf);
7922 * @brief Configuration Request from App to CL for
7923 * cnm Init Sync responce
7927 * Function: cmPkCtfPeriodicRemCellSearchRsp
7929 * @param[in] Pst* pst
7930 * @param[in] SpId spId
7931 * @param[in] CtfCfgTransId * transId
7932 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
7937 S16 cmPkCtfPeriodicRemCellSearchRsp
7941 CtfCfgTransId *transId,
7942 CtfPeriodicRemCellSearchRsp *CellCfgRsp
7945 S16 cmPkCtfPeriodicRemCellSearchRsp(pst, spId, transId, CellCfgRsp)
7948 CtfCfgTransId *transId;
7949 CtfPeriodicRemCellSearchRsp *CellCfgRsp;
7952 Buffer *mBuf = NULLP;
7954 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
7955 #if (ERRCLASS & ERRCLS_ADD_RES)
7956 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7957 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7958 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7959 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
7961 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
7962 sizeof(CtfPeriodicRemCellSearchRsp));
7965 if (pst->selector == ODU_SELECTOR_LC) {
7966 if (cmPkCtfPeriodicCellSearchRsp(CellCfgRsp, mBuf) != ROK) {
7967 #if (ERRCLASS & ERRCLS_ADD_RES)
7968 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7969 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7970 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7971 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
7973 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
7974 sizeof(CtfPeriodicRemCellSearchRsp));
7979 else if (pst->selector == ODU_SELECTOR_LWLC) {
7981 if (oduPackPointer((PTR)CellCfgRsp, mBuf) != ROK) {
7982 #if (ERRCLASS & ERRCLS_ADD_RES)
7983 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7984 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7985 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
7986 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
7988 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
7989 sizeof(CtfPeriodicRemCellSearchRsp));
7995 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
7996 #if (ERRCLASS & ERRCLS_ADD_RES)
7997 /* ctf_c_001.main_3 Compilation warning fix with g++ */
7998 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
7999 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8000 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
8002 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8003 sizeof(CtfPeriodicRemCellSearchRsp));
8007 if (SPkS16(spId, mBuf) != ROK) {
8008 #if (ERRCLASS & ERRCLS_ADD_RES)
8009 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8010 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8011 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8012 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
8014 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8015 sizeof(CtfPeriodicRemCellSearchRsp));
8019 if (pst->selector != ODU_SELECTOR_LWLC) {
8020 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8021 sizeof(CtfPeriodicRemCellSearchRsp));
8023 pst->event = (Event)EVTCTFPREMCELLSRCHRSP;
8024 return (SPstTsk(pst,mBuf));
8028 S16 cmUnpkCtfPerRemScanCellInfo
8030 CtfPeriodicRemCellInfo *param,
8034 S16 cmUnpkCtfPerRemScanCellInfo(param, mBuf)
8035 CtfPeriodicRemCellInfo *param;
8040 CMCHKUNPK(oduPackUInt8, ¶m->numTx, mBuf);
8041 CMCHKUNPK(oduPackUInt8, ¶m->dlBw, mBuf);
8042 CMCHKUNPK(oduPackUInt8, ¶m->rsrp, mBuf);
8043 CMCHKUNPK(oduPackUInt16, ¶m->pci, mBuf);
8048 S16 cmUnpkCtfPerRemCellSrch
8050 CtfPeriodicRemCellSearchRsp *param,
8054 S16 cmUnpkCtfPerRemCellSrch(param, mBuf)
8055 CtfPeriodicRemCellSearchRsp *param;
8061 CMCHKUNPK(oduPackUInt8, ¶m->numCells, mBuf);
8062 for(idx = 0; idx < (param->numCells); idx++)
8064 CMCHKUNPK(cmUnpkCtfPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8071 * @brief ENB STOP Indication from PHY to ENB-APP
8075 * Function: cmUnpkPerRemCellSrchRsp
8077 * @param[in] Pst* pst
8078 * @param[in] SuId suId
8079 * @param[in] CtfCfgTransId transId
8084 S16 cmUnpkPerRemCellSrchRsp
8086 CtfPerRemCellSrchRsp func,
8091 S16 cmUnpkPerRemCellSrchRsp(func, pst, mBuf)
8092 CtfPerRemCellSrchRsp func;
8098 CtfCfgTransId transId;
8099 CtfPeriodicRemCellSearchRsp *CellSrchRsp = NULLP;
8101 if (SUnpkS16(&suId, mBuf) != ROK) {
8103 #if (ERRCLASS & ERRCLS_ADD_RES)
8104 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8105 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8106 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8107 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
8111 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
8113 #if (ERRCLASS & ERRCLS_ADD_RES)
8114 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8115 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8116 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8117 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
8121 if (pst->selector != ODU_SELECTOR_LWLC) {
8122 if ((SGetSBuf(pst->region, pst->pool, (Data **)&CellSrchRsp,
8123 sizeof(CtfPeriodicRemCellSearchRsp))) != ROK) {
8124 #if (ERRCLASS & ERRCLS_ADD_RES)
8125 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8126 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8127 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8128 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
8134 if (pst->selector == ODU_SELECTOR_LWLC) {
8135 if (oduUnpackPointer((PTR *)&CellSrchRsp, mBuf) != ROK) {
8140 else if (pst->selector == ODU_SELECTOR_LC)
8141 if (cmUnpkCtfPerRemCellSrch(CellSrchRsp, mBuf) != ROK) {
8142 SPutSBuf(pst->region, pst->pool, (Data *)CellSrchRsp,
8143 sizeof(CtfPeriodicRemCellSearchRsp));
8145 #if (ERRCLASS & ERRCLS_ADD_RES)
8146 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8147 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8148 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8149 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
8155 return ((*func)(pst, suId, &transId, CellSrchRsp));
8157 /* Periodic REM Scan for TPM End */
8159 /* ends - Fix for CR ccpu00123185 */
8162 /**********************************************************************
8164 **********************************************************************/