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 "envopt.h" /* Environment options */
34 #include "envdep.h" /* Environment dependent options */
35 #include "envind.h" /* Environment independent options */
36 #include "gen.h" /* General layer */
37 #include "ssi.h" /* System service interface */
38 #include "cm5.h" /* Common timer library */
39 #include "cm_llist.h" /* Common linked list library */
40 #include "cm_hash.h" /* Common hash library */
41 #include "cm_tkns.h" /* Common tokens */
42 #include "cm_lte.h" /* Common LTE Defines */
43 #include "ctf.h" /* CTF interface defines */
45 /* header/extern include files (.x) */
46 #include "gen.x" /* General layer */
47 #include "ssi.x" /* System services interface */
48 #include "cm_lib.x" /* Common linrary function */
49 #include "cm_llist.x" /* Common link list library */
50 #include "cm_hash.x" /* Common hash list library */
51 #include "cm_tkns.x" /* Common tokens */
52 #include "cm_lte.x" /* Common LTE library */
53 #ifdef TENB_AS_SECURITY
58 #ifdef TENB_AS_SECURITY
59 #define cmPkCtfCrnti SPkU16
60 #define cmPkCtfCellId SPkU16
61 #define cmUnpkCtfCellId SUnpkU16
62 #define cmUnpkCtfCrnti SUnpkU16
66 #if (defined(LCCTF) || defined(LWLCCTF))
70 * @brief Request from RRC to PHY to bind the CTF interface SAP.
74 * Function: cmPkCtfBndReq
77 * @param[in] SuId suId
78 * @param[in] SpId spId
83 PUBLIC S16 cmPkCtfBndReq
90 PUBLIC S16 cmPkCtfBndReq(pst, suId, spId)
99 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
100 #if (ERRCLASS & ERRCLS_ADD_RES)
101 /* ctf_c_001.main_3 Compilation warning fix with g++ */
102 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
103 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
104 (ErrVal)ECTF001, (ErrVal)0, (Txt*)&"Packing failed");
108 if (SPkS16(spId, mBuf) != ROK) {
109 #if (ERRCLASS & ERRCLS_ADD_RES)
110 /* ctf_c_001.main_3 Compilation warning fix with g++ */
111 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
112 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
113 (ErrVal)ECTF002, (ErrVal)0, (Txt*)&"Packing failed");
118 if (SPkS16(suId, mBuf) != ROK) {
119 #if (ERRCLASS & ERRCLS_ADD_RES)
120 /* ctf_c_001.main_3 Compilation warning fix with g++ */
121 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
122 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
123 (ErrVal)ECTF003, (ErrVal)0, (Txt*)&"Packing failed");
128 pst->event = (Event) EVTCTFBNDREQ;
129 RETVALUE(SPstTsk(pst,mBuf));
134 * @brief Request from RRC to PHY to bind the CTF interface SAP.
138 * Function: cmUnpkCtfBndReq
140 * @param[in] Pst* pst
141 * @param[in] SuId suId
142 * @param[in] SpId spId
147 PUBLIC S16 cmUnpkCtfBndReq
154 PUBLIC S16 cmUnpkCtfBndReq(func, pst, mBuf)
163 TRC3(cmUnpkCtfBndReq)
165 if (SUnpkS16(&suId, mBuf) != ROK) {
167 #if (ERRCLASS & ERRCLS_ADD_RES)
168 /* ctf_c_001.main_3 Compilation warning fix with g++ */
169 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
170 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
171 (ErrVal)ECTF004, (ErrVal)0, (Txt*)&"Packing failed");
175 if (SUnpkS16(&spId, mBuf) != ROK) {
177 #if (ERRCLASS & ERRCLS_ADD_RES)
178 /* ctf_c_001.main_3 Compilation warning fix with g++ */
179 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
180 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
181 (ErrVal)ECTF005, (ErrVal)0, (Txt*)&"Packing failed");
186 RETVALUE((*func)(pst, suId, spId));
191 * @brief Confirmation from PHY to RRC for the bind
192 * request for the CTF interface SAP.
196 * Function: cmPkCtfBndCfm
198 * @param[in] Pst* pst
199 * @param[in] SuId suId
200 * @param[in] U8 status
205 PUBLIC S16 cmPkCtfBndCfm
212 PUBLIC S16 cmPkCtfBndCfm(pst, suId, status)
218 Buffer *mBuf = NULLP;
221 if (SGetMsg(pst->region, pst->pool, &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)ECTF006, (ErrVal)0, (Txt*)&"Packing failed");
230 if (SPkU8(status, mBuf) != ROK) {
231 #if (ERRCLASS & ERRCLS_ADD_RES)
232 /* ctf_c_001.main_3 Compilation warning fix with g++ */
233 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
234 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
235 (ErrVal)ECTF007, (ErrVal)0, (Txt*)&"Packing failed");
240 if (SPkS16(suId, mBuf) != ROK) {
241 #if (ERRCLASS & ERRCLS_ADD_RES)
242 /* ctf_c_001.main_3 Compilation warning fix with g++ */
243 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
244 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
245 (ErrVal)ECTF008, (ErrVal)0, (Txt*)&"Packing failed");
250 pst->event = (Event) EVTCTFBNDCFM;
251 RETVALUE(SPstTsk(pst,mBuf));
256 * @brief Confirmation from PHY to RRC for the bind
257 * request for the CTF interface SAP.
261 * Function: cmUnpkCtfBndCfm
263 * @param[in] Pst* pst
264 * @param[in] SuId suId
265 * @param[in] U8 status
270 PUBLIC S16 cmUnpkCtfBndCfm
277 PUBLIC S16 cmUnpkCtfBndCfm(func, pst, mBuf)
286 TRC3(cmUnpkCtfBndCfm)
288 if (SUnpkS16(&suId, mBuf) != ROK) {
290 #if (ERRCLASS & ERRCLS_ADD_RES)
291 /* ctf_c_001.main_3 Compilation warning fix with g++ */
292 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
293 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
294 (ErrVal)ECTF009, (ErrVal)0, (Txt*)&"Packing failed");
298 if (SUnpkU8(&status, mBuf) != ROK) {
300 #if (ERRCLASS & ERRCLS_ADD_RES)
301 /* ctf_c_001.main_3 Compilation warning fix with g++ */
302 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
303 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
304 (ErrVal)ECTF010, (ErrVal)0, (Txt*)&"Packing failed");
309 RETVALUE((*func)(pst, suId, status));
314 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
318 * Function: cmPkCtfUbndReq
320 * @param[in] Pst* pst
321 * @param[in] SpId spId
322 * @param[in] Reason reason
327 PUBLIC S16 cmPkCtfUbndReq
334 PUBLIC S16 cmPkCtfUbndReq(pst, spId, reason)
340 Buffer *mBuf = NULLP;
343 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
344 #if (ERRCLASS & ERRCLS_ADD_RES)
345 /* ctf_c_001.main_3 Compilation warning fix with g++ */
346 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
347 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
348 (ErrVal)ECTF011, (ErrVal)0, (Txt*)&"Packing failed");
352 if (SPkS16(reason, mBuf) != ROK) {
353 #if (ERRCLASS & ERRCLS_ADD_RES)
354 /* ctf_c_001.main_3 Compilation warning fix with g++ */
355 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
356 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
357 (ErrVal)ECTF012, (ErrVal)0, (Txt*)&"Packing failed");
362 if (SPkS16(spId, mBuf) != ROK) {
363 #if (ERRCLASS & ERRCLS_ADD_RES)
364 /* ctf_c_001.main_3 Compilation warning fix with g++ */
365 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
366 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
367 (ErrVal)ECTF013, (ErrVal)0,(Txt*)&"Packing failed");
372 pst->event = (Event) EVTCTFUBNDREQ;
373 RETVALUE(SPstTsk(pst,mBuf));
378 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
382 * Function: cmUnpkCtfUbndReq
384 * @param[in] Pst* pst
385 * @param[in] SpId spId
386 * @param[in] Reason reason
391 PUBLIC S16 cmUnpkCtfUbndReq
398 PUBLIC S16 cmUnpkCtfUbndReq(func, pst, mBuf)
407 TRC3(cmUnpkCtfUbndReq)
409 if (SUnpkS16(&spId, mBuf) != ROK) {
411 #if (ERRCLASS & ERRCLS_ADD_RES)
412 /* ctf_c_001.main_3 Compilation warning fix with g++ */
413 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
414 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
415 (ErrVal)ECTF014, (ErrVal)0, (Txt*)&"Packing failed");
419 if (SUnpkS16(&reason, mBuf) != ROK) {
421 #if (ERRCLASS & ERRCLS_ADD_RES)
422 /* ctf_c_001.main_3 Compilation warning fix with g++ */
423 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
424 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
425 (ErrVal)ECTF015, (ErrVal)0, (Txt*)&"Packing failed");
430 RETVALUE((*func)(pst, spId, reason));
434 /***********************************************************
436 * Func: cmRelCtfCfgReq
439 * Desc: This fucntion will release the memory used for ctf cfg req
447 **********************************************************/
449 PRIVATE S16 cmRelCtfCfgReq
452 CtfCfgReqInfo *cfgReqInfo
455 PRIVATE S16 cmRelCtfCfgReq(pst,cfgReqInfo)
457 CtfCfgReqInfo *param;
460 /* ctf_c_001.main_4: Added support for vendor specific parameters */
462 if(cfgReqInfo->vendorParams.paramBuffer != NULLP) {
463 SPutSBuf(pst->region, pst->pool,
464 (Data *)cfgReqInfo->vendorParams.paramBuffer,
465 cfgReqInfo->vendorParams.buffLen);
468 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCfgReqInfo));
472 #ifdef TENB_AS_SECURITY
473 /***********************************************************
475 * Func: cmPkCtfNhKeyInfo
478 * Desc: Pack keNB* input parameter information
479 * @details This is one of the main structure in the KDF request primitive.
480 * -# This structure contains the configuration information as given by
481 * the Application to trigger key derivation at PHY layer for generation of kENB*.
482 * -# It take Next Hop key, DL Frequency and Physical cell Id as input.
483 * -# The result of configuration is indicated in KdfCfgCfm.
492 **********************************************************/
494 PUBLIC S16 cmPkCtfNhKeyInfo
500 PUBLIC S16 cmPkCtfNhKeyInfo(param, mBuf)
508 TRC3(cmPkCtfNhKeyInfo)
510 for(idx=31;idx>=0;idx--)
512 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
514 CMCHKPK(SPkU16, param->physCellId, mBuf);
515 CMCHKPK(SPkU16, param->dlCarrFreq, mBuf);
520 /***********************************************************
522 * Func: cmPkCtfKenbStarInfo
525 * Desc: Pack keNB* input parameter information
526 * @details This is one of the main structure in the KDF request primitive.
527 * -# This structure contains the configuration information as given by
528 * the Application to trigger key derivation at PHY layer for generation of kENB*.
529 * -# It take existing kENB, DL Frequency and Physical cell Id as input.
530 * -# The result of configuration is indicated in KdfCfgCfm.
539 **********************************************************/
541 PUBLIC S16 cmPkCtfKenbStarInfo
543 CtfKenbStarInfo *param,
547 PUBLIC S16 cmPkCtfKenbStarInfo(param, mBuf)
548 CtfKenbStarInfo *param;
555 TRC3(cmPkCtfKenbStarInfo)
557 for(idx=31;idx>=0;idx--)
559 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
561 CMCHKPK(SPkU16, param->physCellId, mBuf);
562 CMCHKPK(SPkU16, param->dlCarrFreq, mBuf);
568 /***********************************************************
570 * Func: cmPkCtfAskeyInfo
573 * Desc: Pack AS key generation input parameter information.
574 * @details This is one of the main structure in the KDF request primitive.
575 * -# This structure contains the configuration information as given by
576 * the Application to trigger key derivation at PHY layer for generation of AS Security keys.
577 * -# It take existing kENB, and integrity/cipherig Algorithm as input.
578 * -# The result of configuration is indicated in KdfCfgCfm.
587 **********************************************************/
589 PUBLIC S16 cmPkCtfAskeyInfo
595 PUBLIC S16 cmPkCtfAskeyInfo(param, mBuf)
603 TRC3(cmPkCtfAskeyInfo)
606 for(idx=31;idx>=0;idx--)
608 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
610 CMCHKPK(SPkU8, param->ciphAlgoType, mBuf);
611 CMCHKPK(SPkU8, param->intgAlgoType, mBuf);
616 /***********************************************************
618 * Func: cmPkCtfKdfReqInfo
621 * Desc: Pack one of the 3 Key Derivation types.
622 * @details This is the encompassing structure in the KDF request primitive.
623 * -# This structure contains the configuration information as given by
624 * the Application to trigger key derivation at PHY layer for generation of keys.
625 * -# It takes key derivation type as input.
626 * -# The result of configuration is indicated in KdfCfgCfm.
635 **********************************************************/
637 PUBLIC S16 cmPkCtfKdfReqInfo
639 CtfKdfReqInfo *param,
643 PUBLIC S16 cmPkCtfKdfReqInfo(param, mBuf)
644 CtfKdfReqInfo *param;
649 TRC3(cmPkCtfKdfReqInfo)
651 switch (param->keyDerType)
654 CMCHKPK(cmPkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
657 CMCHKPK(cmPkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
660 CMCHKPK(cmPkCtfNhKeyInfo , ¶m->u.nhKeyInf, mBuf);
665 CMCHKPK(SPkU8, param->keyDerType, mBuf);
671 * @brief Primitive Request from Application to PHY for
672 * security key derivation.
676 * Function: cmPkCtfKdfReq
678 * @param[in] Pst* pst
679 * @param[in] SpId spId
680 * @param[in] CtfCfgTransId transId
681 * @param[in] CtfCfgReqInfo* cfgReqInfo
686 PUBLIC S16 cmPkCtfKdfReq
690 CtfCfgTransId transId,
691 CtfKdfReqInfo* kdfReqInfo
694 PUBLIC S16 cmPkCtfKdfReq(pst, spId, transId, kdfReqInfo)
697 CtfCfgTransId transId;
698 CtfKdfReqInfo* kdfReqInfo;
701 Buffer *mBuf = NULLP;
706 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
707 #if (ERRCLASS & ERRCLS_ADD_RES)
708 /* ctf_c_001.main_3 Compilation warning fix with g++ */
709 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
710 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
711 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
713 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
716 if (pst->selector == CTF_SEL_LC) {
717 if (cmPkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
718 #if (ERRCLASS & ERRCLS_ADD_RES)
719 /* ctf_c_001.main_3 Compilation warning fix with g++ */
720 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
721 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
722 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
724 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
729 else if (pst->selector == CTF_SEL_LWLC) {
731 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
732 #if (ERRCLASS & ERRCLS_ADD_RES)
733 /* ctf_c_001.main_3 Compilation warning fix with g++ */
734 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
735 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
736 (ErrVal)ECTF018, (ErrVal)0, (Txt*)&"Packing failed");
738 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCfgReqInfo));
744 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
745 #if (ERRCLASS & ERRCLS_ADD_RES)
746 /* ctf_c_001.main_3 Compilation warning fix with g++ */
747 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
748 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
749 (ErrVal)ECTF019, (ErrVal)0, (Txt*)&"Packing failed");
751 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
755 if (SPkS16(spId, mBuf) != ROK) {
756 #if (ERRCLASS & ERRCLS_ADD_RES)
757 /* ctf_c_001.main_3 Compilation warning fix with g++ */
758 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
759 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
760 (ErrVal)ECTF020, (ErrVal)0, (Txt*)&"Packing failed");
762 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
766 if (pst->selector != CTF_SEL_LWLC) {
767 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo)) != ROK) {
768 #if (ERRCLASS & ERRCLS_ADD_RES)
769 /* ctf_c_001.main_3 Compilation warning fix with g++ */
770 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
771 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
772 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
778 pst->event = (Event) EVTCTFKDFREQ;
779 RETVALUE(SPstTsk(pst,mBuf));
783 /********************************************************************************************************************************/
784 /*START OF CNM PACK & UNPACK FUNCTIONS*/
785 /********************************************************************************************************************************/
787 PUBLIC S16 cmPkCtfCnmVendorSpecificInfo
789 CtfCnmVendorSpecificInfo *param,
793 CtfCnmVendorSpecificInfo *param;
798 TRC3(cmPkCtfCnmVendorSpecificInfo);
799 if(param->numOfVendorSpecifcParam <= CTF_CNM_MAX_VENDOR_PARAMS)
801 for(i= param->numOfVendorSpecifcParam-1; i >= 0; i--)
803 CMCHKPK(SPkU32,(U32)param->vendorSpecifcParam[i], mBuf);
806 CMCHKPK(SPkU16, param->numOfVendorSpecifcParam, mBuf);
811 PUBLIC S16 cmPkCtfCtfCnmCellSyncReq
813 CtfCnmCellSyncReq *param,
817 PUBLIC S16 cmPkCtfCtfCnmCellSyncReq(param, mBuf)
818 CtfCnmCellSyncReq *param;
823 TRC3(cmPkCtfCtfCnmCellSyncReq);
824 CMCHKPK(SPkU16, param->nbrEarfcn, mBuf);
825 CMCHKPK(SPkU16, param->nbrPCellId, mBuf);
826 CMCHKPK(SPkU8, param->nbrTxAntCount, mBuf);
827 CMCHKPK(SPkU8, param->nbrCellCp, mBuf);
828 CMCHKPK(SPkU8, param->nbrCellNRb, mBuf);
829 CMCHKPK(SPkU8, param->nbrSpecSfCfg, mBuf);
830 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
836 PUBLIC S16 cmPkCtfcfgReqInfo
838 CtfCnmInitSyncReq *param,
842 PUBLIC S16 cmPkCtfcfgReqInfo(param, mBuf)
843 CtfCnmInitSyncReq *param;
848 TRC3(cmPkCtfcfgReqInfo);
850 CMCHKPK(SPkU8, param->searchType, mBuf);
851 CMCHKPK(SPkU8, param->mibRequest, mBuf);
852 CMCHKPK(SPkU16, param->earfcn, mBuf);
853 CMCHKPK(SPkU8, param->measBandWidth, mBuf);
854 if(param->numOfPciList <= CTF_CNM_MAX_CELL_SEARCH)
856 for(i= param->numOfPciList-1; i >= 0; i--)
858 CMCHKPK(cmPkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
861 CMCHKPK(SPkU16, param->numOfPciList, mBuf);
866 PUBLIC S16 cmUnpkCtfCnmVendorSpecificInfo
868 CtfCnmVendorSpecificInfo *param,
872 PUBLIC S16 cmUnpkCtfCnmVendorSpecificInfo(param, mBuf)
873 CtfCnmVendorSpecificInfo *param;
878 TRC3(cmUnpkCtfCnmVendorSpecificInfo);
880 CMCHKUNPK(SUnpkU16, ¶m->numOfVendorSpecifcParam, mBuf);
881 for(i=0; (i<param->numOfVendorSpecifcParam)&&(i < CTF_CNM_MAX_VENDOR_PARAMS); i++)
883 CMCHKUNPK(SUnpkU32, ¶m->vendorSpecifcParam[i], mBuf);
889 PUBLIC S16 cmUnpkCtfCtfCnmCellSyncReq
891 CtfCnmCellSyncReq *param,
895 PUBLIC S16 cmUnpkCtfCtfCnmCellSyncReq(param, mBuf)
896 CtfCnmCellSyncReq *param;
900 TRC3(cmUnpkCtfCtfCnmCellSyncReq);
903 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
904 CMCHKUNPK(SUnpkU8, ¶m->nbrSpecSfCfg, mBuf);
905 CMCHKUNPK(SUnpkU8, ¶m->nbrCellNRb, mBuf);
906 CMCHKUNPK(SUnpkU8, ¶m->nbrCellCp, mBuf);
907 CMCHKUNPK(SUnpkU8, ¶m->nbrTxAntCount, mBuf);
908 CMCHKUNPK(SUnpkU16, ¶m->nbrPCellId, mBuf);
909 CMCHKUNPK(SUnpkU16, ¶m->nbrEarfcn, mBuf);
915 PUBLIC S16 cmUnpkCtfsyncReqInfo
917 CtfCnmInitSyncReq *param,
921 PUBLIC S16 cmUnpkCtfsyncReqInfo(param, mBuf)
922 CtfCnmInitSyncReq *param;
927 TRC3(cmUnpkCtfsyncReqInfo);
929 CMCHKUNPK(SUnpkU16, ¶m->numOfPciList, mBuf);
930 for(i=0; (i < param->numOfPciList)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
932 CMCHKUNPK(cmUnpkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
935 CMCHKUNPK(SUnpkU8, ¶m->measBandWidth, mBuf);
936 CMCHKUNPK(SUnpkU16, ¶m->earfcn, mBuf);
937 CMCHKUNPK(SUnpkU8, ¶m->mibRequest, mBuf);
938 CMCHKUNPK(SUnpkU8, ¶m->searchType, mBuf);
942 * @brief Configuration Request from App to CL for
943 * cnm Cell Sync request.
947 * Function: cmPkCtfCnmCellSyncReq
949 * @param[in] Pst* pst
950 * @param[in] SpId spId
951 * @param[in] CtfCfgTransId * transId
952 * @param[in] CtfCnmCellSyncReq* ctfcnmCellSyncReq
957 PUBLIC S16 cmPkCtfCnmCellSyncReq
961 CtfCfgTransId *transId,
962 CtfCnmCellSyncReq * cfgReqInfo
965 PUBLIC S16 cmPkCtfCnmCellSyncReq(pst, spId, transId, cfgReqInfo)
968 CtfCfgTransId *transId;
969 CtfCnmCellSyncReq * cfgReqInfo;
973 Buffer *mBuf = NULLP;
975 TRC3(cmPkCtfCnmCellSyncReq)
977 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
978 #if (ERRCLASS & ERRCLS_ADD_RES)
979 /* ctf_c_001.main_3 Compilation warning fix with g++ */
980 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
981 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
982 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
984 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
987 if (pst->selector == CTF_SEL_LC) {
988 if (cmPkCtfCtfCnmCellSyncReq(cfgReqInfo, mBuf) != ROK) {
989 #if (ERRCLASS & ERRCLS_ADD_RES)
990 /* ctf_c_001.main_3 Compilation warning fix with g++ */
991 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
992 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
993 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
995 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1000 else if (pst->selector == CTF_SEL_LWLC) {
1002 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
1003 #if (ERRCLASS & ERRCLS_ADD_RES)
1004 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1005 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1006 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1007 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1009 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1015 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1016 #if (ERRCLASS & ERRCLS_ADD_RES)
1017 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1018 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1019 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1020 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1022 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1026 if (SPkS16(spId, mBuf) != ROK) {
1027 #if (ERRCLASS & ERRCLS_ADD_RES)
1028 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1029 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1030 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1031 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1033 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1037 if (pst->selector != CTF_SEL_LWLC) {
1038 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1040 pst->event = (Event)EVTCTFCNMSYNCREQ;
1041 RETVALUE(SPstTsk(pst,mBuf));
1045 * @brief Configuration Request from RRC to PHY for
1046 * cell or dedicated configuration.
1050 * Function: cmUnpkCtfCnmCellSyncReq
1052 * @param[in] CtfCnmCellSyncReqMsg func
1053 * @param[in] Pst* pst
1054 * @param[in] Buffer *mBuf
1059 PUBLIC S16 cmUnpkCtfCnmCellSyncReq
1061 CtfCnmCellSyncReqMsg func,
1066 PUBLIC S16 cmUnpkCtfCnmCellSyncReq(func, pst, mBuf)
1067 CtfCnmCellSyncReqMsg func;
1074 CtfCfgTransId transId;
1075 CtfCnmCellSyncReq *SyncReqMsg = NULLP;
1076 TRC3(cmUnpkCtfCnmCellSyncReq)
1078 if (SUnpkS16(&spId, mBuf) != ROK) {
1080 #if (ERRCLASS & ERRCLS_ADD_RES)
1081 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1082 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1083 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1084 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1088 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1090 #if (ERRCLASS & ERRCLS_ADD_RES)
1091 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1092 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1093 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1094 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1098 if (pst->selector != CTF_SEL_LWLC) {
1099 if ((SGetSBuf(pst->region, pst->pool, (Data **)&SyncReqMsg, sizeof(CtfCnmCellSyncReq))) != ROK) {
1100 #if (ERRCLASS & ERRCLS_ADD_RES)
1101 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1102 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1103 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1104 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1110 if (pst->selector == CTF_SEL_LWLC) {
1111 if (cmUnpkPtr((PTR *)&SyncReqMsg, mBuf) != ROK) {
1116 else if (pst->selector == CTF_SEL_LC)
1117 if (cmUnpkCtfCtfCnmCellSyncReq(SyncReqMsg, mBuf) != ROK) {
1118 SPutSBuf(pst->region, pst->pool, (Data *)SyncReqMsg, sizeof(CtfCnmCellSyncReq));
1120 #if (ERRCLASS & ERRCLS_ADD_RES)
1121 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1122 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1123 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1124 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1129 RETVALUE((*func)(pst, spId, &transId, SyncReqMsg));
1132 /*-----------------------------------------------------*/
1136 * @brief Configuration Request from App to CL for
1137 * cnm Init Sync request.
1141 * Function: cmPkCtfCnmInitSyncReq
1143 * @param[in] Pst* pst
1144 * @param[in] SpId spId
1145 * @param[in] CtfCfgTransId * transId
1146 * @param[in] CtfCnmInitSyncReq* ctfcnmInitSyncReq
1151 PUBLIC S16 cmPkCtfCnmInitSyncReq
1155 CtfCfgTransId *transId,
1156 CtfCnmInitSyncReq * cfgReqInfo
1159 PUBLIC S16 cmPkCtfCnmInitSyncReq(pst, spId, transId, cfgReqInfo)
1162 CtfCfgTransId *transId;
1163 CtfCnmInitSyncReq * cfgReqInfo;
1166 Buffer *mBuf = NULLP;
1168 TRC3(cmPkCtfCnmInitSyncReq)
1170 if (SGetMsg(pst->region, pst->pool, &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 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1175 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1177 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1180 if (pst->selector == CTF_SEL_LC) {
1181 if (cmPkCtfcfgReqInfo(cfgReqInfo, mBuf) != ROK) {
1182 #if (ERRCLASS & ERRCLS_ADD_RES)
1183 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1184 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1185 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1186 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1188 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1193 else if (pst->selector == CTF_SEL_LWLC) {
1195 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
1196 #if (ERRCLASS & ERRCLS_ADD_RES)
1197 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1198 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1199 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1200 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1202 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1208 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1209 #if (ERRCLASS & ERRCLS_ADD_RES)
1210 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1211 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1212 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1213 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1215 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1219 if (SPkS16(spId, mBuf) != ROK) {
1220 #if (ERRCLASS & ERRCLS_ADD_RES)
1221 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1222 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1223 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1224 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1226 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1230 if (pst->selector != CTF_SEL_LWLC) {
1231 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1233 pst->event = (Event)EVTCTFCNMINITSYNCREQ;
1234 RETVALUE(SPstTsk(pst,mBuf));
1237 /*-----------------------------------------------------------------*/
1240 * @brief Configuration Request from RRC to PHY for
1241 * cell or dedicated configuration.
1245 * Function: cmUnpkCtfCnmInitSyncReq
1247 * @param[in] CtfCnmInitSyncReqMsg func
1248 * @param[in] Pst* pst
1249 * @param[in] Buffer *mBuf
1254 PUBLIC S16 cmUnpkCtfCnmInitSyncReq
1256 CtfCnmInitSyncReqMsg func,
1261 PUBLIC S16 cmUnpkCtfCnmInitSyncReq(func, pst, mBuf)
1262 CtfCnmInitSyncReqMsg func;
1269 CtfCfgTransId transId;
1270 CtfCnmInitSyncReq *syncReqInfo = NULLP;
1271 TRC3(cmUnpkCtfCnmInitSyncReq)
1273 if (SUnpkS16(&spId, mBuf) != ROK) {
1275 #if (ERRCLASS & ERRCLS_ADD_RES)
1276 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1277 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1278 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1279 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1283 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1285 #if (ERRCLASS & ERRCLS_ADD_RES)
1286 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1287 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1288 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1289 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1293 if (pst->selector != CTF_SEL_LWLC) {
1294 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncReqInfo, sizeof(CtfCnmInitSyncReq))) != ROK) {
1295 #if (ERRCLASS & ERRCLS_ADD_RES)
1296 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1297 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1298 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1299 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1305 if (pst->selector == CTF_SEL_LWLC) {
1306 if (cmUnpkPtr((PTR *)&syncReqInfo, mBuf) != ROK) {
1311 else if (pst->selector == CTF_SEL_LC)
1312 if (cmUnpkCtfsyncReqInfo(syncReqInfo, mBuf) != ROK) {
1313 SPutSBuf(pst->region, pst->pool, (Data *)syncReqInfo, sizeof(CtfCnmInitSyncReq));
1315 #if (ERRCLASS & ERRCLS_ADD_RES)
1316 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1317 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1318 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1319 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1324 RETVALUE((*func)(pst, spId, &transId, syncReqInfo));
1326 /*-----------------------------------------------------------------------------*/
1329 PUBLIC S16 cmPkCtfctfCnmMibInfo
1331 CtfCnmMibInfo *param,
1335 PUBLIC S16 cmPkCtfctfCnmMibInfo(param, mBuf)
1336 CtfCnmMibInfo *param;
1340 TRC3(cmPkCtfctfCnmMibInfo)
1342 CMCHKPK(SPkU16, param->sfn, mBuf);
1343 CMCHKPK(SPkU8, param->numTxAntennas, mBuf);
1344 CMCHKPK(SPkU8, param->phichDuration, mBuf);
1345 CMCHKPK(SPkU8, param->phichResource, mBuf);
1346 CMCHKPK(SPkU8, param->dlSystemBandWidht, mBuf);
1352 PUBLIC S16 cmPkCtfctfCnmInitSyncInfo
1354 CtfCnmInitSyncInfo *param,
1358 PUBLIC S16 cmPkCtfctfCnmInitSyncInfo(param, mBuf)
1359 CtfCnmInitSyncInfo *param;
1363 TRC3(cmPkCtfctfCnmInitSyncInfo)
1365 CMCHKPK(SPkU16, param->pci, mBuf);
1366 CMCHKPK(SPkU8, param->rsrp, mBuf);
1367 CMCHKPK(SPkU8, param->mibValidFlag, mBuf);
1368 CMCHKPK(SPkU16, param->localSfn, mBuf);
1369 CMCHKPK(cmPkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1370 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1376 PUBLIC S16 cmPkCtfcfgRspInfo
1378 CtfCnmInitSyncRsp *param,
1382 PUBLIC S16 cmPkCtfcfgRspInfo(param, mBuf)
1383 CtfCnmInitSyncRsp *param;
1388 TRC3(cmPkCtfcfgRspInfo)
1391 CMCHKPK(SPkU8, param->status, mBuf);
1392 CMCHKPK(SPkU16, param->earfcn, mBuf);
1393 if(param->numOfNeighbourInfo <= CTF_CNM_MAX_CELL_SEARCH)
1395 for(i= param->numOfNeighbourInfo-1; i >= 0; i--)
1397 CMCHKPK(cmPkCtfctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1400 CMCHKPK(SPkU8, param->numOfNeighbourInfo, mBuf);
1406 * @brief Configuration Request from App to CL for
1407 * cnm Init Sync responce
1411 * Function: cmPkCtfCnmInitSyncRsp
1413 * @param[in] Pst* pst
1414 * @param[in] SpId spId
1415 * @param[in] CtfCfgTransId * transId
1416 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
1421 PUBLIC S16 cmPkCtfCnmInitSyncRsp
1425 CtfCfgTransId *transId,
1426 CtfCnmInitSyncRsp * cfgRspInfo
1429 PUBLIC S16 cmPkCtfCnmInitSyncRsp(pst, spId, transId, cfgRspInfo)
1432 CtfCfgTransId *transId;
1433 CtfCnmInitSyncRsp * cfgRspInfo;
1436 Buffer *mBuf = NULLP;
1437 TRC3(cmPkCtfCnmInitSyncRsp)
1439 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1440 #if (ERRCLASS & ERRCLS_ADD_RES)
1441 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1442 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1443 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1444 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1446 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1449 if (pst->selector == CTF_SEL_LC) {
1450 if (cmPkCtfcfgRspInfo(cfgRspInfo, mBuf) != ROK) {
1451 #if (ERRCLASS & ERRCLS_ADD_RES)
1452 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1453 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1454 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1455 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1457 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1462 else if (pst->selector == CTF_SEL_LWLC) {
1464 if (cmPkPtr((PTR)cfgRspInfo, mBuf) != ROK) {
1465 #if (ERRCLASS & ERRCLS_ADD_RES)
1466 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1467 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1468 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1469 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1471 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1477 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1478 #if (ERRCLASS & ERRCLS_ADD_RES)
1479 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1480 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1481 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1482 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1484 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1488 if (SPkS16(spId, mBuf) != ROK) {
1489 #if (ERRCLASS & ERRCLS_ADD_RES)
1490 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1491 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1492 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1493 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1495 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1499 if (pst->selector != CTF_SEL_LWLC) {
1500 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1502 pst->event = (Event)EVTCTFCNMINITSYNCRSP;
1503 RETVALUE(SPstTsk(pst,mBuf));
1506 /*-----------------------------------------------------------------------------*/
1509 PUBLIC S16 cmUnpkCtfctfCnmMibInfo
1511 CtfCnmMibInfo *param,
1515 PUBLIC S16 cmUnpkCtfctfCnmMibInfo(param, mBuf)
1516 CtfCnmMibInfo *param;
1520 TRC3(cmUnpkCtfctfCnmMibInfo);
1523 CMCHKUNPK(SUnpkU8, ¶m->dlSystemBandWidht, mBuf);
1524 CMCHKUNPK(SUnpkU8, ¶m->phichResource, mBuf);
1525 CMCHKUNPK(SUnpkU8, ¶m->phichDuration, mBuf);
1526 CMCHKUNPK(SUnpkU8, ¶m->numTxAntennas, mBuf);
1527 CMCHKUNPK(SUnpkU16, ¶m->sfn, mBuf);
1533 PUBLIC S16 cmUnpkctfCnmInitSyncInfo
1535 CtfCnmInitSyncInfo *param,
1539 PUBLIC S16 cmUnpkctfCnmInitSyncInfo(param, mBuf)
1540 CtfCnmInitSyncInfo *param;
1544 TRC3(cmUnpkctfCnmInitSyncInfo);
1546 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1547 CMCHKUNPK(cmUnpkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1548 CMCHKUNPK(SUnpkU16, ¶m->localSfn, mBuf);
1549 CMCHKUNPK(SUnpkU8, ¶m->mibValidFlag, mBuf);
1550 CMCHKUNPK(SUnpkU8, ¶m->rsrp, mBuf);
1551 CMCHKUNPK(SUnpkU16, ¶m->pci, mBuf);
1557 PUBLIC S16 cmUnpkCtfCnmInitSyncRspMsg
1559 CtfCnmInitSyncRsp *param,
1563 PUBLIC S16 cmUnpkCtfCnmInitSyncRspMsg(param, mBuf)
1564 CtfCnmInitSyncRsp *param;
1569 TRC3(cmUnpkCtfCnmInitSyncRspMsg);
1572 CMCHKUNPK(SUnpkU8, ¶m->numOfNeighbourInfo, mBuf);
1573 for(i=0; (i < param->numOfNeighbourInfo)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
1575 CMCHKUNPK(cmUnpkctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1577 CMCHKUNPK(SUnpkU16, ¶m->earfcn, mBuf);
1578 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
1583 * @brief Configuration Request from RRC to PHY for
1584 * cell or dedicated configuration.
1588 * Function: cmUnpkCtfCnmInitSyncRsp
1590 * @param[in] CtfCnmInitSyncRspMsg func
1591 * @param[in] Pst* pst
1592 * @param[in] Buffer *mBuf
1597 PUBLIC S16 cmUnpkCtfCnmInitSyncRsp
1599 CtfCnmInitSyncRspMsg func,
1604 PUBLIC S16 cmUnpkCtfCnmInitSyncRsp(func, pst, mBuf)
1605 CtfCnmInitSyncRspMsg func;
1612 CtfCfgTransId transId;
1613 CtfCnmInitSyncRsp *syncRspInfo = NULLP;
1614 TRC3(cmUnpkCtfCnmInitSyncRsp)
1616 if (SUnpkS16(&spId, mBuf) != ROK) {
1618 #if (ERRCLASS & ERRCLS_ADD_RES)
1619 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1620 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1621 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1622 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1626 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1628 #if (ERRCLASS & ERRCLS_ADD_RES)
1629 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1630 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1631 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1632 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1636 if (pst->selector != CTF_SEL_LWLC) {
1637 if((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspInfo, sizeof(CtfCnmInitSyncRsp))) != ROK) {
1638 #if (ERRCLASS & ERRCLS_ADD_RES)
1639 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1640 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1641 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1642 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1648 if (pst->selector == CTF_SEL_LWLC) {
1649 if(cmUnpkPtr((PTR *)&syncRspInfo, mBuf) != ROK) {
1654 else if (pst->selector == CTF_SEL_LC)
1655 if(cmUnpkCtfCnmInitSyncRspMsg(syncRspInfo, mBuf) != ROK) {
1656 SPutSBuf(pst->region, pst->pool, (Data *)syncRspInfo, sizeof(CtfCnmInitSyncRsp));
1658 #if (ERRCLASS & ERRCLS_ADD_RES)
1659 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1660 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1661 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1662 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1667 RETVALUE((*func)(pst, spId, &transId, syncRspInfo));
1670 /*-----------------------------------------------------------------------*/
1673 PUBLIC S16 cmPkCtfCellSyncRsp
1675 CtfCnmCellSyncRsp *param,
1679 PUBLIC S16 cmPkCtfCellSyncRsp(param, mBuf)
1680 CtfCnmCellSyncRsp *param;
1685 TRC3(cmPkCtfCellSyncRsp)
1687 CMCHKPK(SPkU8, param->status, mBuf);
1692 * @brief Configuration Request from App to CL for
1693 * cnm Init Sync responce.
1697 * Function: cmPkCtfCnmCellSyncRsp
1699 * @param[in] Pst* pst
1700 * @param[in] SpId spId
1701 * @param[in] CtfCfgTransId * transId
1702 * @param[in] CtfCnmCellSyncRsp* ctfcnmCellSyncRsp
1707 PUBLIC S16 cmPkCtfCnmCellSyncRsp
1711 CtfCfgTransId *transId,
1712 CtfCnmCellSyncRsp * cfgRspInfo
1715 PUBLIC S16 cmPkCtfCnmCellSyncRsp(pst, spId, transId, cfgRspInfo)
1718 CtfCfgTransId *transId;
1719 CtfCnmCellSyncRsp * cfgRspInfo;
1723 Buffer *mBuf = NULLP;
1724 TRC3(cmPkCtfCnmCellSyncRsp)
1726 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1727 #if (ERRCLASS & ERRCLS_ADD_RES)
1728 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1729 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1730 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1731 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1733 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1736 if (pst->selector == CTF_SEL_LC) {
1737 if (cmPkCtfCellSyncRsp(cfgRspInfo, mBuf) != ROK) {
1738 #if (ERRCLASS & ERRCLS_ADD_RES)
1739 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1740 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1741 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1742 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1744 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1749 else if (pst->selector == CTF_SEL_LWLC) {
1751 if (cmPkPtr((PTR)cfgRspInfo, mBuf) != ROK) {
1752 #if (ERRCLASS & ERRCLS_ADD_RES)
1753 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1754 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1755 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1756 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1758 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1764 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1765 #if (ERRCLASS & ERRCLS_ADD_RES)
1766 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1767 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1768 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1769 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1771 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1775 if (SPkS16(spId, mBuf) != ROK) {
1776 #if (ERRCLASS & ERRCLS_ADD_RES)
1777 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1778 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1779 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1780 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1782 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1786 if (pst->selector != CTF_SEL_LWLC) {
1787 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1789 pst->event = (Event)EVTCTFCNMSYNCRSP;
1790 RETVALUE(SPstTsk(pst,mBuf));
1794 /*------------------------------------------------------------*/
1797 PUBLIC S16 cmUnpkCtfCnmSyncRspMsg
1799 CtfCnmCellSyncRsp *param,
1803 PUBLIC S16 cmUnpkCtfCnmSyncRspMsg(param, mBuf)
1804 CtfCnmCellSyncRsp *param;
1809 TRC3(cmUnpkCtfCnmSyncRspMsg);
1811 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
1816 * @brief Configuration Request from RRC to PHY for
1817 * cell or dedicated configuration.
1821 * Function: cmUnpkCtfCnmCellSyncRsp
1823 * @param[in] CtfCnmCellSyncRspMsg func
1824 * @param[in] Pst* pst
1825 * @param[in] Buffer *mBuf
1830 PUBLIC S16 cmUnpkCtfCnmCellSyncRsp
1832 CtfCnmCellSyncRspMsg func,
1837 PUBLIC S16 cmUnpkCtfCnmCellSyncRsp(func, pst, mBuf)
1838 CtfCnmCellSyncRspMsg func;
1845 CtfCfgTransId transId;
1846 CtfCnmCellSyncRsp *syncRspMsg = NULLP;
1847 TRC3(cmUnpkCtfCnmCellSyncRsp)
1849 if (SUnpkS16(&spId, mBuf) != ROK) {
1851 #if (ERRCLASS & ERRCLS_ADD_RES)
1852 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1853 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1854 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1855 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1859 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1861 #if (ERRCLASS & ERRCLS_ADD_RES)
1862 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1863 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1864 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1865 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1869 if (pst->selector != CTF_SEL_LWLC) {
1870 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspMsg, sizeof(CtfCnmCellSyncRsp))) != ROK) {
1871 #if (ERRCLASS & ERRCLS_ADD_RES)
1872 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1873 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1874 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1875 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1881 if (pst->selector == CTF_SEL_LWLC) {
1882 if (cmUnpkPtr((PTR *)&syncRspMsg, mBuf) != ROK) {
1887 else if (pst->selector == CTF_SEL_LC)
1888 if (cmUnpkCtfCnmSyncRspMsg(syncRspMsg, mBuf) != ROK) {
1889 SPutSBuf(pst->region, pst->pool, (Data *)syncRspMsg, sizeof(CtfCnmCellSyncRsp));
1891 #if (ERRCLASS & ERRCLS_ADD_RES)
1892 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1893 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1894 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1895 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1900 RETVALUE((*func)(pst, spId, &transId, syncRspMsg));
1903 /*---------------------------------------------------------------*/
1906 PUBLIC S16 cmPkCtfcfgIndInfo
1908 CtfCnmCellSyncInd *param,
1912 PUBLIC S16 cmPkCtfcfgIndInfo(param, mBuf)
1913 CtfCnmCellSyncInd *param;
1918 TRC3(cmPkCtfcfgIndInfo);
1920 CMCHKPK(SPkU8, param->status, mBuf);
1921 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1926 * @brief Configuration Request from App to CL for
1927 * cnm Init Sync responce.
1931 * Function: cmPkCtfCnmCellSyncInd
1933 * @param[in] Pst* pst
1934 * @param[in] SpId spId
1935 * @param[in] CtfCfgTransId * transId
1936 * @param[in] CtfCnmCellSyncInd* ctfcnmCellSyncInd
1941 PUBLIC S16 cmPkCtfCnmCellSyncInd
1945 CtfCfgTransId *transId,
1946 CtfCnmCellSyncInd * cfgIndInfo
1949 PUBLIC S16 cmPkCtfCnmCellSyncInd(pst, spId, transId, cfgIndInfo)
1952 CtfCfgTransId *transId;
1953 CtfCnmCellSyncInd * cfgIndInfo;
1957 Buffer *mBuf = NULLP;
1958 TRC3(cmPkCtfCnmCellSyncInd)
1960 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1961 #if (ERRCLASS & ERRCLS_ADD_RES)
1962 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1963 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1964 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1965 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1967 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1970 if (pst->selector == CTF_SEL_LC) {
1971 if (cmPkCtfcfgIndInfo(cfgIndInfo, mBuf) != ROK) {
1972 #if (ERRCLASS & ERRCLS_ADD_RES)
1973 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1974 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1975 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1976 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1978 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1983 else if (pst->selector == CTF_SEL_LWLC) {
1985 if (cmPkPtr((PTR)cfgIndInfo, mBuf) != ROK) {
1986 #if (ERRCLASS & ERRCLS_ADD_RES)
1987 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1988 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1989 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1990 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1992 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1998 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1999 #if (ERRCLASS & ERRCLS_ADD_RES)
2000 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2001 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2002 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2003 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
2005 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
2009 if (SPkS16(spId, mBuf) != ROK) {
2010 #if (ERRCLASS & ERRCLS_ADD_RES)
2011 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2012 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2013 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2014 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
2016 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
2020 if (pst->selector != CTF_SEL_LWLC) {
2021 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
2023 pst->event = (Event)EVTCTFCNMSYNCIND;
2024 RETVALUE(SPstTsk(pst,mBuf));
2028 /*---------------------------------------------------------------*/
2031 PUBLIC S16 cmUnpkCtfCnmSyncIndMsg
2033 CtfCnmCellSyncInd *param,
2037 PUBLIC S16 cmUnpkCtfCnmSyncIndMsg(param, mBuf)
2038 CtfCnmCellSyncInd *param;
2043 TRC3(cmUnpkCtfCnmSyncIndMsg);
2045 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
2046 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
2051 * @brief Configuration Request from RRC to PHY for
2052 * cell or dedicated configuration.
2056 * Function: cmUnpkCtfCnmCellSyncInd
2058 * @param[in] CtfCnmCellSyncIndMsg func
2059 * @param[in] Pst* pst
2060 * @param[in] Buffer *mBuf
2065 PUBLIC S16 cmUnpkCtfCnmCellSyncInd
2067 CtfCnmCellSyncIndMsg func,
2072 PUBLIC S16 cmUnpkCtfCnmCellSyncInd(func, pst, mBuf)
2073 CtfCnmCellSyncIndMsg func;
2080 CtfCfgTransId transId;
2081 CtfCnmCellSyncInd *syncIndMsg = NULLP;
2082 TRC3(cmUnpkCtfCnmInitSyncRsp)
2084 if (SUnpkS16(&spId, mBuf) != ROK) {
2086 #if (ERRCLASS & ERRCLS_ADD_RES)
2087 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2088 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2089 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2090 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2094 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2096 #if (ERRCLASS & ERRCLS_ADD_RES)
2097 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2098 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2099 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2100 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2104 if (pst->selector != CTF_SEL_LWLC) {
2105 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncIndMsg, sizeof(CtfCnmCellSyncInd))) != ROK) {
2106 #if (ERRCLASS & ERRCLS_ADD_RES)
2107 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2108 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2109 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2110 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2116 if (pst->selector == CTF_SEL_LWLC) {
2117 if (cmUnpkPtr((PTR *)&syncIndMsg, mBuf) != ROK) {
2122 else if (pst->selector == CTF_SEL_LC)
2123 if (cmUnpkCtfCnmSyncIndMsg(syncIndMsg, mBuf) != ROK) {
2124 SPutSBuf(pst->region, pst->pool, (Data *)syncIndMsg, sizeof(CtfCnmCellSyncInd));
2126 #if (ERRCLASS & ERRCLS_ADD_RES)
2127 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2128 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2129 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2130 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2135 RETVALUE((*func)(pst, spId, &transId, syncIndMsg));
2139 /********************************************************************************************************************************/
2140 /*END OF CNM PACK & UNPACK FUNCTIONS*/
2141 /********************************************************************************************************************************/
2147 * @brief Configuration Request from RRC to PHY for
2148 * cell or dedicated configuration.
2152 * Function: cmPkCtfCfgReq
2154 * @param[in] Pst* pst
2155 * @param[in] SpId spId
2156 * @param[in] CtfCfgTransId transId
2157 * @param[in] CtfCfgReqInfo* cfgReqInfo
2162 PUBLIC S16 cmPkCtfCfgReq
2166 CtfCfgTransId transId,
2167 CtfCfgReqInfo* cfgReqInfo
2170 PUBLIC S16 cmPkCtfCfgReq(pst, spId, transId, cfgReqInfo)
2173 CtfCfgTransId transId;
2174 CtfCfgReqInfo* cfgReqInfo;
2177 Buffer *mBuf = NULLP;
2180 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2181 #if (ERRCLASS & ERRCLS_ADD_RES)
2182 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2183 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2184 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2185 (ErrVal)ECTF016, (ErrVal)0, "Packing failed");
2187 cmRelCtfCfgReq(pst, cfgReqInfo);
2190 if (pst->selector == CTF_SEL_LC) {
2191 if (cmPkCtfCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
2192 #if (ERRCLASS & ERRCLS_ADD_RES)
2193 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2194 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2195 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2196 (ErrVal)ECTF017, (ErrVal)0, "Packing failed");
2198 cmRelCtfCfgReq(pst, cfgReqInfo);
2203 else if (pst->selector == CTF_SEL_LWLC) {
2204 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
2205 #if (ERRCLASS & ERRCLS_ADD_RES)
2206 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2207 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2208 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2209 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
2211 cmRelCtfCfgReq(pst, cfgReqInfo);
2216 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2217 #if (ERRCLASS & ERRCLS_ADD_RES)
2218 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2219 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2220 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2221 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
2223 cmRelCtfCfgReq(pst, cfgReqInfo);
2227 if (SPkS16(spId, mBuf) != ROK) {
2228 #if (ERRCLASS & ERRCLS_ADD_RES)
2229 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2230 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2231 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2232 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
2234 cmRelCtfCfgReq(pst, cfgReqInfo);
2238 if (pst->selector != CTF_SEL_LWLC) {
2239 cmRelCtfCfgReq(pst, cfgReqInfo);
2241 pst->event = (Event) EVTCTFCFGREQ;
2242 RETVALUE(SPstTsk(pst,mBuf));
2245 #ifdef TENB_AS_SECURITY
2246 /***********************************************************
2248 * Func: cmPkCtfKenbCfgInfo
2251 * Desc: Key derivation funtion Input Information
2252 * @details This funtion packs the the CtfKenbCfgInfo structure
2253 * which contains the eNodeB key and Algorithm Type for
2254 * deriving AS security keys.
2263 **********************************************************/
2265 PUBLIC S16 cmUnpkCtfNhKeyInfo
2267 CtfNhKeyInfo *param,
2271 PUBLIC S16 cmUnpkCtfNhKeyInfo(param, mBuf)
2272 CtfNhKeyInfo *param;
2279 TRC3(cmUnpkCtfNhKeyInfo)
2281 CMCHKUNPK(SUnpkU16, ¶m->dlCarrFreq, mBuf);
2282 CMCHKUNPK(SUnpkU16, ¶m->physCellId, mBuf);
2283 for(idx=0;idx<32;idx++)
2285 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2290 /***********************************************************
2292 * Func: cmPkCtfKenbCfgInfo
2295 * Desc: Key derivation funtion Input Information
2296 * @details This funtion packs the the CtfKenbCfgInfo structure
2297 * which contains the eNodeB key and Algorithm Type for
2298 * deriving AS security keys.
2307 **********************************************************/
2309 PUBLIC S16 cmUnpkCtfKenbStarInfo
2311 CtfKenbStarInfo *param,
2315 PUBLIC S16 cmUnpkCtfKenbStarInfo(param, mBuf)
2316 CtfKenbStarInfo *param;
2323 TRC3(cmUnpkCtfKenbStarInfo)
2325 CMCHKUNPK(SUnpkU16, ¶m->dlCarrFreq, mBuf);
2326 CMCHKUNPK(SUnpkU16, ¶m->physCellId, mBuf);
2327 for(idx=0;idx<32;idx++)
2329 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2335 /***********************************************************
2337 * Func: cmPkCtfKenbCfgInfo
2340 * Desc: Key derivation funtion Input Information
2341 * @details This funtion packs the the CtfKenbCfgInfo structure
2342 * which contains the eNodeB key and Algorithm Type for
2343 * deriving AS security keys.
2352 **********************************************************/
2354 PUBLIC S16 cmUnpkCtfAskeyInfo
2356 CtfAsKeyInfo *param,
2360 PUBLIC S16 cmUnpkCtfAskeyInfo(param, mBuf)
2361 CtfAskeyInfo *param;
2368 TRC3(cmUnpkCtfAskeyInfo)
2370 CMCHKUNPK(SUnpkU8, ¶m->intgAlgoType, mBuf);
2371 CMCHKUNPK(SUnpkU8, ¶m->ciphAlgoType, mBuf);
2372 for(idx=0;idx<32;idx++)
2374 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2379 /***********************************************************
2381 * Func: cmPkCtfKenbCfgInfo
2384 * Desc: Key derivation funtion Input Information
2385 * @details This funtion packs the the CtfKenbCfgInfo structure
2386 * which contains the eNodeB key and Algorithm Type for
2387 * deriving AS security keys.
2396 * **********************************************************/
2398 PUBLIC S16 cmUnpkCtfKdfReqInfo
2400 CtfKdfReqInfo *param,
2404 PUBLIC S16 cmUnpkCtfKdfReqInfo(param, mBuf)
2405 CtfKdfReqInfo *param;
2410 TRC3(cmUnpkCtfKdfReqInfo)
2412 CMCHKUNPK(SUnpkU8, ¶m->keyDerType, mBuf);
2413 switch (param->keyDerType)
2416 CMCHKUNPK(cmUnpkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
2419 CMCHKUNPK(cmUnpkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
2422 CMCHKUNPK(cmUnpkCtfNhKeyInfo, ¶m->u.nhKeyInf, mBuf);
2431 * @brief Configuration Request from RRC to PHY for
2432 * cell or dedicated configuration.
2436 * Function: cmUnpkCtfCfgReq
2438 * @param[in] Pst* pst
2439 * @param[in] SpId spId
2440 * @param[in] CtfCfgTransId transId
2441 * @param[in] CtfCfgReqInfo* cfgReqInfo
2446 PUBLIC S16 cmUnpkCtfKdfReq
2453 PUBLIC S16 cmUnpkCtfKdfReq(func, pst, mBuf)
2460 CtfCfgTransId transId;
2461 CtfKdfReqInfo *kdfReqInfo = NULLP;
2463 TRC3(cmUnpkCtfKdfReq)
2465 if (SUnpkS16(&spId, mBuf) != ROK) {
2467 #if (ERRCLASS & ERRCLS_ADD_RES)
2468 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2469 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2470 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2471 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2476 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2478 #if (ERRCLASS & ERRCLS_ADD_RES)
2479 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2480 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2481 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2482 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2487 if (pst->selector != CTF_SEL_LWLC) {
2488 if ((SGetSBuf(pst->region, pst->pool, (Data **)&kdfReqInfo, sizeof(CtfKdfReqInfo))) != ROK) {
2489 #if (ERRCLASS & ERRCLS_ADD_RES)
2490 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2491 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2492 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2493 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2501 if (pst->selector == CTF_SEL_LWLC) {
2502 /*if (cmUnpkPtr((PTR *)&cfgReqInfo, mBuf) != ROK) {
2507 else if (pst->selector == CTF_SEL_LC)
2508 if (cmUnpkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
2509 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
2511 #if (ERRCLASS & ERRCLS_ADD_RES)
2512 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2513 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2514 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2515 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2520 RETVALUE((*func)(pst, spId, transId, kdfReqInfo));
2527 * @brief Configuration Request from RRC to PHY for
2528 * cell or dedicated configuration.
2532 * Function: cmUnpkCtfCfgReq
2534 * @param[in] Pst* pst
2535 * @param[in] SpId spId
2536 * @param[in] CtfCfgTransId transId
2537 * @param[in] CtfCfgReqInfo* cfgReqInfo
2542 PUBLIC S16 cmUnpkCtfCfgReq
2549 PUBLIC S16 cmUnpkCtfCfgReq(func, pst, mBuf)
2556 CtfCfgTransId transId;
2557 CtfCfgReqInfo *cfgReqInfo = NULLP;
2559 TRC3(cmUnpkCtfCfgReq)
2561 if (SUnpkS16(&spId, mBuf) != ROK) {
2563 #if (ERRCLASS & ERRCLS_ADD_RES)
2564 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2565 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2566 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2567 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2571 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2573 #if (ERRCLASS & ERRCLS_ADD_RES)
2574 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2575 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2576 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2577 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2581 if (pst->selector != CTF_SEL_LWLC) {
2582 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo, sizeof(CtfCfgReqInfo))) != ROK) {
2583 #if (ERRCLASS & ERRCLS_ADD_RES)
2584 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2585 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2586 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2587 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2593 if (pst->selector == CTF_SEL_LWLC) {
2594 if (cmUnpkPtr((PTR *)&cfgReqInfo, mBuf) != ROK) {
2599 else if (pst->selector == CTF_SEL_LC)
2600 if (cmUnpkCtfCfgReqInfo(pst,cfgReqInfo, mBuf) != ROK) {
2601 cmRelCtfCfgReq(pst, cfgReqInfo);
2603 #if (ERRCLASS & ERRCLS_ADD_RES)
2604 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2605 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2606 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2607 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2612 RETVALUE((*func)(pst, spId, transId, cfgReqInfo));
2615 #ifdef TENB_AS_SECURITY
2616 /***********************************************************
2618 * Func: cmPkCtfKenbCfgInfo
2621 * Desc: Key derivation funtion Input Information
2622 * @details This funtion packs the the CtfKenbCfgInfo structure
2623 * which contains the eNodeB key and Algorithm Type for
2624 * deriving AS security keys.
2633 **********************************************************/
2635 PUBLIC S16 cmPkCtfNhKeyCfmInfo
2637 CtfNhKeyCfmInfo *param,
2641 PUBLIC S16 cmPkCtfNhKeyCfmInfo(param, mBuf)
2642 CtfNhKeyCfmInfo *param;
2649 TRC3(cmPkCtfNhKeyCfmInfo)
2651 for(idx=31;idx>=0;idx--)
2653 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
2658 /***********************************************************
2660 * Func: cmPkCtfKenbCfgInfo
2663 * Desc: Key derivation funtion Input Information
2664 * @details This funtion packs the the CtfKenbCfgInfo structure
2665 * which contains the eNodeB key and Algorithm Type for
2666 * deriving AS security keys.
2675 **********************************************************/
2677 PUBLIC S16 cmPkCtfKenbStarCfmInfo
2679 CtfKenbStarCfmInfo *param,
2683 PUBLIC S16 cmPkCtfKenbStarCfmInfo(param, mBuf)
2684 CtfKenbStarCfmInfo *param;
2691 TRC3(cmPkCtfKenbStarCfmInfo)
2693 for(idx=31;idx>=0;idx--)
2695 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
2701 /***********************************************************
2703 * Func: cmPkCtfKenbCfgInfo
2706 * Desc: Key derivation funtion Input Information
2707 * @details This funtion packs the the CtfKenbCfgInfo structure
2708 * which contains the eNodeB key and Algorithm Type for
2709 * deriving AS security keys.
2718 **********************************************************/
2720 PUBLIC S16 cmPkCtfAskeyCfmInfo
2722 CtfAskeyCfmInfo *param,
2726 PUBLIC S16 cmPkCtfAskeyCfmInfo(param, mBuf)
2727 CtfAskeyCfmInfo *param;
2734 TRC3(cmPkCtfCtfAskeyCfmInfo)
2736 for(idx=15;idx>=0;idx--)
2738 CMCHKPK(SPkU8,param->cpCiphKey[idx],mBuf);
2740 for(idx=15;idx>=0;idx--)
2742 CMCHKPK(SPkU8,param->upCiphKey[idx],mBuf);
2744 for(idx=15;idx>=0;idx--)
2746 CMCHKPK(SPkU8,param->intKey[idx],mBuf);
2751 /***********************************************************
2753 * Func: cmPkCtfKenbCfgInfo
2756 * Desc: Key derivation funtion Input Information
2757 * @details This funtion packs the the CtfKenbCfgInfo structure
2758 * which contains the eNodeB key and Algorithm Type for
2759 * deriving AS security keys.
2768 * **********************************************************/
2770 PUBLIC S16 cmPkCtfKdfCfmInfo
2772 CtfKdfCfmInfo *param,
2776 PUBLIC S16 cmPkCtfKdfCfmInfo(param, mBuf)
2777 CtfKdfCfmInfo *param;
2782 TRC3(cmPkCtfKdfCfmInfo)
2784 switch (param->keyDerType)
2787 CMCHKPK(cmPkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
2790 CMCHKPK(cmPkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
2793 CMCHKPK(cmPkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
2798 CMCHKPK(SPkU8, param->keyDerType, mBuf);
2803 * @brief Configuration Confirm from PHY to RRC.
2807 * Function: cmPkCtfCfgCfm
2809 * @param[in] Pst* pst
2810 * @param[in] SuId suId
2811 * @param[in] CtfCfgTransId transId
2812 * @param[in] U8 status
2817 PUBLIC S16 cmPkCtfKdfCfm
2821 CtfCfgTransId transId,
2822 CtfKdfCfmInfo *kdfCfmInfo,
2826 PUBLIC S16 cmPkCtfKdfCfm(pst, suId, transId, status)
2829 CtfCfgTransId transId;
2833 Buffer *mBuf = NULLP;
2836 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2837 #if (ERRCLASS & ERRCLS_ADD_RES)
2838 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2839 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2840 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2841 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2843 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2847 if (SPkU8(status, mBuf) != ROK) {
2848 #if (ERRCLASS & ERRCLS_ADD_RES)
2849 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2850 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2851 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2852 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2854 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2859 if (cmPkCtfKdfCfmInfo(kdfCfmInfo, mBuf) != ROK) {
2860 #if (ERRCLASS & ERRCLS_ADD_RES)
2861 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2862 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2863 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2864 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2866 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2871 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2872 #if (ERRCLASS & ERRCLS_ADD_RES)
2873 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2874 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2875 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2876 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2878 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2883 if (SPkS16(suId, mBuf) != ROK) {
2884 #if (ERRCLASS & ERRCLS_ADD_RES)
2885 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2886 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2887 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2888 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2890 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2895 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo)) != ROK)
2897 #if (ERRCLASS & ERRCLS_ADD_RES)
2898 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2899 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2900 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2901 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
2907 pst->event = (Event) EVTCTFKDFCFM;
2908 RETVALUE(SPstTsk(pst,mBuf));
2913 * @brief Configuration Confirm from PHY to RRC.
2917 * Function: cmPkCtfCfgCfm
2919 * @param[in] Pst* pst
2920 * @param[in] SuId suId
2921 * @param[in] CtfCfgTransId transId
2922 * @param[in] U8 status
2927 PUBLIC S16 cmPkCtfCfgCfm
2931 CtfCfgTransId transId,
2935 PUBLIC S16 cmPkCtfCfgCfm(pst, suId, transId, status)
2938 CtfCfgTransId transId;
2942 Buffer *mBuf = NULLP;
2945 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2946 #if (ERRCLASS & ERRCLS_ADD_RES)
2947 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2948 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2949 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2950 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2954 if (SPkU8(status, mBuf) != ROK) {
2955 #if (ERRCLASS & ERRCLS_ADD_RES)
2956 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2957 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2958 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2959 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2964 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2965 #if (ERRCLASS & ERRCLS_ADD_RES)
2966 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2967 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2968 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2969 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2974 if (SPkS16(suId, mBuf) != ROK) {
2975 #if (ERRCLASS & ERRCLS_ADD_RES)
2976 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2977 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2978 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2979 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2984 pst->event = (Event) EVTCTFCFGCFM;
2985 RETVALUE(SPstTsk(pst,mBuf));
2989 * @brief ENB STOP Indication from PHY to ENB-APP.
2993 * Function: cmPkCtfEnbStopInd
2995 * @param[in] Pst* pst
2996 * @param[in] SuId suId
2997 * @param[in] CtfCfgTransId transId
3002 PUBLIC S16 cmPkCtfEnbStopInd
3006 CtfCfgTransId transId
3009 PUBLIC S16 cmPkCtfEnbStopInd(pst, suId, transId)
3012 CtfCfgTransId transId;
3015 Buffer *mBuf = NULLP;
3016 TRC3(cmPkCtfEnbStopInd)
3018 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3019 #if (ERRCLASS & ERRCLS_ADD_RES)
3020 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3021 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3022 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3023 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
3027 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3028 #if (ERRCLASS & ERRCLS_ADD_RES)
3029 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3030 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3031 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3032 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
3037 if (SPkS16(suId, mBuf) != ROK) {
3038 #if (ERRCLASS & ERRCLS_ADD_RES)
3039 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3040 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3041 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3042 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
3047 pst->event = (Event) EVTCTFENBSTOPIND;
3048 RETVALUE(SPstTsk(pst,mBuf));
3051 #ifdef TENB_AS_SECURITY
3052 /***********************************************************
3054 * Func: cmPkCtfKenbCfgInfo
3057 * Desc: Key derivation funtion Input Information
3058 * @details This funtion packs the the CtfKenbCfgInfo structure
3059 * which contains the eNodeB key and Algorithm Type for
3060 * deriving AS security keys.
3069 **********************************************************/
3071 PUBLIC S16 cmUnpkCtfNhKeyCfmInfo
3073 CtfNhKeyCfmInfo *param,
3077 PUBLIC S16 cmUnpkCtfNhKeyCfmInfo(param, mBuf)
3078 CtfNhKeyCfmInfo *param;
3085 TRC3(cmUnpkCtfNhKeyCfmInfo)
3087 for(idx=0;idx<32;idx++)
3089 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
3094 /***********************************************************
3096 * Func: cmPkCtfKenbCfgInfo
3099 * Desc: Key derivation funtion Input Information
3100 * @details This funtion packs the the CtfKenbCfgInfo structure
3101 * which contains the eNodeB key and Algorithm Type for
3102 * deriving AS security keys.
3111 **********************************************************/
3113 PUBLIC S16 cmUnpkCtfKenbStarCfmInfo
3115 CtfKenbStarCfmInfo *param,
3119 PUBLIC S16 cmUnpkCtfKenbStarCfmInfo(param, mBuf)
3120 CtfKenbStarCfmInfo *param;
3127 TRC3(cmUnpkCtfKenbStarCfmInfo)
3129 for(idx=0;idx<32;idx++)
3131 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
3137 /***********************************************************
3139 * Func: cmPkCtfKenbCfgInfo
3142 * Desc: Key derivation funtion Input Information
3143 * @details This funtion packs the the CtfKenbCfgInfo structure
3144 * which contains the eNodeB key and Algorithm Type for
3145 * deriving AS security keys.
3154 **********************************************************/
3156 PUBLIC S16 cmUnpkCtfAskeyCfmInfo
3158 CtfAskeyCfmInfo *param,
3162 PUBLIC S16 cmUnpkCtfAskeyCfmInfo(param, mBuf)
3163 CtfAskeyCfmInfo *param;
3170 TRC3(cmUnpkCtfCtfAskeyCfmInfo)
3172 for(idx=0;idx<16;idx++)
3174 CMCHKUNPK(SUnpkU8,¶m->intKey[idx],mBuf);
3176 for(idx=0;idx<16;idx++)
3178 CMCHKUNPK(SUnpkU8,¶m->upCiphKey[idx],mBuf);
3180 for(idx=0;idx<16;idx++)
3182 CMCHKUNPK(SUnpkU8,¶m->cpCiphKey[idx],mBuf);
3187 /***********************************************************
3189 * Func: cmPkCtfKenbCfgInfo
3192 * Desc: Key derivation funtion Input Information
3193 * @details This funtion packs the the CtfKenbCfgInfo structure
3194 * which contains the eNodeB key and Algorithm Type for
3195 * deriving AS security keys.
3204 * **********************************************************/
3206 PUBLIC S16 cmUnpkCtfKdfCfmInfo
3208 CtfKdfCfmInfo *param,
3212 PUBLIC S16 cmUnpkCtfKdfCfmInfo(param, mBuf)
3213 CtfKdfCfmInfo *param;
3218 TRC3(cmUnpkCtfKdfCfmInfo)
3220 CMCHKUNPK(SUnpkU8, ¶m->keyDerType, mBuf);
3221 switch (param->keyDerType)
3224 CMCHKUNPK(cmUnpkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
3227 CMCHKUNPK(cmUnpkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
3230 CMCHKUNPK(cmUnpkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
3239 * @brief Configuration Confirm from PHY to RRC.
3243 * Function: cmUnpkCtfCfgCfm
3245 * @param[in] Pst* pst
3246 * @param[in] SuId suId
3247 * @param[in] CtfCfgTransId transId
3248 * @param[in] U8 status
3253 PUBLIC S16 cmUnpkCtfKdfCfm
3260 PUBLIC S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3267 CtfCfgTransId transId;
3269 CtfKdfCfmInfo kdfCfmInfo;
3271 TRC3(cmUnpkCtfKdfCfm)
3273 if (SUnpkS16(&suId, mBuf) != ROK) {
3275 #if (ERRCLASS & ERRCLS_ADD_RES)
3276 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3277 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3278 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3279 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3283 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3285 #if (ERRCLASS & ERRCLS_ADD_RES)
3286 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3287 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3288 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3289 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3293 if (cmUnpkCtfKdfCfmInfo(&kdfCfmInfo, mBuf) != ROK) {
3295 #if (ERRCLASS & ERRCLS_ADD_RES)
3296 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3297 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3298 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3299 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3304 if (SUnpkU8(&status, mBuf) != ROK) {
3306 #if (ERRCLASS & ERRCLS_ADD_RES)
3307 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3308 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3309 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3310 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3315 RETVALUE((*func)(pst, suId, transId,&kdfCfmInfo, status));
3321 * @brief Configuration Confirm from PHY to RRC.
3325 * Function: cmUnpkCtfCfgCfm
3327 * @param[in] Pst* pst
3328 * @param[in] SuId suId
3329 * @param[in] CtfCfgTransId transId
3330 * @param[in] U8 status
3335 PUBLIC S16 cmUnpkCtfCfgCfm
3342 PUBLIC S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3349 CtfCfgTransId transId;
3352 TRC3(cmUnpkCtfCfgCfm)
3354 if (SUnpkS16(&suId, mBuf) != ROK) {
3356 #if (ERRCLASS & ERRCLS_ADD_RES)
3357 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3358 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3359 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3360 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3364 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3366 #if (ERRCLASS & ERRCLS_ADD_RES)
3367 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3368 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3369 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3370 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3374 if (SUnpkU8(&status, mBuf) != ROK) {
3376 #if (ERRCLASS & ERRCLS_ADD_RES)
3377 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3378 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3379 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3380 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3385 RETVALUE((*func)(pst, suId, transId, status));
3389 * @brief ENB STOP Indication from PHY to ENB-APP
3393 * Function: cmUnpkCtfEnbStopInd
3395 * @param[in] Pst* pst
3396 * @param[in] SuId suId
3397 * @param[in] CtfCfgTransId transId
3402 PUBLIC S16 cmUnpkCtfEnbStopInd
3409 PUBLIC S16 cmUnpkCtfEnbStopInd(func, pst, mBuf)
3416 CtfCfgTransId transId;
3418 TRC3(cmUnpkCtfCfgCfm)
3420 if (SUnpkS16(&suId, mBuf) != ROK) {
3422 #if (ERRCLASS & ERRCLS_ADD_RES)
3423 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3424 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3425 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3426 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3430 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3432 #if (ERRCLASS & ERRCLS_ADD_RES)
3433 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3434 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3435 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3436 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3441 RETVALUE((*func)(pst, suId, transId));
3446 * @brief UE ID Change Request from RRC to PHY.
3450 * Function: cmPkCtfUeIdChgReq
3452 * @param[in] Pst* pst
3453 * @param[in] SpId spId
3454 * @param[in] CtfCfgTransId transId
3455 * @param[in] CtfUeInfo * ueInfo
3456 * @param[in] CtfUeInfo * newUeInfo
3461 PUBLIC S16 cmPkCtfUeIdChgReq
3465 CtfCfgTransId transId,
3467 CtfUeInfo * newUeInfo
3470 PUBLIC S16 cmPkCtfUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
3473 CtfCfgTransId transId;
3475 CtfUeInfo * newUeInfo;
3478 Buffer *mBuf = NULLP;
3479 TRC3(cmPkCtfUeIdChgReq)
3481 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3482 #if (ERRCLASS & ERRCLS_ADD_RES)
3483 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3484 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3485 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3486 (ErrVal)ECTF033, (ErrVal)0, (Txt*)&"Packing failed");
3488 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3489 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3492 if (pst->selector == CTF_SEL_LC) {
3493 if (cmPkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3494 #if (ERRCLASS & ERRCLS_ADD_RES)
3495 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3496 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3497 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3498 (ErrVal)ECTF034, (ErrVal)0, (Txt*)&"Packing failed");
3500 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3501 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3506 else if (pst->selector == CTF_SEL_LWLC) {
3507 if (cmPkPtr((PTR)newUeInfo, mBuf) != ROK) {
3508 #if (ERRCLASS & ERRCLS_ADD_RES)
3509 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3510 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3511 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3512 (ErrVal)ECTF035, (ErrVal)0, (Txt*)&"Packing failed");
3514 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3515 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3520 if (pst->selector == CTF_SEL_LC) {
3521 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3522 #if (ERRCLASS & ERRCLS_ADD_RES)
3523 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3524 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3525 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3526 (ErrVal)ECTF036, (ErrVal)0, (Txt*)&"Packing failed");
3528 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3529 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3534 else if (pst->selector == CTF_SEL_LWLC) {
3535 if (cmPkPtr((PTR)ueInfo, mBuf) != ROK) {
3536 #if (ERRCLASS & ERRCLS_ADD_RES)
3537 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3538 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3539 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3540 (ErrVal)ECTF037, (ErrVal)0, (Txt*)&"Packing failed");
3542 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3543 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3548 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3549 #if (ERRCLASS & ERRCLS_ADD_RES)
3550 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3551 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3552 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3553 (ErrVal)ECTF038, (ErrVal)0, (Txt*)&"Packing failed");
3555 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3556 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3560 if (SPkS16(spId, mBuf) != ROK) {
3561 #if (ERRCLASS & ERRCLS_ADD_RES)
3562 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3563 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3564 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3565 (ErrVal)ECTF039, (ErrVal)0, (Txt*)&"Packing failed");
3567 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3568 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3572 if (pst->selector != CTF_SEL_LWLC) {
3573 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3574 #if (ERRCLASS & ERRCLS_ADD_RES)
3575 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3576 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3577 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3578 (ErrVal)ECTF040, (ErrVal)0, (Txt*)&"Packing failed");
3583 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo)) != ROK) {
3584 #if (ERRCLASS & ERRCLS_ADD_RES)
3585 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3586 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3587 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3588 (ErrVal)ECTF041, (ErrVal)0, (Txt*)&"Packing failed");
3594 pst->event = (Event) EVTCTFUEIDCHGREQ;
3595 RETVALUE(SPstTsk(pst,mBuf));
3600 * @brief UE ID Change Request from RRC to PHY.
3604 * Function: cmUnpkCtfUeIdChgReq
3606 * @param[in] Pst* pst
3607 * @param[in] SpId spId
3608 * @param[in] CtfCfgTransId transId
3609 * @param[in] CtfUeInfo * ueInfo
3610 * @param[in] CtfUeInfo * newUeInfo
3615 PUBLIC S16 cmUnpkCtfUeIdChgReq
3622 PUBLIC S16 cmUnpkCtfUeIdChgReq(func, pst, mBuf)
3629 CtfCfgTransId transId;
3630 CtfUeInfo *ueInfo = NULLP;
3631 CtfUeInfo *newUeInfo = NULLP;
3633 TRC3(cmUnpkCtfUeIdChgReq)
3635 if (SUnpkS16(&spId, mBuf) != ROK) {
3637 #if (ERRCLASS & ERRCLS_ADD_RES)
3638 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3639 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3640 (Txt*)& __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3641 (ErrVal)ECTF042, (ErrVal)0, (Txt*)&"Packing failed");
3645 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3647 #if (ERRCLASS & ERRCLS_ADD_RES)
3648 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3649 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3650 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3651 (ErrVal)ECTF043, (ErrVal)0, (Txt*)&"Packing failed");
3655 if (pst->selector != CTF_SEL_LWLC) {
3656 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3657 #if (ERRCLASS & ERRCLS_ADD_RES)
3658 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3659 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3660 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3661 (ErrVal)ECTF044, (ErrVal)0, (Txt*)&"Packing failed");
3667 if (pst->selector == CTF_SEL_LWLC) {
3668 if (cmUnpkPtr((PTR *)&ueInfo, mBuf) != ROK) {
3673 else if (pst->selector == CTF_SEL_LC)
3674 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3675 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3677 #if (ERRCLASS & ERRCLS_ADD_RES)
3678 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3679 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3680 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3681 (ErrVal)ECTF045, (ErrVal)0, (Txt*)&"Packing failed");
3685 if (pst->selector != CTF_SEL_LWLC) {
3686 if ((SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo, sizeof(CtfUeInfo))) != ROK) {
3687 #if (ERRCLASS & ERRCLS_ADD_RES)
3688 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3689 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3690 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3691 (ErrVal)ECTF046, (ErrVal)0, (Txt*)&"Packing failed");
3694 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3698 if (pst->selector == CTF_SEL_LWLC) {
3699 if (cmUnpkPtr((PTR *)&newUeInfo, mBuf) != ROK) {
3704 else if (pst->selector == CTF_SEL_LC)
3705 if (cmUnpkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3706 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3707 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3709 #if (ERRCLASS & ERRCLS_ADD_RES)
3710 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3711 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3712 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3713 (ErrVal)ECTF047, (ErrVal)0, (Txt*)&"Packing failed");
3718 RETVALUE((*func)(pst, spId, transId, ueInfo, newUeInfo));
3723 * @brief UE ID Change Confirm from PHY to RRC.
3727 * Function: cmPkCtfUeIdChgCfm
3729 * @param[in] Pst* pst
3730 * @param[in] SuId suId
3731 * @param[in] CtfCfgTransId transId
3732 * @param[in] CtfUeInfo * ueInfo
3733 * @param[in] U8 status
3738 PUBLIC S16 cmPkCtfUeIdChgCfm
3742 CtfCfgTransId transId,
3747 PUBLIC S16 cmPkCtfUeIdChgCfm(pst, suId, transId, ueInfo, status)
3750 CtfCfgTransId transId;
3755 Buffer *mBuf = NULLP;
3756 TRC3(cmPkCtfUeIdChgCfm)
3758 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3759 #if (ERRCLASS & ERRCLS_ADD_RES)
3760 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3761 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3762 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3763 (ErrVal)ECTF048, (ErrVal)0, (Txt*)&"Packing failed");
3765 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3768 if (cmPkCmStatus(&status, mBuf) != ROK) {
3769 #if (ERRCLASS & ERRCLS_ADD_RES)
3770 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3771 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3772 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3773 (ErrVal)ECTF049, (ErrVal)0, (Txt*)&"Packing failed");
3775 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3779 if (pst->selector == CTF_SEL_LC) {
3780 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3781 #if (ERRCLASS & ERRCLS_ADD_RES)
3782 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3783 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3784 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3785 (ErrVal)ECTF050, (ErrVal)0, (Txt*)&"Packing failed");
3787 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3792 else if (pst->selector == CTF_SEL_LWLC) {
3793 if (cmPkPtr((PTR)ueInfo, mBuf) != ROK) {
3794 #if (ERRCLASS & ERRCLS_ADD_RES)
3795 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3796 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3797 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3798 (ErrVal)ECTF051, (ErrVal)0, (Txt*)&"Packing failed");
3800 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3805 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3806 #if (ERRCLASS & ERRCLS_ADD_RES)
3807 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3808 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3809 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3810 (ErrVal)ECTF052, (ErrVal)0, (Txt*)&"Packing failed");
3812 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3816 if (SPkS16(suId, mBuf) != ROK) {
3817 #if (ERRCLASS & ERRCLS_ADD_RES)
3818 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3819 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3820 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3821 (ErrVal)ECTF053, (ErrVal)0, (Txt*)&"Packing failed");
3823 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3827 if (pst->selector != CTF_SEL_LWLC) {
3828 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3829 #if (ERRCLASS & ERRCLS_ADD_RES)
3830 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3831 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3832 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3833 (ErrVal)ECTF054, (ErrVal)0, (Txt*)&"Packing failed");
3839 pst->event = (Event) EVTCTFUEIDCHGCFM;
3840 RETVALUE(SPstTsk(pst,mBuf));
3845 * @brief UE ID Change Confirm from PHY to RRC.
3849 * Function: cmUnpkCtfUeIdChgCfm
3851 * @param[in] Pst* pst
3852 * @param[in] SuId suId
3853 * @param[in] CtfCfgTransId transId
3854 * @param[in] CtfUeInfo * ueInfo
3855 * @param[in] U8 status
3860 PUBLIC S16 cmUnpkCtfUeIdChgCfm
3867 PUBLIC S16 cmUnpkCtfUeIdChgCfm(func, pst, mBuf)
3874 CtfCfgTransId transId;
3875 CtfUeInfo *ueInfo = NULLP;
3878 TRC3(cmUnpkCtfUeIdChgCfm)
3880 if (SUnpkS16(&suId, mBuf) != ROK) {
3882 #if (ERRCLASS & ERRCLS_ADD_RES)
3883 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3884 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3885 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3886 (ErrVal)ECTF055, (ErrVal)0, (Txt*)&"Packing failed");
3890 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3892 #if (ERRCLASS & ERRCLS_ADD_RES)
3893 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3894 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3895 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3896 (ErrVal)ECTF056, (ErrVal)0, (Txt*)&"Packing failed");
3900 if (pst->selector != CTF_SEL_LWLC) {
3901 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3902 #if (ERRCLASS & ERRCLS_ADD_RES)
3903 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3904 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3905 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3906 (ErrVal)ECTF057, (ErrVal)0, (Txt*)&"Packing failed");
3912 if (pst->selector == CTF_SEL_LWLC) {
3913 if (cmUnpkPtr((PTR *)&ueInfo, mBuf) != ROK) {
3918 else if (pst->selector == CTF_SEL_LC)
3919 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3920 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3922 #if (ERRCLASS & ERRCLS_ADD_RES)
3923 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3924 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3925 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3926 (ErrVal)ECTF058, (ErrVal)0, (Txt*)&"Packing failed");
3930 if (cmUnpkCmStatus(&status, mBuf) != ROK) {
3931 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3933 #if (ERRCLASS & ERRCLS_ADD_RES)
3934 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3935 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3936 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3937 (ErrVal)ECTF059, (ErrVal)0, (Txt*)&"Packing failed");
3942 RETVALUE((*func)(pst, suId, transId, ueInfo, status));
3946 /***********************************************************
3948 * Func: cmPkCtfCfgTransId
3951 * Desc: Transaction ID between CTF and RRC.
3960 **********************************************************/
3962 PUBLIC S16 cmPkCtfCfgTransId
3964 CtfCfgTransId *param,
3968 PUBLIC S16 cmPkCtfCfgTransId(param, mBuf)
3969 CtfCfgTransId *param;
3975 TRC3(cmPkCtfCfgTransId)
3977 for (i=CTF_CFG_TRANSID_SIZE-1; i >= 0; i--) {
3978 CMCHKPK(SPkU8, param->trans[i], mBuf);
3985 /***********************************************************
3987 * Func: cmUnpkCtfCfgTransId
3990 * Desc: Transaction ID between CTF and RRC.
3999 **********************************************************/
4001 PUBLIC S16 cmUnpkCtfCfgTransId
4003 CtfCfgTransId *param,
4007 PUBLIC S16 cmUnpkCtfCfgTransId(param, mBuf)
4008 CtfCfgTransId *param;
4014 TRC3(cmUnpkCtfCfgTransId)
4016 for (i=0; i<CTF_CFG_TRANSID_SIZE; i++) {
4017 CMCHKUNPK(SUnpkU8, ¶m->trans[i], mBuf);
4024 /***********************************************************
4026 * Func: cmPkCtfUeInfo
4029 * Desc: * UE ID information
4038 **********************************************************/
4040 PUBLIC S16 cmPkCtfUeInfo
4046 PUBLIC S16 cmPkCtfUeInfo(param, mBuf)
4054 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
4055 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4061 /***********************************************************
4063 * Func: cmUnpkCtfUeInfo
4066 * Desc: * UE ID information
4075 **********************************************************/
4077 PUBLIC S16 cmUnpkCtfUeInfo
4083 PUBLIC S16 cmUnpkCtfUeInfo(param, mBuf)
4089 TRC3(cmUnpkCtfUeInfo)
4091 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4092 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
4098 /***********************************************************
4100 * Func: cmPkCtfBwCfgInfo
4103 * Desc: Bandwidth Configuration
4104 * @details This structure contains the uplink and downlink bandwidth
4105 * information for configuration at PHY.
4114 **********************************************************/
4116 PUBLIC S16 cmPkCtfBwCfgInfo
4118 CtfBwCfgInfo *param,
4122 PUBLIC S16 cmPkCtfBwCfgInfo(param, mBuf)
4123 CtfBwCfgInfo *param;
4128 TRC3(cmPkCtfBwCfgInfo)
4130 CMCHKPK(SPkU8, param->eUtraBand, mBuf);
4131 CMCHKPK(SPkU32, param->ulBw, mBuf);
4132 CMCHKPK(SPkU32, param->dlBw, mBuf);
4133 /* ctf_c_001.main_4: Removed packing of param->pres */
4139 /***********************************************************
4141 * Func: cmUnpkCtfBwCfgInfo
4144 * Desc: Bandwidth Configuration
4145 * @details This structure contains the uplink and downlink bandwidth
4146 * information for configuration at PHY.
4155 **********************************************************/
4157 PUBLIC S16 cmUnpkCtfBwCfgInfo
4159 CtfBwCfgInfo *param,
4163 PUBLIC S16 cmUnpkCtfBwCfgInfo(param, mBuf)
4164 CtfBwCfgInfo *param;
4170 TRC3(cmUnpkCtfBwCfgInfo)
4172 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4173 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4174 param->dlBw = (CtfBandwidth)tmpEnum;
4175 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4176 param->ulBw = (CtfBandwidth)tmpEnum;
4177 CMCHKUNPK(SUnpkU8, ¶m->eUtraBand, mBuf);
4183 /***********************************************************
4185 * Func: cmPkCtfTxSchemeCfg
4188 * Desc: Transmission Scheme Configuration
4189 * @details This structure contains the transmission scheme related information.
4198 **********************************************************/
4200 PUBLIC S16 cmPkCtfTxSchemeCfg
4202 CtfTxSchemeCfg *param,
4206 PUBLIC S16 cmPkCtfTxSchemeCfg(param, mBuf)
4207 CtfTxSchemeCfg *param;
4212 TRC3(cmPkCtfTxSchemeCfg)
4214 CMCHKPK(SPkU32, param->cycPfx, mBuf);
4215 CMCHKPK(SPkU32, param->scSpacing, mBuf);
4216 CMCHKPK(SPkU32, param->duplexMode, mBuf);
4217 /* ctf_c_001.main_4: Removed packing of param->pres */
4223 /***********************************************************
4225 * Func: cmUnpkCtfTxSchemeCfg
4228 * Desc: Transmission Scheme Configuration
4229 * @details This structure contains the transmission scheme related information.
4238 **********************************************************/
4240 PUBLIC S16 cmUnpkCtfTxSchemeCfg
4242 CtfTxSchemeCfg *param,
4246 PUBLIC S16 cmUnpkCtfTxSchemeCfg(param, mBuf)
4247 CtfTxSchemeCfg *param;
4253 TRC3(cmUnpkCtfTxSchemeCfg)
4255 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4256 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4257 param->duplexMode = (CtfDuplexMode)tmpEnum;
4258 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4259 param->scSpacing = (CtfSCSpacing)tmpEnum;
4260 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4261 param->cycPfx = (CtfCPCfg)tmpEnum;
4267 /***********************************************************
4269 * Func: cmPkCtfAntennaCfgInfo
4272 * Desc: Antenna Ports configuration
4273 * @details This structure contains the antenna configuration information for
4274 * configuration at PHY.
4283 **********************************************************/
4285 PUBLIC S16 cmPkCtfAntennaCfgInfo
4287 CtfAntennaCfgInfo *param,
4291 PUBLIC S16 cmPkCtfAntennaCfgInfo(param, mBuf)
4292 CtfAntennaCfgInfo *param;
4297 TRC3(cmPkCtfAntennaCfgInfo)
4299 CMCHKPK(SPkU32, param->antPortsCnt, mBuf);
4305 /***********************************************************
4307 * Func: cmUnpkCtfAntennaCfgInfo
4310 * Desc: Antenna Ports configuration
4311 * @details This structure contains the antenna configuration information for
4312 * configuration at PHY.
4321 **********************************************************/
4323 PUBLIC S16 cmUnpkCtfAntennaCfgInfo
4325 CtfAntennaCfgInfo *param,
4329 PUBLIC S16 cmUnpkCtfAntennaCfgInfo(param, mBuf)
4330 CtfAntennaCfgInfo *param;
4336 TRC3(cmUnpkCtfAntennaCfgInfo)
4337 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4338 param->antPortsCnt = (CtfAntennaPortsCount)tmpEnum;
4344 /***********************************************************
4346 * Func: cmPkCtfPrachCfgInfo
4349 * Desc: PRACH configuration
4350 * @details This structure contains the configuration information for PRACH at PHY.
4351 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4352 * sequences.[Ref: 36.211, 5.7.2]
4353 * -# PRACH preamble format is derived from PRACH Configuration Index.
4354 * [Ref: 36.211, Table 5.7.1-2]
4355 * -# PrachFreqOffset is the first physical resource block allocated to
4356 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4357 * [Ref: 36.211, 5.7.1]
4366 **********************************************************/
4368 PUBLIC S16 cmPkCtfPrachCfgInfo
4370 CtfPrachCfgInfo *param,
4374 PUBLIC S16 cmPkCtfPrachCfgInfo(param, mBuf)
4375 CtfPrachCfgInfo *param;
4380 TRC3(cmPkCtfPrachCfgInfo)
4382 /*ctf_c_001.main_1*/
4383 if(param->pres != FALSE)
4385 CMCHKPK(SPkU8, param->prachFreqOffset, mBuf);
4386 CMCHKPK(SPkU8, param->highSpeedFlag, mBuf);
4387 CMCHKPK(SPkU8, param->zeroCorrelationZoneCfg, mBuf);
4388 CMCHKPK(SPkU8, param->prachCfgIndex, mBuf);
4389 CMCHKPK(SPkU16, param->rootSequenceIndex, mBuf);
4391 CMCHKPK(SPkU8, param->pres, mBuf);
4397 /***********************************************************
4399 * Func: cmUnpkCtfPrachCfgInfo
4402 * Desc: PRACH configuration
4403 * @details This structure contains the configuration information for PRACH at PHY.
4404 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4405 * sequences.[Ref: 36.211, 5.7.2]
4406 * -# PRACH preamble format is derived from PRACH Configuration Index.
4407 * [Ref: 36.211, Table 5.7.1-2]
4408 * -# PrachFreqOffset is the first physical resource block allocated to
4409 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4410 * [Ref: 36.211, 5.7.1]
4419 **********************************************************/
4421 PUBLIC S16 cmUnpkCtfPrachCfgInfo
4423 CtfPrachCfgInfo *param,
4427 PUBLIC S16 cmUnpkCtfPrachCfgInfo(param, mBuf)
4428 CtfPrachCfgInfo *param;
4433 TRC3(cmUnpkCtfPrachCfgInfo)
4435 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4436 /*ctf_c_001.main_1*/
4437 if(param->pres != FALSE)
4439 CMCHKUNPK(SUnpkU16, ¶m->rootSequenceIndex, mBuf);
4440 CMCHKUNPK(SUnpkU8, ¶m->prachCfgIndex, mBuf);
4441 CMCHKUNPK(SUnpkU8, ¶m->zeroCorrelationZoneCfg, mBuf);
4442 CMCHKUNPK(SUnpkU8, ¶m->highSpeedFlag, mBuf);
4443 CMCHKUNPK(SUnpkU8, ¶m->prachFreqOffset, mBuf);
4450 /***********************************************************
4452 * Func: cmPkCtfPdschCfgInfo
4455 * Desc: PDSCH configuration
4456 * @details This structure contains the PDSCH configuration information for
4457 * configuration at PHY.
4466 **********************************************************/
4468 PUBLIC S16 cmPkCtfPdschCfgInfo
4470 CtfPdschCfgInfo *param,
4474 PUBLIC S16 cmPkCtfPdschCfgInfo(param, mBuf)
4475 CtfPdschCfgInfo *param;
4480 TRC3(cmPkCtfPdschCfgInfo)
4481 /*ctf_c_001.main_1*/
4482 if(param->pres != FALSE)
4484 CMCHKPK(SPkU8, param->p_b, mBuf);
4485 CMCHKPK(SPkS16, param->refSigPwr, mBuf);
4487 CMCHKPK(SPkU8, param->pres, mBuf);
4493 /***********************************************************
4495 * Func: cmUnpkCtfPdschCfgInfo
4498 * Desc: PDSCH configuration
4499 * @details This structure contains the PDSCH configuration information for
4500 * configuration at PHY.
4509 **********************************************************/
4511 PUBLIC S16 cmUnpkCtfPdschCfgInfo
4513 CtfPdschCfgInfo *param,
4517 PUBLIC S16 cmUnpkCtfPdschCfgInfo(param, mBuf)
4518 CtfPdschCfgInfo *param;
4523 TRC3(cmUnpkCtfPdschCfgInfo)
4525 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4526 /*ctf_c_001.main_1*/
4527 if(param->pres != FALSE)
4529 CMCHKUNPK(SUnpkS16, ¶m->refSigPwr, mBuf);
4530 CMCHKUNPK(SUnpkU8, ¶m->p_b, mBuf);
4537 /***********************************************************
4539 * Func: cmPkCtfPuschCfgBasic
4542 * Desc: Basic PUSCH configuration
4543 * @details This structure contains the basic PUSCH configuration information for
4544 * configuration at PHY.
4553 **********************************************************/
4555 PUBLIC S16 cmPkCtfPuschCfgBasic
4557 CtfPuschCfgBasic *param,
4561 PUBLIC S16 cmPkCtfPuschCfgBasic(param, mBuf)
4562 CtfPuschCfgBasic *param;
4567 TRC3(cmPkCtfPuschCfgBasic)
4569 CMCHKPK(SPkU8, param->enable64QAM, mBuf);
4570 CMCHKPK(SPkU8, param->hoppingOffset, mBuf);
4571 CMCHKPK(SPkU32, param->hoppingMode, mBuf);
4572 CMCHKPK(SPkU8, param->noOfsubBands, mBuf);
4578 /***********************************************************
4580 * Func: cmUnpkCtfPuschCfgBasic
4583 * Desc: Basic PUSCH configuration
4584 * @details This structure contains the basic PUSCH configuration information for
4585 * configuration at PHY.
4594 **********************************************************/
4596 PUBLIC S16 cmUnpkCtfPuschCfgBasic
4598 CtfPuschCfgBasic *param,
4602 PUBLIC S16 cmUnpkCtfPuschCfgBasic(param, mBuf)
4603 CtfPuschCfgBasic *param;
4609 TRC3(cmUnpkCtfPuschCfgBasic)
4611 CMCHKUNPK(SUnpkU8, ¶m->noOfsubBands, mBuf);
4612 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4613 param->hoppingMode = (CtfPuschHoppingMode)tmpEnum;
4614 CMCHKUNPK(SUnpkU8, ¶m->hoppingOffset, mBuf);
4615 CMCHKUNPK(SUnpkU8, ¶m->enable64QAM, mBuf);
4621 /***********************************************************
4623 * Func: cmPkCtfPuschUlRS
4626 * Desc: PUSCH Uplink Reference Signals configuration
4627 * @details This structure contains the PUSCH configuration information for
4628 * uplink reference signals configuration at PHY.
4637 **********************************************************/
4639 PUBLIC S16 cmPkCtfPuschUlRS
4641 CtfPuschUlRS *param,
4645 PUBLIC S16 cmPkCtfPuschUlRS(param, mBuf)
4646 CtfPuschUlRS *param;
4651 TRC3(cmPkCtfPuschUlRS)
4653 CMCHKPK(SPkU8, param->cycShift, mBuf);
4654 CMCHKPK(SPkU8, param->grpNum, mBuf);
4655 CMCHKPK(SPkU8, param->seqHopEnabled, mBuf);
4656 CMCHKPK(SPkU8, param->grpHopEnabled, mBuf);
4662 /***********************************************************
4664 * Func: cmUnpkCtfPuschUlRS
4667 * Desc: PUSCH Uplink Reference Signals configuration
4668 * @details This structure contains the PUSCH configuration information for
4669 * uplink reference signals configuration at PHY.
4678 **********************************************************/
4680 PUBLIC S16 cmUnpkCtfPuschUlRS
4682 CtfPuschUlRS *param,
4686 PUBLIC S16 cmUnpkCtfPuschUlRS(param, mBuf)
4687 CtfPuschUlRS *param;
4692 TRC3(cmUnpkCtfPuschUlRS)
4694 CMCHKUNPK(SUnpkU8, ¶m->grpHopEnabled, mBuf);
4695 CMCHKUNPK(SUnpkU8, ¶m->seqHopEnabled, mBuf);
4696 CMCHKUNPK(SUnpkU8, ¶m->grpNum, mBuf);
4697 CMCHKUNPK(SUnpkU8, ¶m->cycShift, mBuf);
4703 /***********************************************************
4705 * Func: cmPkCtfPuschCfgInfo
4708 * Desc: PUSCH configuration
4709 * @details This structure contains the information for PUSCH
4710 * configuration at PHY.
4719 **********************************************************/
4721 PUBLIC S16 cmPkCtfPuschCfgInfo
4723 CtfPuschCfgInfo *param,
4727 PUBLIC S16 cmPkCtfPuschCfgInfo(param, mBuf)
4728 CtfPuschCfgInfo *param;
4733 TRC3(cmPkCtfPuschCfgInfo)
4735 /*ctf_c_001.main_1*/
4736 if(param->pres != FALSE)
4738 CMCHKPK(cmPkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4739 CMCHKPK(cmPkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4741 CMCHKPK(SPkU8, param->pres, mBuf);
4747 /***********************************************************
4749 * Func: cmUnpkCtfPuschCfgInfo
4752 * Desc: PUSCH configuration
4753 * @details This structure contains the information for PUSCH
4754 * configuration at PHY.
4763 **********************************************************/
4765 PUBLIC S16 cmUnpkCtfPuschCfgInfo
4767 CtfPuschCfgInfo *param,
4771 PUBLIC S16 cmUnpkCtfPuschCfgInfo(param, mBuf)
4772 CtfPuschCfgInfo *param;
4777 TRC3(cmUnpkCtfPuschCfgInfo)
4779 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4780 /*ctf_c_001.main_1*/
4781 if(param->pres != FALSE)
4783 CMCHKUNPK(cmUnpkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4784 CMCHKUNPK(cmUnpkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4791 /***********************************************************
4793 * Func: cmPkCtfPhichCfgInfo
4796 * Desc: PHICH configuration
4797 * @details This structure contains the duration and resource information for
4798 * PHICH configuration at PHY.
4807 **********************************************************/
4809 PUBLIC S16 cmPkCtfPhichCfgInfo
4811 CtfPhichCfgInfo *param,
4815 PUBLIC S16 cmPkCtfPhichCfgInfo(param, mBuf)
4816 CtfPhichCfgInfo *param;
4821 TRC3(cmPkCtfPhichCfgInfo)
4823 /*ctf_c_001.main_1*/
4824 if(param->pres != FALSE)
4826 CMCHKPK(SPkU32, param->resource, mBuf);
4827 CMCHKPK(SPkU32, param->duration, mBuf);
4829 CMCHKPK(SPkU8, param->pres, mBuf);
4835 /***********************************************************
4837 * Func: cmUnpkCtfPhichCfgInfo
4840 * Desc: PHICH configuration
4841 * @details This structure contains the duration and resource information for
4842 * PHICH configuration at PHY.
4851 **********************************************************/
4853 PUBLIC S16 cmUnpkCtfPhichCfgInfo
4855 CtfPhichCfgInfo *param,
4859 PUBLIC S16 cmUnpkCtfPhichCfgInfo(param, mBuf)
4860 CtfPhichCfgInfo *param;
4866 TRC3(cmUnpkCtfPhichCfgInfo)
4868 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4869 /*ctf_c_001.main_1*/
4870 if(param->pres != FALSE)
4872 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4873 param->duration = (CtfPhichDuration)tmpEnum;
4874 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4875 param->resource = (CtfPhichResource)tmpEnum;
4882 /***********************************************************
4884 * Func: cmPkCtfPucchCfgInfo
4887 * Desc: PUCCH configuration
4888 * @details This structure contains the information for PUCCH
4889 * configuration at PHY.
4898 **********************************************************/
4900 PUBLIC S16 cmPkCtfPucchCfgInfo
4902 CtfPucchCfgInfo *param,
4906 PUBLIC S16 cmPkCtfPucchCfgInfo(param, mBuf)
4907 CtfPucchCfgInfo *param;
4912 TRC3(cmPkCtfPucchCfgInfo)
4914 /*ctf_c_001.main_1*/
4915 if(param->pres != FALSE)
4917 CMCHKPK(SPkU32, param->deltaShift, mBuf);
4918 CMCHKPK(SPkU16, param->n1PUCCH, mBuf);
4919 CMCHKPK(SPkU8, param->nCS, mBuf);
4920 CMCHKPK(SPkU8, param->nRB, mBuf);
4922 CMCHKPK(SPkU8, param->pres, mBuf);
4928 /***********************************************************
4930 * Func: cmUnpkCtfPucchCfgInfo
4933 * Desc: PUCCH configuration
4934 * @details This structure contains the information for PUCCH
4935 * configuration at PHY.
4944 **********************************************************/
4946 PUBLIC S16 cmUnpkCtfPucchCfgInfo
4948 CtfPucchCfgInfo *param,
4952 PUBLIC S16 cmUnpkCtfPucchCfgInfo(param, mBuf)
4953 CtfPucchCfgInfo *param;
4959 TRC3(cmUnpkCtfPucchCfgInfo)
4961 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4962 /*ctf_c_001.main_1*/
4963 if(param->pres != FALSE)
4965 CMCHKUNPK(SUnpkU8, ¶m->nRB, mBuf);
4966 CMCHKUNPK(SUnpkU8, ¶m->nCS, mBuf);
4967 CMCHKUNPK(SUnpkU16, ¶m->n1PUCCH, mBuf);
4968 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4969 param->deltaShift = (CtfPucchDeltaShift)tmpEnum;
4976 /***********************************************************
4978 * Func: cmPkCtfSrsUlCfgInfo
4981 * Desc: SRS uplink configuration
4982 * @details This structure contains the information for setting-up/release
4983 * of uplink SRS configuration at PHY.
4992 **********************************************************/
4994 PUBLIC S16 cmPkCtfSrsUlCfgInfo
4996 CtfSrsUlCfgInfo *param,
5000 PUBLIC S16 cmPkCtfSrsUlCfgInfo(param, mBuf)
5001 CtfSrsUlCfgInfo *param;
5006 TRC3(cmPkCtfSrsUlCfgInfo)
5008 /*ctf_c_001.main_1*/
5009 if(param->pres != FALSE)
5011 CMCHKPK(SPkU8, param->srsSetup.srsMaxUpPts, mBuf);
5012 CMCHKPK(SPkU8, param->srsSetup.srsANSimultTx, mBuf);
5013 CMCHKPK(SPkU8, param->srsSetup.sfCfg, mBuf);
5014 CMCHKPK(SPkU8, param->srsSetup.srsBw, mBuf);
5015 CMCHKPK(SPkU8, param->srsCfgType, mBuf);
5017 CMCHKPK(SPkU8, param->pres, mBuf);
5023 /***********************************************************
5025 * Func: cmUnpkCtfSrsUlCfgInfo
5028 * Desc: SRS uplink configuration
5029 * @details This structure contains the information for setting-up/release
5030 * of uplink SRS configuration at PHY.
5039 **********************************************************/
5041 PUBLIC S16 cmUnpkCtfSrsUlCfgInfo
5043 CtfSrsUlCfgInfo *param,
5047 PUBLIC S16 cmUnpkCtfSrsUlCfgInfo(param, mBuf)
5048 CtfSrsUlCfgInfo *param;
5053 TRC3(cmUnpkCtfSrsUlCfgInfo)
5055 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5056 /*ctf_c_001.main_1*/
5057 if(param->pres != FALSE)
5059 CMCHKUNPK(SUnpkU8, ¶m->srsCfgType, mBuf);
5060 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsBw, mBuf);
5061 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.sfCfg, mBuf);
5062 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsANSimultTx, mBuf);
5063 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsMaxUpPts, mBuf);
5070 /***********************************************************
5072 * Func: cmPkCtfTddSfCfgInfo
5075 * Desc: Subframe Configuration for TDD mode.
5076 * @details This structure contains the information for setting-up
5077 * the subframe for TDD mode at PHY.
5086 **********************************************************/
5088 PUBLIC S16 cmPkCtfTddSfCfgInfo
5090 CtfTddSfCfgInfo *param,
5094 PUBLIC S16 cmPkCtfTddSfCfgInfo(param, mBuf)
5095 CtfTddSfCfgInfo *param;
5100 TRC3(cmPkCtfTddSfCfgInfo)
5102 /*ctf_c_001.main_1*/
5103 if(param->pres != FALSE)
5105 CMCHKPK(SPkU8, param->spclSfPatterns, mBuf);
5106 CMCHKPK(SPkU8, param->sfAssignment, mBuf);
5108 CMCHKPK(SPkU8, param->pres, mBuf);
5112 /* ctf_c_001.main_4: Added support for vendor specific parameters */
5114 /***********************************************************
5116 * Func: cmPkCtfVendorSpecParams
5119 * Desc: Vendor Specific Parameter configuration
5120 * @details This structure contains the Parameters which is spaciftc to
5130 **********************************************************/
5132 PUBLIC S16 cmPkCtfVendorSpecParams
5134 CtfVendorSpecific *param,
5138 PUBLIC S16 cmPkCtfVendorSpecParams(param, mBuf)
5139 CtfVendorSpecific *param;
5144 TRC3(cmPkCtfVendorSpecParams)
5145 if( param->buffLen != 0) {
5146 SAddPreMsgMultInOrder(param->paramBuffer,param->buffLen,mBuf);
5148 CMCHKPK(SPkU16,param->buffLen,mBuf);
5153 /***********************************************************
5155 * Func: cmUnpkCtfVendorSpecParams
5158 * Desc: Vendor Specific Parameter configuration
5159 * @details This structure contains the Parameters which is spaciftc to
5169 **********************************************************/
5171 PUBLIC S16 cmUnpkCtfVendorSpecParams
5174 CtfVendorSpecific *param,
5178 PUBLIC S16 cmUnpkCtfVendorSpecParams(pst, param, mBuf)
5180 CtfVendorSpecific *param;
5185 TRC3(cmUnpkCtfVendorSpecParams)
5187 CMCHKUNPK(SUnpkU16, ¶m->buffLen, mBuf);
5189 if(param->buffLen != 0) {
5190 if ((SGetSBuf(pst->region, pst->pool, (Data **)¶m->paramBuffer, param->buffLen)) != ROK) {
5191 #if (ERRCLASS & ERRCLS_ADD_RES)
5192 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
5193 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
5194 (ErrVal)ECTF060, (ErrVal)0, (Txt*)&"Unpacking failed");
5198 SRemPreMsgMult(param->paramBuffer, param->buffLen,mBuf) ;
5201 param->paramBuffer = NULLP ;
5208 /***********************************************************
5210 * Func: cmUnpkCtfTddSfCfgInfo
5213 * Desc: Subframe Configuration for TDD mode.
5214 * @details This structure contains the information for setting-up
5215 * the subframe for TDD mode at PHY.
5224 **********************************************************/
5226 PUBLIC S16 cmUnpkCtfTddSfCfgInfo
5228 CtfTddSfCfgInfo *param,
5232 PUBLIC S16 cmUnpkCtfTddSfCfgInfo(param, mBuf)
5233 CtfTddSfCfgInfo *param;
5238 TRC3(cmUnpkCtfTddSfCfgInfo)
5240 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5241 /*ctf_c_001.main_1*/
5242 if(param->pres != FALSE)
5244 CMCHKUNPK(SUnpkU8, ¶m->sfAssignment, mBuf);
5245 CMCHKUNPK(SUnpkU8, ¶m->spclSfPatterns, mBuf);
5249 /***********************************************************
5251 * Func: cmPkCtfUnLicnsdCellParam
5254 * Desc: Packing unlicensed SDL cell specific parameter
5263 **********************************************************/
5265 PRIVATE S16 cmPkCtfUnLicnsdCellParam
5267 CtfUnLicnsdCfgInfo *param,
5271 PRIVATE S16 cmPkCtfUnLicnsdCellParam(param, mBuf)
5272 CtfUnLicnsdCfgInfo *param;
5278 TRC3(cmPkCtfUnLicnsdCellParam)
5280 CMCHKPK(SPkS32, param->txPowerLimit, mBuf);
5281 CMCHKPK(SPkU8, param->coExistMethod, mBuf);
5282 CMCHKPK(SPkU8, param->lteOnPeriod, mBuf);
5283 CMCHKPK(SPkU8, param->ccaMethod, mBuf);
5284 CMCHKPK(SPkU8, param->adaptiveTx, mBuf);
5285 CMCHKPK(SPkU16, param->transPeriod, mBuf);
5286 CMCHKPK(SPkU16, param->listenPrd, mBuf);
5287 CMCHKPK(SPkS16, param->energyTh, mBuf);
5288 CMCHKPK(SPkU16, param->scanTimePrd, mBuf);
5289 CMCHKPK(SPkU16, param->activityTh, mBuf);
5291 for(idx = 0; idx < param->numFreq; idx++)
5293 CMCHKPK(SPkU32, param->earfcn[idx], mBuf);
5296 CMCHKPK(SPkU8, param->numFreq, mBuf);
5301 /***********************************************************
5303 * Func: cmPkCtfCellCfgInfo
5306 * Desc: Cell Configuration Information
5307 * @details This structure contains the information for setting-up
5308 * of a cell and its associated resources at PHY.
5317 **********************************************************/
5319 PUBLIC S16 cmPkCtfCellCfgInfo
5321 CtfCellCfgInfo *param,
5325 PUBLIC S16 cmPkCtfCellCfgInfo(param, mBuf)
5326 CtfCellCfgInfo *param;
5333 TRC3(cmPkCtfCellCfgInfo)
5336 for (i = CTF_MAX_CE_LEVEL-1; i >= 0; i--) {
5337 CMCHKPK(SPkU8, param->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5338 CMCHKPK(SPkU8, param->ceLevelInfo[i].lastPreamble, mBuf);
5339 CMCHKPK(SPkU8, param->ceLevelInfo[i].firstPreamble, mBuf);
5341 CMCHKPK(SPkU8, param->mPdcchStart, mBuf);
5342 CMCHKPK(SPkU8, param->catMenabled, mBuf);
5344 if(param->unLicnsdCfgPres)
5346 printf("pverma param->unLicnsdCfgPres cm/ctf -->%d\n",param->unLicnsdCfgPres);
5347 CMCHKPK(cmPkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5349 CMCHKPK(SPkU8, param->unLicnsdCfgPres, mBuf);
5350 /*Added for rgu dynamic delta*/
5351 CMCHKPK(SPkU8, param->numDlUePerTti, mBuf);
5352 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5353 CMCHKPK(SPkU16, param->ulEarfcn, mBuf);
5354 CMCHKPK(SPkU16, param->dlEarfcn, mBuf);
5355 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5356 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5357 /* Packing PHY configuration parameters */
5358 CMCHKPK(SPkU32, param->period, mBuf);
5359 CMCHKPK(SPkU32, param->counter, mBuf);
5360 CMCHKPK(SPkU16, param->opMode, mBuf);
5362 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5363 CMCHKPK(SPkU8, param->rachSrRepModePres, mBuf);
5364 CMCHKPK(SPkU16, param->rachSrRepMode, mBuf);
5366 CMCHKPK(SPkU8, param->dataRepModePres, mBuf);
5367 CMCHKPK(SPkU16, param->dataRepMode, mBuf);
5369 CMCHKPK(SPkU8, param->phySyncModePres, mBuf);
5370 CMCHKPK(SPkU16, param->phySyncMode, mBuf);
5372 CMCHKPK(SPkU8, param->rxAntennaPortsPres, mBuf);
5373 CMCHKPK(SPkU16, param->rxAntennaPorts, mBuf);
5375 CMCHKPK(SPkU8, param->txAntennaPortsPres, mBuf);
5376 CMCHKPK(SPkU16, param->txAntennaPorts, mBuf);
5378 CMCHKPK(SPkU8, param->pucchProbDtxAckPres, mBuf);
5379 CMCHKPK(SPkU16, param->pucchProbDtxAck, mBuf);
5381 CMCHKPK(SPkU8, param->puschProbDtxAckPres, mBuf);
5382 CMCHKPK(SPkU16, param->puschProbDtxAck, mBuf);
5384 CMCHKPK(SPkU8, param->srsDopEstFactorPres, mBuf);
5385 CMCHKPK(SPkU16, param->srsDopEstFactor, mBuf);
5387 CMCHKPK(SPkU8, param->prachPkRatio0Pres, mBuf);
5388 CMCHKPK(SPkU16, param->prachPkRatio0, mBuf);
5390 CMCHKPK(SPkU8, param->prachPkRatio4Pres, mBuf);
5391 CMCHKPK(SPkU16, param->prachPkRatio4, mBuf);
5393 CMCHKPK(SPkU8, param->pucchNoiseGammaPres, mBuf);
5394 CMCHKPK(SPkU16, param->pucchNoiseGamma, mBuf);
5396 CMCHKPK(SPkU8, param->extWinMarginPres, mBuf);
5397 CMCHKPK(SPkU16, param->extWinMargin, mBuf);
5399 CMCHKPK(SPkU8, param->dciPowOsPres, mBuf);
5400 CMCHKPK(SPkU16, param->dciPowOs, mBuf);
5402 CMCHKPK(SPkU8, param->cfiPowOsPres, mBuf);
5403 CMCHKPK(SPkU16, param->cfiPowOs, mBuf);
5405 CMCHKPK(SPkU8, param->syncSigPowOsPres, mBuf);
5406 CMCHKPK(SPkU16, param->syncSigPowOs, mBuf);
5408 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5409 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5410 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5411 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5412 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5413 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5414 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5415 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5416 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5417 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5418 CMCHKPK(SPkU8, param->physCellId, mBuf);
5419 CMCHKPK(SPkU8, param->physCellIdPres, mBuf);
5421 CMCHKPK(SPkS16, param->macSapId, mBuf);
5422 CMCHKPK(SPkS16, param->schSapId, mBuf);
5424 CMCHKPK(SPkU8, param->cellIdGrpId, mBuf);
5425 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5428 /***********************************************************
5430 * Func: cmUnpkCtfUnLicnsdCellParam
5433 * Desc: Unpacking unLicensed SDL cell specific parameter
5442 **********************************************************/
5444 PRIVATE S16 cmUnpkCtfUnLicnsdCellParam
5446 CtfUnLicnsdCfgInfo *param,
5450 PRIVATE S16 cmUnpkCtfUnLicnsdCellParam(param, mBuf)
5451 CtfUnLicnsdCfgInfo *param;
5457 TRC3(cmPkCtfUnLicnsdCellParam)
5459 CMCHKUNPK(SUnpkU8, ¶m->numFreq, mBuf);
5461 for(idx = 0; idx < param->numFreq; idx++)
5463 CMCHKUNPK(SUnpkU32, ¶m->earfcn[idx], mBuf);
5466 CMCHKUNPK(SUnpkU16, ¶m->activityTh, mBuf);
5467 CMCHKUNPK(SUnpkU16, ¶m->scanTimePrd, mBuf);
5468 CMCHKUNPK(SUnpkS16, ¶m->energyTh, mBuf);
5469 CMCHKUNPK(SUnpkU16, ¶m->listenPrd, mBuf);
5470 CMCHKUNPK(SUnpkU16, ¶m->transPeriod, mBuf);
5471 CMCHKUNPK(SUnpkU8, ¶m->adaptiveTx, mBuf);
5472 CMCHKUNPK(SUnpkU8, ¶m->ccaMethod, mBuf);
5473 CMCHKUNPK(SUnpkU8, ¶m->lteOnPeriod, mBuf);
5474 CMCHKUNPK(SUnpkU8, ¶m->coExistMethod, mBuf);
5475 CMCHKUNPK(SUnpkS32, ¶m->txPowerLimit, mBuf);
5481 /***********************************************************
5483 * Func: cmUnpkCtfCellCfgInfo
5486 * Desc: Cell Configuration Information
5487 * @details This structure contains the information for setting-up
5488 * of a cell and its associated resources at PHY.
5497 **********************************************************/
5499 PUBLIC S16 cmUnpkCtfCellCfgInfo
5501 CtfCellCfgInfo *param,
5505 PUBLIC S16 cmUnpkCtfCellCfgInfo(param, mBuf)
5506 CtfCellCfgInfo *param;
5513 TRC3(cmUnpkCtfCellCfgInfo)
5515 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5516 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5517 CMCHKUNPK(SUnpkU8, ¶m->cellIdGrpId, mBuf);
5519 CMCHKUNPK(SUnpkS16, ¶m->schSapId, mBuf);
5520 CMCHKUNPK(SUnpkS16, ¶m->macSapId, mBuf);
5522 CMCHKUNPK(SUnpkU8, ¶m->physCellIdPres, mBuf);
5523 CMCHKUNPK(SUnpkU8, ¶m->physCellId, mBuf);
5524 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5525 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5526 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5527 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5528 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5529 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5530 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5531 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5532 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5533 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5535 CMCHKUNPK(SUnpkU16, ¶m->syncSigPowOs, mBuf);
5536 CMCHKUNPK(SUnpkU8, ¶m->syncSigPowOsPres, mBuf);
5538 CMCHKUNPK(SUnpkU16, ¶m->cfiPowOs, mBuf);
5539 CMCHKUNPK(SUnpkU8, ¶m->cfiPowOsPres, mBuf);
5541 CMCHKUNPK(SUnpkU16, ¶m->dciPowOs, mBuf);
5542 CMCHKUNPK(SUnpkU8, ¶m->dciPowOsPres, mBuf);
5544 CMCHKUNPK(SUnpkU16, ¶m->extWinMargin, mBuf);
5545 CMCHKUNPK(SUnpkU8, ¶m->extWinMarginPres, mBuf);
5547 CMCHKUNPK(SUnpkU16, ¶m->pucchNoiseGamma, mBuf);
5548 CMCHKUNPK(SUnpkU8, ¶m->pucchNoiseGammaPres, mBuf);
5550 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio4, mBuf);
5551 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio4Pres, mBuf);
5553 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio0, mBuf);
5554 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio0Pres, mBuf);
5556 CMCHKUNPK(SUnpkU16, ¶m->srsDopEstFactor, mBuf);
5557 CMCHKUNPK(SUnpkU8, ¶m->srsDopEstFactorPres, mBuf);
5559 CMCHKUNPK(SUnpkU16, ¶m->puschProbDtxAck, mBuf);
5560 CMCHKUNPK(SUnpkU8, ¶m->puschProbDtxAckPres, mBuf);
5562 CMCHKUNPK(SUnpkU16, ¶m->pucchProbDtxAck, mBuf);
5563 CMCHKUNPK(SUnpkU8, ¶m->pucchProbDtxAckPres, mBuf);
5565 CMCHKUNPK(SUnpkU16, ¶m->txAntennaPorts, mBuf);
5566 CMCHKUNPK(SUnpkU8, ¶m->txAntennaPortsPres, mBuf);
5568 CMCHKUNPK(SUnpkU16, ¶m->rxAntennaPorts, mBuf);
5569 CMCHKUNPK(SUnpkU8, ¶m->rxAntennaPortsPres, mBuf);
5571 CMCHKUNPK(SUnpkU16, ¶m->phySyncMode, mBuf);
5572 CMCHKUNPK(SUnpkU8, ¶m->phySyncModePres, mBuf);
5574 CMCHKUNPK(SUnpkU16, ¶m->dataRepMode, mBuf);
5575 CMCHKUNPK(SUnpkU8, ¶m->dataRepModePres, mBuf);
5577 CMCHKUNPK(SUnpkU16, ¶m->rachSrRepMode, mBuf);
5578 CMCHKUNPK(SUnpkU8, ¶m->rachSrRepModePres, mBuf);
5580 /* UnPacking PHY configuration parameters */
5581 CMCHKUNPK(SUnpkU16, ¶m->opMode, mBuf);
5582 CMCHKUNPK(SUnpkU32, ¶m->counter, mBuf);
5583 CMCHKUNPK(SUnpkU32, ¶m->period, mBuf);
5584 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5585 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5586 CMCHKUNPK(SUnpkU16, ¶m->dlEarfcn, mBuf);
5587 CMCHKUNPK(SUnpkU16, ¶m->ulEarfcn, mBuf);
5588 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5589 /* Added for rgu dynamic delta change*/
5590 CMCHKUNPK(SUnpkU8, ¶m->numDlUePerTti, mBuf);
5591 CMCHKUNPK(SUnpkU8, ¶m->unLicnsdCfgPres, mBuf);
5593 if(param->unLicnsdCfgPres)
5595 printf("pverma param->unLicnsdCfgPres 2 -->%d \n",param->unLicnsdCfgPres);
5596 CMCHKUNPK(cmUnpkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5599 CMCHKUNPK(SUnpkU8, ¶m->catMenabled, mBuf);
5600 CMCHKUNPK(SUnpkU8, ¶m->mPdcchStart, mBuf);
5602 for (i = 0; i < CTF_MAX_CE_LEVEL; i++) {
5603 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].firstPreamble, mBuf);
5604 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].lastPreamble, mBuf);
5605 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5613 /* ctf_c_001.main_4: Modified cmPkCtfCellRecfgInfo() to Add support for
5614 * vendor specific parameters */
5615 /***********************************************************
5617 * Func: cmPkCtfCellRecfgInfo
5620 * Desc: Cell Re-configuration Information
5621 * @details This structure contains the information for reconfiguration
5622 * of a cell and its associated resources at PHY.
5631 **********************************************************/
5633 PUBLIC S16 cmPkCtfCellRecfgInfo
5635 CtfCellRecfgInfo *param,
5639 PUBLIC S16 cmPkCtfCellRecfgInfo(param, mBuf)
5640 CtfCellRecfgInfo *param;
5645 TRC3(cmPkCtfCellRecfgInfo)
5647 #ifdef ENABLE_API_LOG
5648 CMCHKPK(SPkU8, param->enableAPILog, mBuf);
5649 #endif /* ENABLE_API_LOG */
5650 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5651 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5652 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5653 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5654 CMCHKPK(SPkU8, param->rachSrRepModePres, mBuf);
5655 CMCHKPK(SPkU16, param->rachSrRepMode, mBuf);
5657 CMCHKPK(SPkU8, param->dataRepModePres, mBuf);
5658 CMCHKPK(SPkU16, param->dataRepMode, mBuf);
5660 CMCHKPK(SPkU8, param->phySyncModePres, mBuf);
5661 CMCHKPK(SPkU16, param->phySyncMode, mBuf);
5663 CMCHKPK(SPkU8, param->rxAntennaPortsPres, mBuf);
5664 CMCHKPK(SPkU16, param->rxAntennaPorts, mBuf);
5666 CMCHKPK(SPkU8, param->txAntennaPortsPres, mBuf);
5667 CMCHKPK(SPkU16, param->txAntennaPorts, mBuf);
5669 CMCHKPK(SPkU8, param->pucchProbDtxAckPres, mBuf);
5670 CMCHKPK(SPkU16, param->pucchProbDtxAck, mBuf);
5673 CMCHKPK(SPkU8, param->puschProbDtxAckPres, mBuf);
5674 CMCHKPK(SPkU16, param->puschProbDtxAck, mBuf);
5676 CMCHKPK(SPkU8, param->srsDopEstFactorPres, mBuf);
5677 CMCHKPK(SPkU16, param->srsDopEstFactor, mBuf);
5679 CMCHKPK(SPkU8, param->prachPkRatio0Pres, mBuf);
5680 CMCHKPK(SPkU16, param->prachPkRatio0, mBuf);
5682 CMCHKPK(SPkU8, param->prachPkRatio4Pres, mBuf);
5683 CMCHKPK(SPkU16, param->prachPkRatio4, mBuf);
5685 CMCHKPK(SPkU8, param->pucchNoiseGammaPres, mBuf);
5686 CMCHKPK(SPkU16, param->pucchNoiseGamma, mBuf);
5688 CMCHKPK(SPkU8, param->extWinMarginPres, mBuf);
5689 CMCHKPK(SPkU16, param->extWinMargin, mBuf);
5691 CMCHKPK(SPkU8, param->dciPowOsPres, mBuf);
5692 CMCHKPK(SPkU16, param->dciPowOs, mBuf);
5694 CMCHKPK(SPkU8, param->cfiPowOsPres, mBuf);
5695 CMCHKPK(SPkU16, param->cfiPowOs, mBuf);
5697 CMCHKPK(SPkU8, param->syncSigPowOsPres, mBuf);
5698 CMCHKPK(SPkU16, param->syncSigPowOs, mBuf);
5700 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5701 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5702 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5703 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5704 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5705 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5706 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5707 CMCHKPK(cmPkLteTimingInfo, ¶m->actvnTime, mBuf);
5709 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5710 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5711 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5712 CMCHKPK(SPkU8, param->physCellId, mBuf);
5713 CMCHKPK(SPkU8, param->physCellIdPres, mBuf);
5714 CMCHKPK(SPkU8, param->cellIdGrpId, mBuf);
5715 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5716 CMCHKPK(SPkU32, param->ctfReCfgType, mBuf);
5722 /***********************************************************
5724 * Func: cmUnpkCtfCellRecfgInfo
5727 * Desc: Cell Re-configuration Information
5728 * @details This structure contains the information for reconfiguration
5729 * of a cell and its associated resources at PHY.
5738 **********************************************************/
5740 PUBLIC S16 cmUnpkCtfCellRecfgInfo
5742 CtfCellRecfgInfo *param,
5746 PUBLIC S16 cmUnpkCtfCellRecfgInfo(param, mBuf)
5747 CtfCellRecfgInfo *param;
5753 TRC3(cmUnpkCtfCellRecfgInfo)
5755 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5756 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
5757 param->ctfReCfgType = (CtfReCfgType)tmpEnum;
5758 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5759 CMCHKUNPK(SUnpkU8, ¶m->cellIdGrpId, mBuf);
5760 CMCHKUNPK(SUnpkU8, ¶m->physCellIdPres, mBuf);
5761 CMCHKUNPK(SUnpkU8, ¶m->physCellId, mBuf);
5762 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5763 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5764 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5766 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvnTime, mBuf);
5767 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5768 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5769 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5770 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5771 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5772 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5773 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5775 CMCHKUNPK(SUnpkU16, ¶m->syncSigPowOs, mBuf);
5776 CMCHKUNPK(SUnpkU8, ¶m->syncSigPowOsPres, mBuf);
5778 CMCHKUNPK(SUnpkU16, ¶m->cfiPowOs, mBuf);
5779 CMCHKUNPK(SUnpkU8, ¶m->cfiPowOsPres, mBuf);
5781 CMCHKUNPK(SUnpkU16, ¶m->dciPowOs, mBuf);
5782 CMCHKUNPK(SUnpkU8, ¶m->dciPowOsPres, mBuf);
5784 CMCHKUNPK(SUnpkU16, ¶m->extWinMargin, mBuf);
5785 CMCHKUNPK(SUnpkU8, ¶m->extWinMarginPres, mBuf);
5787 CMCHKUNPK(SUnpkU16, ¶m->pucchNoiseGamma, mBuf);
5788 CMCHKUNPK(SUnpkU8, ¶m->pucchNoiseGammaPres, mBuf);
5790 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio4, mBuf);
5791 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio4Pres, mBuf);
5793 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio0, mBuf);
5794 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio0Pres, mBuf);
5796 CMCHKUNPK(SUnpkU16, ¶m->srsDopEstFactor, mBuf);
5797 CMCHKUNPK(SUnpkU8, ¶m->srsDopEstFactorPres, mBuf);
5799 CMCHKUNPK(SUnpkU16, ¶m->puschProbDtxAck, mBuf);
5800 CMCHKUNPK(SUnpkU8, ¶m->puschProbDtxAckPres, mBuf);
5802 CMCHKUNPK(SUnpkU16, ¶m->pucchProbDtxAck, mBuf);
5803 CMCHKUNPK(SUnpkU8, ¶m->pucchProbDtxAckPres, mBuf);
5805 CMCHKUNPK(SUnpkU16, ¶m->txAntennaPorts, mBuf);
5806 CMCHKUNPK(SUnpkU8, ¶m->txAntennaPortsPres, mBuf);
5808 CMCHKUNPK(SUnpkU16, ¶m->rxAntennaPorts, mBuf);
5809 CMCHKUNPK(SUnpkU8, ¶m->rxAntennaPortsPres, mBuf);
5811 CMCHKUNPK(SUnpkU16, ¶m->phySyncMode, mBuf);
5812 CMCHKUNPK(SUnpkU8, ¶m->phySyncModePres, mBuf);
5814 CMCHKUNPK(SUnpkU16, ¶m->dataRepMode, mBuf);
5815 CMCHKUNPK(SUnpkU8, ¶m->dataRepModePres, mBuf);
5817 CMCHKUNPK(SUnpkU16, ¶m->rachSrRepMode, mBuf);
5818 CMCHKUNPK(SUnpkU8, ¶m->rachSrRepModePres, mBuf);
5820 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5821 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5822 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5823 printf("param->pilotSigPwr = %d\nparam->priSigPwr = %d\n param->secSigPwr = %d\n",param->pilotSigPwr,param->priSigPwr,param->secSigPwr);
5824 #ifdef ENABLE_API_LOG
5825 CMCHKUNPK(SUnpkU8, ¶m->enableAPILog, mBuf);
5826 #endif /* ENABLE_API_LOG */
5832 /***********************************************************
5834 * Func: cmPkCtfDedPdschCfgInfo
5837 * Desc: Dedicated PDSCH Configuration
5838 * @details This structure contains the information for PDSCH configuration
5839 * specific to an UE.
5848 **********************************************************/
5850 PUBLIC S16 cmPkCtfDedPdschCfgInfo
5852 CtfDedPdschCfgInfo *param,
5856 PUBLIC S16 cmPkCtfDedPdschCfgInfo(param, mBuf)
5857 CtfDedPdschCfgInfo *param;
5862 TRC3(cmPkCtfDedPdschCfgInfo)
5864 /*ctf_c_001.main_1*/
5865 if(param->pres != FALSE)
5866 CMCHKPK(SPkU32, param->pA, mBuf);
5867 CMCHKPK(SPkU8, param->pres, mBuf);
5873 /***********************************************************
5875 * Func: cmUnpkCtfDedPdschCfgInfo
5878 * Desc: Dedicated PDSCH Configuration
5879 * @details This structure contains the information for PDSCH configuration
5880 * specific to an UE.
5889 **********************************************************/
5891 PUBLIC S16 cmUnpkCtfDedPdschCfgInfo
5893 CtfDedPdschCfgInfo *param,
5897 PUBLIC S16 cmUnpkCtfDedPdschCfgInfo(param, mBuf)
5898 CtfDedPdschCfgInfo *param;
5903 TRC3(cmUnpkCtfDedPdschCfgInfo)
5905 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5906 /*ctf_c_001.main_1*/
5907 if(param->pres != FALSE)
5909 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
5910 param->pA = (CtfPdschPaParam)tmpEnum;
5917 /***********************************************************
5919 * Func: cmPkCtfDedPucchCfgInfo
5922 * Desc: Dedicated PUCCH Configuration
5923 * @details This structure contains the information for setting-up/release
5924 * PUCCH configuration specific to an UE.
5933 **********************************************************/
5935 PUBLIC S16 cmPkCtfDedPucchCfgInfo
5937 CtfDedPucchCfgInfo *param,
5941 PUBLIC S16 cmPkCtfDedPucchCfgInfo(param, mBuf)
5942 CtfDedPucchCfgInfo *param;
5947 TRC3(cmPkCtfDedPucchCfgInfo)
5949 /*ctf_c_001.main_1*/
5950 if(param->pres != FALSE)
5953 /*ctf_c_001.main_4:115549: packing tddAckNackFBMode and tddAckNackCfgPres */
5954 if (param->tddAckNackCfgPres != FALSE)
5956 CMCHKPK(SPkU32, param->tddAckNackFBMode, mBuf);
5959 CMCHKPK(SPkU8, param->tddAckNackCfgPres, mBuf);
5960 #endif /* CTF_VER3 */
5961 CMCHKPK(SPkU16, param->pucchSetup.n1PUCCHRep, mBuf);
5963 /*ctf_c_001.main_4:115549: packing pucchSetup.repFactPres */
5964 if (param->pucchSetup.repFactPres)
5966 CMCHKPK(SPkU32, param->pucchSetup.repFact, mBuf);
5969 CMCHKPK(SPkU8, param->pucchSetup.repFactPres, mBuf);
5971 CMCHKPK(SPkU32, param->pucchSetup.repFact, mBuf);
5972 #endif /* CTF_VER3 */
5973 CMCHKPK(SPkU8, param->dedPucchCfgType, mBuf);
5975 CMCHKPK(SPkU8, param->pres, mBuf);
5981 /***********************************************************
5983 * Func: cmUnpkCtfDedPucchCfgInfo
5986 * Desc: Dedicated PUCCH Configuration
5987 * @details This structure contains the information for setting-up/release
5988 * PUCCH configuration specific to an UE.
5997 **********************************************************/
5999 PUBLIC S16 cmUnpkCtfDedPucchCfgInfo
6001 CtfDedPucchCfgInfo *param,
6005 PUBLIC S16 cmUnpkCtfDedPucchCfgInfo(param, mBuf)
6006 CtfDedPucchCfgInfo *param;
6011 TRC3(cmUnpkCtfDedPucchCfgInfo)
6013 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6014 /*ctf_c_001.main_1*/
6015 if(param->pres != FALSE)
6017 CMCHKUNPK(SUnpkU8, ¶m->dedPucchCfgType, mBuf);
6019 /* ctf_c_001.main_4:115549: unpacking pucchSetup.repFactPres */
6020 CMCHKUNPK(SUnpkU8, ¶m->pucchSetup.repFactPres, mBuf);
6022 if (param->pucchSetup.repFactPres)
6024 CMCHKUNPK(SUnpkU32, (U32 *)¶m->pucchSetup.repFact, mBuf);
6027 CMCHKUNPK(SUnpkU32, (U32 *)¶m->pucchSetup.repFact, mBuf);
6028 #endif /*CTF_VER3 */
6029 CMCHKUNPK(SUnpkU16, ¶m->pucchSetup.n1PUCCHRep, mBuf);
6031 /*ctf_c_001.main_4:115549: unpacking tddAckNackCfgPres and tddAckNackFBMode */
6032 CMCHKUNPK(SUnpkU8, ¶m->tddAckNackCfgPres, mBuf);
6034 if (param->tddAckNackCfgPres != FALSE)
6036 CMCHKUNPK(SUnpkU32, (U32 *)¶m->tddAckNackFBMode, mBuf);
6038 #endif /* CTF_VER3 */
6045 /***********************************************************
6047 * Func: cmPkCtfDedPuschCfgInfo
6050 * Desc: Dedicated PUSCH Configuration
6051 * @details This structure contains the information for PUCCH
6052 * configuration specific to an UE.
6061 **********************************************************/
6063 PUBLIC S16 cmPkCtfDedPuschCfgInfo
6065 CtfDedPuschCfgInfo *param,
6069 PUBLIC S16 cmPkCtfDedPuschCfgInfo(param, mBuf)
6070 CtfDedPuschCfgInfo *param;
6075 TRC3(cmPkCtfDedPuschCfgInfo)
6077 /*ctf_c_001.main_1*/
6078 if(param->pres != FALSE)
6080 CMCHKPK(SPkU8, param->betaOffsetCqiIdx, mBuf);
6081 CMCHKPK(SPkU8, param->betaOffsetRiIdx, mBuf);
6082 CMCHKPK(SPkU8, param->betaOffsetAckIdx, mBuf);
6084 CMCHKPK(SPkU8, param->pres, mBuf);
6090 /***********************************************************
6092 * Func: cmUnpkCtfDedPuschCfgInfo
6095 * Desc: Dedicated PUSCH Configuration
6096 * @details This structure contains the information for PUCCH
6097 * configuration specific to an UE.
6106 **********************************************************/
6108 PUBLIC S16 cmUnpkCtfDedPuschCfgInfo
6110 CtfDedPuschCfgInfo *param,
6114 PUBLIC S16 cmUnpkCtfDedPuschCfgInfo(param, mBuf)
6115 CtfDedPuschCfgInfo *param;
6120 TRC3(cmUnpkCtfDedPuschCfgInfo)
6122 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6123 /*ctf_c_001.main_1*/
6124 if(param->pres != FALSE)
6126 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetAckIdx, mBuf);
6127 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetRiIdx, mBuf);
6128 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetCqiIdx, mBuf);
6136 /***********************************************************
6138 * Func: cmPkCtfCqiRptModePeriodic
6141 * Desc: Periodic CQI Report Configuration
6142 * @details This structure contains the information for periodic CQI report
6143 * related configuration specific to an UE.
6152 **********************************************************/
6154 PUBLIC S16 cmPkCtfCqiRptModePeriodic
6156 CtfCqiRptModePeriodic *param,
6160 PUBLIC S16 cmPkCtfCqiRptModePeriodic(param, mBuf)
6161 CtfCqiRptModePeriodic *param;
6166 TRC3(cmPkCtfCqiRptModePeriodic)
6167 /* ctf_c_001.main_2: added packning for cqiMask*/
6169 CMCHKPK(SPkU32, (U32 )param->cqiSetup.cqiMask.cqiMaskSetup, mBuf);
6170 CMCHKPK(SPkU8, param->cqiSetup.cqiMask.pres, mBuf);
6171 #endif /* CTF_VER1 */
6172 CMCHKPK(SPkU8, param->cqiSetup.simultaneousAckNack, mBuf);
6173 CMCHKPK(SPkU16, param->cqiSetup.riCfgIndx, mBuf);
6174 CMCHKPK(SPkU8, param->cqiSetup.riCfgPres, mBuf);
6175 CMCHKPK(SPkU8, param->cqiSetup.subbandCqi.k, mBuf);
6176 CMCHKPK(SPkU8, param->cqiSetup.formatIndicator, mBuf);
6177 CMCHKPK(SPkU16, param->cqiSetup.cqiPmiCfgIndx, mBuf);
6178 CMCHKPK(SPkU16, param->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6179 CMCHKPK(SPkU8, param->cqiPeriodicCfgType, mBuf);
6185 /***********************************************************
6187 * Func: cmUnpkCtfCqiRptModePeriodic
6190 * Desc: Periodic CQI Report Configuration
6191 * @details This structure contains the information for periodic CQI report
6192 * related configuration specific to an UE.
6201 **********************************************************/
6203 PUBLIC S16 cmUnpkCtfCqiRptModePeriodic
6205 CtfCqiRptModePeriodic *param,
6209 PUBLIC S16 cmUnpkCtfCqiRptModePeriodic(param, mBuf)
6210 CtfCqiRptModePeriodic *param;
6217 TRC3(cmUnpkCtfCqiRptModePeriodic)
6219 CMCHKUNPK(SUnpkU8, ¶m->cqiPeriodicCfgType, mBuf);
6220 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6221 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.cqiPmiCfgIndx, mBuf);
6222 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.formatIndicator, mBuf);
6223 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.subbandCqi.k, mBuf);
6224 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.riCfgPres, mBuf);
6225 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.riCfgIndx, mBuf);
6226 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.simultaneousAckNack, mBuf);
6227 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6229 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.cqiMask.pres, mBuf);
6230 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6231 param->cqiSetup.cqiMask.cqiMaskSetup = tmpEnum;
6232 #endif /* CTF_VER1 */
6238 /***********************************************************
6240 * Func: cmPkCtfCqiReportCfgInfo
6243 * Desc: CQI Report Configuration
6244 * @details This structure contains the information for CQI report
6245 * related configuration specific to an UE.
6254 **********************************************************/
6256 PUBLIC S16 cmPkCtfCqiReportCfgInfo
6258 CtfCqiReportCfgInfo *param,
6262 PUBLIC S16 cmPkCtfCqiReportCfgInfo(param, mBuf)
6263 CtfCqiReportCfgInfo *param;
6268 TRC3(cmPkCtfCqiReportCfgInfo)
6270 /*ctf_c_001.main_1*/
6271 if(param->pres != FALSE)
6275 * ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6276 *report configuration in the same message
6278 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6280 CMCHKPK(SPkU32, param->reportMode.aPeriodicRpt.aPeriodicRptMode, mBuf);
6282 CMCHKPK(SPkU8, param->reportMode.aPeriodicRpt.pres, mBuf);
6284 if(param->reportMode.periodicRpt.pres != FALSE)
6286 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6288 CMCHKPK(SPkU8, param->reportMode.periodicRpt.pres, mBuf);
6290 #else /* CTF_VER2 */
6292 switch(param->reportingMode) {
6293 case CTF_CQI_RPTMODE_PRDIOC:
6294 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6296 case CTF_CQI_RPTMODE_APRDIOC:
6297 CMCHKPK(SPkU32, param->reportMode.aPeriodicRpt, mBuf);
6302 CMCHKPK(SPkU8, param->reportingMode, mBuf);
6303 #endif /* CTF_VER2 */
6305 /* ctf_c_001.main_2: added packning for pmiRiRpt*/
6307 CMCHKPK(SPkU32, param->pmiRiRpt.pmiRiRptSetup, mBuf);
6308 CMCHKPK(SPkU8, param->pmiRiRpt.pres, mBuf);
6309 #endif /* CTF_VER1 */
6312 CMCHKPK(SPkU8, param->pres, mBuf);
6318 /***********************************************************
6320 * Func: cmUnpkCtfCqiReportCfgInfo
6323 * Desc: CQI Report Configuration
6324 * @details This structure contains the information for CQI report
6325 * related configuration specific to an UE.
6334 **********************************************************/
6336 PUBLIC S16 cmUnpkCtfCqiReportCfgInfo
6338 CtfCqiReportCfgInfo *param,
6342 PUBLIC S16 cmUnpkCtfCqiReportCfgInfo(param, mBuf)
6343 CtfCqiReportCfgInfo *param;
6347 #if defined (CTF_VER1) || defined (CTF_VER2)
6350 TRC3(cmUnpkCtfCqiReportCfgInfo)
6352 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6353 /*ctf_c_001.main_1*/
6354 if(param->pres != FALSE)
6356 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6358 CMCHKUNPK(SUnpkU8, ¶m->pmiRiRpt.pres, mBuf);
6359 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6360 param->pmiRiRpt.pmiRiRptSetup = tmpEnum;
6361 #endif /* CTF_VER1 */
6365 *ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6366 *report configuration in the same message
6368 CMCHKUNPK(SUnpkU8, ¶m->reportMode.periodicRpt.pres, mBuf)
6369 if(param->reportMode.periodicRpt.pres != FALSE)
6371 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6374 CMCHKUNPK(SUnpkU8, ¶m->reportMode.aPeriodicRpt.pres, mBuf)
6375 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6377 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6378 param->reportMode.aPeriodicRpt.aPeriodicRptMode =
6379 (CtfCqiRptModeAperiodic)tmpEnum;
6382 #else /* CTF_VER2 */
6384 CMCHKUNPK(SUnpkU8, ¶m->reportingMode, mBuf);
6385 switch(param->reportingMode) {
6386 case CTF_CQI_RPTMODE_APRDIOC:
6387 CMCHKUNPK(SUnpkU32, (U32 *)¶m->reportMode.aPeriodicRpt, mBuf);
6389 case CTF_CQI_RPTMODE_PRDIOC:
6390 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6395 #endif /* CTF_VER2 */
6402 /***********************************************************
6404 * Func: cmPkCtfDedSrsUlCfgInfo
6407 * Desc: Dedicated Uplink SRS Configuration
6408 * @details This structure contains the information for setting-up/release
6409 * UL SRS configuration specific to an UE.
6418 **********************************************************/
6420 PUBLIC S16 cmPkCtfDedSrsUlCfgInfo
6422 CtfDedSrsUlCfgInfo *param,
6426 PUBLIC S16 cmPkCtfDedSrsUlCfgInfo(param, mBuf)
6427 CtfDedSrsUlCfgInfo *param;
6432 TRC3(cmPkCtfDedSrsUlCfgInfo)
6434 /*ctf_c_001.main_1*/
6435 if(param->pres != FALSE)
6437 CMCHKPK(SPkU8, param->dedSrsSetup.cyclicShift, mBuf);
6438 CMCHKPK(SPkU8, param->dedSrsSetup.txComb, mBuf);
6439 CMCHKPK(SPkU16, param->dedSrsSetup.srsCfgIdx, mBuf);
6440 CMCHKPK(SPkU8, param->dedSrsSetup.duration, mBuf);
6441 CMCHKPK(SPkU8, param->dedSrsSetup.freqDmnPos, mBuf);
6442 CMCHKPK(SPkU8, param->dedSrsSetup.srsHopngBw, mBuf);
6443 CMCHKPK(SPkU8, param->dedSrsSetup.srsBw, mBuf);
6444 CMCHKPK(SPkU8, param->dedSrsUlCfgType, mBuf);
6446 CMCHKPK(SPkU8, param->pres, mBuf);
6452 /***********************************************************
6454 * Func: cmUnpkCtfDedSrsUlCfgInfo
6457 * Desc: Dedicated Uplink SRS Configuration
6458 * @details This structure contains the information for setting-up/release
6459 * UL SRS configuration specific to an UE.
6468 **********************************************************/
6470 PUBLIC S16 cmUnpkCtfDedSrsUlCfgInfo
6472 CtfDedSrsUlCfgInfo *param,
6476 PUBLIC S16 cmUnpkCtfDedSrsUlCfgInfo(param, mBuf)
6477 CtfDedSrsUlCfgInfo *param;
6482 TRC3(cmUnpkCtfDedSrsUlCfgInfo)
6484 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6485 /*ctf_c_001.main_1*/
6486 if(param->pres != FALSE)
6488 CMCHKUNPK(SUnpkU8, ¶m->dedSrsUlCfgType, mBuf);
6489 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.srsBw, mBuf);
6490 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.srsHopngBw, mBuf);
6491 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.freqDmnPos, mBuf);
6492 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.duration, mBuf);
6493 CMCHKUNPK(SUnpkU16, ¶m->dedSrsSetup.srsCfgIdx, mBuf);
6494 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.txComb, mBuf);
6495 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.cyclicShift, mBuf);
6502 /***********************************************************
6504 * Func: cmPkCtfDedSRCfgInfo
6507 * Desc: Dedicated SR Configuration
6508 * @details This structure contains the information for setting-up/release
6509 * SR configuration specific to an UE at PHY.
6518 **********************************************************/
6520 PUBLIC S16 cmPkCtfDedSRCfgInfo
6522 CtfDedSRCfgInfo *param,
6526 PUBLIC S16 cmPkCtfDedSRCfgInfo(param, mBuf)
6527 CtfDedSRCfgInfo *param;
6532 TRC3(cmPkCtfDedSRCfgInfo)
6534 /*ctf_c_001.main_1*/
6535 if(param->pres != FALSE)
6537 CMCHKPK(SPkU8, param->dedSrSetup.srCfgIdx, mBuf);
6538 CMCHKPK(SPkU16, param->dedSrSetup.srPUCCHRi, mBuf);
6539 CMCHKPK(SPkU8, param->dedSRCfgType, mBuf);
6541 CMCHKPK(SPkU8, param->pres, mBuf);
6547 /***********************************************************
6549 * Func: cmUnpkCtfDedSRCfgInfo
6552 * Desc: Dedicated SR Configuration
6553 * @details This structure contains the information for setting-up/release
6554 * SR configuration specific to an UE at PHY.
6563 **********************************************************/
6565 PUBLIC S16 cmUnpkCtfDedSRCfgInfo
6567 CtfDedSRCfgInfo *param,
6571 PUBLIC S16 cmUnpkCtfDedSRCfgInfo(param, mBuf)
6572 CtfDedSRCfgInfo *param;
6577 TRC3(cmUnpkCtfDedSRCfgInfo)
6579 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6580 /*ctf_c_001.main_1*/
6581 if(param->pres != FALSE)
6583 CMCHKUNPK(SUnpkU8, ¶m->dedSRCfgType, mBuf);
6584 CMCHKUNPK(SUnpkU16, ¶m->dedSrSetup.srPUCCHRi, mBuf);
6585 CMCHKUNPK(SUnpkU8, ¶m->dedSrSetup.srCfgIdx, mBuf);
6590 #endif /* TFU_UPGRADE */
6593 /***********************************************************
6595 * Func: cmPkCtfDedAntCfgInfo
6598 * Desc: Dedicated Antenna Configuration
6599 * @details This structure contains the information for antenna related
6600 * configuration specific to an UE at PHY.
6609 **********************************************************/
6611 PUBLIC S16 cmPkCtfDedAntCfgInfo
6613 CtfDedAntCfgInfo *param,
6617 PUBLIC S16 cmPkCtfDedAntCfgInfo(param, mBuf)
6618 CtfDedAntCfgInfo *param;
6625 #endif /* CTF_VER2 */
6627 TRC3(cmPkCtfDedAntCfgInfo)
6629 /*ctf_c_001.main_1*/
6630 if(param->pres != FALSE)
6632 CMCHKPK(SPkU32, param->ueTxAntSelection.txAntSelect, mBuf);
6633 CMCHKPK(SPkU8, param->ueTxAntSelection.cfgType, mBuf);
6634 /* ctf_c_001.main_3 txMode is of type enum and is 32bit length */
6635 CMCHKPK(SPkU32, (U32)param->txMode, mBuf);
6638 *ctf_c_001.main_2: Added Packing of CodeBookSubsetRestriction parameter
6640 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6643 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6648 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6653 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6658 for(idx = 0; idx < 8; idx++)
6659 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6660 n4TxAntTm4[idx], mBuf);
6664 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6669 CMCHKPK(SPkU16, param->codeBookSubsetRes.codeBookSubsetRestn.
6674 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6679 CMCHKPK(SPkU16, param->codeBookSubsetRes.codeBookSubsetRestn.
6686 CMCHKPK(SPkU32, param->codeBookSubsetRes.ctfCdBkRestType, mBuf);
6687 #endif /* CTF_VER2 */
6689 CMCHKPK(SPkU8, param->pres, mBuf);
6695 /***********************************************************
6697 * Func: cmUnpkCtfDedAntCfgInfo
6700 * Desc: Dedicated Antenna Configuration
6701 * @details This structure contains the information for antenna related
6702 * configuration specific to an UE at PHY.
6711 **********************************************************/
6713 PUBLIC S16 cmUnpkCtfDedAntCfgInfo
6715 CtfDedAntCfgInfo *param,
6719 PUBLIC S16 cmUnpkCtfDedAntCfgInfo(param, mBuf)
6720 CtfDedAntCfgInfo *param;
6726 #endif /* CTF_VER2 */
6730 TRC3(cmUnpkCtfDedAntCfgInfo)
6732 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6733 /*ctf_c_001.main_1*/
6734 if(param->pres != FALSE)
6738 * Added Unpacking for CodeBookSubsetRestriction parameter
6740 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6741 param->codeBookSubsetRes.ctfCdBkRestType = (CtfCdBkSubsetRestnType)tmpEnum;
6742 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6745 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6750 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6755 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6760 for(idx = 7; idx >= 0; idx--)
6762 CMCHKUNPK(SUnpkU8, &(param->codeBookSubsetRes.codeBookSubsetRestn.
6763 n4TxAntTm4[idx]), mBuf);
6768 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6773 CMCHKUNPK(SUnpkU16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6778 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6783 CMCHKUNPK(SUnpkU16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6789 #endif /* CTF_VER2 */
6790 /* ctf_c_001.main_3 Enum is 32bit length */
6791 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6792 param->txMode = (CtfUeTxAntMode)tmpEnum;
6793 CMCHKUNPK(SUnpkU8, ¶m->ueTxAntSelection.cfgType, mBuf);
6794 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6795 param->ueTxAntSelection.txAntSelect = (CtfUeTxAntSelectType)tmpEnum;
6801 /***********************************************************
6803 * Func: cmPkCtfUeSecCellCfgInfo
6806 * Desc: Secondary Cell Configuration for a UE
6807 * @details This structure contains the information for
6808 * secondary cells for the UE
6816 **********************************************************/
6818 PUBLIC S16 cmPkCtfUeSecCellCfgInfo
6820 CtfUeSecCellCfgInfo *param,
6824 PUBLIC S16 cmPkCtfUeSecCellCfgInfo(*param, mBuf)
6825 CtfUeSecCellCfgInfo *param;
6829 CMCHKPK(SPkU16, param->sCellId, mBuf);
6830 CMCHKPK(SPkU8, param->sCellIdx, mBuf);
6834 /***********************************************************
6836 * Func: cmPkCtfSecCellCfgInfo
6839 * Desc: Secondary Cell Configuration for a UE
6840 * @details This structure contains the information for
6841 * secondary cells for the UE
6849 **********************************************************/
6851 PUBLIC S16 cmPkCtfSecCellCfgInfo
6853 CtfSecCellCfgInfo *param,
6857 PUBLIC S16 cmPkCtfSecCellCfgInfo(*param, mBuf)
6858 CtfSecCellCfgInfo *param;
6864 for(idx = param->numSCells - 1; idx >= 0; idx--)
6866 CMCHKPK(cmPkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[(U8)idx], mBuf);
6868 CMCHKPK(SPkU32, param->sCellAction, mBuf);
6869 CMCHKPK(SPkU8, param->numSCells, mBuf);
6874 /***********************************************************
6876 * Func: cmUnpkCtfUeSecCellCfgInfo
6879 * Desc: Secondary Cell Configuration for a UE
6880 * @details This structure contains the information for
6881 * secondary cells for the UE
6889 **********************************************************/
6891 PUBLIC S16 cmUnpkCtfUeSecCellCfgInfo
6893 CtfUeSecCellCfgInfo *param,
6897 PUBLIC S16 cmUnpkCtfUeSecCellCfgInfo(*param, mBuf)
6898 CtfUeSecCellCfgInfo *param;
6902 CMCHKUNPK(SUnpkU8, ¶m->sCellIdx, mBuf);
6903 CMCHKUNPK(SUnpkU16, ¶m->sCellId, mBuf);
6908 /***********************************************************
6910 * Func: cmUnpkCtfSecCellCfgInfo
6913 * Desc: Secondary Cell Configuration for a UE
6914 * @details This structure contains the information for
6915 * secondary cells for the UE
6923 **********************************************************/
6926 PUBLIC S16 cmUnpkCtfSecCellCfgInfo
6928 CtfSecCellCfgInfo *param,
6932 PUBLIC S16 cmUnpkCtfSecCellCfgInfo(*param, mBuf)
6933 CtfSecCellCfgInfo *param;
6939 CMCHKUNPK(SUnpkU8, ¶m->numSCells, mBuf);
6940 CMCHKUNPK(SUnpkU32, (U32*)¶m->sCellAction, mBuf);
6941 for(idx = 0 ; idx < param->numSCells; idx++)
6943 CMCHKUNPK(cmUnpkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[idx], mBuf);
6950 /***********************************************************
6952 * Func: cmPkCtfUeCatCfgInfo
6955 * Desc: UE Category Configuration
6956 * @details This structure contains the information for configuring
6957 * the UE category at PHY.
6966 **********************************************************/
6968 PUBLIC S16 cmPkCtfUeCatCfgInfo
6970 CtfUeCatCfgInfo *param,
6974 PUBLIC S16 cmPkCtfUeCatCfgInfo(param, mBuf)
6975 CtfUeCatCfgInfo *param;
6980 TRC3(cmPkCtfUeCatCfgInfo)
6982 /*ctf_c_001.main_1*/
6983 if(param->pres != FALSE)
6984 CMCHKPK(SPkU32, param->ueCategory, mBuf);
6985 CMCHKPK(SPkU8, param->pres, mBuf);
6991 /***********************************************************
6993 * Func: cmUnpkCtfUeCatCfgInfo
6996 * Desc: UE Category Configuration
6997 * @details This structure contains the information for configuring
6998 * the UE category at PHY.
7007 **********************************************************/
7009 PUBLIC S16 cmUnpkCtfUeCatCfgInfo
7011 CtfUeCatCfgInfo *param,
7015 PUBLIC S16 cmUnpkCtfUeCatCfgInfo(param, mBuf)
7016 CtfUeCatCfgInfo *param;
7021 TRC3(cmUnpkCtfUeCatCfgInfo)
7023 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
7024 /*ctf_c_001.main_1*/
7025 if(param->pres != FALSE)
7026 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ueCategory, mBuf);
7032 /***********************************************************
7034 * Func: cmPkCtfDedCfgInfo
7037 * Desc: Dedicated Configuration Information
7038 * @details This structure contains the information for configuration
7039 * of UE-specific physical channel resources at PHY.
7048 **********************************************************/
7050 PUBLIC S16 cmPkCtfDedCfgInfo
7052 CtfDedCfgInfo *param,
7056 PUBLIC S16 cmPkCtfDedCfgInfo(param, mBuf)
7057 CtfDedCfgInfo *param;
7062 TRC3(cmPkCtfDedCfgInfo)
7064 CMCHKPK(SPkU8, param->isEmtcUe, mBuf);
7066 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7068 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7069 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7070 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7071 #endif /* TFU_UPGRADE */
7072 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7073 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7074 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7075 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7076 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7077 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7083 /***********************************************************
7085 * Func: cmUnpkCtfDedCfgInfo
7088 * Desc: Dedicated Configuration Information
7089 * @details This structure contains the information for configuration
7090 * of UE-specific physical channel resources at PHY.
7099 **********************************************************/
7101 PUBLIC S16 cmUnpkCtfDedCfgInfo
7103 CtfDedCfgInfo *param,
7107 PUBLIC S16 cmUnpkCtfDedCfgInfo(param, mBuf)
7108 CtfDedCfgInfo *param;
7113 TRC3(cmUnpkCtfDedCfgInfo)
7115 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7116 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7117 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7118 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7119 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7120 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7122 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7123 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7124 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7125 #endif /* TFU_UPGRADE */
7126 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7128 CMCHKUNPK(SUnpkU8, ¶m->isEmtcUe, mBuf);
7135 /***********************************************************
7137 * Func: cmPkCtfDedRecfgInfo
7140 * Desc: Dedicated Re-configuration Information
7141 * @details This structure contains the information for re-configuration
7142 * of UE-specific physical channel resources at PHY.
7151 **********************************************************/
7153 PUBLIC S16 cmPkCtfDedRecfgInfo
7155 CtfDedRecfgInfo *param,
7159 PUBLIC S16 cmPkCtfDedRecfgInfo(param, mBuf)
7160 CtfDedRecfgInfo *param;
7165 TRC3(cmPkCtfDedRecfgInfo)
7167 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7168 /*ctf_c_001.main_1*/
7169 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7171 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7172 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7173 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7174 #endif /* TFU_UPGRADE */
7175 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7176 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7177 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7178 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7179 /* ctf_c_001.main_4: ReEst Fix */
7181 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7183 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7185 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7186 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7192 /***********************************************************
7194 * Func: cmUnpkCtfDedRecfgInfo
7197 * Desc: Dedicated Re-configuration Information
7198 * @details This structure contains the information for re-configuration
7199 * of UE-specific physical channel resources at PHY.
7208 **********************************************************/
7210 PUBLIC S16 cmUnpkCtfDedRecfgInfo
7212 CtfDedRecfgInfo *param,
7216 PUBLIC S16 cmUnpkCtfDedRecfgInfo(param, mBuf)
7217 CtfDedRecfgInfo *param;
7222 TRC3(cmUnpkCtfDedRecfgInfo)
7224 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7225 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7226 /* ctf_c_001.main_4: ReEst Fix */
7228 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7230 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7232 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7233 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7234 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7235 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7237 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7238 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7239 /*ctf_c_001.main_1*/
7240 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7241 #endif /* TFU_UPGRADE */
7242 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7244 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7251 /***********************************************************
7253 * Func: cmPkCtfCellReleaseInfo
7256 * Desc: Cell Release Information
7257 * @details This structure contains the information for release/removal
7258 * of a cell and its assocated resources at PHY.
7267 **********************************************************/
7269 PUBLIC S16 cmPkCtfCellReleaseInfo
7271 CtfCellReleaseInfo *param,
7275 PUBLIC S16 cmPkCtfCellReleaseInfo(param, mBuf)
7276 CtfCellReleaseInfo *param;
7281 TRC3(cmPkCtfCellReleaseInfo)
7283 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7289 /***********************************************************
7291 * Func: cmUnpkCtfCellReleaseInfo
7294 * Desc: Cell Release Information
7295 * @details This structure contains the information for release/removal
7296 * of a cell and its assocated resources at PHY.
7305 **********************************************************/
7307 PUBLIC S16 cmUnpkCtfCellReleaseInfo
7309 CtfCellReleaseInfo *param,
7313 PUBLIC S16 cmUnpkCtfCellReleaseInfo(param, mBuf)
7314 CtfCellReleaseInfo *param;
7319 TRC3(cmUnpkCtfCellReleaseInfo)
7321 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7327 /***********************************************************
7329 * Func: cmPkCtfDedReleaseInfo
7332 * Desc: Dedicated Release Information
7333 * @details This structure contains the information for release/removal
7334 * of dedicated/UE-specific configuration at PHY.
7343 **********************************************************/
7345 PUBLIC S16 cmPkCtfDedReleaseInfo
7347 CtfDedReleaseInfo *param,
7351 PUBLIC S16 cmPkCtfDedReleaseInfo(param, mBuf)
7352 CtfDedReleaseInfo *param;
7357 TRC3(cmPkCtfDedReleaseInfo)
7358 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7359 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7360 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7366 /***********************************************************
7368 * Func: cmUnpkCtfDedReleaseInfo
7371 * Desc: Dedicated Release Information
7372 * @details This structure contains the information for release/removal
7373 * of dedicated/UE-specific configuration at PHY.
7382 **********************************************************/
7384 PUBLIC S16 cmUnpkCtfDedReleaseInfo
7386 CtfDedReleaseInfo *param,
7390 PUBLIC S16 cmUnpkCtfDedReleaseInfo(param, mBuf)
7391 CtfDedReleaseInfo *param;
7396 TRC3(cmUnpkCtfDedReleaseInfo)
7398 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7399 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7400 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7406 /***********************************************************
7408 * Func: cmPkCtfCfgInfo
7411 * Desc: Configuration Information
7412 * @details This structure contains the information for setting-up
7413 * cell or UE-specific configuration at PHY.
7422 **********************************************************/
7424 PUBLIC S16 cmPkCtfCfgInfo
7430 PUBLIC S16 cmPkCtfCfgInfo(param, mBuf)
7436 TRC3(cmPkCtfCfgInfo)
7438 switch(param->cfgElem) {
7440 CMCHKPK(cmPkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7443 CMCHKPK(cmPkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7448 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7454 /***********************************************************
7456 * Func: cmUnpkCtfCfgInfo
7459 * Desc: Configuration Information
7460 * @details This structure contains the information for setting-up
7461 * cell or UE-specific configuration at PHY.
7470 **********************************************************/
7472 PUBLIC S16 cmUnpkCtfCfgInfo
7478 PUBLIC S16 cmUnpkCtfCfgInfo(param, mBuf)
7484 TRC3(cmUnpkCtfCfgInfo)
7486 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7487 switch(param->cfgElem) {
7489 CMCHKUNPK(cmUnpkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7492 CMCHKUNPK(cmUnpkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7502 /***********************************************************
7504 * Func: cmPkCtfReCfgInfo
7507 * Desc: Re-configuration Information
7508 * @details This structure contains the information for re-configuring
7509 * cell or UE-specific configuration at PHY.
7518 **********************************************************/
7520 PUBLIC S16 cmPkCtfReCfgInfo
7522 CtfReCfgInfo *param,
7526 PUBLIC S16 cmPkCtfReCfgInfo(param, mBuf)
7527 CtfReCfgInfo *param;
7532 TRC3(cmPkCtfReCfgInfo)
7534 switch(param->cfgElem) {
7536 CMCHKPK(cmPkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7539 CMCHKPK(cmPkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7541 /* Starts - Fix for CR ccpu00123185 */
7542 case CTF_TX_PWR_CFG:
7543 CMCHKPK(cmPkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7545 /* ends - Fix for CR ccpu00123185 */
7547 CMCHKPK(cmPkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7553 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7559 /***********************************************************
7561 * Func: cmUnpkCtfReCfgInfo
7564 * Desc: Re-configuration Information
7565 * @details This structure contains the information for re-configuring
7566 * cell or UE-specific configuration at PHY.
7575 **********************************************************/
7577 PUBLIC S16 cmUnpkCtfReCfgInfo
7579 CtfReCfgInfo *param,
7583 PUBLIC S16 cmUnpkCtfReCfgInfo(param, mBuf)
7584 CtfReCfgInfo *param;
7589 TRC3(cmUnpkCtfReCfgInfo)
7591 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7592 switch(param->cfgElem) {
7594 CMCHKUNPK(cmUnpkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7597 CMCHKUNPK(cmUnpkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7599 /* Starts - Fix for CR ccpu00123185 */
7600 case CTF_TX_PWR_CFG:
7601 CMCHKUNPK(cmUnpkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7603 /* ends - Fix for CR ccpu00123185 */
7605 CMCHKUNPK(cmUnpkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7615 /***********************************************************
7617 * Func: cmPkCtfReleaseInfo
7620 * Desc: Release configuration Information
7621 * @details This structure contains the information for releasing
7622 * cell or UE-specific configuration at PHY.
7631 **********************************************************/
7633 PUBLIC S16 cmPkCtfReleaseInfo
7635 CtfReleaseInfo *param,
7639 PUBLIC S16 cmPkCtfReleaseInfo(param, mBuf)
7640 CtfReleaseInfo *param;
7645 TRC3(cmPkCtfReleaseInfo)
7647 switch(param->cfgElem) {
7649 CMCHKPK(cmPkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7652 CMCHKPK(cmPkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7657 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7663 /***********************************************************
7665 * Func: cmUnpkCtfReleaseInfo
7668 * Desc: Release configuration Information
7669 * @details This structure contains the information for releasing
7670 * cell or UE-specific configuration at PHY.
7679 **********************************************************/
7681 PUBLIC S16 cmUnpkCtfReleaseInfo
7683 CtfReleaseInfo *param,
7687 PUBLIC S16 cmUnpkCtfReleaseInfo(param, mBuf)
7688 CtfReleaseInfo *param;
7693 TRC3(cmUnpkCtfReleaseInfo)
7695 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7696 switch(param->cfgElem) {
7698 CMCHKUNPK(cmUnpkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7701 CMCHKUNPK(cmUnpkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7711 /***********************************************************
7713 * Func: cmPkCtfCfgReqInfo
7716 * Desc: Configuration Request information
7717 * @details This is the main structure in the Configuration request primitive.
7718 * -# This structure contains the configuration information as given by
7719 * the RRC to configure PHY layer for common/dedicated resources.
7720 * -# It can contain Config/Reconfig/Release.
7721 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7730 **********************************************************/
7732 PUBLIC S16 cmPkCtfCfgReqInfo
7734 CtfCfgReqInfo *param,
7738 PUBLIC S16 cmPkCtfCfgReqInfo(param, mBuf)
7739 CtfCfgReqInfo *param;
7744 TRC3(cmPkCtfCfgReqInfo)
7746 /* ctf_c_001.main_4: Added support for vendor specific parameters */
7748 CMCHKPK(cmPkCtfVendorSpecParams, ¶m->vendorParams, mBuf);
7750 switch(param->cfgType) {
7752 CMCHKPK(cmPkCtfReleaseInfo, ¶m->u.release, mBuf);
7755 CMCHKPK(cmPkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7758 CMCHKPK(cmPkCtfCfgInfo, ¶m->u.cfg, mBuf);
7763 CMCHKPK(SPkU8, param->cfgType, mBuf);
7769 /* ctf_c_001.main_4: Modified cmUnpkCtfCfgReqInfo() to add support
7770 * for vendor specific parameters */
7771 /***********************************************************
7773 * Func: cmUnpkCtfCfgReqInfo
7776 * Desc: Configuration Request information
7777 * @details This is the main structure in the Configuration request primitive.
7778 * -# This structure contains the configuration information as given by
7779 * the RRC to configure PHY layer for common/dedicated resources.
7780 * -# It can contain Config/Reconfig/Release.
7781 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7790 **********************************************************/
7792 PUBLIC S16 cmUnpkCtfCfgReqInfo
7795 CtfCfgReqInfo *param,
7799 PUBLIC S16 cmUnpkCtfCfgReqInfo(param, mBuf)
7801 CtfCfgReqInfo *param;
7810 TRC3(cmUnpkCtfCfgReqInfo)
7812 CMCHKUNPK(SUnpkU8, ¶m->cfgType, mBuf);
7813 switch(param->cfgType) {
7815 CMCHKUNPK(cmUnpkCtfCfgInfo, ¶m->u.cfg, mBuf);
7818 CMCHKUNPK(cmUnpkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7821 CMCHKUNPK(cmUnpkCtfReleaseInfo, ¶m->u.release, mBuf);
7827 if((retVal = cmUnpkCtfVendorSpecParams(pst, ¶m->vendorParams, mBuf)) != ROK)
7833 /* Starts - Fix for CR ccpu00123185 */
7834 /***********************************************************
7836 * Func: cmPkCtfCellPwrcfgInfo
7839 * Desc: Cell Re-configuration Information
7840 * @details This structure contains the information for reconfiguration of Reference Signal Power
7841 * of a cell and its associated resources at PHY.
7850 **********************************************************/
7852 PUBLIC S16 cmPkCtfCellPwrcfgInfo
7854 CtfCellRecfgInfo *param,
7858 PUBLIC S16 cmPkCtfCellPwrcfgInfo(param, mBuf)
7859 CtfCellRecfgInfo *param;
7864 TRC3(cmPkCtfCellPwrcfgInfo)
7866 /* Added the pack for newly added reference signal Power*/
7867 CMCHKPK(SPkU32, (U32)param->ctfCellStatus, mBuf);
7868 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7869 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7870 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7872 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7873 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7879 /***********************************************************
7881 * Func: cmUnpkCtfCellPwrcfgInfo
7884 * Desc: Cell Re-configuration Information
7885 * @details This structure contains the information for reconfiguration
7886 * of a cell and its associated resources at PHY.
7895 **********************************************************/
7897 PUBLIC S16 cmUnpkCtfCellPwrcfgInfo
7899 CtfCellRecfgInfo *param,
7903 PUBLIC S16 cmUnpkCtfCellPwrcfgInfo(param, mBuf)
7904 CtfCellRecfgInfo *param;
7909 TRC3(cmUnpkCtfCellPwrcfgInfo)
7911 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
7912 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7914 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7915 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7916 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7917 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7918 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ctfCellStatus, mBuf);
7923 /***********************************************************
7925 * Func: cmPkCtfCellStop
7928 * Desc: Cell Re-configuration Information
7929 * @details This structure contains the information for reconfiguration of Reference Signal Power
7930 * of a cell and its associated resources at PHY.
7939 **********************************************************/
7941 PUBLIC S16 cmPkCtfCellStop
7943 CtfCellRecfgInfo *param,
7947 PUBLIC S16 cmPkCtfCellStop(param, mBuf)
7948 CtfCellRecfgInfo *param;
7953 TRC3(cmPkCtfCellStop)
7955 /* Added the pack for newly added reference signal Power*/
7956 CMCHKPK(SPkU32, (U32)param->ctfCellStatus, mBuf);
7957 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7958 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7959 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7961 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7962 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7966 /***********************************************************
7968 * Func: cmUnpkCtfCellStop
7971 * Desc: Cell Re-configuration Information
7972 * @details This structure contains the information for reconfiguration
7973 * of a cell and its associated resources at PHY.
7982 **********************************************************/
7984 PUBLIC S16 cmUnpkCtfCellStop
7986 CtfCellRecfgInfo *param,
7990 PUBLIC S16 cmUnpkCtfCellStop(param, mBuf)
7991 CtfCellRecfgInfo *param;
7996 TRC3(cmUnpkCtfCellStop)
7998 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
8000 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
8001 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
8002 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
8003 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
8004 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ctfCellStatus, mBuf);
8009 /* Periodic REM Scan for TPM */
8010 /***********************************************************
8012 * Func: cmPkPerRemScanCellInfo
8015 * Desc: Periodic REM cell search response
8016 * @details This Message contains cell search results.
8025 **********************************************************/
8027 PUBLIC S16 cmPkPerRemScanCellInfo
8029 CtfPeriodicRemCellInfo *param,
8033 PUBLIC S16 cmPkPerRemScanCellInfo(param, mBuf)
8034 CtfPeriodicRemCellInfo *param;
8038 TRC3(cmPkPerRemScanCellInfo)
8040 CMCHKPK(SPkU16,param->pci, mBuf);
8041 CMCHKPK(SPkU8, param->rsrp, mBuf);
8042 CMCHKPK(SPkU8, param->dlBw, mBuf);
8043 CMCHKPK(SPkU8, param->numTx, mBuf);
8048 /***********************************************************
8050 * Func: cmPkCtfPeriodicCellSearchRsp
8053 * Desc: Periodic REM cell search response
8054 * @details This Message contains Periodic REM scan results.
8063 **********************************************************/
8065 PUBLIC S16 cmPkCtfPeriodicCellSearchRsp
8067 CtfPeriodicRemCellSearchRsp *param,
8071 PUBLIC S16 cmPkCtfPeriodicCellSearchRsp(param, mBuf)
8072 CtfPeriodicRemCellSearchRsp *param;
8077 TRC3(cmPkCtfPeriodicCellSearchRsp)
8079 for(idx = param->numCells - 1; idx >=0; idx--)
8081 CMCHKPK(cmPkPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8083 CMCHKPK(SPkU8, param->numCells, mBuf);
8089 * @brief Configuration Request from App to CL for
8090 * cnm Init Sync responce
8094 * Function: cmPkCtfPeriodicRemCellSearchRsp
8096 * @param[in] Pst* pst
8097 * @param[in] SpId spId
8098 * @param[in] CtfCfgTransId * transId
8099 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
8104 PUBLIC S16 cmPkCtfPeriodicRemCellSearchRsp
8108 CtfCfgTransId *transId,
8109 CtfPeriodicRemCellSearchRsp *CellCfgRsp
8112 PUBLIC S16 cmPkCtfPeriodicRemCellSearchRsp(pst, spId, transId, CellCfgRsp)
8115 CtfCfgTransId *transId;
8116 CtfPeriodicRemCellSearchRsp *CellCfgRsp;
8119 Buffer *mBuf = NULLP;
8120 TRC3(cmPkCtfPeriodicRemCellSearchRsp)
8122 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
8123 #if (ERRCLASS & ERRCLS_ADD_RES)
8124 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8125 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8126 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8127 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
8129 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8130 sizeof(CtfPeriodicRemCellSearchRsp));
8133 if (pst->selector == CTF_SEL_LC) {
8134 if (cmPkCtfPeriodicCellSearchRsp(CellCfgRsp, mBuf) != ROK) {
8135 #if (ERRCLASS & ERRCLS_ADD_RES)
8136 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8137 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8138 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8139 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
8141 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8142 sizeof(CtfPeriodicRemCellSearchRsp));
8147 else if (pst->selector == CTF_SEL_LWLC) {
8149 if (cmPkPtr((PTR)CellCfgRsp, mBuf) != ROK) {
8150 #if (ERRCLASS & ERRCLS_ADD_RES)
8151 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8152 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8153 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8154 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
8156 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8157 sizeof(CtfPeriodicRemCellSearchRsp));
8163 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
8164 #if (ERRCLASS & ERRCLS_ADD_RES)
8165 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8166 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8167 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8168 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
8170 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8171 sizeof(CtfPeriodicRemCellSearchRsp));
8175 if (SPkS16(spId, mBuf) != ROK) {
8176 #if (ERRCLASS & ERRCLS_ADD_RES)
8177 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8178 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8179 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8180 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
8182 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8183 sizeof(CtfPeriodicRemCellSearchRsp));
8187 if (pst->selector != CTF_SEL_LWLC) {
8188 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8189 sizeof(CtfPeriodicRemCellSearchRsp));
8191 pst->event = (Event)EVTCTFPREMCELLSRCHRSP;
8192 RETVALUE(SPstTsk(pst,mBuf));
8196 PUBLIC S16 cmUnpkCtfPerRemScanCellInfo
8198 CtfPeriodicRemCellInfo *param,
8202 PUBLIC S16 cmUnpkCtfPerRemScanCellInfo(param, mBuf)
8203 CtfPeriodicRemCellInfo *param;
8207 TRC3(cmUnpkCtfPerRemScanCellInfo);
8209 CMCHKUNPK(SUnpkU8, ¶m->numTx, mBuf);
8210 CMCHKUNPK(SUnpkU8, ¶m->dlBw, mBuf);
8211 CMCHKUNPK(SUnpkU8, ¶m->rsrp, mBuf);
8212 CMCHKUNPK(SUnpkU16, ¶m->pci, mBuf);
8217 PUBLIC S16 cmUnpkCtfPerRemCellSrch
8219 CtfPeriodicRemCellSearchRsp *param,
8223 PUBLIC S16 cmUnpkCtfPerRemCellSrch(param, mBuf)
8224 CtfPeriodicRemCellSearchRsp *param;
8229 TRC3(cmUnpkCtfPerRemCellSrch);
8231 CMCHKUNPK(SUnpkU8, ¶m->numCells, mBuf);
8232 for(idx = 0; idx < (param->numCells); idx++)
8234 CMCHKUNPK(cmUnpkCtfPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8241 * @brief ENB STOP Indication from PHY to ENB-APP
8245 * Function: cmUnpkPerRemCellSrchRsp
8247 * @param[in] Pst* pst
8248 * @param[in] SuId suId
8249 * @param[in] CtfCfgTransId transId
8254 PUBLIC S16 cmUnpkPerRemCellSrchRsp
8256 CtfPerRemCellSrchRsp func,
8261 PUBLIC S16 cmUnpkPerRemCellSrchRsp(func, pst, mBuf)
8262 CtfPerRemCellSrchRsp func;
8268 CtfCfgTransId transId;
8269 CtfPeriodicRemCellSearchRsp *CellSrchRsp = NULLP;
8270 TRC3(cmUnpkPerRemCellSrchRsp)
8272 if (SUnpkS16(&suId, mBuf) != ROK) {
8274 #if (ERRCLASS & ERRCLS_ADD_RES)
8275 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8276 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8277 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8278 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
8282 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
8284 #if (ERRCLASS & ERRCLS_ADD_RES)
8285 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8286 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8287 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8288 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
8292 if (pst->selector != CTF_SEL_LWLC) {
8293 if ((SGetSBuf(pst->region, pst->pool, (Data **)&CellSrchRsp,
8294 sizeof(CtfPeriodicRemCellSearchRsp))) != ROK) {
8295 #if (ERRCLASS & ERRCLS_ADD_RES)
8296 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8297 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8298 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8299 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
8305 if (pst->selector == CTF_SEL_LWLC) {
8306 if (cmUnpkPtr((PTR *)&CellSrchRsp, mBuf) != ROK) {
8311 else if (pst->selector == CTF_SEL_LC)
8312 if (cmUnpkCtfPerRemCellSrch(CellSrchRsp, mBuf) != ROK) {
8313 SPutSBuf(pst->region, pst->pool, (Data *)CellSrchRsp,
8314 sizeof(CtfPeriodicRemCellSearchRsp));
8316 #if (ERRCLASS & ERRCLS_ADD_RES)
8317 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8318 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8319 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8320 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
8326 RETVALUE((*func)(pst, suId, &transId, CellSrchRsp));
8328 /* Periodic REM Scan for TPM End */
8330 /* ends - Fix for CR ccpu00123185 */
8333 /**********************************************************************
8335 **********************************************************************/