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 (cmPkCtfCfgTransId(&transId, 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)ECTF019, (ErrVal)0, (Txt*)&"Packing failed");
738 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
742 if (SPkS16(spId, mBuf) != ROK) {
743 #if (ERRCLASS & ERRCLS_ADD_RES)
744 /* ctf_c_001.main_3 Compilation warning fix with g++ */
745 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
746 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
747 (ErrVal)ECTF020, (ErrVal)0, (Txt*)&"Packing failed");
749 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
753 if (pst->selector != CTF_SEL_LWLC) {
754 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo)) != ROK) {
755 #if (ERRCLASS & ERRCLS_ADD_RES)
756 /* ctf_c_001.main_3 Compilation warning fix with g++ */
757 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
758 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
759 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
765 pst->event = (Event) EVTCTFKDFREQ;
766 RETVALUE(SPstTsk(pst,mBuf));
770 /********************************************************************************************************************************/
771 /*START OF CNM PACK & UNPACK FUNCTIONS*/
772 /********************************************************************************************************************************/
774 PUBLIC S16 cmPkCtfCnmVendorSpecificInfo
776 CtfCnmVendorSpecificInfo *param,
780 CtfCnmVendorSpecificInfo *param;
785 TRC3(cmPkCtfCnmVendorSpecificInfo);
786 if(param->numOfVendorSpecifcParam <= CTF_CNM_MAX_VENDOR_PARAMS)
788 for(i= param->numOfVendorSpecifcParam-1; i >= 0; i--)
790 CMCHKPK(SPkU32,(U32)param->vendorSpecifcParam[i], mBuf);
793 CMCHKPK(SPkU16, param->numOfVendorSpecifcParam, mBuf);
798 PUBLIC S16 cmPkCtfCtfCnmCellSyncReq
800 CtfCnmCellSyncReq *param,
804 PUBLIC S16 cmPkCtfCtfCnmCellSyncReq(param, mBuf)
805 CtfCnmCellSyncReq *param;
810 TRC3(cmPkCtfCtfCnmCellSyncReq);
811 CMCHKPK(SPkU16, param->nbrEarfcn, mBuf);
812 CMCHKPK(SPkU16, param->nbrPCellId, mBuf);
813 CMCHKPK(SPkU8, param->nbrTxAntCount, mBuf);
814 CMCHKPK(SPkU8, param->nbrCellCp, mBuf);
815 CMCHKPK(SPkU8, param->nbrCellNRb, mBuf);
816 CMCHKPK(SPkU8, param->nbrSpecSfCfg, mBuf);
817 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
823 PUBLIC S16 cmPkCtfcfgReqInfo
825 CtfCnmInitSyncReq *param,
829 PUBLIC S16 cmPkCtfcfgReqInfo(param, mBuf)
830 CtfCnmInitSyncReq *param;
835 TRC3(cmPkCtfcfgReqInfo);
837 CMCHKPK(SPkU8, param->searchType, mBuf);
838 CMCHKPK(SPkU8, param->mibRequest, mBuf);
839 CMCHKPK(SPkU16, param->earfcn, mBuf);
840 CMCHKPK(SPkU8, param->measBandWidth, mBuf);
841 if(param->numOfPciList <= CTF_CNM_MAX_CELL_SEARCH)
843 for(i= param->numOfPciList-1; i >= 0; i--)
845 CMCHKPK(cmPkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
848 CMCHKPK(SPkU16, param->numOfPciList, mBuf);
853 PUBLIC S16 cmUnpkCtfCnmVendorSpecificInfo
855 CtfCnmVendorSpecificInfo *param,
859 PUBLIC S16 cmUnpkCtfCnmVendorSpecificInfo(param, mBuf)
860 CtfCnmVendorSpecificInfo *param;
865 TRC3(cmUnpkCtfCnmVendorSpecificInfo);
867 CMCHKUNPK(SUnpkU16, ¶m->numOfVendorSpecifcParam, mBuf);
868 for(i=0; (i<param->numOfVendorSpecifcParam)&&(i < CTF_CNM_MAX_VENDOR_PARAMS); i++)
870 CMCHKUNPK(SUnpkU32, ¶m->vendorSpecifcParam[i], mBuf);
876 PUBLIC S16 cmUnpkCtfCtfCnmCellSyncReq
878 CtfCnmCellSyncReq *param,
882 PUBLIC S16 cmUnpkCtfCtfCnmCellSyncReq(param, mBuf)
883 CtfCnmCellSyncReq *param;
887 TRC3(cmUnpkCtfCtfCnmCellSyncReq);
890 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
891 CMCHKUNPK(SUnpkU8, ¶m->nbrSpecSfCfg, mBuf);
892 CMCHKUNPK(SUnpkU8, ¶m->nbrCellNRb, mBuf);
893 CMCHKUNPK(SUnpkU8, ¶m->nbrCellCp, mBuf);
894 CMCHKUNPK(SUnpkU8, ¶m->nbrTxAntCount, mBuf);
895 CMCHKUNPK(SUnpkU16, ¶m->nbrPCellId, mBuf);
896 CMCHKUNPK(SUnpkU16, ¶m->nbrEarfcn, mBuf);
902 PUBLIC S16 cmUnpkCtfsyncReqInfo
904 CtfCnmInitSyncReq *param,
908 PUBLIC S16 cmUnpkCtfsyncReqInfo(param, mBuf)
909 CtfCnmInitSyncReq *param;
914 TRC3(cmUnpkCtfsyncReqInfo);
916 CMCHKUNPK(SUnpkU16, ¶m->numOfPciList, mBuf);
917 for(i=0; (i < param->numOfPciList)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
919 CMCHKUNPK(cmUnpkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
922 CMCHKUNPK(SUnpkU8, ¶m->measBandWidth, mBuf);
923 CMCHKUNPK(SUnpkU16, ¶m->earfcn, mBuf);
924 CMCHKUNPK(SUnpkU8, ¶m->mibRequest, mBuf);
925 CMCHKUNPK(SUnpkU8, ¶m->searchType, mBuf);
929 * @brief Configuration Request from App to CL for
930 * cnm Cell Sync request.
934 * Function: cmPkCtfCnmCellSyncReq
936 * @param[in] Pst* pst
937 * @param[in] SpId spId
938 * @param[in] CtfCfgTransId * transId
939 * @param[in] CtfCnmCellSyncReq* ctfcnmCellSyncReq
944 PUBLIC S16 cmPkCtfCnmCellSyncReq
948 CtfCfgTransId *transId,
949 CtfCnmCellSyncReq * cfgReqInfo
952 PUBLIC S16 cmPkCtfCnmCellSyncReq(pst, spId, transId, cfgReqInfo)
955 CtfCfgTransId *transId;
956 CtfCnmCellSyncReq * cfgReqInfo;
960 Buffer *mBuf = NULLP;
962 TRC3(cmPkCtfCnmCellSyncReq)
964 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
965 #if (ERRCLASS & ERRCLS_ADD_RES)
966 /* ctf_c_001.main_3 Compilation warning fix with g++ */
967 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
968 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
969 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
971 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
974 if (pst->selector == CTF_SEL_LC) {
975 if (cmPkCtfCtfCnmCellSyncReq(cfgReqInfo, mBuf) != ROK) {
976 #if (ERRCLASS & ERRCLS_ADD_RES)
977 /* ctf_c_001.main_3 Compilation warning fix with g++ */
978 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
979 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
980 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
982 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
987 else if (pst->selector == CTF_SEL_LWLC) {
989 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
990 #if (ERRCLASS & ERRCLS_ADD_RES)
991 /* ctf_c_001.main_3 Compilation warning fix with g++ */
992 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
993 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
994 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
996 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1002 if(cmPkCtfCfgTransId(transId, 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)ECTF019, (ErrVal)0, "Packing failed");
1009 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1013 if (SPkS16(spId, mBuf) != ROK) {
1014 #if (ERRCLASS & ERRCLS_ADD_RES)
1015 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1016 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1017 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1018 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1020 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1024 if (pst->selector != CTF_SEL_LWLC) {
1025 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1027 pst->event = (Event)EVTCTFCNMSYNCREQ;
1028 RETVALUE(SPstTsk(pst,mBuf));
1032 * @brief Configuration Request from RRC to PHY for
1033 * cell or dedicated configuration.
1037 * Function: cmUnpkCtfCnmCellSyncReq
1039 * @param[in] CtfCnmCellSyncReqMsg func
1040 * @param[in] Pst* pst
1041 * @param[in] Buffer *mBuf
1046 PUBLIC S16 cmUnpkCtfCnmCellSyncReq
1048 CtfCnmCellSyncReqMsg func,
1053 PUBLIC S16 cmUnpkCtfCnmCellSyncReq(func, pst, mBuf)
1054 CtfCnmCellSyncReqMsg func;
1061 CtfCfgTransId transId;
1062 CtfCnmCellSyncReq *SyncReqMsg = NULLP;
1063 TRC3(cmUnpkCtfCnmCellSyncReq)
1065 if (SUnpkS16(&spId, mBuf) != ROK) {
1067 #if (ERRCLASS & ERRCLS_ADD_RES)
1068 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1069 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1070 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1071 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1075 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1077 #if (ERRCLASS & ERRCLS_ADD_RES)
1078 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1079 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1080 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1081 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1085 if (pst->selector != CTF_SEL_LWLC) {
1086 if ((SGetSBuf(pst->region, pst->pool, (Data **)&SyncReqMsg, sizeof(CtfCnmCellSyncReq))) != ROK) {
1087 #if (ERRCLASS & ERRCLS_ADD_RES)
1088 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1089 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1090 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1091 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1097 if (pst->selector == CTF_SEL_LWLC) {
1098 if (cmUnpkPtr((PTR *)&SyncReqMsg, mBuf) != ROK) {
1103 else if (pst->selector == CTF_SEL_LC)
1104 if (cmUnpkCtfCtfCnmCellSyncReq(SyncReqMsg, mBuf) != ROK) {
1105 SPutSBuf(pst->region, pst->pool, (Data *)SyncReqMsg, sizeof(CtfCnmCellSyncReq));
1107 #if (ERRCLASS & ERRCLS_ADD_RES)
1108 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1109 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1110 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1111 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1116 RETVALUE((*func)(pst, spId, &transId, SyncReqMsg));
1119 /*-----------------------------------------------------*/
1123 * @brief Configuration Request from App to CL for
1124 * cnm Init Sync request.
1128 * Function: cmPkCtfCnmInitSyncReq
1130 * @param[in] Pst* pst
1131 * @param[in] SpId spId
1132 * @param[in] CtfCfgTransId * transId
1133 * @param[in] CtfCnmInitSyncReq* ctfcnmInitSyncReq
1138 PUBLIC S16 cmPkCtfCnmInitSyncReq
1142 CtfCfgTransId *transId,
1143 CtfCnmInitSyncReq * cfgReqInfo
1146 PUBLIC S16 cmPkCtfCnmInitSyncReq(pst, spId, transId, cfgReqInfo)
1149 CtfCfgTransId *transId;
1150 CtfCnmInitSyncReq * cfgReqInfo;
1153 Buffer *mBuf = NULLP;
1155 TRC3(cmPkCtfCnmInitSyncReq)
1157 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1158 #if (ERRCLASS & ERRCLS_ADD_RES)
1159 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1160 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1161 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1162 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1164 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1167 if (pst->selector == CTF_SEL_LC) {
1168 if (cmPkCtfcfgReqInfo(cfgReqInfo, mBuf) != ROK) {
1169 #if (ERRCLASS & ERRCLS_ADD_RES)
1170 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1171 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1172 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1173 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1175 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1180 else if (pst->selector == CTF_SEL_LWLC) {
1182 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
1183 #if (ERRCLASS & ERRCLS_ADD_RES)
1184 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1185 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1186 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1187 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1189 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1195 if(cmPkCtfCfgTransId(transId, 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)ECTF019, (ErrVal)0, "Packing failed");
1202 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1206 if (SPkS16(spId, mBuf) != ROK) {
1207 #if (ERRCLASS & ERRCLS_ADD_RES)
1208 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1209 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1210 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1211 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1213 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1217 if (pst->selector != CTF_SEL_LWLC) {
1218 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1220 pst->event = (Event)EVTCTFCNMINITSYNCREQ;
1221 RETVALUE(SPstTsk(pst,mBuf));
1224 /*-----------------------------------------------------------------*/
1227 * @brief Configuration Request from RRC to PHY for
1228 * cell or dedicated configuration.
1232 * Function: cmUnpkCtfCnmInitSyncReq
1234 * @param[in] CtfCnmInitSyncReqMsg func
1235 * @param[in] Pst* pst
1236 * @param[in] Buffer *mBuf
1241 PUBLIC S16 cmUnpkCtfCnmInitSyncReq
1243 CtfCnmInitSyncReqMsg func,
1248 PUBLIC S16 cmUnpkCtfCnmInitSyncReq(func, pst, mBuf)
1249 CtfCnmInitSyncReqMsg func;
1256 CtfCfgTransId transId;
1257 CtfCnmInitSyncReq *syncReqInfo = NULLP;
1258 TRC3(cmUnpkCtfCnmInitSyncReq)
1260 if (SUnpkS16(&spId, mBuf) != ROK) {
1262 #if (ERRCLASS & ERRCLS_ADD_RES)
1263 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1264 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1265 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1266 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1270 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1272 #if (ERRCLASS & ERRCLS_ADD_RES)
1273 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1274 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1275 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1276 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1280 if (pst->selector != CTF_SEL_LWLC) {
1281 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncReqInfo, sizeof(CtfCnmInitSyncReq))) != ROK) {
1282 #if (ERRCLASS & ERRCLS_ADD_RES)
1283 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1284 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1285 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1286 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1292 if (pst->selector == CTF_SEL_LWLC) {
1293 if (cmUnpkPtr((PTR *)&syncReqInfo, mBuf) != ROK) {
1298 else if (pst->selector == CTF_SEL_LC)
1299 if (cmUnpkCtfsyncReqInfo(syncReqInfo, mBuf) != ROK) {
1300 SPutSBuf(pst->region, pst->pool, (Data *)syncReqInfo, sizeof(CtfCnmInitSyncReq));
1302 #if (ERRCLASS & ERRCLS_ADD_RES)
1303 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1304 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1305 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1306 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1311 RETVALUE((*func)(pst, spId, &transId, syncReqInfo));
1313 /*-----------------------------------------------------------------------------*/
1316 PUBLIC S16 cmPkCtfctfCnmMibInfo
1318 CtfCnmMibInfo *param,
1322 PUBLIC S16 cmPkCtfctfCnmMibInfo(param, mBuf)
1323 CtfCnmMibInfo *param;
1327 TRC3(cmPkCtfctfCnmMibInfo)
1329 CMCHKPK(SPkU16, param->sfn, mBuf);
1330 CMCHKPK(SPkU8, param->numTxAntennas, mBuf);
1331 CMCHKPK(SPkU8, param->phichDuration, mBuf);
1332 CMCHKPK(SPkU8, param->phichResource, mBuf);
1333 CMCHKPK(SPkU8, param->dlSystemBandWidht, mBuf);
1339 PUBLIC S16 cmPkCtfctfCnmInitSyncInfo
1341 CtfCnmInitSyncInfo *param,
1345 PUBLIC S16 cmPkCtfctfCnmInitSyncInfo(param, mBuf)
1346 CtfCnmInitSyncInfo *param;
1350 TRC3(cmPkCtfctfCnmInitSyncInfo)
1352 CMCHKPK(SPkU16, param->pci, mBuf);
1353 CMCHKPK(SPkU8, param->rsrp, mBuf);
1354 CMCHKPK(SPkU8, param->mibValidFlag, mBuf);
1355 CMCHKPK(SPkU16, param->localSfn, mBuf);
1356 CMCHKPK(cmPkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1357 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1363 PUBLIC S16 cmPkCtfcfgRspInfo
1365 CtfCnmInitSyncRsp *param,
1369 PUBLIC S16 cmPkCtfcfgRspInfo(param, mBuf)
1370 CtfCnmInitSyncRsp *param;
1375 TRC3(cmPkCtfcfgRspInfo)
1378 CMCHKPK(SPkU8, param->status, mBuf);
1379 CMCHKPK(SPkU16, param->earfcn, mBuf);
1380 if(param->numOfNeighbourInfo <= CTF_CNM_MAX_CELL_SEARCH)
1382 for(i= param->numOfNeighbourInfo-1; i >= 0; i--)
1384 CMCHKPK(cmPkCtfctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1387 CMCHKPK(SPkU8, param->numOfNeighbourInfo, mBuf);
1393 * @brief Configuration Request from App to CL for
1394 * cnm Init Sync responce
1398 * Function: cmPkCtfCnmInitSyncRsp
1400 * @param[in] Pst* pst
1401 * @param[in] SpId spId
1402 * @param[in] CtfCfgTransId * transId
1403 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
1408 PUBLIC S16 cmPkCtfCnmInitSyncRsp
1412 CtfCfgTransId *transId,
1413 CtfCnmInitSyncRsp * cfgRspInfo
1416 PUBLIC S16 cmPkCtfCnmInitSyncRsp(pst, spId, transId, cfgRspInfo)
1419 CtfCfgTransId *transId;
1420 CtfCnmInitSyncRsp * cfgRspInfo;
1423 Buffer *mBuf = NULLP;
1424 TRC3(cmPkCtfCnmInitSyncRsp)
1426 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1427 #if (ERRCLASS & ERRCLS_ADD_RES)
1428 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1429 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1430 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1431 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1433 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1436 if (pst->selector == CTF_SEL_LC) {
1437 if (cmPkCtfcfgRspInfo(cfgRspInfo, mBuf) != ROK) {
1438 #if (ERRCLASS & ERRCLS_ADD_RES)
1439 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1440 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1441 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1442 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1444 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1449 else if (pst->selector == CTF_SEL_LWLC) {
1451 if (cmPkPtr((PTR)cfgRspInfo, mBuf) != ROK) {
1452 #if (ERRCLASS & ERRCLS_ADD_RES)
1453 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1454 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1455 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1456 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1458 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1464 if(cmPkCtfCfgTransId(transId, 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)ECTF019, (ErrVal)0, "Packing failed");
1471 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1475 if (SPkS16(spId, mBuf) != ROK) {
1476 #if (ERRCLASS & ERRCLS_ADD_RES)
1477 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1478 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1479 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1480 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1482 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1486 if (pst->selector != CTF_SEL_LWLC) {
1487 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1489 pst->event = (Event)EVTCTFCNMINITSYNCRSP;
1490 RETVALUE(SPstTsk(pst,mBuf));
1493 /*-----------------------------------------------------------------------------*/
1496 PUBLIC S16 cmUnpkCtfctfCnmMibInfo
1498 CtfCnmMibInfo *param,
1502 PUBLIC S16 cmUnpkCtfctfCnmMibInfo(param, mBuf)
1503 CtfCnmMibInfo *param;
1507 TRC3(cmUnpkCtfctfCnmMibInfo);
1510 CMCHKUNPK(SUnpkU8, ¶m->dlSystemBandWidht, mBuf);
1511 CMCHKUNPK(SUnpkU8, ¶m->phichResource, mBuf);
1512 CMCHKUNPK(SUnpkU8, ¶m->phichDuration, mBuf);
1513 CMCHKUNPK(SUnpkU8, ¶m->numTxAntennas, mBuf);
1514 CMCHKUNPK(SUnpkU16, ¶m->sfn, mBuf);
1520 PUBLIC S16 cmUnpkctfCnmInitSyncInfo
1522 CtfCnmInitSyncInfo *param,
1526 PUBLIC S16 cmUnpkctfCnmInitSyncInfo(param, mBuf)
1527 CtfCnmInitSyncInfo *param;
1531 TRC3(cmUnpkctfCnmInitSyncInfo);
1533 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1534 CMCHKUNPK(cmUnpkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1535 CMCHKUNPK(SUnpkU16, ¶m->localSfn, mBuf);
1536 CMCHKUNPK(SUnpkU8, ¶m->mibValidFlag, mBuf);
1537 CMCHKUNPK(SUnpkU8, ¶m->rsrp, mBuf);
1538 CMCHKUNPK(SUnpkU16, ¶m->pci, mBuf);
1544 PUBLIC S16 cmUnpkCtfCnmInitSyncRspMsg
1546 CtfCnmInitSyncRsp *param,
1550 PUBLIC S16 cmUnpkCtfCnmInitSyncRspMsg(param, mBuf)
1551 CtfCnmInitSyncRsp *param;
1556 TRC3(cmUnpkCtfCnmInitSyncRspMsg);
1559 CMCHKUNPK(SUnpkU8, ¶m->numOfNeighbourInfo, mBuf);
1560 for(i=0; (i < param->numOfNeighbourInfo)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
1562 CMCHKUNPK(cmUnpkctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1564 CMCHKUNPK(SUnpkU16, ¶m->earfcn, mBuf);
1565 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
1570 * @brief Configuration Request from RRC to PHY for
1571 * cell or dedicated configuration.
1575 * Function: cmUnpkCtfCnmInitSyncRsp
1577 * @param[in] CtfCnmInitSyncRspMsg func
1578 * @param[in] Pst* pst
1579 * @param[in] Buffer *mBuf
1584 PUBLIC S16 cmUnpkCtfCnmInitSyncRsp
1586 CtfCnmInitSyncRspMsg func,
1591 PUBLIC S16 cmUnpkCtfCnmInitSyncRsp(func, pst, mBuf)
1592 CtfCnmInitSyncRspMsg func;
1599 CtfCfgTransId transId;
1600 CtfCnmInitSyncRsp *syncRspInfo = NULLP;
1601 TRC3(cmUnpkCtfCnmInitSyncRsp)
1603 if (SUnpkS16(&spId, mBuf) != ROK) {
1605 #if (ERRCLASS & ERRCLS_ADD_RES)
1606 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1607 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1608 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1609 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1613 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1615 #if (ERRCLASS & ERRCLS_ADD_RES)
1616 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1617 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1618 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1619 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1623 if (pst->selector != CTF_SEL_LWLC) {
1624 if((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspInfo, sizeof(CtfCnmInitSyncRsp))) != ROK) {
1625 #if (ERRCLASS & ERRCLS_ADD_RES)
1626 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1627 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1628 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1629 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1635 if (pst->selector == CTF_SEL_LWLC) {
1636 if(cmUnpkPtr((PTR *)&syncRspInfo, mBuf) != ROK) {
1641 else if (pst->selector == CTF_SEL_LC)
1642 if(cmUnpkCtfCnmInitSyncRspMsg(syncRspInfo, mBuf) != ROK) {
1643 SPutSBuf(pst->region, pst->pool, (Data *)syncRspInfo, sizeof(CtfCnmInitSyncRsp));
1645 #if (ERRCLASS & ERRCLS_ADD_RES)
1646 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1647 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1648 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1649 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1654 RETVALUE((*func)(pst, spId, &transId, syncRspInfo));
1657 /*-----------------------------------------------------------------------*/
1660 PUBLIC S16 cmPkCtfCellSyncRsp
1662 CtfCnmCellSyncRsp *param,
1666 PUBLIC S16 cmPkCtfCellSyncRsp(param, mBuf)
1667 CtfCnmCellSyncRsp *param;
1672 TRC3(cmPkCtfCellSyncRsp)
1674 CMCHKPK(SPkU8, param->status, mBuf);
1679 * @brief Configuration Request from App to CL for
1680 * cnm Init Sync responce.
1684 * Function: cmPkCtfCnmCellSyncRsp
1686 * @param[in] Pst* pst
1687 * @param[in] SpId spId
1688 * @param[in] CtfCfgTransId * transId
1689 * @param[in] CtfCnmCellSyncRsp* ctfcnmCellSyncRsp
1694 PUBLIC S16 cmPkCtfCnmCellSyncRsp
1698 CtfCfgTransId *transId,
1699 CtfCnmCellSyncRsp * cfgRspInfo
1702 PUBLIC S16 cmPkCtfCnmCellSyncRsp(pst, spId, transId, cfgRspInfo)
1705 CtfCfgTransId *transId;
1706 CtfCnmCellSyncRsp * cfgRspInfo;
1710 Buffer *mBuf = NULLP;
1711 TRC3(cmPkCtfCnmCellSyncRsp)
1713 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1714 #if (ERRCLASS & ERRCLS_ADD_RES)
1715 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1716 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1717 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1718 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1720 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1723 if (pst->selector == CTF_SEL_LC) {
1724 if (cmPkCtfCellSyncRsp(cfgRspInfo, mBuf) != ROK) {
1725 #if (ERRCLASS & ERRCLS_ADD_RES)
1726 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1727 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1728 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1729 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1731 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1736 else if (pst->selector == CTF_SEL_LWLC) {
1738 if (cmPkPtr((PTR)cfgRspInfo, mBuf) != ROK) {
1739 #if (ERRCLASS & ERRCLS_ADD_RES)
1740 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1741 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1742 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1743 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1745 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1751 if(cmPkCtfCfgTransId(transId, 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)ECTF019, (ErrVal)0, "Packing failed");
1758 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1762 if (SPkS16(spId, mBuf) != ROK) {
1763 #if (ERRCLASS & ERRCLS_ADD_RES)
1764 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1765 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1766 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1767 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1769 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1773 if (pst->selector != CTF_SEL_LWLC) {
1774 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1776 pst->event = (Event)EVTCTFCNMSYNCRSP;
1777 RETVALUE(SPstTsk(pst,mBuf));
1781 /*------------------------------------------------------------*/
1784 PUBLIC S16 cmUnpkCtfCnmSyncRspMsg
1786 CtfCnmCellSyncRsp *param,
1790 PUBLIC S16 cmUnpkCtfCnmSyncRspMsg(param, mBuf)
1791 CtfCnmCellSyncRsp *param;
1796 TRC3(cmUnpkCtfCnmSyncRspMsg);
1798 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
1803 * @brief Configuration Request from RRC to PHY for
1804 * cell or dedicated configuration.
1808 * Function: cmUnpkCtfCnmCellSyncRsp
1810 * @param[in] CtfCnmCellSyncRspMsg func
1811 * @param[in] Pst* pst
1812 * @param[in] Buffer *mBuf
1817 PUBLIC S16 cmUnpkCtfCnmCellSyncRsp
1819 CtfCnmCellSyncRspMsg func,
1824 PUBLIC S16 cmUnpkCtfCnmCellSyncRsp(func, pst, mBuf)
1825 CtfCnmCellSyncRspMsg func;
1832 CtfCfgTransId transId;
1833 CtfCnmCellSyncRsp *syncRspMsg = NULLP;
1834 TRC3(cmUnpkCtfCnmCellSyncRsp)
1836 if (SUnpkS16(&spId, mBuf) != ROK) {
1838 #if (ERRCLASS & ERRCLS_ADD_RES)
1839 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1840 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1841 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1842 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1846 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1848 #if (ERRCLASS & ERRCLS_ADD_RES)
1849 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1850 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1851 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1852 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1856 if (pst->selector != CTF_SEL_LWLC) {
1857 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspMsg, sizeof(CtfCnmCellSyncRsp))) != ROK) {
1858 #if (ERRCLASS & ERRCLS_ADD_RES)
1859 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1860 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1861 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1862 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1868 if (pst->selector == CTF_SEL_LWLC) {
1869 if (cmUnpkPtr((PTR *)&syncRspMsg, mBuf) != ROK) {
1874 else if (pst->selector == CTF_SEL_LC)
1875 if (cmUnpkCtfCnmSyncRspMsg(syncRspMsg, mBuf) != ROK) {
1876 SPutSBuf(pst->region, pst->pool, (Data *)syncRspMsg, sizeof(CtfCnmCellSyncRsp));
1878 #if (ERRCLASS & ERRCLS_ADD_RES)
1879 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1880 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1881 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1882 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1887 RETVALUE((*func)(pst, spId, &transId, syncRspMsg));
1890 /*---------------------------------------------------------------*/
1893 PUBLIC S16 cmPkCtfcfgIndInfo
1895 CtfCnmCellSyncInd *param,
1899 PUBLIC S16 cmPkCtfcfgIndInfo(param, mBuf)
1900 CtfCnmCellSyncInd *param;
1905 TRC3(cmPkCtfcfgIndInfo);
1907 CMCHKPK(SPkU8, param->status, mBuf);
1908 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1913 * @brief Configuration Request from App to CL for
1914 * cnm Init Sync responce.
1918 * Function: cmPkCtfCnmCellSyncInd
1920 * @param[in] Pst* pst
1921 * @param[in] SpId spId
1922 * @param[in] CtfCfgTransId * transId
1923 * @param[in] CtfCnmCellSyncInd* ctfcnmCellSyncInd
1928 PUBLIC S16 cmPkCtfCnmCellSyncInd
1932 CtfCfgTransId *transId,
1933 CtfCnmCellSyncInd * cfgIndInfo
1936 PUBLIC S16 cmPkCtfCnmCellSyncInd(pst, spId, transId, cfgIndInfo)
1939 CtfCfgTransId *transId;
1940 CtfCnmCellSyncInd * cfgIndInfo;
1944 Buffer *mBuf = NULLP;
1945 TRC3(cmPkCtfCnmCellSyncInd)
1947 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1948 #if (ERRCLASS & ERRCLS_ADD_RES)
1949 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1950 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1951 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1952 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1954 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1957 if (pst->selector == CTF_SEL_LC) {
1958 if (cmPkCtfcfgIndInfo(cfgIndInfo, mBuf) != ROK) {
1959 #if (ERRCLASS & ERRCLS_ADD_RES)
1960 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1961 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1962 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1963 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1965 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1970 else if (pst->selector == CTF_SEL_LWLC) {
1972 if (cmPkPtr((PTR)cfgIndInfo, mBuf) != ROK) {
1973 #if (ERRCLASS & ERRCLS_ADD_RES)
1974 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1975 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1976 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1977 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1979 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1985 if(cmPkCtfCfgTransId(transId, 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)ECTF019, (ErrVal)0, "Packing failed");
1992 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1996 if (SPkS16(spId, mBuf) != ROK) {
1997 #if (ERRCLASS & ERRCLS_ADD_RES)
1998 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1999 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2000 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2001 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
2003 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
2007 if (pst->selector != CTF_SEL_LWLC) {
2008 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
2010 pst->event = (Event)EVTCTFCNMSYNCIND;
2011 RETVALUE(SPstTsk(pst,mBuf));
2015 /*---------------------------------------------------------------*/
2018 PUBLIC S16 cmUnpkCtfCnmSyncIndMsg
2020 CtfCnmCellSyncInd *param,
2024 PUBLIC S16 cmUnpkCtfCnmSyncIndMsg(param, mBuf)
2025 CtfCnmCellSyncInd *param;
2030 TRC3(cmUnpkCtfCnmSyncIndMsg);
2032 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
2033 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
2038 * @brief Configuration Request from RRC to PHY for
2039 * cell or dedicated configuration.
2043 * Function: cmUnpkCtfCnmCellSyncInd
2045 * @param[in] CtfCnmCellSyncIndMsg func
2046 * @param[in] Pst* pst
2047 * @param[in] Buffer *mBuf
2052 PUBLIC S16 cmUnpkCtfCnmCellSyncInd
2054 CtfCnmCellSyncIndMsg func,
2059 PUBLIC S16 cmUnpkCtfCnmCellSyncInd(func, pst, mBuf)
2060 CtfCnmCellSyncIndMsg func;
2067 CtfCfgTransId transId;
2068 CtfCnmCellSyncInd *syncIndMsg = NULLP;
2069 TRC3(cmUnpkCtfCnmInitSyncRsp)
2071 if (SUnpkS16(&spId, mBuf) != ROK) {
2073 #if (ERRCLASS & ERRCLS_ADD_RES)
2074 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2075 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2076 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2077 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2081 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2083 #if (ERRCLASS & ERRCLS_ADD_RES)
2084 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2085 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2086 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2087 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2091 if (pst->selector != CTF_SEL_LWLC) {
2092 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncIndMsg, sizeof(CtfCnmCellSyncInd))) != ROK) {
2093 #if (ERRCLASS & ERRCLS_ADD_RES)
2094 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2095 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2096 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2097 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2103 if (pst->selector == CTF_SEL_LWLC) {
2104 if (cmUnpkPtr((PTR *)&syncIndMsg, mBuf) != ROK) {
2109 else if (pst->selector == CTF_SEL_LC)
2110 if (cmUnpkCtfCnmSyncIndMsg(syncIndMsg, mBuf) != ROK) {
2111 SPutSBuf(pst->region, pst->pool, (Data *)syncIndMsg, sizeof(CtfCnmCellSyncInd));
2113 #if (ERRCLASS & ERRCLS_ADD_RES)
2114 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2115 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2116 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2117 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2122 RETVALUE((*func)(pst, spId, &transId, syncIndMsg));
2126 /********************************************************************************************************************************/
2127 /*END OF CNM PACK & UNPACK FUNCTIONS*/
2128 /********************************************************************************************************************************/
2134 * @brief Configuration Request from RRC to PHY for
2135 * cell or dedicated configuration.
2139 * Function: cmPkCtfCfgReq
2141 * @param[in] Pst* pst
2142 * @param[in] SpId spId
2143 * @param[in] CtfCfgTransId transId
2144 * @param[in] CtfCfgReqInfo* cfgReqInfo
2149 PUBLIC S16 cmPkCtfCfgReq
2153 CtfCfgTransId transId,
2154 CtfCfgReqInfo* cfgReqInfo
2157 PUBLIC S16 cmPkCtfCfgReq(pst, spId, transId, cfgReqInfo)
2160 CtfCfgTransId transId;
2161 CtfCfgReqInfo* cfgReqInfo;
2164 Buffer *mBuf = NULLP;
2167 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2168 #if (ERRCLASS & ERRCLS_ADD_RES)
2169 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2170 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2171 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2172 (ErrVal)ECTF016, (ErrVal)0, "Packing failed");
2174 cmRelCtfCfgReq(pst, cfgReqInfo);
2177 if (pst->selector == CTF_SEL_LC) {
2178 if (cmPkCtfCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
2179 #if (ERRCLASS & ERRCLS_ADD_RES)
2180 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2181 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2182 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2183 (ErrVal)ECTF017, (ErrVal)0, "Packing failed");
2185 cmRelCtfCfgReq(pst, cfgReqInfo);
2190 else if (pst->selector == CTF_SEL_LWLC) {
2191 if (cmPkPtr((PTR)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)ECTF018, (ErrVal)0, "Packing failed");
2198 cmRelCtfCfgReq(pst, cfgReqInfo);
2203 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2204 #if (ERRCLASS & ERRCLS_ADD_RES)
2205 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2206 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2207 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2208 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
2210 cmRelCtfCfgReq(pst, cfgReqInfo);
2214 if (SPkS16(spId, mBuf) != ROK) {
2215 #if (ERRCLASS & ERRCLS_ADD_RES)
2216 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2217 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2218 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2219 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
2221 cmRelCtfCfgReq(pst, cfgReqInfo);
2225 if (pst->selector != CTF_SEL_LWLC) {
2226 cmRelCtfCfgReq(pst, cfgReqInfo);
2228 pst->event = (Event) EVTCTFCFGREQ;
2229 RETVALUE(SPstTsk(pst,mBuf));
2232 #ifdef TENB_AS_SECURITY
2233 /***********************************************************
2235 * Func: cmPkCtfKenbCfgInfo
2238 * Desc: Key derivation funtion Input Information
2239 * @details This funtion packs the the CtfKenbCfgInfo structure
2240 * which contains the eNodeB key and Algorithm Type for
2241 * deriving AS security keys.
2250 **********************************************************/
2252 PUBLIC S16 cmUnpkCtfNhKeyInfo
2254 CtfNhKeyInfo *param,
2258 PUBLIC S16 cmUnpkCtfNhKeyInfo(param, mBuf)
2259 CtfNhKeyInfo *param;
2266 TRC3(cmUnpkCtfNhKeyInfo)
2268 CMCHKUNPK(SUnpkU16, ¶m->dlCarrFreq, mBuf);
2269 CMCHKUNPK(SUnpkU16, ¶m->physCellId, mBuf);
2270 for(idx=0;idx<32;idx++)
2272 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2277 /***********************************************************
2279 * Func: cmPkCtfKenbCfgInfo
2282 * Desc: Key derivation funtion Input Information
2283 * @details This funtion packs the the CtfKenbCfgInfo structure
2284 * which contains the eNodeB key and Algorithm Type for
2285 * deriving AS security keys.
2294 **********************************************************/
2296 PUBLIC S16 cmUnpkCtfKenbStarInfo
2298 CtfKenbStarInfo *param,
2302 PUBLIC S16 cmUnpkCtfKenbStarInfo(param, mBuf)
2303 CtfKenbStarInfo *param;
2310 TRC3(cmUnpkCtfKenbStarInfo)
2312 CMCHKUNPK(SUnpkU16, ¶m->dlCarrFreq, mBuf);
2313 CMCHKUNPK(SUnpkU16, ¶m->physCellId, mBuf);
2314 for(idx=0;idx<32;idx++)
2316 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2322 /***********************************************************
2324 * Func: cmPkCtfKenbCfgInfo
2327 * Desc: Key derivation funtion Input Information
2328 * @details This funtion packs the the CtfKenbCfgInfo structure
2329 * which contains the eNodeB key and Algorithm Type for
2330 * deriving AS security keys.
2339 **********************************************************/
2341 PUBLIC S16 cmUnpkCtfAskeyInfo
2343 CtfAsKeyInfo *param,
2347 PUBLIC S16 cmUnpkCtfAskeyInfo(param, mBuf)
2348 CtfAskeyInfo *param;
2355 TRC3(cmUnpkCtfAskeyInfo)
2357 CMCHKUNPK(SUnpkU8, ¶m->intgAlgoType, mBuf);
2358 CMCHKUNPK(SUnpkU8, ¶m->ciphAlgoType, mBuf);
2359 for(idx=0;idx<32;idx++)
2361 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2366 /***********************************************************
2368 * Func: cmPkCtfKenbCfgInfo
2371 * Desc: Key derivation funtion Input Information
2372 * @details This funtion packs the the CtfKenbCfgInfo structure
2373 * which contains the eNodeB key and Algorithm Type for
2374 * deriving AS security keys.
2383 * **********************************************************/
2385 PUBLIC S16 cmUnpkCtfKdfReqInfo
2387 CtfKdfReqInfo *param,
2391 PUBLIC S16 cmUnpkCtfKdfReqInfo(param, mBuf)
2392 CtfKdfReqInfo *param;
2397 TRC3(cmUnpkCtfKdfReqInfo)
2399 CMCHKUNPK(SUnpkU8, ¶m->keyDerType, mBuf);
2400 switch (param->keyDerType)
2403 CMCHKUNPK(cmUnpkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
2406 CMCHKUNPK(cmUnpkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
2409 CMCHKUNPK(cmUnpkCtfNhKeyInfo, ¶m->u.nhKeyInf, mBuf);
2418 * @brief Configuration Request from RRC to PHY for
2419 * cell or dedicated configuration.
2423 * Function: cmUnpkCtfCfgReq
2425 * @param[in] Pst* pst
2426 * @param[in] SpId spId
2427 * @param[in] CtfCfgTransId transId
2428 * @param[in] CtfCfgReqInfo* cfgReqInfo
2433 PUBLIC S16 cmUnpkCtfKdfReq
2440 PUBLIC S16 cmUnpkCtfKdfReq(func, pst, mBuf)
2447 CtfCfgTransId transId;
2448 CtfKdfReqInfo *kdfReqInfo = NULLP;
2450 TRC3(cmUnpkCtfKdfReq)
2452 if (SUnpkS16(&spId, mBuf) != ROK) {
2454 #if (ERRCLASS & ERRCLS_ADD_RES)
2455 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2456 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2457 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2458 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2463 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2465 #if (ERRCLASS & ERRCLS_ADD_RES)
2466 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2467 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2468 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2469 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2474 if (pst->selector != CTF_SEL_LWLC) {
2475 if ((SGetSBuf(pst->region, pst->pool, (Data **)&kdfReqInfo, sizeof(CtfKdfReqInfo))) != ROK) {
2476 #if (ERRCLASS & ERRCLS_ADD_RES)
2477 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2478 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2479 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2480 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2488 if (pst->selector == CTF_SEL_LWLC) {
2489 /*if (cmUnpkPtr((PTR *)&cfgReqInfo, mBuf) != ROK) {
2494 else if (pst->selector == CTF_SEL_LC)
2495 if (cmUnpkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
2496 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
2498 #if (ERRCLASS & ERRCLS_ADD_RES)
2499 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2500 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2501 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2502 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2507 RETVALUE((*func)(pst, spId, transId, kdfReqInfo));
2514 * @brief Configuration Request from RRC to PHY for
2515 * cell or dedicated configuration.
2519 * Function: cmUnpkCtfCfgReq
2521 * @param[in] Pst* pst
2522 * @param[in] SpId spId
2523 * @param[in] CtfCfgTransId transId
2524 * @param[in] CtfCfgReqInfo* cfgReqInfo
2529 PUBLIC S16 cmUnpkCtfCfgReq
2536 PUBLIC S16 cmUnpkCtfCfgReq(func, pst, mBuf)
2543 CtfCfgTransId transId;
2544 CtfCfgReqInfo *cfgReqInfo = NULLP;
2546 TRC3(cmUnpkCtfCfgReq)
2548 if (SUnpkS16(&spId, mBuf) != ROK) {
2550 #if (ERRCLASS & ERRCLS_ADD_RES)
2551 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2552 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2553 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2554 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2558 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2560 #if (ERRCLASS & ERRCLS_ADD_RES)
2561 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2562 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2563 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2564 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2568 if (pst->selector != CTF_SEL_LWLC) {
2569 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo, sizeof(CtfCfgReqInfo))) != ROK) {
2570 #if (ERRCLASS & ERRCLS_ADD_RES)
2571 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2572 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2573 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2574 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2580 if (pst->selector == CTF_SEL_LWLC) {
2581 if (cmUnpkPtr((PTR *)&cfgReqInfo, mBuf) != ROK) {
2586 else if (pst->selector == CTF_SEL_LC)
2587 if (cmUnpkCtfCfgReqInfo(pst,cfgReqInfo, mBuf) != ROK) {
2588 cmRelCtfCfgReq(pst, cfgReqInfo);
2590 #if (ERRCLASS & ERRCLS_ADD_RES)
2591 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2592 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2593 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2594 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2599 RETVALUE((*func)(pst, spId, transId, cfgReqInfo));
2602 #ifdef TENB_AS_SECURITY
2603 /***********************************************************
2605 * Func: cmPkCtfKenbCfgInfo
2608 * Desc: Key derivation funtion Input Information
2609 * @details This funtion packs the the CtfKenbCfgInfo structure
2610 * which contains the eNodeB key and Algorithm Type for
2611 * deriving AS security keys.
2620 **********************************************************/
2622 PUBLIC S16 cmPkCtfNhKeyCfmInfo
2624 CtfNhKeyCfmInfo *param,
2628 PUBLIC S16 cmPkCtfNhKeyCfmInfo(param, mBuf)
2629 CtfNhKeyCfmInfo *param;
2636 TRC3(cmPkCtfNhKeyCfmInfo)
2638 for(idx=31;idx>=0;idx--)
2640 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
2645 /***********************************************************
2647 * Func: cmPkCtfKenbCfgInfo
2650 * Desc: Key derivation funtion Input Information
2651 * @details This funtion packs the the CtfKenbCfgInfo structure
2652 * which contains the eNodeB key and Algorithm Type for
2653 * deriving AS security keys.
2662 **********************************************************/
2664 PUBLIC S16 cmPkCtfKenbStarCfmInfo
2666 CtfKenbStarCfmInfo *param,
2670 PUBLIC S16 cmPkCtfKenbStarCfmInfo(param, mBuf)
2671 CtfKenbStarCfmInfo *param;
2678 TRC3(cmPkCtfKenbStarCfmInfo)
2680 for(idx=31;idx>=0;idx--)
2682 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
2688 /***********************************************************
2690 * Func: cmPkCtfKenbCfgInfo
2693 * Desc: Key derivation funtion Input Information
2694 * @details This funtion packs the the CtfKenbCfgInfo structure
2695 * which contains the eNodeB key and Algorithm Type for
2696 * deriving AS security keys.
2705 **********************************************************/
2707 PUBLIC S16 cmPkCtfAskeyCfmInfo
2709 CtfAskeyCfmInfo *param,
2713 PUBLIC S16 cmPkCtfAskeyCfmInfo(param, mBuf)
2714 CtfAskeyCfmInfo *param;
2721 TRC3(cmPkCtfCtfAskeyCfmInfo)
2723 for(idx=15;idx>=0;idx--)
2725 CMCHKPK(SPkU8,param->cpCiphKey[idx],mBuf);
2727 for(idx=15;idx>=0;idx--)
2729 CMCHKPK(SPkU8,param->upCiphKey[idx],mBuf);
2731 for(idx=15;idx>=0;idx--)
2733 CMCHKPK(SPkU8,param->intKey[idx],mBuf);
2738 /***********************************************************
2740 * Func: cmPkCtfKenbCfgInfo
2743 * Desc: Key derivation funtion Input Information
2744 * @details This funtion packs the the CtfKenbCfgInfo structure
2745 * which contains the eNodeB key and Algorithm Type for
2746 * deriving AS security keys.
2755 * **********************************************************/
2757 PUBLIC S16 cmPkCtfKdfCfmInfo
2759 CtfKdfCfmInfo *param,
2763 PUBLIC S16 cmPkCtfKdfCfmInfo(param, mBuf)
2764 CtfKdfCfmInfo *param;
2769 TRC3(cmPkCtfKdfCfmInfo)
2771 switch (param->keyDerType)
2774 CMCHKPK(cmPkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
2777 CMCHKPK(cmPkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
2780 CMCHKPK(cmPkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
2785 CMCHKPK(SPkU8, param->keyDerType, mBuf);
2790 * @brief Configuration Confirm from PHY to RRC.
2794 * Function: cmPkCtfCfgCfm
2796 * @param[in] Pst* pst
2797 * @param[in] SuId suId
2798 * @param[in] CtfCfgTransId transId
2799 * @param[in] U8 status
2804 PUBLIC S16 cmPkCtfKdfCfm
2808 CtfCfgTransId transId,
2809 CtfKdfCfmInfo *kdfCfmInfo,
2813 PUBLIC S16 cmPkCtfKdfCfm(pst, suId, transId, status)
2816 CtfCfgTransId transId;
2820 Buffer *mBuf = NULLP;
2823 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2824 #if (ERRCLASS & ERRCLS_ADD_RES)
2825 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2826 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2827 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2828 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2830 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2834 if (SPkU8(status, mBuf) != ROK) {
2835 #if (ERRCLASS & ERRCLS_ADD_RES)
2836 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2837 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2838 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2839 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2841 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2846 if (cmPkCtfKdfCfmInfo(kdfCfmInfo, mBuf) != ROK) {
2847 #if (ERRCLASS & ERRCLS_ADD_RES)
2848 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2849 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2850 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2851 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2853 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2858 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2859 #if (ERRCLASS & ERRCLS_ADD_RES)
2860 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2861 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2862 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2863 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2865 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2870 if (SPkS16(suId, mBuf) != ROK) {
2871 #if (ERRCLASS & ERRCLS_ADD_RES)
2872 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2873 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2874 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2875 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2877 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2882 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo)) != 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)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
2894 pst->event = (Event) EVTCTFKDFCFM;
2895 RETVALUE(SPstTsk(pst,mBuf));
2900 * @brief Configuration Confirm from PHY to RRC.
2904 * Function: cmPkCtfCfgCfm
2906 * @param[in] Pst* pst
2907 * @param[in] SuId suId
2908 * @param[in] CtfCfgTransId transId
2909 * @param[in] U8 status
2914 PUBLIC S16 cmPkCtfCfgCfm
2918 CtfCfgTransId transId,
2922 PUBLIC S16 cmPkCtfCfgCfm(pst, suId, transId, status)
2925 CtfCfgTransId transId;
2929 Buffer *mBuf = NULLP;
2932 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2933 #if (ERRCLASS & ERRCLS_ADD_RES)
2934 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2935 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2936 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2937 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2941 if (SPkU8(status, mBuf) != ROK) {
2942 #if (ERRCLASS & ERRCLS_ADD_RES)
2943 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2944 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2945 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2946 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2951 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2952 #if (ERRCLASS & ERRCLS_ADD_RES)
2953 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2954 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2955 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2956 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2961 if (SPkS16(suId, mBuf) != ROK) {
2962 #if (ERRCLASS & ERRCLS_ADD_RES)
2963 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2964 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2965 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2966 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2971 pst->event = (Event) EVTCTFCFGCFM;
2972 RETVALUE(SPstTsk(pst,mBuf));
2976 * @brief ENB STOP Indication from PHY to ENB-APP.
2980 * Function: cmPkCtfEnbStopInd
2982 * @param[in] Pst* pst
2983 * @param[in] SuId suId
2984 * @param[in] CtfCfgTransId transId
2989 PUBLIC S16 cmPkCtfEnbStopInd
2993 CtfCfgTransId transId
2996 PUBLIC S16 cmPkCtfEnbStopInd(pst, suId, transId)
2999 CtfCfgTransId transId;
3002 Buffer *mBuf = NULLP;
3003 TRC3(cmPkCtfEnbStopInd)
3005 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3006 #if (ERRCLASS & ERRCLS_ADD_RES)
3007 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3008 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3009 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3010 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
3014 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3015 #if (ERRCLASS & ERRCLS_ADD_RES)
3016 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3017 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3018 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3019 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
3024 if (SPkS16(suId, mBuf) != ROK) {
3025 #if (ERRCLASS & ERRCLS_ADD_RES)
3026 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3027 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3028 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3029 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
3034 pst->event = (Event) EVTCTFENBSTOPIND;
3035 RETVALUE(SPstTsk(pst,mBuf));
3038 #ifdef TENB_AS_SECURITY
3039 /***********************************************************
3041 * Func: cmPkCtfKenbCfgInfo
3044 * Desc: Key derivation funtion Input Information
3045 * @details This funtion packs the the CtfKenbCfgInfo structure
3046 * which contains the eNodeB key and Algorithm Type for
3047 * deriving AS security keys.
3056 **********************************************************/
3058 PUBLIC S16 cmUnpkCtfNhKeyCfmInfo
3060 CtfNhKeyCfmInfo *param,
3064 PUBLIC S16 cmUnpkCtfNhKeyCfmInfo(param, mBuf)
3065 CtfNhKeyCfmInfo *param;
3072 TRC3(cmUnpkCtfNhKeyCfmInfo)
3074 for(idx=0;idx<32;idx++)
3076 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
3081 /***********************************************************
3083 * Func: cmPkCtfKenbCfgInfo
3086 * Desc: Key derivation funtion Input Information
3087 * @details This funtion packs the the CtfKenbCfgInfo structure
3088 * which contains the eNodeB key and Algorithm Type for
3089 * deriving AS security keys.
3098 **********************************************************/
3100 PUBLIC S16 cmUnpkCtfKenbStarCfmInfo
3102 CtfKenbStarCfmInfo *param,
3106 PUBLIC S16 cmUnpkCtfKenbStarCfmInfo(param, mBuf)
3107 CtfKenbStarCfmInfo *param;
3114 TRC3(cmUnpkCtfKenbStarCfmInfo)
3116 for(idx=0;idx<32;idx++)
3118 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
3124 /***********************************************************
3126 * Func: cmPkCtfKenbCfgInfo
3129 * Desc: Key derivation funtion Input Information
3130 * @details This funtion packs the the CtfKenbCfgInfo structure
3131 * which contains the eNodeB key and Algorithm Type for
3132 * deriving AS security keys.
3141 **********************************************************/
3143 PUBLIC S16 cmUnpkCtfAskeyCfmInfo
3145 CtfAskeyCfmInfo *param,
3149 PUBLIC S16 cmUnpkCtfAskeyCfmInfo(param, mBuf)
3150 CtfAskeyCfmInfo *param;
3157 TRC3(cmUnpkCtfCtfAskeyCfmInfo)
3159 for(idx=0;idx<16;idx++)
3161 CMCHKUNPK(SUnpkU8,¶m->intKey[idx],mBuf);
3163 for(idx=0;idx<16;idx++)
3165 CMCHKUNPK(SUnpkU8,¶m->upCiphKey[idx],mBuf);
3167 for(idx=0;idx<16;idx++)
3169 CMCHKUNPK(SUnpkU8,¶m->cpCiphKey[idx],mBuf);
3174 /***********************************************************
3176 * Func: cmPkCtfKenbCfgInfo
3179 * Desc: Key derivation funtion Input Information
3180 * @details This funtion packs the the CtfKenbCfgInfo structure
3181 * which contains the eNodeB key and Algorithm Type for
3182 * deriving AS security keys.
3191 * **********************************************************/
3193 PUBLIC S16 cmUnpkCtfKdfCfmInfo
3195 CtfKdfCfmInfo *param,
3199 PUBLIC S16 cmUnpkCtfKdfCfmInfo(param, mBuf)
3200 CtfKdfCfmInfo *param;
3205 TRC3(cmUnpkCtfKdfCfmInfo)
3207 CMCHKUNPK(SUnpkU8, ¶m->keyDerType, mBuf);
3208 switch (param->keyDerType)
3211 CMCHKUNPK(cmUnpkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
3214 CMCHKUNPK(cmUnpkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
3217 CMCHKUNPK(cmUnpkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
3226 * @brief Configuration Confirm from PHY to RRC.
3230 * Function: cmUnpkCtfCfgCfm
3232 * @param[in] Pst* pst
3233 * @param[in] SuId suId
3234 * @param[in] CtfCfgTransId transId
3235 * @param[in] U8 status
3240 PUBLIC S16 cmUnpkCtfKdfCfm
3247 PUBLIC S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3254 CtfCfgTransId transId;
3256 CtfKdfCfmInfo kdfCfmInfo;
3258 TRC3(cmUnpkCtfKdfCfm)
3260 if (SUnpkS16(&suId, mBuf) != ROK) {
3262 #if (ERRCLASS & ERRCLS_ADD_RES)
3263 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3264 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3265 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3266 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3270 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3272 #if (ERRCLASS & ERRCLS_ADD_RES)
3273 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3274 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3275 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3276 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3280 if (cmUnpkCtfKdfCfmInfo(&kdfCfmInfo, mBuf) != ROK) {
3282 #if (ERRCLASS & ERRCLS_ADD_RES)
3283 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3284 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3285 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3286 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3291 if (SUnpkU8(&status, mBuf) != ROK) {
3293 #if (ERRCLASS & ERRCLS_ADD_RES)
3294 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3295 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3296 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3297 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3302 RETVALUE((*func)(pst, suId, transId,&kdfCfmInfo, status));
3308 * @brief Configuration Confirm from PHY to RRC.
3312 * Function: cmUnpkCtfCfgCfm
3314 * @param[in] Pst* pst
3315 * @param[in] SuId suId
3316 * @param[in] CtfCfgTransId transId
3317 * @param[in] U8 status
3322 PUBLIC S16 cmUnpkCtfCfgCfm
3329 PUBLIC S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3336 CtfCfgTransId transId;
3339 TRC3(cmUnpkCtfCfgCfm)
3341 if (SUnpkS16(&suId, mBuf) != ROK) {
3343 #if (ERRCLASS & ERRCLS_ADD_RES)
3344 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3345 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3346 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3347 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3351 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3353 #if (ERRCLASS & ERRCLS_ADD_RES)
3354 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3355 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3356 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3357 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3361 if (SUnpkU8(&status, mBuf) != ROK) {
3363 #if (ERRCLASS & ERRCLS_ADD_RES)
3364 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3365 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3366 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3367 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3372 RETVALUE((*func)(pst, suId, transId, status));
3376 * @brief ENB STOP Indication from PHY to ENB-APP
3380 * Function: cmUnpkCtfEnbStopInd
3382 * @param[in] Pst* pst
3383 * @param[in] SuId suId
3384 * @param[in] CtfCfgTransId transId
3389 PUBLIC S16 cmUnpkCtfEnbStopInd
3396 PUBLIC S16 cmUnpkCtfEnbStopInd(func, pst, mBuf)
3403 CtfCfgTransId transId;
3405 TRC3(cmUnpkCtfCfgCfm)
3407 if (SUnpkS16(&suId, mBuf) != ROK) {
3409 #if (ERRCLASS & ERRCLS_ADD_RES)
3410 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3411 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3412 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3413 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3417 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3419 #if (ERRCLASS & ERRCLS_ADD_RES)
3420 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3421 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3422 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3423 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3428 RETVALUE((*func)(pst, suId, transId));
3433 * @brief UE ID Change Request from RRC to PHY.
3437 * Function: cmPkCtfUeIdChgReq
3439 * @param[in] Pst* pst
3440 * @param[in] SpId spId
3441 * @param[in] CtfCfgTransId transId
3442 * @param[in] CtfUeInfo * ueInfo
3443 * @param[in] CtfUeInfo * newUeInfo
3448 PUBLIC S16 cmPkCtfUeIdChgReq
3452 CtfCfgTransId transId,
3454 CtfUeInfo * newUeInfo
3457 PUBLIC S16 cmPkCtfUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
3460 CtfCfgTransId transId;
3462 CtfUeInfo * newUeInfo;
3465 Buffer *mBuf = NULLP;
3466 TRC3(cmPkCtfUeIdChgReq)
3468 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3469 #if (ERRCLASS & ERRCLS_ADD_RES)
3470 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3471 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3472 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3473 (ErrVal)ECTF033, (ErrVal)0, (Txt*)&"Packing failed");
3475 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3476 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3479 if (pst->selector == CTF_SEL_LC) {
3480 if (cmPkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3481 #if (ERRCLASS & ERRCLS_ADD_RES)
3482 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3483 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3484 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3485 (ErrVal)ECTF034, (ErrVal)0, (Txt*)&"Packing failed");
3487 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3488 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3493 else if (pst->selector == CTF_SEL_LWLC) {
3494 if (cmPkPtr((PTR)newUeInfo, mBuf) != ROK) {
3495 #if (ERRCLASS & ERRCLS_ADD_RES)
3496 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3497 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3498 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3499 (ErrVal)ECTF035, (ErrVal)0, (Txt*)&"Packing failed");
3501 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3502 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3507 if (pst->selector == CTF_SEL_LC) {
3508 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3509 #if (ERRCLASS & ERRCLS_ADD_RES)
3510 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3511 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3512 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3513 (ErrVal)ECTF036, (ErrVal)0, (Txt*)&"Packing failed");
3515 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3516 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3521 else if (pst->selector == CTF_SEL_LWLC) {
3522 if (cmPkPtr((PTR)ueInfo, mBuf) != ROK) {
3523 #if (ERRCLASS & ERRCLS_ADD_RES)
3524 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3525 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3526 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3527 (ErrVal)ECTF037, (ErrVal)0, (Txt*)&"Packing failed");
3529 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3530 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3535 if (cmPkCtfCfgTransId(&transId, 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)ECTF038, (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));
3547 if (SPkS16(spId, mBuf) != ROK) {
3548 #if (ERRCLASS & ERRCLS_ADD_RES)
3549 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3550 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3551 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3552 (ErrVal)ECTF039, (ErrVal)0, (Txt*)&"Packing failed");
3554 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3555 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3559 if (pst->selector != CTF_SEL_LWLC) {
3560 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != 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)ECTF040, (ErrVal)0, (Txt*)&"Packing failed");
3570 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo)) != ROK) {
3571 #if (ERRCLASS & ERRCLS_ADD_RES)
3572 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3573 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3574 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3575 (ErrVal)ECTF041, (ErrVal)0, (Txt*)&"Packing failed");
3581 pst->event = (Event) EVTCTFUEIDCHGREQ;
3582 RETVALUE(SPstTsk(pst,mBuf));
3587 * @brief UE ID Change Request from RRC to PHY.
3591 * Function: cmUnpkCtfUeIdChgReq
3593 * @param[in] Pst* pst
3594 * @param[in] SpId spId
3595 * @param[in] CtfCfgTransId transId
3596 * @param[in] CtfUeInfo * ueInfo
3597 * @param[in] CtfUeInfo * newUeInfo
3602 PUBLIC S16 cmUnpkCtfUeIdChgReq
3609 PUBLIC S16 cmUnpkCtfUeIdChgReq(func, pst, mBuf)
3616 CtfCfgTransId transId;
3617 CtfUeInfo *ueInfo = NULLP;
3618 CtfUeInfo *newUeInfo = NULLP;
3620 TRC3(cmUnpkCtfUeIdChgReq)
3622 if (SUnpkS16(&spId, mBuf) != ROK) {
3624 #if (ERRCLASS & ERRCLS_ADD_RES)
3625 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3626 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3627 (Txt*)& __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3628 (ErrVal)ECTF042, (ErrVal)0, (Txt*)&"Packing failed");
3632 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3634 #if (ERRCLASS & ERRCLS_ADD_RES)
3635 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3636 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3637 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3638 (ErrVal)ECTF043, (ErrVal)0, (Txt*)&"Packing failed");
3642 if (pst->selector != CTF_SEL_LWLC) {
3643 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3644 #if (ERRCLASS & ERRCLS_ADD_RES)
3645 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3646 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3647 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3648 (ErrVal)ECTF044, (ErrVal)0, (Txt*)&"Packing failed");
3654 if (pst->selector == CTF_SEL_LWLC) {
3655 if (cmUnpkPtr((PTR *)&ueInfo, mBuf) != ROK) {
3660 else if (pst->selector == CTF_SEL_LC)
3661 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3662 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3664 #if (ERRCLASS & ERRCLS_ADD_RES)
3665 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3666 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3667 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3668 (ErrVal)ECTF045, (ErrVal)0, (Txt*)&"Packing failed");
3672 if (pst->selector != CTF_SEL_LWLC) {
3673 if ((SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo, sizeof(CtfUeInfo))) != ROK) {
3674 #if (ERRCLASS & ERRCLS_ADD_RES)
3675 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3676 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3677 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3678 (ErrVal)ECTF046, (ErrVal)0, (Txt*)&"Packing failed");
3681 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3685 if (pst->selector == CTF_SEL_LWLC) {
3686 if (cmUnpkPtr((PTR *)&newUeInfo, mBuf) != ROK) {
3691 else if (pst->selector == CTF_SEL_LC)
3692 if (cmUnpkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3693 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3694 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3696 #if (ERRCLASS & ERRCLS_ADD_RES)
3697 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3698 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3699 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3700 (ErrVal)ECTF047, (ErrVal)0, (Txt*)&"Packing failed");
3705 RETVALUE((*func)(pst, spId, transId, ueInfo, newUeInfo));
3710 * @brief UE ID Change Confirm from PHY to RRC.
3714 * Function: cmPkCtfUeIdChgCfm
3716 * @param[in] Pst* pst
3717 * @param[in] SuId suId
3718 * @param[in] CtfCfgTransId transId
3719 * @param[in] CtfUeInfo * ueInfo
3720 * @param[in] U8 status
3725 PUBLIC S16 cmPkCtfUeIdChgCfm
3729 CtfCfgTransId transId,
3734 PUBLIC S16 cmPkCtfUeIdChgCfm(pst, suId, transId, ueInfo, status)
3737 CtfCfgTransId transId;
3742 Buffer *mBuf = NULLP;
3743 TRC3(cmPkCtfUeIdChgCfm)
3745 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3746 #if (ERRCLASS & ERRCLS_ADD_RES)
3747 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3748 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3749 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3750 (ErrVal)ECTF048, (ErrVal)0, (Txt*)&"Packing failed");
3752 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3755 if (cmPkCmStatus(&status, mBuf) != ROK) {
3756 #if (ERRCLASS & ERRCLS_ADD_RES)
3757 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3758 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3759 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3760 (ErrVal)ECTF049, (ErrVal)0, (Txt*)&"Packing failed");
3762 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3766 if (pst->selector == CTF_SEL_LC) {
3767 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3768 #if (ERRCLASS & ERRCLS_ADD_RES)
3769 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3770 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3771 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3772 (ErrVal)ECTF050, (ErrVal)0, (Txt*)&"Packing failed");
3774 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3779 else if (pst->selector == CTF_SEL_LWLC) {
3780 if (cmPkPtr((PTR)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)ECTF051, (ErrVal)0, (Txt*)&"Packing failed");
3787 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3792 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3793 #if (ERRCLASS & ERRCLS_ADD_RES)
3794 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3795 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3796 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3797 (ErrVal)ECTF052, (ErrVal)0, (Txt*)&"Packing failed");
3799 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3803 if (SPkS16(suId, mBuf) != ROK) {
3804 #if (ERRCLASS & ERRCLS_ADD_RES)
3805 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3806 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3807 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3808 (ErrVal)ECTF053, (ErrVal)0, (Txt*)&"Packing failed");
3810 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3814 if (pst->selector != CTF_SEL_LWLC) {
3815 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3816 #if (ERRCLASS & ERRCLS_ADD_RES)
3817 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3818 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3819 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3820 (ErrVal)ECTF054, (ErrVal)0, (Txt*)&"Packing failed");
3826 pst->event = (Event) EVTCTFUEIDCHGCFM;
3827 RETVALUE(SPstTsk(pst,mBuf));
3832 * @brief UE ID Change Confirm from PHY to RRC.
3836 * Function: cmUnpkCtfUeIdChgCfm
3838 * @param[in] Pst* pst
3839 * @param[in] SuId suId
3840 * @param[in] CtfCfgTransId transId
3841 * @param[in] CtfUeInfo * ueInfo
3842 * @param[in] U8 status
3847 PUBLIC S16 cmUnpkCtfUeIdChgCfm
3854 PUBLIC S16 cmUnpkCtfUeIdChgCfm(func, pst, mBuf)
3861 CtfCfgTransId transId;
3862 CtfUeInfo *ueInfo = NULLP;
3865 TRC3(cmUnpkCtfUeIdChgCfm)
3867 if (SUnpkS16(&suId, mBuf) != ROK) {
3869 #if (ERRCLASS & ERRCLS_ADD_RES)
3870 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3871 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3872 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3873 (ErrVal)ECTF055, (ErrVal)0, (Txt*)&"Packing failed");
3877 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3879 #if (ERRCLASS & ERRCLS_ADD_RES)
3880 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3881 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3882 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3883 (ErrVal)ECTF056, (ErrVal)0, (Txt*)&"Packing failed");
3887 if (pst->selector != CTF_SEL_LWLC) {
3888 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3889 #if (ERRCLASS & ERRCLS_ADD_RES)
3890 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3891 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3892 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3893 (ErrVal)ECTF057, (ErrVal)0, (Txt*)&"Packing failed");
3899 if (pst->selector == CTF_SEL_LWLC) {
3900 if (cmUnpkPtr((PTR *)&ueInfo, mBuf) != ROK) {
3905 else if (pst->selector == CTF_SEL_LC)
3906 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3907 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3909 #if (ERRCLASS & ERRCLS_ADD_RES)
3910 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3911 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3912 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3913 (ErrVal)ECTF058, (ErrVal)0, (Txt*)&"Packing failed");
3917 if (cmUnpkCmStatus(&status, mBuf) != ROK) {
3918 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3920 #if (ERRCLASS & ERRCLS_ADD_RES)
3921 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3922 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3923 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3924 (ErrVal)ECTF059, (ErrVal)0, (Txt*)&"Packing failed");
3929 RETVALUE((*func)(pst, suId, transId, ueInfo, status));
3933 /***********************************************************
3935 * Func: cmPkCtfCfgTransId
3938 * Desc: Transaction ID between CTF and RRC.
3947 **********************************************************/
3949 PUBLIC S16 cmPkCtfCfgTransId
3951 CtfCfgTransId *param,
3955 PUBLIC S16 cmPkCtfCfgTransId(param, mBuf)
3956 CtfCfgTransId *param;
3962 TRC3(cmPkCtfCfgTransId)
3964 for (i=CTF_CFG_TRANSID_SIZE-1; i >= 0; i--) {
3965 CMCHKPK(SPkU8, param->trans[i], mBuf);
3972 /***********************************************************
3974 * Func: cmUnpkCtfCfgTransId
3977 * Desc: Transaction ID between CTF and RRC.
3986 **********************************************************/
3988 PUBLIC S16 cmUnpkCtfCfgTransId
3990 CtfCfgTransId *param,
3994 PUBLIC S16 cmUnpkCtfCfgTransId(param, mBuf)
3995 CtfCfgTransId *param;
4001 TRC3(cmUnpkCtfCfgTransId)
4003 for (i=0; i<CTF_CFG_TRANSID_SIZE; i++) {
4004 CMCHKUNPK(SUnpkU8, ¶m->trans[i], mBuf);
4011 /***********************************************************
4013 * Func: cmPkCtfUeInfo
4016 * Desc: * UE ID information
4025 **********************************************************/
4027 PUBLIC S16 cmPkCtfUeInfo
4033 PUBLIC S16 cmPkCtfUeInfo(param, mBuf)
4041 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
4042 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4048 /***********************************************************
4050 * Func: cmUnpkCtfUeInfo
4053 * Desc: * UE ID information
4062 **********************************************************/
4064 PUBLIC S16 cmUnpkCtfUeInfo
4070 PUBLIC S16 cmUnpkCtfUeInfo(param, mBuf)
4076 TRC3(cmUnpkCtfUeInfo)
4078 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4079 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
4085 /***********************************************************
4087 * Func: cmPkCtfBwCfgInfo
4090 * Desc: Bandwidth Configuration
4091 * @details This structure contains the uplink and downlink bandwidth
4092 * information for configuration at PHY.
4101 **********************************************************/
4103 PUBLIC S16 cmPkCtfBwCfgInfo
4105 CtfBwCfgInfo *param,
4109 PUBLIC S16 cmPkCtfBwCfgInfo(param, mBuf)
4110 CtfBwCfgInfo *param;
4115 TRC3(cmPkCtfBwCfgInfo)
4117 CMCHKPK(SPkU8, param->eUtraBand, mBuf);
4118 CMCHKPK(SPkU32, param->ulBw, mBuf);
4119 CMCHKPK(SPkU32, param->dlBw, mBuf);
4120 /* ctf_c_001.main_4: Removed packing of param->pres */
4126 /***********************************************************
4128 * Func: cmUnpkCtfBwCfgInfo
4131 * Desc: Bandwidth Configuration
4132 * @details This structure contains the uplink and downlink bandwidth
4133 * information for configuration at PHY.
4142 **********************************************************/
4144 PUBLIC S16 cmUnpkCtfBwCfgInfo
4146 CtfBwCfgInfo *param,
4150 PUBLIC S16 cmUnpkCtfBwCfgInfo(param, mBuf)
4151 CtfBwCfgInfo *param;
4157 TRC3(cmUnpkCtfBwCfgInfo)
4159 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4160 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4161 param->dlBw = (CtfBandwidth)tmpEnum;
4162 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4163 param->ulBw = (CtfBandwidth)tmpEnum;
4164 CMCHKUNPK(SUnpkU8, ¶m->eUtraBand, mBuf);
4170 /***********************************************************
4172 * Func: cmPkCtfTxSchemeCfg
4175 * Desc: Transmission Scheme Configuration
4176 * @details This structure contains the transmission scheme related information.
4185 **********************************************************/
4187 PUBLIC S16 cmPkCtfTxSchemeCfg
4189 CtfTxSchemeCfg *param,
4193 PUBLIC S16 cmPkCtfTxSchemeCfg(param, mBuf)
4194 CtfTxSchemeCfg *param;
4199 TRC3(cmPkCtfTxSchemeCfg)
4201 CMCHKPK(SPkU32, param->cycPfx, mBuf);
4202 CMCHKPK(SPkU32, param->scSpacing, mBuf);
4203 CMCHKPK(SPkU32, param->duplexMode, mBuf);
4204 /* ctf_c_001.main_4: Removed packing of param->pres */
4210 /***********************************************************
4212 * Func: cmUnpkCtfTxSchemeCfg
4215 * Desc: Transmission Scheme Configuration
4216 * @details This structure contains the transmission scheme related information.
4225 **********************************************************/
4227 PUBLIC S16 cmUnpkCtfTxSchemeCfg
4229 CtfTxSchemeCfg *param,
4233 PUBLIC S16 cmUnpkCtfTxSchemeCfg(param, mBuf)
4234 CtfTxSchemeCfg *param;
4240 TRC3(cmUnpkCtfTxSchemeCfg)
4242 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4243 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4244 param->duplexMode = (CtfDuplexMode)tmpEnum;
4245 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4246 param->scSpacing = (CtfSCSpacing)tmpEnum;
4247 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4248 param->cycPfx = (CtfCPCfg)tmpEnum;
4254 /***********************************************************
4256 * Func: cmPkCtfAntennaCfgInfo
4259 * Desc: Antenna Ports configuration
4260 * @details This structure contains the antenna configuration information for
4261 * configuration at PHY.
4270 **********************************************************/
4272 PUBLIC S16 cmPkCtfAntennaCfgInfo
4274 CtfAntennaCfgInfo *param,
4278 PUBLIC S16 cmPkCtfAntennaCfgInfo(param, mBuf)
4279 CtfAntennaCfgInfo *param;
4284 TRC3(cmPkCtfAntennaCfgInfo)
4286 CMCHKPK(SPkU32, param->antPortsCnt, mBuf);
4292 /***********************************************************
4294 * Func: cmUnpkCtfAntennaCfgInfo
4297 * Desc: Antenna Ports configuration
4298 * @details This structure contains the antenna configuration information for
4299 * configuration at PHY.
4308 **********************************************************/
4310 PUBLIC S16 cmUnpkCtfAntennaCfgInfo
4312 CtfAntennaCfgInfo *param,
4316 PUBLIC S16 cmUnpkCtfAntennaCfgInfo(param, mBuf)
4317 CtfAntennaCfgInfo *param;
4323 TRC3(cmUnpkCtfAntennaCfgInfo)
4324 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4325 param->antPortsCnt = (CtfAntennaPortsCount)tmpEnum;
4331 /***********************************************************
4333 * Func: cmPkCtfPrachCfgInfo
4336 * Desc: PRACH configuration
4337 * @details This structure contains the configuration information for PRACH at PHY.
4338 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4339 * sequences.[Ref: 36.211, 5.7.2]
4340 * -# PRACH preamble format is derived from PRACH Configuration Index.
4341 * [Ref: 36.211, Table 5.7.1-2]
4342 * -# PrachFreqOffset is the first physical resource block allocated to
4343 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4344 * [Ref: 36.211, 5.7.1]
4353 **********************************************************/
4355 PUBLIC S16 cmPkCtfPrachCfgInfo
4357 CtfPrachCfgInfo *param,
4361 PUBLIC S16 cmPkCtfPrachCfgInfo(param, mBuf)
4362 CtfPrachCfgInfo *param;
4367 TRC3(cmPkCtfPrachCfgInfo)
4369 /*ctf_c_001.main_1*/
4370 if(param->pres != FALSE)
4372 CMCHKPK(SPkU8, param->prachFreqOffset, mBuf);
4373 CMCHKPK(SPkU8, param->highSpeedFlag, mBuf);
4374 CMCHKPK(SPkU8, param->zeroCorrelationZoneCfg, mBuf);
4375 CMCHKPK(SPkU8, param->prachCfgIndex, mBuf);
4376 CMCHKPK(SPkU16, param->rootSequenceIndex, mBuf);
4378 CMCHKPK(SPkU8, param->pres, mBuf);
4384 /***********************************************************
4386 * Func: cmUnpkCtfPrachCfgInfo
4389 * Desc: PRACH configuration
4390 * @details This structure contains the configuration information for PRACH at PHY.
4391 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4392 * sequences.[Ref: 36.211, 5.7.2]
4393 * -# PRACH preamble format is derived from PRACH Configuration Index.
4394 * [Ref: 36.211, Table 5.7.1-2]
4395 * -# PrachFreqOffset is the first physical resource block allocated to
4396 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4397 * [Ref: 36.211, 5.7.1]
4406 **********************************************************/
4408 PUBLIC S16 cmUnpkCtfPrachCfgInfo
4410 CtfPrachCfgInfo *param,
4414 PUBLIC S16 cmUnpkCtfPrachCfgInfo(param, mBuf)
4415 CtfPrachCfgInfo *param;
4420 TRC3(cmUnpkCtfPrachCfgInfo)
4422 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4423 /*ctf_c_001.main_1*/
4424 if(param->pres != FALSE)
4426 CMCHKUNPK(SUnpkU16, ¶m->rootSequenceIndex, mBuf);
4427 CMCHKUNPK(SUnpkU8, ¶m->prachCfgIndex, mBuf);
4428 CMCHKUNPK(SUnpkU8, ¶m->zeroCorrelationZoneCfg, mBuf);
4429 CMCHKUNPK(SUnpkU8, ¶m->highSpeedFlag, mBuf);
4430 CMCHKUNPK(SUnpkU8, ¶m->prachFreqOffset, mBuf);
4437 /***********************************************************
4439 * Func: cmPkCtfPdschCfgInfo
4442 * Desc: PDSCH configuration
4443 * @details This structure contains the PDSCH configuration information for
4444 * configuration at PHY.
4453 **********************************************************/
4455 PUBLIC S16 cmPkCtfPdschCfgInfo
4457 CtfPdschCfgInfo *param,
4461 PUBLIC S16 cmPkCtfPdschCfgInfo(param, mBuf)
4462 CtfPdschCfgInfo *param;
4467 TRC3(cmPkCtfPdschCfgInfo)
4468 /*ctf_c_001.main_1*/
4469 if(param->pres != FALSE)
4471 CMCHKPK(SPkU8, param->p_b, mBuf);
4472 CMCHKPK(SPkS16, param->refSigPwr, mBuf);
4474 CMCHKPK(SPkU8, param->pres, mBuf);
4480 /***********************************************************
4482 * Func: cmUnpkCtfPdschCfgInfo
4485 * Desc: PDSCH configuration
4486 * @details This structure contains the PDSCH configuration information for
4487 * configuration at PHY.
4496 **********************************************************/
4498 PUBLIC S16 cmUnpkCtfPdschCfgInfo
4500 CtfPdschCfgInfo *param,
4504 PUBLIC S16 cmUnpkCtfPdschCfgInfo(param, mBuf)
4505 CtfPdschCfgInfo *param;
4510 TRC3(cmUnpkCtfPdschCfgInfo)
4512 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4513 /*ctf_c_001.main_1*/
4514 if(param->pres != FALSE)
4516 CMCHKUNPK(SUnpkS16, ¶m->refSigPwr, mBuf);
4517 CMCHKUNPK(SUnpkU8, ¶m->p_b, mBuf);
4524 /***********************************************************
4526 * Func: cmPkCtfPuschCfgBasic
4529 * Desc: Basic PUSCH configuration
4530 * @details This structure contains the basic PUSCH configuration information for
4531 * configuration at PHY.
4540 **********************************************************/
4542 PUBLIC S16 cmPkCtfPuschCfgBasic
4544 CtfPuschCfgBasic *param,
4548 PUBLIC S16 cmPkCtfPuschCfgBasic(param, mBuf)
4549 CtfPuschCfgBasic *param;
4554 TRC3(cmPkCtfPuschCfgBasic)
4556 CMCHKPK(SPkU8, param->enable64QAM, mBuf);
4557 CMCHKPK(SPkU8, param->hoppingOffset, mBuf);
4558 CMCHKPK(SPkU32, param->hoppingMode, mBuf);
4559 CMCHKPK(SPkU8, param->noOfsubBands, mBuf);
4565 /***********************************************************
4567 * Func: cmUnpkCtfPuschCfgBasic
4570 * Desc: Basic PUSCH configuration
4571 * @details This structure contains the basic PUSCH configuration information for
4572 * configuration at PHY.
4581 **********************************************************/
4583 PUBLIC S16 cmUnpkCtfPuschCfgBasic
4585 CtfPuschCfgBasic *param,
4589 PUBLIC S16 cmUnpkCtfPuschCfgBasic(param, mBuf)
4590 CtfPuschCfgBasic *param;
4596 TRC3(cmUnpkCtfPuschCfgBasic)
4598 CMCHKUNPK(SUnpkU8, ¶m->noOfsubBands, mBuf);
4599 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4600 param->hoppingMode = (CtfPuschHoppingMode)tmpEnum;
4601 CMCHKUNPK(SUnpkU8, ¶m->hoppingOffset, mBuf);
4602 CMCHKUNPK(SUnpkU8, ¶m->enable64QAM, mBuf);
4608 /***********************************************************
4610 * Func: cmPkCtfPuschUlRS
4613 * Desc: PUSCH Uplink Reference Signals configuration
4614 * @details This structure contains the PUSCH configuration information for
4615 * uplink reference signals configuration at PHY.
4624 **********************************************************/
4626 PUBLIC S16 cmPkCtfPuschUlRS
4628 CtfPuschUlRS *param,
4632 PUBLIC S16 cmPkCtfPuschUlRS(param, mBuf)
4633 CtfPuschUlRS *param;
4638 TRC3(cmPkCtfPuschUlRS)
4640 CMCHKPK(SPkU8, param->cycShift, mBuf);
4641 CMCHKPK(SPkU8, param->grpNum, mBuf);
4642 CMCHKPK(SPkU8, param->seqHopEnabled, mBuf);
4643 CMCHKPK(SPkU8, param->grpHopEnabled, mBuf);
4649 /***********************************************************
4651 * Func: cmUnpkCtfPuschUlRS
4654 * Desc: PUSCH Uplink Reference Signals configuration
4655 * @details This structure contains the PUSCH configuration information for
4656 * uplink reference signals configuration at PHY.
4665 **********************************************************/
4667 PUBLIC S16 cmUnpkCtfPuschUlRS
4669 CtfPuschUlRS *param,
4673 PUBLIC S16 cmUnpkCtfPuschUlRS(param, mBuf)
4674 CtfPuschUlRS *param;
4679 TRC3(cmUnpkCtfPuschUlRS)
4681 CMCHKUNPK(SUnpkU8, ¶m->grpHopEnabled, mBuf);
4682 CMCHKUNPK(SUnpkU8, ¶m->seqHopEnabled, mBuf);
4683 CMCHKUNPK(SUnpkU8, ¶m->grpNum, mBuf);
4684 CMCHKUNPK(SUnpkU8, ¶m->cycShift, mBuf);
4690 /***********************************************************
4692 * Func: cmPkCtfPuschCfgInfo
4695 * Desc: PUSCH configuration
4696 * @details This structure contains the information for PUSCH
4697 * configuration at PHY.
4706 **********************************************************/
4708 PUBLIC S16 cmPkCtfPuschCfgInfo
4710 CtfPuschCfgInfo *param,
4714 PUBLIC S16 cmPkCtfPuschCfgInfo(param, mBuf)
4715 CtfPuschCfgInfo *param;
4720 TRC3(cmPkCtfPuschCfgInfo)
4722 /*ctf_c_001.main_1*/
4723 if(param->pres != FALSE)
4725 CMCHKPK(cmPkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4726 CMCHKPK(cmPkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4728 CMCHKPK(SPkU8, param->pres, mBuf);
4734 /***********************************************************
4736 * Func: cmUnpkCtfPuschCfgInfo
4739 * Desc: PUSCH configuration
4740 * @details This structure contains the information for PUSCH
4741 * configuration at PHY.
4750 **********************************************************/
4752 PUBLIC S16 cmUnpkCtfPuschCfgInfo
4754 CtfPuschCfgInfo *param,
4758 PUBLIC S16 cmUnpkCtfPuschCfgInfo(param, mBuf)
4759 CtfPuschCfgInfo *param;
4764 TRC3(cmUnpkCtfPuschCfgInfo)
4766 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4767 /*ctf_c_001.main_1*/
4768 if(param->pres != FALSE)
4770 CMCHKUNPK(cmUnpkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4771 CMCHKUNPK(cmUnpkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4778 /***********************************************************
4780 * Func: cmPkCtfPhichCfgInfo
4783 * Desc: PHICH configuration
4784 * @details This structure contains the duration and resource information for
4785 * PHICH configuration at PHY.
4794 **********************************************************/
4796 PUBLIC S16 cmPkCtfPhichCfgInfo
4798 CtfPhichCfgInfo *param,
4802 PUBLIC S16 cmPkCtfPhichCfgInfo(param, mBuf)
4803 CtfPhichCfgInfo *param;
4808 TRC3(cmPkCtfPhichCfgInfo)
4810 /*ctf_c_001.main_1*/
4811 if(param->pres != FALSE)
4813 CMCHKPK(SPkU32, param->resource, mBuf);
4814 CMCHKPK(SPkU32, param->duration, mBuf);
4816 CMCHKPK(SPkU8, param->pres, mBuf);
4822 /***********************************************************
4824 * Func: cmUnpkCtfPhichCfgInfo
4827 * Desc: PHICH configuration
4828 * @details This structure contains the duration and resource information for
4829 * PHICH configuration at PHY.
4838 **********************************************************/
4840 PUBLIC S16 cmUnpkCtfPhichCfgInfo
4842 CtfPhichCfgInfo *param,
4846 PUBLIC S16 cmUnpkCtfPhichCfgInfo(param, mBuf)
4847 CtfPhichCfgInfo *param;
4853 TRC3(cmUnpkCtfPhichCfgInfo)
4855 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4856 /*ctf_c_001.main_1*/
4857 if(param->pres != FALSE)
4859 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4860 param->duration = (CtfPhichDuration)tmpEnum;
4861 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4862 param->resource = (CtfPhichResource)tmpEnum;
4869 /***********************************************************
4871 * Func: cmPkCtfPucchCfgInfo
4874 * Desc: PUCCH configuration
4875 * @details This structure contains the information for PUCCH
4876 * configuration at PHY.
4885 **********************************************************/
4887 PUBLIC S16 cmPkCtfPucchCfgInfo
4889 CtfPucchCfgInfo *param,
4893 PUBLIC S16 cmPkCtfPucchCfgInfo(param, mBuf)
4894 CtfPucchCfgInfo *param;
4899 TRC3(cmPkCtfPucchCfgInfo)
4901 /*ctf_c_001.main_1*/
4902 if(param->pres != FALSE)
4904 CMCHKPK(SPkU32, param->deltaShift, mBuf);
4905 CMCHKPK(SPkU16, param->n1PUCCH, mBuf);
4906 CMCHKPK(SPkU8, param->nCS, mBuf);
4907 CMCHKPK(SPkU8, param->nRB, mBuf);
4909 CMCHKPK(SPkU8, param->pres, mBuf);
4915 /***********************************************************
4917 * Func: cmUnpkCtfPucchCfgInfo
4920 * Desc: PUCCH configuration
4921 * @details This structure contains the information for PUCCH
4922 * configuration at PHY.
4931 **********************************************************/
4933 PUBLIC S16 cmUnpkCtfPucchCfgInfo
4935 CtfPucchCfgInfo *param,
4939 PUBLIC S16 cmUnpkCtfPucchCfgInfo(param, mBuf)
4940 CtfPucchCfgInfo *param;
4946 TRC3(cmUnpkCtfPucchCfgInfo)
4948 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4949 /*ctf_c_001.main_1*/
4950 if(param->pres != FALSE)
4952 CMCHKUNPK(SUnpkU8, ¶m->nRB, mBuf);
4953 CMCHKUNPK(SUnpkU8, ¶m->nCS, mBuf);
4954 CMCHKUNPK(SUnpkU16, ¶m->n1PUCCH, mBuf);
4955 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4956 param->deltaShift = (CtfPucchDeltaShift)tmpEnum;
4963 /***********************************************************
4965 * Func: cmPkCtfSrsUlCfgInfo
4968 * Desc: SRS uplink configuration
4969 * @details This structure contains the information for setting-up/release
4970 * of uplink SRS configuration at PHY.
4979 **********************************************************/
4981 PUBLIC S16 cmPkCtfSrsUlCfgInfo
4983 CtfSrsUlCfgInfo *param,
4987 PUBLIC S16 cmPkCtfSrsUlCfgInfo(param, mBuf)
4988 CtfSrsUlCfgInfo *param;
4993 TRC3(cmPkCtfSrsUlCfgInfo)
4995 /*ctf_c_001.main_1*/
4996 if(param->pres != FALSE)
4998 CMCHKPK(SPkU8, param->srsSetup.srsMaxUpPts, mBuf);
4999 CMCHKPK(SPkU8, param->srsSetup.srsANSimultTx, mBuf);
5000 CMCHKPK(SPkU8, param->srsSetup.sfCfg, mBuf);
5001 CMCHKPK(SPkU8, param->srsSetup.srsBw, mBuf);
5002 CMCHKPK(SPkU8, param->srsCfgType, mBuf);
5004 CMCHKPK(SPkU8, param->pres, mBuf);
5010 /***********************************************************
5012 * Func: cmUnpkCtfSrsUlCfgInfo
5015 * Desc: SRS uplink configuration
5016 * @details This structure contains the information for setting-up/release
5017 * of uplink SRS configuration at PHY.
5026 **********************************************************/
5028 PUBLIC S16 cmUnpkCtfSrsUlCfgInfo
5030 CtfSrsUlCfgInfo *param,
5034 PUBLIC S16 cmUnpkCtfSrsUlCfgInfo(param, mBuf)
5035 CtfSrsUlCfgInfo *param;
5040 TRC3(cmUnpkCtfSrsUlCfgInfo)
5042 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5043 /*ctf_c_001.main_1*/
5044 if(param->pres != FALSE)
5046 CMCHKUNPK(SUnpkU8, ¶m->srsCfgType, mBuf);
5047 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsBw, mBuf);
5048 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.sfCfg, mBuf);
5049 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsANSimultTx, mBuf);
5050 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsMaxUpPts, mBuf);
5057 /***********************************************************
5059 * Func: cmPkCtfTddSfCfgInfo
5062 * Desc: Subframe Configuration for TDD mode.
5063 * @details This structure contains the information for setting-up
5064 * the subframe for TDD mode at PHY.
5073 **********************************************************/
5075 PUBLIC S16 cmPkCtfTddSfCfgInfo
5077 CtfTddSfCfgInfo *param,
5081 PUBLIC S16 cmPkCtfTddSfCfgInfo(param, mBuf)
5082 CtfTddSfCfgInfo *param;
5087 TRC3(cmPkCtfTddSfCfgInfo)
5089 /*ctf_c_001.main_1*/
5090 if(param->pres != FALSE)
5092 CMCHKPK(SPkU8, param->spclSfPatterns, mBuf);
5093 CMCHKPK(SPkU8, param->sfAssignment, mBuf);
5095 CMCHKPK(SPkU8, param->pres, mBuf);
5099 /* ctf_c_001.main_4: Added support for vendor specific parameters */
5101 /***********************************************************
5103 * Func: cmPkCtfVendorSpecParams
5106 * Desc: Vendor Specific Parameter configuration
5107 * @details This structure contains the Parameters which is spaciftc to
5117 **********************************************************/
5119 PUBLIC S16 cmPkCtfVendorSpecParams
5121 CtfVendorSpecific *param,
5125 PUBLIC S16 cmPkCtfVendorSpecParams(param, mBuf)
5126 CtfVendorSpecific *param;
5131 TRC3(cmPkCtfVendorSpecParams)
5132 if( param->buffLen != 0) {
5133 SAddPreMsgMultInOrder(param->paramBuffer,param->buffLen,mBuf);
5135 CMCHKPK(SPkU16,param->buffLen,mBuf);
5140 /***********************************************************
5142 * Func: cmUnpkCtfVendorSpecParams
5145 * Desc: Vendor Specific Parameter configuration
5146 * @details This structure contains the Parameters which is spaciftc to
5156 **********************************************************/
5158 PUBLIC S16 cmUnpkCtfVendorSpecParams
5161 CtfVendorSpecific *param,
5165 PUBLIC S16 cmUnpkCtfVendorSpecParams(pst, param, mBuf)
5167 CtfVendorSpecific *param;
5172 TRC3(cmUnpkCtfVendorSpecParams)
5174 CMCHKUNPK(SUnpkU16, ¶m->buffLen, mBuf);
5176 if(param->buffLen != 0) {
5177 if ((SGetSBuf(pst->region, pst->pool, (Data **)¶m->paramBuffer, param->buffLen)) != ROK) {
5178 #if (ERRCLASS & ERRCLS_ADD_RES)
5179 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
5180 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
5181 (ErrVal)ECTF060, (ErrVal)0, (Txt*)&"Unpacking failed");
5185 SRemPreMsgMult(param->paramBuffer, param->buffLen,mBuf) ;
5188 param->paramBuffer = NULLP ;
5195 /***********************************************************
5197 * Func: cmUnpkCtfTddSfCfgInfo
5200 * Desc: Subframe Configuration for TDD mode.
5201 * @details This structure contains the information for setting-up
5202 * the subframe for TDD mode at PHY.
5211 **********************************************************/
5213 PUBLIC S16 cmUnpkCtfTddSfCfgInfo
5215 CtfTddSfCfgInfo *param,
5219 PUBLIC S16 cmUnpkCtfTddSfCfgInfo(param, mBuf)
5220 CtfTddSfCfgInfo *param;
5225 TRC3(cmUnpkCtfTddSfCfgInfo)
5227 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5228 /*ctf_c_001.main_1*/
5229 if(param->pres != FALSE)
5231 CMCHKUNPK(SUnpkU8, ¶m->sfAssignment, mBuf);
5232 CMCHKUNPK(SUnpkU8, ¶m->spclSfPatterns, mBuf);
5236 /***********************************************************
5238 * Func: cmPkCtfUnLicnsdCellParam
5241 * Desc: Packing unlicensed SDL cell specific parameter
5250 **********************************************************/
5252 PRIVATE S16 cmPkCtfUnLicnsdCellParam
5254 CtfUnLicnsdCfgInfo *param,
5258 PRIVATE S16 cmPkCtfUnLicnsdCellParam(param, mBuf)
5259 CtfUnLicnsdCfgInfo *param;
5265 TRC3(cmPkCtfUnLicnsdCellParam)
5267 CMCHKPK(SPkS32, param->txPowerLimit, mBuf);
5268 CMCHKPK(SPkU8, param->coExistMethod, mBuf);
5269 CMCHKPK(SPkU8, param->lteOnPeriod, mBuf);
5270 CMCHKPK(SPkU8, param->ccaMethod, mBuf);
5271 CMCHKPK(SPkU8, param->adaptiveTx, mBuf);
5272 CMCHKPK(SPkU16, param->transPeriod, mBuf);
5273 CMCHKPK(SPkU16, param->listenPrd, mBuf);
5274 CMCHKPK(SPkS16, param->energyTh, mBuf);
5275 CMCHKPK(SPkU16, param->scanTimePrd, mBuf);
5276 CMCHKPK(SPkU16, param->activityTh, mBuf);
5278 for(idx = 0; idx < param->numFreq; idx++)
5280 CMCHKPK(SPkU32, param->earfcn[idx], mBuf);
5283 CMCHKPK(SPkU8, param->numFreq, mBuf);
5288 /***********************************************************
5290 * Func: cmPkCtfCellCfgInfo
5293 * Desc: Cell Configuration Information
5294 * @details This structure contains the information for setting-up
5295 * of a cell and its associated resources at PHY.
5304 **********************************************************/
5306 PUBLIC S16 cmPkCtfCellCfgInfo
5308 CtfCellCfgInfo *param,
5312 PUBLIC S16 cmPkCtfCellCfgInfo(param, mBuf)
5313 CtfCellCfgInfo *param;
5320 TRC3(cmPkCtfCellCfgInfo)
5323 for (i = CTF_MAX_CE_LEVEL-1; i >= 0; i--) {
5324 CMCHKPK(SPkU8, param->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5325 CMCHKPK(SPkU8, param->ceLevelInfo[i].lastPreamble, mBuf);
5326 CMCHKPK(SPkU8, param->ceLevelInfo[i].firstPreamble, mBuf);
5328 CMCHKPK(SPkU8, param->mPdcchStart, mBuf);
5329 CMCHKPK(SPkU8, param->catMenabled, mBuf);
5331 if(param->unLicnsdCfgPres)
5333 printf("pverma param->unLicnsdCfgPres cm/ctf -->%d\n",param->unLicnsdCfgPres);
5334 CMCHKPK(cmPkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5336 CMCHKPK(SPkU8, param->unLicnsdCfgPres, mBuf);
5337 /*Added for rgu dynamic delta*/
5338 CMCHKPK(SPkU8, param->numDlUePerTti, mBuf);
5339 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5340 CMCHKPK(SPkU16, param->ulEarfcn, mBuf);
5341 CMCHKPK(SPkU16, param->dlEarfcn, mBuf);
5342 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5343 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5344 /* Packing PHY configuration parameters */
5345 CMCHKPK(SPkU32, param->period, mBuf);
5346 CMCHKPK(SPkU32, param->counter, mBuf);
5347 CMCHKPK(SPkU16, param->opMode, mBuf);
5349 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5350 CMCHKPK(SPkU8, param->rachSrRepModePres, mBuf);
5351 CMCHKPK(SPkU16, param->rachSrRepMode, mBuf);
5353 CMCHKPK(SPkU8, param->dataRepModePres, mBuf);
5354 CMCHKPK(SPkU16, param->dataRepMode, mBuf);
5356 CMCHKPK(SPkU8, param->phySyncModePres, mBuf);
5357 CMCHKPK(SPkU16, param->phySyncMode, mBuf);
5359 CMCHKPK(SPkU8, param->rxAntennaPortsPres, mBuf);
5360 CMCHKPK(SPkU16, param->rxAntennaPorts, mBuf);
5362 CMCHKPK(SPkU8, param->txAntennaPortsPres, mBuf);
5363 CMCHKPK(SPkU16, param->txAntennaPorts, mBuf);
5365 CMCHKPK(SPkU8, param->pucchProbDtxAckPres, mBuf);
5366 CMCHKPK(SPkU16, param->pucchProbDtxAck, mBuf);
5368 CMCHKPK(SPkU8, param->puschProbDtxAckPres, mBuf);
5369 CMCHKPK(SPkU16, param->puschProbDtxAck, mBuf);
5371 CMCHKPK(SPkU8, param->srsDopEstFactorPres, mBuf);
5372 CMCHKPK(SPkU16, param->srsDopEstFactor, mBuf);
5374 CMCHKPK(SPkU8, param->prachPkRatio0Pres, mBuf);
5375 CMCHKPK(SPkU16, param->prachPkRatio0, mBuf);
5377 CMCHKPK(SPkU8, param->prachPkRatio4Pres, mBuf);
5378 CMCHKPK(SPkU16, param->prachPkRatio4, mBuf);
5380 CMCHKPK(SPkU8, param->pucchNoiseGammaPres, mBuf);
5381 CMCHKPK(SPkU16, param->pucchNoiseGamma, mBuf);
5383 CMCHKPK(SPkU8, param->extWinMarginPres, mBuf);
5384 CMCHKPK(SPkU16, param->extWinMargin, mBuf);
5386 CMCHKPK(SPkU8, param->dciPowOsPres, mBuf);
5387 CMCHKPK(SPkU16, param->dciPowOs, mBuf);
5389 CMCHKPK(SPkU8, param->cfiPowOsPres, mBuf);
5390 CMCHKPK(SPkU16, param->cfiPowOs, mBuf);
5392 CMCHKPK(SPkU8, param->syncSigPowOsPres, mBuf);
5393 CMCHKPK(SPkU16, param->syncSigPowOs, mBuf);
5395 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5396 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5397 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5398 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5399 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5400 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5401 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5402 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5403 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5404 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5405 CMCHKPK(SPkU8, param->physCellId, mBuf);
5406 CMCHKPK(SPkU8, param->physCellIdPres, mBuf);
5408 CMCHKPK(SPkS16, param->macSapId, mBuf);
5409 CMCHKPK(SPkS16, param->schSapId, mBuf);
5411 CMCHKPK(SPkU8, param->cellIdGrpId, mBuf);
5412 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5415 /***********************************************************
5417 * Func: cmUnpkCtfUnLicnsdCellParam
5420 * Desc: Unpacking unLicensed SDL cell specific parameter
5429 **********************************************************/
5431 PRIVATE S16 cmUnpkCtfUnLicnsdCellParam
5433 CtfUnLicnsdCfgInfo *param,
5437 PRIVATE S16 cmUnpkCtfUnLicnsdCellParam(param, mBuf)
5438 CtfUnLicnsdCfgInfo *param;
5444 TRC3(cmPkCtfUnLicnsdCellParam)
5446 CMCHKUNPK(SUnpkU8, ¶m->numFreq, mBuf);
5448 for(idx = 0; idx < param->numFreq; idx++)
5450 CMCHKUNPK(SUnpkU32, ¶m->earfcn[idx], mBuf);
5453 CMCHKUNPK(SUnpkU16, ¶m->activityTh, mBuf);
5454 CMCHKUNPK(SUnpkU16, ¶m->scanTimePrd, mBuf);
5455 CMCHKUNPK(SUnpkS16, ¶m->energyTh, mBuf);
5456 CMCHKUNPK(SUnpkU16, ¶m->listenPrd, mBuf);
5457 CMCHKUNPK(SUnpkU16, ¶m->transPeriod, mBuf);
5458 CMCHKUNPK(SUnpkU8, ¶m->adaptiveTx, mBuf);
5459 CMCHKUNPK(SUnpkU8, ¶m->ccaMethod, mBuf);
5460 CMCHKUNPK(SUnpkU8, ¶m->lteOnPeriod, mBuf);
5461 CMCHKUNPK(SUnpkU8, ¶m->coExistMethod, mBuf);
5462 CMCHKUNPK(SUnpkS32, ¶m->txPowerLimit, mBuf);
5468 /***********************************************************
5470 * Func: cmUnpkCtfCellCfgInfo
5473 * Desc: Cell Configuration Information
5474 * @details This structure contains the information for setting-up
5475 * of a cell and its associated resources at PHY.
5484 **********************************************************/
5486 PUBLIC S16 cmUnpkCtfCellCfgInfo
5488 CtfCellCfgInfo *param,
5492 PUBLIC S16 cmUnpkCtfCellCfgInfo(param, mBuf)
5493 CtfCellCfgInfo *param;
5500 TRC3(cmUnpkCtfCellCfgInfo)
5502 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5503 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5504 CMCHKUNPK(SUnpkU8, ¶m->cellIdGrpId, mBuf);
5506 CMCHKUNPK(SUnpkS16, ¶m->schSapId, mBuf);
5507 CMCHKUNPK(SUnpkS16, ¶m->macSapId, mBuf);
5509 CMCHKUNPK(SUnpkU8, ¶m->physCellIdPres, mBuf);
5510 CMCHKUNPK(SUnpkU8, ¶m->physCellId, mBuf);
5511 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5512 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5513 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5514 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5515 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5516 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5517 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5518 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5519 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5520 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5522 CMCHKUNPK(SUnpkU16, ¶m->syncSigPowOs, mBuf);
5523 CMCHKUNPK(SUnpkU8, ¶m->syncSigPowOsPres, mBuf);
5525 CMCHKUNPK(SUnpkU16, ¶m->cfiPowOs, mBuf);
5526 CMCHKUNPK(SUnpkU8, ¶m->cfiPowOsPres, mBuf);
5528 CMCHKUNPK(SUnpkU16, ¶m->dciPowOs, mBuf);
5529 CMCHKUNPK(SUnpkU8, ¶m->dciPowOsPres, mBuf);
5531 CMCHKUNPK(SUnpkU16, ¶m->extWinMargin, mBuf);
5532 CMCHKUNPK(SUnpkU8, ¶m->extWinMarginPres, mBuf);
5534 CMCHKUNPK(SUnpkU16, ¶m->pucchNoiseGamma, mBuf);
5535 CMCHKUNPK(SUnpkU8, ¶m->pucchNoiseGammaPres, mBuf);
5537 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio4, mBuf);
5538 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio4Pres, mBuf);
5540 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio0, mBuf);
5541 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio0Pres, mBuf);
5543 CMCHKUNPK(SUnpkU16, ¶m->srsDopEstFactor, mBuf);
5544 CMCHKUNPK(SUnpkU8, ¶m->srsDopEstFactorPres, mBuf);
5546 CMCHKUNPK(SUnpkU16, ¶m->puschProbDtxAck, mBuf);
5547 CMCHKUNPK(SUnpkU8, ¶m->puschProbDtxAckPres, mBuf);
5549 CMCHKUNPK(SUnpkU16, ¶m->pucchProbDtxAck, mBuf);
5550 CMCHKUNPK(SUnpkU8, ¶m->pucchProbDtxAckPres, mBuf);
5552 CMCHKUNPK(SUnpkU16, ¶m->txAntennaPorts, mBuf);
5553 CMCHKUNPK(SUnpkU8, ¶m->txAntennaPortsPres, mBuf);
5555 CMCHKUNPK(SUnpkU16, ¶m->rxAntennaPorts, mBuf);
5556 CMCHKUNPK(SUnpkU8, ¶m->rxAntennaPortsPres, mBuf);
5558 CMCHKUNPK(SUnpkU16, ¶m->phySyncMode, mBuf);
5559 CMCHKUNPK(SUnpkU8, ¶m->phySyncModePres, mBuf);
5561 CMCHKUNPK(SUnpkU16, ¶m->dataRepMode, mBuf);
5562 CMCHKUNPK(SUnpkU8, ¶m->dataRepModePres, mBuf);
5564 CMCHKUNPK(SUnpkU16, ¶m->rachSrRepMode, mBuf);
5565 CMCHKUNPK(SUnpkU8, ¶m->rachSrRepModePres, mBuf);
5567 /* UnPacking PHY configuration parameters */
5568 CMCHKUNPK(SUnpkU16, ¶m->opMode, mBuf);
5569 CMCHKUNPK(SUnpkU32, ¶m->counter, mBuf);
5570 CMCHKUNPK(SUnpkU32, ¶m->period, mBuf);
5571 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5572 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5573 CMCHKUNPK(SUnpkU16, ¶m->dlEarfcn, mBuf);
5574 CMCHKUNPK(SUnpkU16, ¶m->ulEarfcn, mBuf);
5575 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5576 /* Added for rgu dynamic delta change*/
5577 CMCHKUNPK(SUnpkU8, ¶m->numDlUePerTti, mBuf);
5578 CMCHKUNPK(SUnpkU8, ¶m->unLicnsdCfgPres, mBuf);
5580 if(param->unLicnsdCfgPres)
5582 printf("pverma param->unLicnsdCfgPres 2 -->%d \n",param->unLicnsdCfgPres);
5583 CMCHKUNPK(cmUnpkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5586 CMCHKUNPK(SUnpkU8, ¶m->catMenabled, mBuf);
5587 CMCHKUNPK(SUnpkU8, ¶m->mPdcchStart, mBuf);
5589 for (i = 0; i < CTF_MAX_CE_LEVEL; i++) {
5590 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].firstPreamble, mBuf);
5591 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].lastPreamble, mBuf);
5592 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5600 /* ctf_c_001.main_4: Modified cmPkCtfCellRecfgInfo() to Add support for
5601 * vendor specific parameters */
5602 /***********************************************************
5604 * Func: cmPkCtfCellRecfgInfo
5607 * Desc: Cell Re-configuration Information
5608 * @details This structure contains the information for reconfiguration
5609 * of a cell and its associated resources at PHY.
5618 **********************************************************/
5620 PUBLIC S16 cmPkCtfCellRecfgInfo
5622 CtfCellRecfgInfo *param,
5626 PUBLIC S16 cmPkCtfCellRecfgInfo(param, mBuf)
5627 CtfCellRecfgInfo *param;
5632 TRC3(cmPkCtfCellRecfgInfo)
5634 #ifdef ENABLE_API_LOG
5635 CMCHKPK(SPkU8, param->enableAPILog, mBuf);
5636 #endif /* ENABLE_API_LOG */
5637 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5638 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5639 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5640 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5641 CMCHKPK(SPkU8, param->rachSrRepModePres, mBuf);
5642 CMCHKPK(SPkU16, param->rachSrRepMode, mBuf);
5644 CMCHKPK(SPkU8, param->dataRepModePres, mBuf);
5645 CMCHKPK(SPkU16, param->dataRepMode, mBuf);
5647 CMCHKPK(SPkU8, param->phySyncModePres, mBuf);
5648 CMCHKPK(SPkU16, param->phySyncMode, mBuf);
5650 CMCHKPK(SPkU8, param->rxAntennaPortsPres, mBuf);
5651 CMCHKPK(SPkU16, param->rxAntennaPorts, mBuf);
5653 CMCHKPK(SPkU8, param->txAntennaPortsPres, mBuf);
5654 CMCHKPK(SPkU16, param->txAntennaPorts, mBuf);
5656 CMCHKPK(SPkU8, param->pucchProbDtxAckPres, mBuf);
5657 CMCHKPK(SPkU16, param->pucchProbDtxAck, mBuf);
5660 CMCHKPK(SPkU8, param->puschProbDtxAckPres, mBuf);
5661 CMCHKPK(SPkU16, param->puschProbDtxAck, mBuf);
5663 CMCHKPK(SPkU8, param->srsDopEstFactorPres, mBuf);
5664 CMCHKPK(SPkU16, param->srsDopEstFactor, mBuf);
5666 CMCHKPK(SPkU8, param->prachPkRatio0Pres, mBuf);
5667 CMCHKPK(SPkU16, param->prachPkRatio0, mBuf);
5669 CMCHKPK(SPkU8, param->prachPkRatio4Pres, mBuf);
5670 CMCHKPK(SPkU16, param->prachPkRatio4, mBuf);
5672 CMCHKPK(SPkU8, param->pucchNoiseGammaPres, mBuf);
5673 CMCHKPK(SPkU16, param->pucchNoiseGamma, mBuf);
5675 CMCHKPK(SPkU8, param->extWinMarginPres, mBuf);
5676 CMCHKPK(SPkU16, param->extWinMargin, mBuf);
5678 CMCHKPK(SPkU8, param->dciPowOsPres, mBuf);
5679 CMCHKPK(SPkU16, param->dciPowOs, mBuf);
5681 CMCHKPK(SPkU8, param->cfiPowOsPres, mBuf);
5682 CMCHKPK(SPkU16, param->cfiPowOs, mBuf);
5684 CMCHKPK(SPkU8, param->syncSigPowOsPres, mBuf);
5685 CMCHKPK(SPkU16, param->syncSigPowOs, mBuf);
5687 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5688 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5689 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5690 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5691 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5692 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5693 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5694 CMCHKPK(cmPkLteTimingInfo, ¶m->actvnTime, mBuf);
5696 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5697 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5698 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5699 CMCHKPK(SPkU8, param->physCellId, mBuf);
5700 CMCHKPK(SPkU8, param->physCellIdPres, mBuf);
5701 CMCHKPK(SPkU8, param->cellIdGrpId, mBuf);
5702 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5703 CMCHKPK(SPkU32, param->ctfReCfgType, mBuf);
5709 /***********************************************************
5711 * Func: cmUnpkCtfCellRecfgInfo
5714 * Desc: Cell Re-configuration Information
5715 * @details This structure contains the information for reconfiguration
5716 * of a cell and its associated resources at PHY.
5725 **********************************************************/
5727 PUBLIC S16 cmUnpkCtfCellRecfgInfo
5729 CtfCellRecfgInfo *param,
5733 PUBLIC S16 cmUnpkCtfCellRecfgInfo(param, mBuf)
5734 CtfCellRecfgInfo *param;
5740 TRC3(cmUnpkCtfCellRecfgInfo)
5742 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5743 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
5744 param->ctfReCfgType = (CtfReCfgType)tmpEnum;
5745 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5746 CMCHKUNPK(SUnpkU8, ¶m->cellIdGrpId, mBuf);
5747 CMCHKUNPK(SUnpkU8, ¶m->physCellIdPres, mBuf);
5748 CMCHKUNPK(SUnpkU8, ¶m->physCellId, mBuf);
5749 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5750 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5751 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5753 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvnTime, mBuf);
5754 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5755 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5756 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5757 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5758 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5759 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5760 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5762 CMCHKUNPK(SUnpkU16, ¶m->syncSigPowOs, mBuf);
5763 CMCHKUNPK(SUnpkU8, ¶m->syncSigPowOsPres, mBuf);
5765 CMCHKUNPK(SUnpkU16, ¶m->cfiPowOs, mBuf);
5766 CMCHKUNPK(SUnpkU8, ¶m->cfiPowOsPres, mBuf);
5768 CMCHKUNPK(SUnpkU16, ¶m->dciPowOs, mBuf);
5769 CMCHKUNPK(SUnpkU8, ¶m->dciPowOsPres, mBuf);
5771 CMCHKUNPK(SUnpkU16, ¶m->extWinMargin, mBuf);
5772 CMCHKUNPK(SUnpkU8, ¶m->extWinMarginPres, mBuf);
5774 CMCHKUNPK(SUnpkU16, ¶m->pucchNoiseGamma, mBuf);
5775 CMCHKUNPK(SUnpkU8, ¶m->pucchNoiseGammaPres, mBuf);
5777 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio4, mBuf);
5778 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio4Pres, mBuf);
5780 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio0, mBuf);
5781 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio0Pres, mBuf);
5783 CMCHKUNPK(SUnpkU16, ¶m->srsDopEstFactor, mBuf);
5784 CMCHKUNPK(SUnpkU8, ¶m->srsDopEstFactorPres, mBuf);
5786 CMCHKUNPK(SUnpkU16, ¶m->puschProbDtxAck, mBuf);
5787 CMCHKUNPK(SUnpkU8, ¶m->puschProbDtxAckPres, mBuf);
5789 CMCHKUNPK(SUnpkU16, ¶m->pucchProbDtxAck, mBuf);
5790 CMCHKUNPK(SUnpkU8, ¶m->pucchProbDtxAckPres, mBuf);
5792 CMCHKUNPK(SUnpkU16, ¶m->txAntennaPorts, mBuf);
5793 CMCHKUNPK(SUnpkU8, ¶m->txAntennaPortsPres, mBuf);
5795 CMCHKUNPK(SUnpkU16, ¶m->rxAntennaPorts, mBuf);
5796 CMCHKUNPK(SUnpkU8, ¶m->rxAntennaPortsPres, mBuf);
5798 CMCHKUNPK(SUnpkU16, ¶m->phySyncMode, mBuf);
5799 CMCHKUNPK(SUnpkU8, ¶m->phySyncModePres, mBuf);
5801 CMCHKUNPK(SUnpkU16, ¶m->dataRepMode, mBuf);
5802 CMCHKUNPK(SUnpkU8, ¶m->dataRepModePres, mBuf);
5804 CMCHKUNPK(SUnpkU16, ¶m->rachSrRepMode, mBuf);
5805 CMCHKUNPK(SUnpkU8, ¶m->rachSrRepModePres, mBuf);
5807 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5808 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5809 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5810 printf("param->pilotSigPwr = %d\nparam->priSigPwr = %d\n param->secSigPwr = %d\n",param->pilotSigPwr,param->priSigPwr,param->secSigPwr);
5811 #ifdef ENABLE_API_LOG
5812 CMCHKUNPK(SUnpkU8, ¶m->enableAPILog, mBuf);
5813 #endif /* ENABLE_API_LOG */
5819 /***********************************************************
5821 * Func: cmPkCtfDedPdschCfgInfo
5824 * Desc: Dedicated PDSCH Configuration
5825 * @details This structure contains the information for PDSCH configuration
5826 * specific to an UE.
5835 **********************************************************/
5837 PUBLIC S16 cmPkCtfDedPdschCfgInfo
5839 CtfDedPdschCfgInfo *param,
5843 PUBLIC S16 cmPkCtfDedPdschCfgInfo(param, mBuf)
5844 CtfDedPdschCfgInfo *param;
5849 TRC3(cmPkCtfDedPdschCfgInfo)
5851 /*ctf_c_001.main_1*/
5852 if(param->pres != FALSE)
5853 CMCHKPK(SPkU32, param->pA, mBuf);
5854 CMCHKPK(SPkU8, param->pres, mBuf);
5860 /***********************************************************
5862 * Func: cmUnpkCtfDedPdschCfgInfo
5865 * Desc: Dedicated PDSCH Configuration
5866 * @details This structure contains the information for PDSCH configuration
5867 * specific to an UE.
5876 **********************************************************/
5878 PUBLIC S16 cmUnpkCtfDedPdschCfgInfo
5880 CtfDedPdschCfgInfo *param,
5884 PUBLIC S16 cmUnpkCtfDedPdschCfgInfo(param, mBuf)
5885 CtfDedPdschCfgInfo *param;
5890 TRC3(cmUnpkCtfDedPdschCfgInfo)
5892 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5893 /*ctf_c_001.main_1*/
5894 if(param->pres != FALSE)
5896 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
5897 param->pA = (CtfPdschPaParam)tmpEnum;
5904 /***********************************************************
5906 * Func: cmPkCtfDedPucchCfgInfo
5909 * Desc: Dedicated PUCCH Configuration
5910 * @details This structure contains the information for setting-up/release
5911 * PUCCH configuration specific to an UE.
5920 **********************************************************/
5922 PUBLIC S16 cmPkCtfDedPucchCfgInfo
5924 CtfDedPucchCfgInfo *param,
5928 PUBLIC S16 cmPkCtfDedPucchCfgInfo(param, mBuf)
5929 CtfDedPucchCfgInfo *param;
5934 TRC3(cmPkCtfDedPucchCfgInfo)
5936 /*ctf_c_001.main_1*/
5937 if(param->pres != FALSE)
5940 /*ctf_c_001.main_4:115549: packing tddAckNackFBMode and tddAckNackCfgPres */
5941 if (param->tddAckNackCfgPres != FALSE)
5943 CMCHKPK(SPkU32, param->tddAckNackFBMode, mBuf);
5946 CMCHKPK(SPkU8, param->tddAckNackCfgPres, mBuf);
5947 #endif /* CTF_VER3 */
5948 CMCHKPK(SPkU16, param->pucchSetup.n1PUCCHRep, mBuf);
5950 /*ctf_c_001.main_4:115549: packing pucchSetup.repFactPres */
5951 if (param->pucchSetup.repFactPres)
5953 CMCHKPK(SPkU32, param->pucchSetup.repFact, mBuf);
5956 CMCHKPK(SPkU8, param->pucchSetup.repFactPres, mBuf);
5958 CMCHKPK(SPkU32, param->pucchSetup.repFact, mBuf);
5959 #endif /* CTF_VER3 */
5960 CMCHKPK(SPkU8, param->dedPucchCfgType, mBuf);
5962 CMCHKPK(SPkU8, param->pres, mBuf);
5968 /***********************************************************
5970 * Func: cmUnpkCtfDedPucchCfgInfo
5973 * Desc: Dedicated PUCCH Configuration
5974 * @details This structure contains the information for setting-up/release
5975 * PUCCH configuration specific to an UE.
5984 **********************************************************/
5986 PUBLIC S16 cmUnpkCtfDedPucchCfgInfo
5988 CtfDedPucchCfgInfo *param,
5992 PUBLIC S16 cmUnpkCtfDedPucchCfgInfo(param, mBuf)
5993 CtfDedPucchCfgInfo *param;
5998 TRC3(cmUnpkCtfDedPucchCfgInfo)
6000 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6001 /*ctf_c_001.main_1*/
6002 if(param->pres != FALSE)
6004 CMCHKUNPK(SUnpkU8, ¶m->dedPucchCfgType, mBuf);
6006 /* ctf_c_001.main_4:115549: unpacking pucchSetup.repFactPres */
6007 CMCHKUNPK(SUnpkU8, ¶m->pucchSetup.repFactPres, mBuf);
6009 if (param->pucchSetup.repFactPres)
6011 CMCHKUNPK(SUnpkU32, (U32 *)¶m->pucchSetup.repFact, mBuf);
6014 CMCHKUNPK(SUnpkU32, (U32 *)¶m->pucchSetup.repFact, mBuf);
6015 #endif /*CTF_VER3 */
6016 CMCHKUNPK(SUnpkU16, ¶m->pucchSetup.n1PUCCHRep, mBuf);
6018 /*ctf_c_001.main_4:115549: unpacking tddAckNackCfgPres and tddAckNackFBMode */
6019 CMCHKUNPK(SUnpkU8, ¶m->tddAckNackCfgPres, mBuf);
6021 if (param->tddAckNackCfgPres != FALSE)
6023 CMCHKUNPK(SUnpkU32, (U32 *)¶m->tddAckNackFBMode, mBuf);
6025 #endif /* CTF_VER3 */
6032 /***********************************************************
6034 * Func: cmPkCtfDedPuschCfgInfo
6037 * Desc: Dedicated PUSCH Configuration
6038 * @details This structure contains the information for PUCCH
6039 * configuration specific to an UE.
6048 **********************************************************/
6050 PUBLIC S16 cmPkCtfDedPuschCfgInfo
6052 CtfDedPuschCfgInfo *param,
6056 PUBLIC S16 cmPkCtfDedPuschCfgInfo(param, mBuf)
6057 CtfDedPuschCfgInfo *param;
6062 TRC3(cmPkCtfDedPuschCfgInfo)
6064 /*ctf_c_001.main_1*/
6065 if(param->pres != FALSE)
6067 CMCHKPK(SPkU8, param->betaOffsetCqiIdx, mBuf);
6068 CMCHKPK(SPkU8, param->betaOffsetRiIdx, mBuf);
6069 CMCHKPK(SPkU8, param->betaOffsetAckIdx, mBuf);
6071 CMCHKPK(SPkU8, param->pres, mBuf);
6077 /***********************************************************
6079 * Func: cmUnpkCtfDedPuschCfgInfo
6082 * Desc: Dedicated PUSCH Configuration
6083 * @details This structure contains the information for PUCCH
6084 * configuration specific to an UE.
6093 **********************************************************/
6095 PUBLIC S16 cmUnpkCtfDedPuschCfgInfo
6097 CtfDedPuschCfgInfo *param,
6101 PUBLIC S16 cmUnpkCtfDedPuschCfgInfo(param, mBuf)
6102 CtfDedPuschCfgInfo *param;
6107 TRC3(cmUnpkCtfDedPuschCfgInfo)
6109 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6110 /*ctf_c_001.main_1*/
6111 if(param->pres != FALSE)
6113 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetAckIdx, mBuf);
6114 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetRiIdx, mBuf);
6115 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetCqiIdx, mBuf);
6123 /***********************************************************
6125 * Func: cmPkCtfCqiRptModePeriodic
6128 * Desc: Periodic CQI Report Configuration
6129 * @details This structure contains the information for periodic CQI report
6130 * related configuration specific to an UE.
6139 **********************************************************/
6141 PUBLIC S16 cmPkCtfCqiRptModePeriodic
6143 CtfCqiRptModePeriodic *param,
6147 PUBLIC S16 cmPkCtfCqiRptModePeriodic(param, mBuf)
6148 CtfCqiRptModePeriodic *param;
6153 TRC3(cmPkCtfCqiRptModePeriodic)
6154 /* ctf_c_001.main_2: added packning for cqiMask*/
6156 CMCHKPK(SPkU32, (U32 )param->cqiSetup.cqiMask.cqiMaskSetup, mBuf);
6157 CMCHKPK(SPkU8, param->cqiSetup.cqiMask.pres, mBuf);
6158 #endif /* CTF_VER1 */
6159 CMCHKPK(SPkU8, param->cqiSetup.simultaneousAckNack, mBuf);
6160 CMCHKPK(SPkU16, param->cqiSetup.riCfgIndx, mBuf);
6161 CMCHKPK(SPkU8, param->cqiSetup.riCfgPres, mBuf);
6162 CMCHKPK(SPkU8, param->cqiSetup.subbandCqi.k, mBuf);
6163 CMCHKPK(SPkU8, param->cqiSetup.formatIndicator, mBuf);
6164 CMCHKPK(SPkU16, param->cqiSetup.cqiPmiCfgIndx, mBuf);
6165 CMCHKPK(SPkU16, param->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6166 CMCHKPK(SPkU8, param->cqiPeriodicCfgType, mBuf);
6172 /***********************************************************
6174 * Func: cmUnpkCtfCqiRptModePeriodic
6177 * Desc: Periodic CQI Report Configuration
6178 * @details This structure contains the information for periodic CQI report
6179 * related configuration specific to an UE.
6188 **********************************************************/
6190 PUBLIC S16 cmUnpkCtfCqiRptModePeriodic
6192 CtfCqiRptModePeriodic *param,
6196 PUBLIC S16 cmUnpkCtfCqiRptModePeriodic(param, mBuf)
6197 CtfCqiRptModePeriodic *param;
6204 TRC3(cmUnpkCtfCqiRptModePeriodic)
6206 CMCHKUNPK(SUnpkU8, ¶m->cqiPeriodicCfgType, mBuf);
6207 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6208 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.cqiPmiCfgIndx, mBuf);
6209 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.formatIndicator, mBuf);
6210 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.subbandCqi.k, mBuf);
6211 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.riCfgPres, mBuf);
6212 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.riCfgIndx, mBuf);
6213 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.simultaneousAckNack, mBuf);
6214 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6216 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.cqiMask.pres, mBuf);
6217 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6218 param->cqiSetup.cqiMask.cqiMaskSetup = tmpEnum;
6219 #endif /* CTF_VER1 */
6225 /***********************************************************
6227 * Func: cmPkCtfCqiReportCfgInfo
6230 * Desc: CQI Report Configuration
6231 * @details This structure contains the information for CQI report
6232 * related configuration specific to an UE.
6241 **********************************************************/
6243 PUBLIC S16 cmPkCtfCqiReportCfgInfo
6245 CtfCqiReportCfgInfo *param,
6249 PUBLIC S16 cmPkCtfCqiReportCfgInfo(param, mBuf)
6250 CtfCqiReportCfgInfo *param;
6255 TRC3(cmPkCtfCqiReportCfgInfo)
6257 /*ctf_c_001.main_1*/
6258 if(param->pres != FALSE)
6262 * ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6263 *report configuration in the same message
6265 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6267 CMCHKPK(SPkU32, param->reportMode.aPeriodicRpt.aPeriodicRptMode, mBuf);
6269 CMCHKPK(SPkU8, param->reportMode.aPeriodicRpt.pres, mBuf);
6271 if(param->reportMode.periodicRpt.pres != FALSE)
6273 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6275 CMCHKPK(SPkU8, param->reportMode.periodicRpt.pres, mBuf);
6277 #else /* CTF_VER2 */
6279 switch(param->reportingMode) {
6280 case CTF_CQI_RPTMODE_PRDIOC:
6281 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6283 case CTF_CQI_RPTMODE_APRDIOC:
6284 CMCHKPK(SPkU32, param->reportMode.aPeriodicRpt, mBuf);
6289 CMCHKPK(SPkU8, param->reportingMode, mBuf);
6290 #endif /* CTF_VER2 */
6292 /* ctf_c_001.main_2: added packning for pmiRiRpt*/
6294 CMCHKPK(SPkU32, param->pmiRiRpt.pmiRiRptSetup, mBuf);
6295 CMCHKPK(SPkU8, param->pmiRiRpt.pres, mBuf);
6296 #endif /* CTF_VER1 */
6299 CMCHKPK(SPkU8, param->pres, mBuf);
6305 /***********************************************************
6307 * Func: cmUnpkCtfCqiReportCfgInfo
6310 * Desc: CQI Report Configuration
6311 * @details This structure contains the information for CQI report
6312 * related configuration specific to an UE.
6321 **********************************************************/
6323 PUBLIC S16 cmUnpkCtfCqiReportCfgInfo
6325 CtfCqiReportCfgInfo *param,
6329 PUBLIC S16 cmUnpkCtfCqiReportCfgInfo(param, mBuf)
6330 CtfCqiReportCfgInfo *param;
6334 #if defined (CTF_VER1) || defined (CTF_VER2)
6337 TRC3(cmUnpkCtfCqiReportCfgInfo)
6339 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6340 /*ctf_c_001.main_1*/
6341 if(param->pres != FALSE)
6343 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6345 CMCHKUNPK(SUnpkU8, ¶m->pmiRiRpt.pres, mBuf);
6346 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6347 param->pmiRiRpt.pmiRiRptSetup = tmpEnum;
6348 #endif /* CTF_VER1 */
6352 *ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6353 *report configuration in the same message
6355 CMCHKUNPK(SUnpkU8, ¶m->reportMode.periodicRpt.pres, mBuf)
6356 if(param->reportMode.periodicRpt.pres != FALSE)
6358 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6361 CMCHKUNPK(SUnpkU8, ¶m->reportMode.aPeriodicRpt.pres, mBuf)
6362 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6364 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6365 param->reportMode.aPeriodicRpt.aPeriodicRptMode =
6366 (CtfCqiRptModeAperiodic)tmpEnum;
6369 #else /* CTF_VER2 */
6371 CMCHKUNPK(SUnpkU8, ¶m->reportingMode, mBuf);
6372 switch(param->reportingMode) {
6373 case CTF_CQI_RPTMODE_APRDIOC:
6374 CMCHKUNPK(SUnpkU32, (U32 *)¶m->reportMode.aPeriodicRpt, mBuf);
6376 case CTF_CQI_RPTMODE_PRDIOC:
6377 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6382 #endif /* CTF_VER2 */
6389 /***********************************************************
6391 * Func: cmPkCtfDedSrsUlCfgInfo
6394 * Desc: Dedicated Uplink SRS Configuration
6395 * @details This structure contains the information for setting-up/release
6396 * UL SRS configuration specific to an UE.
6405 **********************************************************/
6407 PUBLIC S16 cmPkCtfDedSrsUlCfgInfo
6409 CtfDedSrsUlCfgInfo *param,
6413 PUBLIC S16 cmPkCtfDedSrsUlCfgInfo(param, mBuf)
6414 CtfDedSrsUlCfgInfo *param;
6419 TRC3(cmPkCtfDedSrsUlCfgInfo)
6421 /*ctf_c_001.main_1*/
6422 if(param->pres != FALSE)
6424 CMCHKPK(SPkU8, param->dedSrsSetup.cyclicShift, mBuf);
6425 CMCHKPK(SPkU8, param->dedSrsSetup.txComb, mBuf);
6426 CMCHKPK(SPkU16, param->dedSrsSetup.srsCfgIdx, mBuf);
6427 CMCHKPK(SPkU8, param->dedSrsSetup.duration, mBuf);
6428 CMCHKPK(SPkU8, param->dedSrsSetup.freqDmnPos, mBuf);
6429 CMCHKPK(SPkU8, param->dedSrsSetup.srsHopngBw, mBuf);
6430 CMCHKPK(SPkU8, param->dedSrsSetup.srsBw, mBuf);
6431 CMCHKPK(SPkU8, param->dedSrsUlCfgType, mBuf);
6433 CMCHKPK(SPkU8, param->pres, mBuf);
6439 /***********************************************************
6441 * Func: cmUnpkCtfDedSrsUlCfgInfo
6444 * Desc: Dedicated Uplink SRS Configuration
6445 * @details This structure contains the information for setting-up/release
6446 * UL SRS configuration specific to an UE.
6455 **********************************************************/
6457 PUBLIC S16 cmUnpkCtfDedSrsUlCfgInfo
6459 CtfDedSrsUlCfgInfo *param,
6463 PUBLIC S16 cmUnpkCtfDedSrsUlCfgInfo(param, mBuf)
6464 CtfDedSrsUlCfgInfo *param;
6469 TRC3(cmUnpkCtfDedSrsUlCfgInfo)
6471 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6472 /*ctf_c_001.main_1*/
6473 if(param->pres != FALSE)
6475 CMCHKUNPK(SUnpkU8, ¶m->dedSrsUlCfgType, mBuf);
6476 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.srsBw, mBuf);
6477 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.srsHopngBw, mBuf);
6478 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.freqDmnPos, mBuf);
6479 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.duration, mBuf);
6480 CMCHKUNPK(SUnpkU16, ¶m->dedSrsSetup.srsCfgIdx, mBuf);
6481 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.txComb, mBuf);
6482 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.cyclicShift, mBuf);
6489 /***********************************************************
6491 * Func: cmPkCtfDedSRCfgInfo
6494 * Desc: Dedicated SR Configuration
6495 * @details This structure contains the information for setting-up/release
6496 * SR configuration specific to an UE at PHY.
6505 **********************************************************/
6507 PUBLIC S16 cmPkCtfDedSRCfgInfo
6509 CtfDedSRCfgInfo *param,
6513 PUBLIC S16 cmPkCtfDedSRCfgInfo(param, mBuf)
6514 CtfDedSRCfgInfo *param;
6519 TRC3(cmPkCtfDedSRCfgInfo)
6521 /*ctf_c_001.main_1*/
6522 if(param->pres != FALSE)
6524 CMCHKPK(SPkU8, param->dedSrSetup.srCfgIdx, mBuf);
6525 CMCHKPK(SPkU16, param->dedSrSetup.srPUCCHRi, mBuf);
6526 CMCHKPK(SPkU8, param->dedSRCfgType, mBuf);
6528 CMCHKPK(SPkU8, param->pres, mBuf);
6534 /***********************************************************
6536 * Func: cmUnpkCtfDedSRCfgInfo
6539 * Desc: Dedicated SR Configuration
6540 * @details This structure contains the information for setting-up/release
6541 * SR configuration specific to an UE at PHY.
6550 **********************************************************/
6552 PUBLIC S16 cmUnpkCtfDedSRCfgInfo
6554 CtfDedSRCfgInfo *param,
6558 PUBLIC S16 cmUnpkCtfDedSRCfgInfo(param, mBuf)
6559 CtfDedSRCfgInfo *param;
6564 TRC3(cmUnpkCtfDedSRCfgInfo)
6566 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6567 /*ctf_c_001.main_1*/
6568 if(param->pres != FALSE)
6570 CMCHKUNPK(SUnpkU8, ¶m->dedSRCfgType, mBuf);
6571 CMCHKUNPK(SUnpkU16, ¶m->dedSrSetup.srPUCCHRi, mBuf);
6572 CMCHKUNPK(SUnpkU8, ¶m->dedSrSetup.srCfgIdx, mBuf);
6577 #endif /* TFU_UPGRADE */
6580 /***********************************************************
6582 * Func: cmPkCtfDedAntCfgInfo
6585 * Desc: Dedicated Antenna Configuration
6586 * @details This structure contains the information for antenna related
6587 * configuration specific to an UE at PHY.
6596 **********************************************************/
6598 PUBLIC S16 cmPkCtfDedAntCfgInfo
6600 CtfDedAntCfgInfo *param,
6604 PUBLIC S16 cmPkCtfDedAntCfgInfo(param, mBuf)
6605 CtfDedAntCfgInfo *param;
6612 #endif /* CTF_VER2 */
6614 TRC3(cmPkCtfDedAntCfgInfo)
6616 /*ctf_c_001.main_1*/
6617 if(param->pres != FALSE)
6619 CMCHKPK(SPkU32, param->ueTxAntSelection.txAntSelect, mBuf);
6620 CMCHKPK(SPkU8, param->ueTxAntSelection.cfgType, mBuf);
6621 /* ctf_c_001.main_3 txMode is of type enum and is 32bit length */
6622 CMCHKPK(SPkU32, (U32)param->txMode, mBuf);
6625 *ctf_c_001.main_2: Added Packing of CodeBookSubsetRestriction parameter
6627 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6630 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6635 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6640 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6645 for(idx = 0; idx < 8; idx++)
6646 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6647 n4TxAntTm4[idx], mBuf);
6651 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6656 CMCHKPK(SPkU16, param->codeBookSubsetRes.codeBookSubsetRestn.
6661 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6666 CMCHKPK(SPkU16, param->codeBookSubsetRes.codeBookSubsetRestn.
6673 CMCHKPK(SPkU32, param->codeBookSubsetRes.ctfCdBkRestType, mBuf);
6674 #endif /* CTF_VER2 */
6676 CMCHKPK(SPkU8, param->pres, mBuf);
6682 /***********************************************************
6684 * Func: cmUnpkCtfDedAntCfgInfo
6687 * Desc: Dedicated Antenna Configuration
6688 * @details This structure contains the information for antenna related
6689 * configuration specific to an UE at PHY.
6698 **********************************************************/
6700 PUBLIC S16 cmUnpkCtfDedAntCfgInfo
6702 CtfDedAntCfgInfo *param,
6706 PUBLIC S16 cmUnpkCtfDedAntCfgInfo(param, mBuf)
6707 CtfDedAntCfgInfo *param;
6713 #endif /* CTF_VER2 */
6717 TRC3(cmUnpkCtfDedAntCfgInfo)
6719 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6720 /*ctf_c_001.main_1*/
6721 if(param->pres != FALSE)
6725 * Added Unpacking for CodeBookSubsetRestriction parameter
6727 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6728 param->codeBookSubsetRes.ctfCdBkRestType = (CtfCdBkSubsetRestnType)tmpEnum;
6729 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6732 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6737 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6742 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6747 for(idx = 7; idx >= 0; idx--)
6749 CMCHKUNPK(SUnpkU8, &(param->codeBookSubsetRes.codeBookSubsetRestn.
6750 n4TxAntTm4[idx]), mBuf);
6755 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6760 CMCHKUNPK(SUnpkU16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6765 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6770 CMCHKUNPK(SUnpkU16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6776 #endif /* CTF_VER2 */
6777 /* ctf_c_001.main_3 Enum is 32bit length */
6778 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6779 param->txMode = (CtfUeTxAntMode)tmpEnum;
6780 CMCHKUNPK(SUnpkU8, ¶m->ueTxAntSelection.cfgType, mBuf);
6781 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6782 param->ueTxAntSelection.txAntSelect = (CtfUeTxAntSelectType)tmpEnum;
6788 /***********************************************************
6790 * Func: cmPkCtfUeSecCellCfgInfo
6793 * Desc: Secondary Cell Configuration for a UE
6794 * @details This structure contains the information for
6795 * secondary cells for the UE
6803 **********************************************************/
6805 PUBLIC S16 cmPkCtfUeSecCellCfgInfo
6807 CtfUeSecCellCfgInfo *param,
6811 PUBLIC S16 cmPkCtfUeSecCellCfgInfo(*param, mBuf)
6812 CtfUeSecCellCfgInfo *param;
6816 CMCHKPK(SPkU16, param->sCellId, mBuf);
6817 CMCHKPK(SPkU8, param->sCellIdx, mBuf);
6821 /***********************************************************
6823 * Func: cmPkCtfSecCellCfgInfo
6826 * Desc: Secondary Cell Configuration for a UE
6827 * @details This structure contains the information for
6828 * secondary cells for the UE
6836 **********************************************************/
6838 PUBLIC S16 cmPkCtfSecCellCfgInfo
6840 CtfSecCellCfgInfo *param,
6844 PUBLIC S16 cmPkCtfSecCellCfgInfo(*param, mBuf)
6845 CtfSecCellCfgInfo *param;
6851 for(idx = param->numSCells - 1; idx >= 0; idx--)
6853 CMCHKPK(cmPkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[(U8)idx], mBuf);
6855 CMCHKPK(SPkU32, param->sCellAction, mBuf);
6856 CMCHKPK(SPkU8, param->numSCells, mBuf);
6861 /***********************************************************
6863 * Func: cmUnpkCtfUeSecCellCfgInfo
6866 * Desc: Secondary Cell Configuration for a UE
6867 * @details This structure contains the information for
6868 * secondary cells for the UE
6876 **********************************************************/
6878 PUBLIC S16 cmUnpkCtfUeSecCellCfgInfo
6880 CtfUeSecCellCfgInfo *param,
6884 PUBLIC S16 cmUnpkCtfUeSecCellCfgInfo(*param, mBuf)
6885 CtfUeSecCellCfgInfo *param;
6889 CMCHKUNPK(SUnpkU8, ¶m->sCellIdx, mBuf);
6890 CMCHKUNPK(SUnpkU16, ¶m->sCellId, mBuf);
6895 /***********************************************************
6897 * Func: cmUnpkCtfSecCellCfgInfo
6900 * Desc: Secondary Cell Configuration for a UE
6901 * @details This structure contains the information for
6902 * secondary cells for the UE
6910 **********************************************************/
6913 PUBLIC S16 cmUnpkCtfSecCellCfgInfo
6915 CtfSecCellCfgInfo *param,
6919 PUBLIC S16 cmUnpkCtfSecCellCfgInfo(*param, mBuf)
6920 CtfSecCellCfgInfo *param;
6926 CMCHKUNPK(SUnpkU8, ¶m->numSCells, mBuf);
6927 CMCHKUNPK(SUnpkU32, (U32*)¶m->sCellAction, mBuf);
6928 for(idx = 0 ; idx < param->numSCells; idx++)
6930 CMCHKUNPK(cmUnpkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[idx], mBuf);
6937 /***********************************************************
6939 * Func: cmPkCtfUeCatCfgInfo
6942 * Desc: UE Category Configuration
6943 * @details This structure contains the information for configuring
6944 * the UE category at PHY.
6953 **********************************************************/
6955 PUBLIC S16 cmPkCtfUeCatCfgInfo
6957 CtfUeCatCfgInfo *param,
6961 PUBLIC S16 cmPkCtfUeCatCfgInfo(param, mBuf)
6962 CtfUeCatCfgInfo *param;
6967 TRC3(cmPkCtfUeCatCfgInfo)
6969 /*ctf_c_001.main_1*/
6970 if(param->pres != FALSE)
6971 CMCHKPK(SPkU32, param->ueCategory, mBuf);
6972 CMCHKPK(SPkU8, param->pres, mBuf);
6978 /***********************************************************
6980 * Func: cmUnpkCtfUeCatCfgInfo
6983 * Desc: UE Category Configuration
6984 * @details This structure contains the information for configuring
6985 * the UE category at PHY.
6994 **********************************************************/
6996 PUBLIC S16 cmUnpkCtfUeCatCfgInfo
6998 CtfUeCatCfgInfo *param,
7002 PUBLIC S16 cmUnpkCtfUeCatCfgInfo(param, mBuf)
7003 CtfUeCatCfgInfo *param;
7008 TRC3(cmUnpkCtfUeCatCfgInfo)
7010 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
7011 /*ctf_c_001.main_1*/
7012 if(param->pres != FALSE)
7013 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ueCategory, mBuf);
7019 /***********************************************************
7021 * Func: cmPkCtfDedCfgInfo
7024 * Desc: Dedicated Configuration Information
7025 * @details This structure contains the information for configuration
7026 * of UE-specific physical channel resources at PHY.
7035 **********************************************************/
7037 PUBLIC S16 cmPkCtfDedCfgInfo
7039 CtfDedCfgInfo *param,
7043 PUBLIC S16 cmPkCtfDedCfgInfo(param, mBuf)
7044 CtfDedCfgInfo *param;
7049 TRC3(cmPkCtfDedCfgInfo)
7051 CMCHKPK(SPkU8, param->isEmtcUe, mBuf);
7053 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7055 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7056 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7057 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7058 #endif /* TFU_UPGRADE */
7059 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7060 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7061 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7062 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7063 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7064 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7070 /***********************************************************
7072 * Func: cmUnpkCtfDedCfgInfo
7075 * Desc: Dedicated Configuration Information
7076 * @details This structure contains the information for configuration
7077 * of UE-specific physical channel resources at PHY.
7086 **********************************************************/
7088 PUBLIC S16 cmUnpkCtfDedCfgInfo
7090 CtfDedCfgInfo *param,
7094 PUBLIC S16 cmUnpkCtfDedCfgInfo(param, mBuf)
7095 CtfDedCfgInfo *param;
7100 TRC3(cmUnpkCtfDedCfgInfo)
7102 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7103 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7104 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7105 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7106 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7107 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7109 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7110 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7111 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7112 #endif /* TFU_UPGRADE */
7113 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7115 CMCHKUNPK(SUnpkU8, ¶m->isEmtcUe, mBuf);
7122 /***********************************************************
7124 * Func: cmPkCtfDedRecfgInfo
7127 * Desc: Dedicated Re-configuration Information
7128 * @details This structure contains the information for re-configuration
7129 * of UE-specific physical channel resources at PHY.
7138 **********************************************************/
7140 PUBLIC S16 cmPkCtfDedRecfgInfo
7142 CtfDedRecfgInfo *param,
7146 PUBLIC S16 cmPkCtfDedRecfgInfo(param, mBuf)
7147 CtfDedRecfgInfo *param;
7152 TRC3(cmPkCtfDedRecfgInfo)
7154 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7155 /*ctf_c_001.main_1*/
7156 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7158 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7159 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7160 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7161 #endif /* TFU_UPGRADE */
7162 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7163 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7164 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7165 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7166 /* ctf_c_001.main_4: ReEst Fix */
7168 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7170 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7172 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7173 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7179 /***********************************************************
7181 * Func: cmUnpkCtfDedRecfgInfo
7184 * Desc: Dedicated Re-configuration Information
7185 * @details This structure contains the information for re-configuration
7186 * of UE-specific physical channel resources at PHY.
7195 **********************************************************/
7197 PUBLIC S16 cmUnpkCtfDedRecfgInfo
7199 CtfDedRecfgInfo *param,
7203 PUBLIC S16 cmUnpkCtfDedRecfgInfo(param, mBuf)
7204 CtfDedRecfgInfo *param;
7209 TRC3(cmUnpkCtfDedRecfgInfo)
7211 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7212 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7213 /* ctf_c_001.main_4: ReEst Fix */
7215 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7217 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7219 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7220 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7221 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7222 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7224 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7225 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7226 /*ctf_c_001.main_1*/
7227 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7228 #endif /* TFU_UPGRADE */
7229 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7231 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7238 /***********************************************************
7240 * Func: cmPkCtfCellReleaseInfo
7243 * Desc: Cell Release Information
7244 * @details This structure contains the information for release/removal
7245 * of a cell and its assocated resources at PHY.
7254 **********************************************************/
7256 PUBLIC S16 cmPkCtfCellReleaseInfo
7258 CtfCellReleaseInfo *param,
7262 PUBLIC S16 cmPkCtfCellReleaseInfo(param, mBuf)
7263 CtfCellReleaseInfo *param;
7268 TRC3(cmPkCtfCellReleaseInfo)
7270 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7276 /***********************************************************
7278 * Func: cmUnpkCtfCellReleaseInfo
7281 * Desc: Cell Release Information
7282 * @details This structure contains the information for release/removal
7283 * of a cell and its assocated resources at PHY.
7292 **********************************************************/
7294 PUBLIC S16 cmUnpkCtfCellReleaseInfo
7296 CtfCellReleaseInfo *param,
7300 PUBLIC S16 cmUnpkCtfCellReleaseInfo(param, mBuf)
7301 CtfCellReleaseInfo *param;
7306 TRC3(cmUnpkCtfCellReleaseInfo)
7308 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7314 /***********************************************************
7316 * Func: cmPkCtfDedReleaseInfo
7319 * Desc: Dedicated Release Information
7320 * @details This structure contains the information for release/removal
7321 * of dedicated/UE-specific configuration at PHY.
7330 **********************************************************/
7332 PUBLIC S16 cmPkCtfDedReleaseInfo
7334 CtfDedReleaseInfo *param,
7338 PUBLIC S16 cmPkCtfDedReleaseInfo(param, mBuf)
7339 CtfDedReleaseInfo *param;
7344 TRC3(cmPkCtfDedReleaseInfo)
7345 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7346 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7347 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7353 /***********************************************************
7355 * Func: cmUnpkCtfDedReleaseInfo
7358 * Desc: Dedicated Release Information
7359 * @details This structure contains the information for release/removal
7360 * of dedicated/UE-specific configuration at PHY.
7369 **********************************************************/
7371 PUBLIC S16 cmUnpkCtfDedReleaseInfo
7373 CtfDedReleaseInfo *param,
7377 PUBLIC S16 cmUnpkCtfDedReleaseInfo(param, mBuf)
7378 CtfDedReleaseInfo *param;
7383 TRC3(cmUnpkCtfDedReleaseInfo)
7385 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7386 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7387 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7393 /***********************************************************
7395 * Func: cmPkCtfCfgInfo
7398 * Desc: Configuration Information
7399 * @details This structure contains the information for setting-up
7400 * cell or UE-specific configuration at PHY.
7409 **********************************************************/
7411 PUBLIC S16 cmPkCtfCfgInfo
7417 PUBLIC S16 cmPkCtfCfgInfo(param, mBuf)
7423 TRC3(cmPkCtfCfgInfo)
7425 switch(param->cfgElem) {
7427 CMCHKPK(cmPkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7430 CMCHKPK(cmPkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7435 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7441 /***********************************************************
7443 * Func: cmUnpkCtfCfgInfo
7446 * Desc: Configuration Information
7447 * @details This structure contains the information for setting-up
7448 * cell or UE-specific configuration at PHY.
7457 **********************************************************/
7459 PUBLIC S16 cmUnpkCtfCfgInfo
7465 PUBLIC S16 cmUnpkCtfCfgInfo(param, mBuf)
7471 TRC3(cmUnpkCtfCfgInfo)
7473 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7474 switch(param->cfgElem) {
7476 CMCHKUNPK(cmUnpkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7479 CMCHKUNPK(cmUnpkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7489 /***********************************************************
7491 * Func: cmPkCtfReCfgInfo
7494 * Desc: Re-configuration Information
7495 * @details This structure contains the information for re-configuring
7496 * cell or UE-specific configuration at PHY.
7505 **********************************************************/
7507 PUBLIC S16 cmPkCtfReCfgInfo
7509 CtfReCfgInfo *param,
7513 PUBLIC S16 cmPkCtfReCfgInfo(param, mBuf)
7514 CtfReCfgInfo *param;
7519 TRC3(cmPkCtfReCfgInfo)
7521 switch(param->cfgElem) {
7523 CMCHKPK(cmPkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7526 CMCHKPK(cmPkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7528 /* Starts - Fix for CR ccpu00123185 */
7529 case CTF_TX_PWR_CFG:
7530 CMCHKPK(cmPkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7532 /* ends - Fix for CR ccpu00123185 */
7534 CMCHKPK(cmPkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7540 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7546 /***********************************************************
7548 * Func: cmUnpkCtfReCfgInfo
7551 * Desc: Re-configuration Information
7552 * @details This structure contains the information for re-configuring
7553 * cell or UE-specific configuration at PHY.
7562 **********************************************************/
7564 PUBLIC S16 cmUnpkCtfReCfgInfo
7566 CtfReCfgInfo *param,
7570 PUBLIC S16 cmUnpkCtfReCfgInfo(param, mBuf)
7571 CtfReCfgInfo *param;
7576 TRC3(cmUnpkCtfReCfgInfo)
7578 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7579 switch(param->cfgElem) {
7581 CMCHKUNPK(cmUnpkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7584 CMCHKUNPK(cmUnpkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7586 /* Starts - Fix for CR ccpu00123185 */
7587 case CTF_TX_PWR_CFG:
7588 CMCHKUNPK(cmUnpkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7590 /* ends - Fix for CR ccpu00123185 */
7592 CMCHKUNPK(cmUnpkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7602 /***********************************************************
7604 * Func: cmPkCtfReleaseInfo
7607 * Desc: Release configuration Information
7608 * @details This structure contains the information for releasing
7609 * cell or UE-specific configuration at PHY.
7618 **********************************************************/
7620 PUBLIC S16 cmPkCtfReleaseInfo
7622 CtfReleaseInfo *param,
7626 PUBLIC S16 cmPkCtfReleaseInfo(param, mBuf)
7627 CtfReleaseInfo *param;
7632 TRC3(cmPkCtfReleaseInfo)
7634 switch(param->cfgElem) {
7636 CMCHKPK(cmPkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7639 CMCHKPK(cmPkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7644 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7650 /***********************************************************
7652 * Func: cmUnpkCtfReleaseInfo
7655 * Desc: Release configuration Information
7656 * @details This structure contains the information for releasing
7657 * cell or UE-specific configuration at PHY.
7666 **********************************************************/
7668 PUBLIC S16 cmUnpkCtfReleaseInfo
7670 CtfReleaseInfo *param,
7674 PUBLIC S16 cmUnpkCtfReleaseInfo(param, mBuf)
7675 CtfReleaseInfo *param;
7680 TRC3(cmUnpkCtfReleaseInfo)
7682 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7683 switch(param->cfgElem) {
7685 CMCHKUNPK(cmUnpkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7688 CMCHKUNPK(cmUnpkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7698 /***********************************************************
7700 * Func: cmPkCtfCfgReqInfo
7703 * Desc: Configuration Request information
7704 * @details This is the main structure in the Configuration request primitive.
7705 * -# This structure contains the configuration information as given by
7706 * the RRC to configure PHY layer for common/dedicated resources.
7707 * -# It can contain Config/Reconfig/Release.
7708 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7717 **********************************************************/
7719 PUBLIC S16 cmPkCtfCfgReqInfo
7721 CtfCfgReqInfo *param,
7725 PUBLIC S16 cmPkCtfCfgReqInfo(param, mBuf)
7726 CtfCfgReqInfo *param;
7731 TRC3(cmPkCtfCfgReqInfo)
7733 /* ctf_c_001.main_4: Added support for vendor specific parameters */
7735 CMCHKPK(cmPkCtfVendorSpecParams, ¶m->vendorParams, mBuf);
7737 switch(param->cfgType) {
7739 CMCHKPK(cmPkCtfReleaseInfo, ¶m->u.release, mBuf);
7742 CMCHKPK(cmPkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7745 CMCHKPK(cmPkCtfCfgInfo, ¶m->u.cfg, mBuf);
7750 CMCHKPK(SPkU8, param->cfgType, mBuf);
7756 /* ctf_c_001.main_4: Modified cmUnpkCtfCfgReqInfo() to add support
7757 * for vendor specific parameters */
7758 /***********************************************************
7760 * Func: cmUnpkCtfCfgReqInfo
7763 * Desc: Configuration Request information
7764 * @details This is the main structure in the Configuration request primitive.
7765 * -# This structure contains the configuration information as given by
7766 * the RRC to configure PHY layer for common/dedicated resources.
7767 * -# It can contain Config/Reconfig/Release.
7768 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7777 **********************************************************/
7779 PUBLIC S16 cmUnpkCtfCfgReqInfo
7782 CtfCfgReqInfo *param,
7786 PUBLIC S16 cmUnpkCtfCfgReqInfo(param, mBuf)
7788 CtfCfgReqInfo *param;
7797 TRC3(cmUnpkCtfCfgReqInfo)
7799 CMCHKUNPK(SUnpkU8, ¶m->cfgType, mBuf);
7800 switch(param->cfgType) {
7802 CMCHKUNPK(cmUnpkCtfCfgInfo, ¶m->u.cfg, mBuf);
7805 CMCHKUNPK(cmUnpkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7808 CMCHKUNPK(cmUnpkCtfReleaseInfo, ¶m->u.release, mBuf);
7814 if((retVal = cmUnpkCtfVendorSpecParams(pst, ¶m->vendorParams, mBuf)) != ROK)
7820 /* Starts - Fix for CR ccpu00123185 */
7821 /***********************************************************
7823 * Func: cmPkCtfCellPwrcfgInfo
7826 * Desc: Cell Re-configuration Information
7827 * @details This structure contains the information for reconfiguration of Reference Signal Power
7828 * of a cell and its associated resources at PHY.
7837 **********************************************************/
7839 PUBLIC S16 cmPkCtfCellPwrcfgInfo
7841 CtfCellRecfgInfo *param,
7845 PUBLIC S16 cmPkCtfCellPwrcfgInfo(param, mBuf)
7846 CtfCellRecfgInfo *param;
7851 TRC3(cmPkCtfCellPwrcfgInfo)
7853 /* Added the pack for newly added reference signal Power*/
7854 CMCHKPK(SPkU32, (U32)param->ctfCellStatus, mBuf);
7855 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7856 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7857 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7859 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7860 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7866 /***********************************************************
7868 * Func: cmUnpkCtfCellPwrcfgInfo
7871 * Desc: Cell Re-configuration Information
7872 * @details This structure contains the information for reconfiguration
7873 * of a cell and its associated resources at PHY.
7882 **********************************************************/
7884 PUBLIC S16 cmUnpkCtfCellPwrcfgInfo
7886 CtfCellRecfgInfo *param,
7890 PUBLIC S16 cmUnpkCtfCellPwrcfgInfo(param, mBuf)
7891 CtfCellRecfgInfo *param;
7896 TRC3(cmUnpkCtfCellPwrcfgInfo)
7898 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
7899 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7901 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7902 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7903 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7904 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7905 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ctfCellStatus, mBuf);
7910 /***********************************************************
7912 * Func: cmPkCtfCellStop
7915 * Desc: Cell Re-configuration Information
7916 * @details This structure contains the information for reconfiguration of Reference Signal Power
7917 * of a cell and its associated resources at PHY.
7926 **********************************************************/
7928 PUBLIC S16 cmPkCtfCellStop
7930 CtfCellRecfgInfo *param,
7934 PUBLIC S16 cmPkCtfCellStop(param, mBuf)
7935 CtfCellRecfgInfo *param;
7940 TRC3(cmPkCtfCellStop)
7942 /* Added the pack for newly added reference signal Power*/
7943 CMCHKPK(SPkU32, (U32)param->ctfCellStatus, mBuf);
7944 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7945 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7946 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7948 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7949 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7953 /***********************************************************
7955 * Func: cmUnpkCtfCellStop
7958 * Desc: Cell Re-configuration Information
7959 * @details This structure contains the information for reconfiguration
7960 * of a cell and its associated resources at PHY.
7969 **********************************************************/
7971 PUBLIC S16 cmUnpkCtfCellStop
7973 CtfCellRecfgInfo *param,
7977 PUBLIC S16 cmUnpkCtfCellStop(param, mBuf)
7978 CtfCellRecfgInfo *param;
7983 TRC3(cmUnpkCtfCellStop)
7985 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7987 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7988 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7989 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7990 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7991 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ctfCellStatus, mBuf);
7996 /* Periodic REM Scan for TPM */
7997 /***********************************************************
7999 * Func: cmPkPerRemScanCellInfo
8002 * Desc: Periodic REM cell search response
8003 * @details This Message contains cell search results.
8012 **********************************************************/
8014 PUBLIC S16 cmPkPerRemScanCellInfo
8016 CtfPeriodicRemCellInfo *param,
8020 PUBLIC S16 cmPkPerRemScanCellInfo(param, mBuf)
8021 CtfPeriodicRemCellInfo *param;
8025 TRC3(cmPkPerRemScanCellInfo)
8027 CMCHKPK(SPkU16,param->pci, mBuf);
8028 CMCHKPK(SPkU8, param->rsrp, mBuf);
8029 CMCHKPK(SPkU8, param->dlBw, mBuf);
8030 CMCHKPK(SPkU8, param->numTx, mBuf);
8035 /***********************************************************
8037 * Func: cmPkCtfPeriodicCellSearchRsp
8040 * Desc: Periodic REM cell search response
8041 * @details This Message contains Periodic REM scan results.
8050 **********************************************************/
8052 PUBLIC S16 cmPkCtfPeriodicCellSearchRsp
8054 CtfPeriodicRemCellSearchRsp *param,
8058 PUBLIC S16 cmPkCtfPeriodicCellSearchRsp(param, mBuf)
8059 CtfPeriodicRemCellSearchRsp *param;
8064 TRC3(cmPkCtfPeriodicCellSearchRsp)
8066 for(idx = param->numCells - 1; idx >=0; idx--)
8068 CMCHKPK(cmPkPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8070 CMCHKPK(SPkU8, param->numCells, mBuf);
8076 * @brief Configuration Request from App to CL for
8077 * cnm Init Sync responce
8081 * Function: cmPkCtfPeriodicRemCellSearchRsp
8083 * @param[in] Pst* pst
8084 * @param[in] SpId spId
8085 * @param[in] CtfCfgTransId * transId
8086 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
8091 PUBLIC S16 cmPkCtfPeriodicRemCellSearchRsp
8095 CtfCfgTransId *transId,
8096 CtfPeriodicRemCellSearchRsp *CellCfgRsp
8099 PUBLIC S16 cmPkCtfPeriodicRemCellSearchRsp(pst, spId, transId, CellCfgRsp)
8102 CtfCfgTransId *transId;
8103 CtfPeriodicRemCellSearchRsp *CellCfgRsp;
8106 Buffer *mBuf = NULLP;
8107 TRC3(cmPkCtfPeriodicRemCellSearchRsp)
8109 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
8110 #if (ERRCLASS & ERRCLS_ADD_RES)
8111 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8112 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8113 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8114 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
8116 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8117 sizeof(CtfPeriodicRemCellSearchRsp));
8120 if (pst->selector == CTF_SEL_LC) {
8121 if (cmPkCtfPeriodicCellSearchRsp(CellCfgRsp, mBuf) != ROK) {
8122 #if (ERRCLASS & ERRCLS_ADD_RES)
8123 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8124 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8125 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8126 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
8128 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8129 sizeof(CtfPeriodicRemCellSearchRsp));
8134 else if (pst->selector == CTF_SEL_LWLC) {
8136 if (cmPkPtr((PTR)CellCfgRsp, mBuf) != ROK) {
8137 #if (ERRCLASS & ERRCLS_ADD_RES)
8138 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8139 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8140 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8141 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
8143 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8144 sizeof(CtfPeriodicRemCellSearchRsp));
8150 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
8151 #if (ERRCLASS & ERRCLS_ADD_RES)
8152 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8153 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8154 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8155 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
8157 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8158 sizeof(CtfPeriodicRemCellSearchRsp));
8162 if (SPkS16(spId, mBuf) != ROK) {
8163 #if (ERRCLASS & ERRCLS_ADD_RES)
8164 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8165 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8166 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8167 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
8169 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8170 sizeof(CtfPeriodicRemCellSearchRsp));
8174 if (pst->selector != CTF_SEL_LWLC) {
8175 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8176 sizeof(CtfPeriodicRemCellSearchRsp));
8178 pst->event = (Event)EVTCTFPREMCELLSRCHRSP;
8179 RETVALUE(SPstTsk(pst,mBuf));
8183 PUBLIC S16 cmUnpkCtfPerRemScanCellInfo
8185 CtfPeriodicRemCellInfo *param,
8189 PUBLIC S16 cmUnpkCtfPerRemScanCellInfo(param, mBuf)
8190 CtfPeriodicRemCellInfo *param;
8194 TRC3(cmUnpkCtfPerRemScanCellInfo);
8196 CMCHKUNPK(SUnpkU8, ¶m->numTx, mBuf);
8197 CMCHKUNPK(SUnpkU8, ¶m->dlBw, mBuf);
8198 CMCHKUNPK(SUnpkU8, ¶m->rsrp, mBuf);
8199 CMCHKUNPK(SUnpkU16, ¶m->pci, mBuf);
8204 PUBLIC S16 cmUnpkCtfPerRemCellSrch
8206 CtfPeriodicRemCellSearchRsp *param,
8210 PUBLIC S16 cmUnpkCtfPerRemCellSrch(param, mBuf)
8211 CtfPeriodicRemCellSearchRsp *param;
8216 TRC3(cmUnpkCtfPerRemCellSrch);
8218 CMCHKUNPK(SUnpkU8, ¶m->numCells, mBuf);
8219 for(idx = 0; idx < (param->numCells); idx++)
8221 CMCHKUNPK(cmUnpkCtfPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8228 * @brief ENB STOP Indication from PHY to ENB-APP
8232 * Function: cmUnpkPerRemCellSrchRsp
8234 * @param[in] Pst* pst
8235 * @param[in] SuId suId
8236 * @param[in] CtfCfgTransId transId
8241 PUBLIC S16 cmUnpkPerRemCellSrchRsp
8243 CtfPerRemCellSrchRsp func,
8248 PUBLIC S16 cmUnpkPerRemCellSrchRsp(func, pst, mBuf)
8249 CtfPerRemCellSrchRsp func;
8255 CtfCfgTransId transId;
8256 CtfPeriodicRemCellSearchRsp *CellSrchRsp = NULLP;
8257 TRC3(cmUnpkPerRemCellSrchRsp)
8259 if (SUnpkS16(&suId, mBuf) != ROK) {
8261 #if (ERRCLASS & ERRCLS_ADD_RES)
8262 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8263 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8264 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8265 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
8269 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
8271 #if (ERRCLASS & ERRCLS_ADD_RES)
8272 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8273 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8274 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8275 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
8279 if (pst->selector != CTF_SEL_LWLC) {
8280 if ((SGetSBuf(pst->region, pst->pool, (Data **)&CellSrchRsp,
8281 sizeof(CtfPeriodicRemCellSearchRsp))) != ROK) {
8282 #if (ERRCLASS & ERRCLS_ADD_RES)
8283 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8284 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8285 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8286 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
8292 if (pst->selector == CTF_SEL_LWLC) {
8293 if (cmUnpkPtr((PTR *)&CellSrchRsp, mBuf) != ROK) {
8298 else if (pst->selector == CTF_SEL_LC)
8299 if (cmUnpkCtfPerRemCellSrch(CellSrchRsp, mBuf) != ROK) {
8300 SPutSBuf(pst->region, pst->pool, (Data *)CellSrchRsp,
8301 sizeof(CtfPeriodicRemCellSearchRsp));
8303 #if (ERRCLASS & ERRCLS_ADD_RES)
8304 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8305 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8306 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8307 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
8313 RETVALUE((*func)(pst, suId, &transId, CellSrchRsp));
8315 /* Periodic REM Scan for TPM End */
8317 /* ends - Fix for CR ccpu00123185 */
8320 /**********************************************************************
8322 **********************************************************************/