1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /********************************************************************20**
25 Desc: This file contains the packing/unpacking functions
26 for control plane primitives on CTF interface.
30 *********************************************************************21*/
32 /* header include files (.h) */
33 #include "common_def.h"
34 #include "ctf.h" /* CTF interface defines */
36 /* header/extern include files (.x) */
37 #ifdef TENB_AS_SECURITY
42 #ifdef TENB_AS_SECURITY
43 #define cmPkCtfCrnti SPkU16
44 #define cmPkCtfCellId SPkU16
45 #define cmUnpkCtfCellId SUnpkU16
46 #define cmUnpkCtfCrnti SUnpkU16
50 #if (defined(LCCTF) || defined(LWLCCTF))
54 * @brief Request from RRC to PHY to bind the CTF interface SAP.
58 * Function: cmPkCtfBndReq
61 * @param[in] SuId suId
62 * @param[in] SpId spId
67 PUBLIC S16 cmPkCtfBndReq
74 PUBLIC S16 cmPkCtfBndReq(pst, suId, spId)
83 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
84 #if (ERRCLASS & ERRCLS_ADD_RES)
85 /* ctf_c_001.main_3 Compilation warning fix with g++ */
86 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
87 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
88 (ErrVal)ECTF001, (ErrVal)0, (Txt*)&"Packing failed");
92 if (SPkS16(spId, mBuf) != ROK) {
93 #if (ERRCLASS & ERRCLS_ADD_RES)
94 /* ctf_c_001.main_3 Compilation warning fix with g++ */
95 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
96 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
97 (ErrVal)ECTF002, (ErrVal)0, (Txt*)&"Packing failed");
102 if (SPkS16(suId, mBuf) != ROK) {
103 #if (ERRCLASS & ERRCLS_ADD_RES)
104 /* ctf_c_001.main_3 Compilation warning fix with g++ */
105 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
106 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
107 (ErrVal)ECTF003, (ErrVal)0, (Txt*)&"Packing failed");
112 pst->event = (Event) EVTCTFBNDREQ;
113 RETVALUE(SPstTsk(pst,mBuf));
118 * @brief Request from RRC to PHY to bind the CTF interface SAP.
122 * Function: cmUnpkCtfBndReq
124 * @param[in] Pst* pst
125 * @param[in] SuId suId
126 * @param[in] SpId spId
131 PUBLIC S16 cmUnpkCtfBndReq
138 PUBLIC S16 cmUnpkCtfBndReq(func, pst, mBuf)
147 TRC3(cmUnpkCtfBndReq)
149 if (SUnpkS16(&suId, mBuf) != ROK) {
151 #if (ERRCLASS & ERRCLS_ADD_RES)
152 /* ctf_c_001.main_3 Compilation warning fix with g++ */
153 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
154 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
155 (ErrVal)ECTF004, (ErrVal)0, (Txt*)&"Packing failed");
159 if (SUnpkS16(&spId, mBuf) != ROK) {
161 #if (ERRCLASS & ERRCLS_ADD_RES)
162 /* ctf_c_001.main_3 Compilation warning fix with g++ */
163 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
164 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
165 (ErrVal)ECTF005, (ErrVal)0, (Txt*)&"Packing failed");
170 RETVALUE((*func)(pst, suId, spId));
175 * @brief Confirmation from PHY to RRC for the bind
176 * request for the CTF interface SAP.
180 * Function: cmPkCtfBndCfm
182 * @param[in] Pst* pst
183 * @param[in] SuId suId
184 * @param[in] U8 status
189 PUBLIC S16 cmPkCtfBndCfm
196 PUBLIC S16 cmPkCtfBndCfm(pst, suId, status)
202 Buffer *mBuf = NULLP;
205 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
206 #if (ERRCLASS & ERRCLS_ADD_RES)
207 /* ctf_c_001.main_3 Compilation warning fix with g++ */
208 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
209 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
210 (ErrVal)ECTF006, (ErrVal)0, (Txt*)&"Packing failed");
214 if (SPkU8(status, mBuf) != ROK) {
215 #if (ERRCLASS & ERRCLS_ADD_RES)
216 /* ctf_c_001.main_3 Compilation warning fix with g++ */
217 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
218 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
219 (ErrVal)ECTF007, (ErrVal)0, (Txt*)&"Packing failed");
224 if (SPkS16(suId, mBuf) != ROK) {
225 #if (ERRCLASS & ERRCLS_ADD_RES)
226 /* ctf_c_001.main_3 Compilation warning fix with g++ */
227 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
228 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
229 (ErrVal)ECTF008, (ErrVal)0, (Txt*)&"Packing failed");
234 pst->event = (Event) EVTCTFBNDCFM;
235 RETVALUE(SPstTsk(pst,mBuf));
240 * @brief Confirmation from PHY to RRC for the bind
241 * request for the CTF interface SAP.
245 * Function: cmUnpkCtfBndCfm
247 * @param[in] Pst* pst
248 * @param[in] SuId suId
249 * @param[in] U8 status
254 PUBLIC S16 cmUnpkCtfBndCfm
261 PUBLIC S16 cmUnpkCtfBndCfm(func, pst, mBuf)
270 TRC3(cmUnpkCtfBndCfm)
272 if (SUnpkS16(&suId, mBuf) != ROK) {
274 #if (ERRCLASS & ERRCLS_ADD_RES)
275 /* ctf_c_001.main_3 Compilation warning fix with g++ */
276 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
277 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
278 (ErrVal)ECTF009, (ErrVal)0, (Txt*)&"Packing failed");
282 if (SUnpkU8(&status, mBuf) != ROK) {
284 #if (ERRCLASS & ERRCLS_ADD_RES)
285 /* ctf_c_001.main_3 Compilation warning fix with g++ */
286 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
287 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
288 (ErrVal)ECTF010, (ErrVal)0, (Txt*)&"Packing failed");
293 RETVALUE((*func)(pst, suId, status));
298 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
302 * Function: cmPkCtfUbndReq
304 * @param[in] Pst* pst
305 * @param[in] SpId spId
306 * @param[in] Reason reason
311 PUBLIC S16 cmPkCtfUbndReq
318 PUBLIC S16 cmPkCtfUbndReq(pst, spId, reason)
324 Buffer *mBuf = NULLP;
327 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
328 #if (ERRCLASS & ERRCLS_ADD_RES)
329 /* ctf_c_001.main_3 Compilation warning fix with g++ */
330 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
331 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
332 (ErrVal)ECTF011, (ErrVal)0, (Txt*)&"Packing failed");
336 if (SPkS16(reason, mBuf) != ROK) {
337 #if (ERRCLASS & ERRCLS_ADD_RES)
338 /* ctf_c_001.main_3 Compilation warning fix with g++ */
339 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
340 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
341 (ErrVal)ECTF012, (ErrVal)0, (Txt*)&"Packing failed");
346 if (SPkS16(spId, mBuf) != ROK) {
347 #if (ERRCLASS & ERRCLS_ADD_RES)
348 /* ctf_c_001.main_3 Compilation warning fix with g++ */
349 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
350 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
351 (ErrVal)ECTF013, (ErrVal)0,(Txt*)&"Packing failed");
356 pst->event = (Event) EVTCTFUBNDREQ;
357 RETVALUE(SPstTsk(pst,mBuf));
362 * @brief Request from RRC to PHY to Unbind the CTF interface SAP.
366 * Function: cmUnpkCtfUbndReq
368 * @param[in] Pst* pst
369 * @param[in] SpId spId
370 * @param[in] Reason reason
375 PUBLIC S16 cmUnpkCtfUbndReq
382 PUBLIC S16 cmUnpkCtfUbndReq(func, pst, mBuf)
391 TRC3(cmUnpkCtfUbndReq)
393 if (SUnpkS16(&spId, mBuf) != ROK) {
395 #if (ERRCLASS & ERRCLS_ADD_RES)
396 /* ctf_c_001.main_3 Compilation warning fix with g++ */
397 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
398 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
399 (ErrVal)ECTF014, (ErrVal)0, (Txt*)&"Packing failed");
403 if (SUnpkS16(&reason, mBuf) != ROK) {
405 #if (ERRCLASS & ERRCLS_ADD_RES)
406 /* ctf_c_001.main_3 Compilation warning fix with g++ */
407 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
408 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
409 (ErrVal)ECTF015, (ErrVal)0, (Txt*)&"Packing failed");
414 RETVALUE((*func)(pst, spId, reason));
418 /***********************************************************
420 * Func: cmRelCtfCfgReq
423 * Desc: This fucntion will release the memory used for ctf cfg req
431 **********************************************************/
433 PRIVATE S16 cmRelCtfCfgReq
436 CtfCfgReqInfo *cfgReqInfo
439 PRIVATE S16 cmRelCtfCfgReq(pst,cfgReqInfo)
441 CtfCfgReqInfo *param;
444 /* ctf_c_001.main_4: Added support for vendor specific parameters */
446 if(cfgReqInfo->vendorParams.paramBuffer != NULLP) {
447 SPutSBuf(pst->region, pst->pool,
448 (Data *)cfgReqInfo->vendorParams.paramBuffer,
449 cfgReqInfo->vendorParams.buffLen);
452 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCfgReqInfo));
456 #ifdef TENB_AS_SECURITY
457 /***********************************************************
459 * Func: cmPkCtfNhKeyInfo
462 * Desc: Pack keNB* input parameter information
463 * @details This is one of the main structure in the KDF request primitive.
464 * -# This structure contains the configuration information as given by
465 * the Application to trigger key derivation at PHY layer for generation of kENB*.
466 * -# It take Next Hop key, DL Frequency and Physical cell Id as input.
467 * -# The result of configuration is indicated in KdfCfgCfm.
476 **********************************************************/
478 PUBLIC S16 cmPkCtfNhKeyInfo
484 PUBLIC S16 cmPkCtfNhKeyInfo(param, mBuf)
492 TRC3(cmPkCtfNhKeyInfo)
494 for(idx=31;idx>=0;idx--)
496 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
498 CMCHKPK(SPkU16, param->physCellId, mBuf);
499 CMCHKPK(SPkU16, param->dlCarrFreq, mBuf);
504 /***********************************************************
506 * Func: cmPkCtfKenbStarInfo
509 * Desc: Pack keNB* input parameter information
510 * @details This is one of the main structure in the KDF request primitive.
511 * -# This structure contains the configuration information as given by
512 * the Application to trigger key derivation at PHY layer for generation of kENB*.
513 * -# It take existing kENB, DL Frequency and Physical cell Id as input.
514 * -# The result of configuration is indicated in KdfCfgCfm.
523 **********************************************************/
525 PUBLIC S16 cmPkCtfKenbStarInfo
527 CtfKenbStarInfo *param,
531 PUBLIC S16 cmPkCtfKenbStarInfo(param, mBuf)
532 CtfKenbStarInfo *param;
539 TRC3(cmPkCtfKenbStarInfo)
541 for(idx=31;idx>=0;idx--)
543 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
545 CMCHKPK(SPkU16, param->physCellId, mBuf);
546 CMCHKPK(SPkU16, param->dlCarrFreq, mBuf);
552 /***********************************************************
554 * Func: cmPkCtfAskeyInfo
557 * Desc: Pack AS key generation input parameter information.
558 * @details This is one of the main structure in the KDF request primitive.
559 * -# This structure contains the configuration information as given by
560 * the Application to trigger key derivation at PHY layer for generation of AS Security keys.
561 * -# It take existing kENB, and integrity/cipherig Algorithm as input.
562 * -# The result of configuration is indicated in KdfCfgCfm.
571 **********************************************************/
573 PUBLIC S16 cmPkCtfAskeyInfo
579 PUBLIC S16 cmPkCtfAskeyInfo(param, mBuf)
587 TRC3(cmPkCtfAskeyInfo)
590 for(idx=31;idx>=0;idx--)
592 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
594 CMCHKPK(SPkU8, param->ciphAlgoType, mBuf);
595 CMCHKPK(SPkU8, param->intgAlgoType, mBuf);
600 /***********************************************************
602 * Func: cmPkCtfKdfReqInfo
605 * Desc: Pack one of the 3 Key Derivation types.
606 * @details This is the encompassing structure in the KDF request primitive.
607 * -# This structure contains the configuration information as given by
608 * the Application to trigger key derivation at PHY layer for generation of keys.
609 * -# It takes key derivation type as input.
610 * -# The result of configuration is indicated in KdfCfgCfm.
619 **********************************************************/
621 PUBLIC S16 cmPkCtfKdfReqInfo
623 CtfKdfReqInfo *param,
627 PUBLIC S16 cmPkCtfKdfReqInfo(param, mBuf)
628 CtfKdfReqInfo *param;
633 TRC3(cmPkCtfKdfReqInfo)
635 switch (param->keyDerType)
638 CMCHKPK(cmPkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
641 CMCHKPK(cmPkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
644 CMCHKPK(cmPkCtfNhKeyInfo , ¶m->u.nhKeyInf, mBuf);
649 CMCHKPK(SPkU8, param->keyDerType, mBuf);
655 * @brief Primitive Request from Application to PHY for
656 * security key derivation.
660 * Function: cmPkCtfKdfReq
662 * @param[in] Pst* pst
663 * @param[in] SpId spId
664 * @param[in] CtfCfgTransId transId
665 * @param[in] CtfCfgReqInfo* cfgReqInfo
670 PUBLIC S16 cmPkCtfKdfReq
674 CtfCfgTransId transId,
675 CtfKdfReqInfo* kdfReqInfo
678 PUBLIC S16 cmPkCtfKdfReq(pst, spId, transId, kdfReqInfo)
681 CtfCfgTransId transId;
682 CtfKdfReqInfo* kdfReqInfo;
685 Buffer *mBuf = NULLP;
690 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
691 #if (ERRCLASS & ERRCLS_ADD_RES)
692 /* ctf_c_001.main_3 Compilation warning fix with g++ */
693 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
694 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
695 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
697 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
700 if (pst->selector == ODU_SELECTOR_LC) {
701 if (cmPkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
702 #if (ERRCLASS & ERRCLS_ADD_RES)
703 /* ctf_c_001.main_3 Compilation warning fix with g++ */
704 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
705 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
706 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
708 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
713 else if (pst->selector == ODU_SELECTOR_LWLC) {
715 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
716 #if (ERRCLASS & ERRCLS_ADD_RES)
717 /* ctf_c_001.main_3 Compilation warning fix with g++ */
718 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
719 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
720 (ErrVal)ECTF019, (ErrVal)0, (Txt*)&"Packing failed");
722 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
726 if (SPkS16(spId, mBuf) != ROK) {
727 #if (ERRCLASS & ERRCLS_ADD_RES)
728 /* ctf_c_001.main_3 Compilation warning fix with g++ */
729 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
730 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
731 (ErrVal)ECTF020, (ErrVal)0, (Txt*)&"Packing failed");
733 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
737 if (pst->selector != ODU_SELECTOR_LWLC) {
738 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo)) != ROK) {
739 #if (ERRCLASS & ERRCLS_ADD_RES)
740 /* ctf_c_001.main_3 Compilation warning fix with g++ */
741 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
742 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
743 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
749 pst->event = (Event) EVTCTFKDFREQ;
750 RETVALUE(SPstTsk(pst,mBuf));
754 /********************************************************************************************************************************/
755 /*START OF CNM PACK & UNPACK FUNCTIONS*/
756 /********************************************************************************************************************************/
758 PUBLIC S16 cmPkCtfCnmVendorSpecificInfo
760 CtfCnmVendorSpecificInfo *param,
764 CtfCnmVendorSpecificInfo *param;
769 TRC3(cmPkCtfCnmVendorSpecificInfo);
770 if(param->numOfVendorSpecifcParam <= CTF_CNM_MAX_VENDOR_PARAMS)
772 for(i= param->numOfVendorSpecifcParam-1; i >= 0; i--)
774 CMCHKPK(SPkU32,(U32)param->vendorSpecifcParam[i], mBuf);
777 CMCHKPK(SPkU16, param->numOfVendorSpecifcParam, mBuf);
782 PUBLIC S16 cmPkCtfCtfCnmCellSyncReq
784 CtfCnmCellSyncReq *param,
788 PUBLIC S16 cmPkCtfCtfCnmCellSyncReq(param, mBuf)
789 CtfCnmCellSyncReq *param;
794 TRC3(cmPkCtfCtfCnmCellSyncReq);
795 CMCHKPK(SPkU16, param->nbrEarfcn, mBuf);
796 CMCHKPK(SPkU16, param->nbrPCellId, mBuf);
797 CMCHKPK(SPkU8, param->nbrTxAntCount, mBuf);
798 CMCHKPK(SPkU8, param->nbrCellCp, mBuf);
799 CMCHKPK(SPkU8, param->nbrCellNRb, mBuf);
800 CMCHKPK(SPkU8, param->nbrSpecSfCfg, mBuf);
801 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
807 PUBLIC S16 cmPkCtfcfgReqInfo
809 CtfCnmInitSyncReq *param,
813 PUBLIC S16 cmPkCtfcfgReqInfo(param, mBuf)
814 CtfCnmInitSyncReq *param;
819 TRC3(cmPkCtfcfgReqInfo);
821 CMCHKPK(SPkU8, param->searchType, mBuf);
822 CMCHKPK(SPkU8, param->mibRequest, mBuf);
823 CMCHKPK(SPkU16, param->earfcn, mBuf);
824 CMCHKPK(SPkU8, param->measBandWidth, mBuf);
825 if(param->numOfPciList <= CTF_CNM_MAX_CELL_SEARCH)
827 for(i= param->numOfPciList-1; i >= 0; i--)
829 CMCHKPK(cmPkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
832 CMCHKPK(SPkU16, param->numOfPciList, mBuf);
837 PUBLIC S16 cmUnpkCtfCnmVendorSpecificInfo
839 CtfCnmVendorSpecificInfo *param,
843 PUBLIC S16 cmUnpkCtfCnmVendorSpecificInfo(param, mBuf)
844 CtfCnmVendorSpecificInfo *param;
849 TRC3(cmUnpkCtfCnmVendorSpecificInfo);
851 CMCHKUNPK(SUnpkU16, ¶m->numOfVendorSpecifcParam, mBuf);
852 for(i=0; (i<param->numOfVendorSpecifcParam)&&(i < CTF_CNM_MAX_VENDOR_PARAMS); i++)
854 CMCHKUNPK(SUnpkU32, ¶m->vendorSpecifcParam[i], mBuf);
860 PUBLIC S16 cmUnpkCtfCtfCnmCellSyncReq
862 CtfCnmCellSyncReq *param,
866 PUBLIC S16 cmUnpkCtfCtfCnmCellSyncReq(param, mBuf)
867 CtfCnmCellSyncReq *param;
871 TRC3(cmUnpkCtfCtfCnmCellSyncReq);
874 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
875 CMCHKUNPK(SUnpkU8, ¶m->nbrSpecSfCfg, mBuf);
876 CMCHKUNPK(SUnpkU8, ¶m->nbrCellNRb, mBuf);
877 CMCHKUNPK(SUnpkU8, ¶m->nbrCellCp, mBuf);
878 CMCHKUNPK(SUnpkU8, ¶m->nbrTxAntCount, mBuf);
879 CMCHKUNPK(SUnpkU16, ¶m->nbrPCellId, mBuf);
880 CMCHKUNPK(SUnpkU16, ¶m->nbrEarfcn, mBuf);
886 PUBLIC S16 cmUnpkCtfsyncReqInfo
888 CtfCnmInitSyncReq *param,
892 PUBLIC S16 cmUnpkCtfsyncReqInfo(param, mBuf)
893 CtfCnmInitSyncReq *param;
898 TRC3(cmUnpkCtfsyncReqInfo);
900 CMCHKUNPK(SUnpkU16, ¶m->numOfPciList, mBuf);
901 for(i=0; (i < param->numOfPciList)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
903 CMCHKUNPK(cmUnpkCtfCtfCnmCellSyncReq, ¶m->pciList[i], mBuf);
906 CMCHKUNPK(SUnpkU8, ¶m->measBandWidth, mBuf);
907 CMCHKUNPK(SUnpkU16, ¶m->earfcn, mBuf);
908 CMCHKUNPK(SUnpkU8, ¶m->mibRequest, mBuf);
909 CMCHKUNPK(SUnpkU8, ¶m->searchType, mBuf);
913 * @brief Configuration Request from App to CL for
914 * cnm Cell Sync request.
918 * Function: cmPkCtfCnmCellSyncReq
920 * @param[in] Pst* pst
921 * @param[in] SpId spId
922 * @param[in] CtfCfgTransId * transId
923 * @param[in] CtfCnmCellSyncReq* ctfcnmCellSyncReq
928 PUBLIC S16 cmPkCtfCnmCellSyncReq
932 CtfCfgTransId *transId,
933 CtfCnmCellSyncReq * cfgReqInfo
936 PUBLIC S16 cmPkCtfCnmCellSyncReq(pst, spId, transId, cfgReqInfo)
939 CtfCfgTransId *transId;
940 CtfCnmCellSyncReq * cfgReqInfo;
944 Buffer *mBuf = NULLP;
946 TRC3(cmPkCtfCnmCellSyncReq)
948 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
949 #if (ERRCLASS & ERRCLS_ADD_RES)
950 /* ctf_c_001.main_3 Compilation warning fix with g++ */
951 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
952 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
953 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
955 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
958 if (pst->selector == ODU_SELECTOR_LC) {
959 if (cmPkCtfCtfCnmCellSyncReq(cfgReqInfo, mBuf) != ROK) {
960 #if (ERRCLASS & ERRCLS_ADD_RES)
961 /* ctf_c_001.main_3 Compilation warning fix with g++ */
962 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
963 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
964 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
966 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
971 else if (pst->selector == ODU_SELECTOR_LWLC) {
973 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
974 #if (ERRCLASS & ERRCLS_ADD_RES)
975 /* ctf_c_001.main_3 Compilation warning fix with g++ */
976 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
977 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
978 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
980 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
986 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
987 #if (ERRCLASS & ERRCLS_ADD_RES)
988 /* ctf_c_001.main_3 Compilation warning fix with g++ */
989 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
990 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
991 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
993 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
997 if (SPkS16(spId, mBuf) != ROK) {
998 #if (ERRCLASS & ERRCLS_ADD_RES)
999 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1000 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1001 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1002 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1004 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1008 if (pst->selector != ODU_SELECTOR_LWLC) {
1009 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmCellSyncReq));
1011 pst->event = (Event)EVTCTFCNMSYNCREQ;
1012 RETVALUE(SPstTsk(pst,mBuf));
1016 * @brief Configuration Request from RRC to PHY for
1017 * cell or dedicated configuration.
1021 * Function: cmUnpkCtfCnmCellSyncReq
1023 * @param[in] CtfCnmCellSyncReqMsg func
1024 * @param[in] Pst* pst
1025 * @param[in] Buffer *mBuf
1030 PUBLIC S16 cmUnpkCtfCnmCellSyncReq
1032 CtfCnmCellSyncReqMsg func,
1037 PUBLIC S16 cmUnpkCtfCnmCellSyncReq(func, pst, mBuf)
1038 CtfCnmCellSyncReqMsg func;
1045 CtfCfgTransId transId;
1046 CtfCnmCellSyncReq *SyncReqMsg = NULLP;
1047 TRC3(cmUnpkCtfCnmCellSyncReq)
1049 if (SUnpkS16(&spId, mBuf) != ROK) {
1051 #if (ERRCLASS & ERRCLS_ADD_RES)
1052 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1053 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1054 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1055 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1059 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1061 #if (ERRCLASS & ERRCLS_ADD_RES)
1062 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1063 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1064 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1065 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1069 if (pst->selector != ODU_SELECTOR_LWLC) {
1070 if ((SGetSBuf(pst->region, pst->pool, (Data **)&SyncReqMsg, sizeof(CtfCnmCellSyncReq))) != ROK) {
1071 #if (ERRCLASS & ERRCLS_ADD_RES)
1072 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1073 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1074 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1075 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1081 if (pst->selector == ODU_SELECTOR_LWLC) {
1082 if (cmUnpkPtr((PTR *)&SyncReqMsg, mBuf) != ROK) {
1087 else if (pst->selector == ODU_SELECTOR_LC)
1088 if (cmUnpkCtfCtfCnmCellSyncReq(SyncReqMsg, mBuf) != ROK) {
1089 SPutSBuf(pst->region, pst->pool, (Data *)SyncReqMsg, sizeof(CtfCnmCellSyncReq));
1091 #if (ERRCLASS & ERRCLS_ADD_RES)
1092 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1093 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1094 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1095 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1100 RETVALUE((*func)(pst, spId, &transId, SyncReqMsg));
1103 /*-----------------------------------------------------*/
1107 * @brief Configuration Request from App to CL for
1108 * cnm Init Sync request.
1112 * Function: cmPkCtfCnmInitSyncReq
1114 * @param[in] Pst* pst
1115 * @param[in] SpId spId
1116 * @param[in] CtfCfgTransId * transId
1117 * @param[in] CtfCnmInitSyncReq* ctfcnmInitSyncReq
1122 PUBLIC S16 cmPkCtfCnmInitSyncReq
1126 CtfCfgTransId *transId,
1127 CtfCnmInitSyncReq * cfgReqInfo
1130 PUBLIC S16 cmPkCtfCnmInitSyncReq(pst, spId, transId, cfgReqInfo)
1133 CtfCfgTransId *transId;
1134 CtfCnmInitSyncReq * cfgReqInfo;
1137 Buffer *mBuf = NULLP;
1139 TRC3(cmPkCtfCnmInitSyncReq)
1141 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1142 #if (ERRCLASS & ERRCLS_ADD_RES)
1143 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1144 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1145 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1146 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1148 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1151 if (pst->selector == ODU_SELECTOR_LC) {
1152 if (cmPkCtfcfgReqInfo(cfgReqInfo, mBuf) != ROK) {
1153 #if (ERRCLASS & ERRCLS_ADD_RES)
1154 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1155 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1156 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1157 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1159 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1164 else if (pst->selector == ODU_SELECTOR_LWLC) {
1166 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
1167 #if (ERRCLASS & ERRCLS_ADD_RES)
1168 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1169 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1170 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1171 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1173 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1179 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1180 #if (ERRCLASS & ERRCLS_ADD_RES)
1181 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1182 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1183 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1184 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1186 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1190 if (SPkS16(spId, mBuf) != ROK) {
1191 #if (ERRCLASS & ERRCLS_ADD_RES)
1192 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1193 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1194 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1195 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1197 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1201 if (pst->selector != ODU_SELECTOR_LWLC) {
1202 SPutSBuf(pst->region, pst->pool, (Data *)cfgReqInfo, sizeof(CtfCnmInitSyncReq));
1204 pst->event = (Event)EVTCTFCNMINITSYNCREQ;
1205 RETVALUE(SPstTsk(pst,mBuf));
1208 /*-----------------------------------------------------------------*/
1211 * @brief Configuration Request from RRC to PHY for
1212 * cell or dedicated configuration.
1216 * Function: cmUnpkCtfCnmInitSyncReq
1218 * @param[in] CtfCnmInitSyncReqMsg func
1219 * @param[in] Pst* pst
1220 * @param[in] Buffer *mBuf
1225 PUBLIC S16 cmUnpkCtfCnmInitSyncReq
1227 CtfCnmInitSyncReqMsg func,
1232 PUBLIC S16 cmUnpkCtfCnmInitSyncReq(func, pst, mBuf)
1233 CtfCnmInitSyncReqMsg func;
1240 CtfCfgTransId transId;
1241 CtfCnmInitSyncReq *syncReqInfo = NULLP;
1242 TRC3(cmUnpkCtfCnmInitSyncReq)
1244 if (SUnpkS16(&spId, mBuf) != ROK) {
1246 #if (ERRCLASS & ERRCLS_ADD_RES)
1247 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1248 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1249 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1250 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1254 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1256 #if (ERRCLASS & ERRCLS_ADD_RES)
1257 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1258 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1259 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1260 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1264 if (pst->selector != ODU_SELECTOR_LWLC) {
1265 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncReqInfo, sizeof(CtfCnmInitSyncReq))) != ROK) {
1266 #if (ERRCLASS & ERRCLS_ADD_RES)
1267 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1268 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1269 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1270 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1276 if (pst->selector == ODU_SELECTOR_LWLC) {
1277 if (cmUnpkPtr((PTR *)&syncReqInfo, mBuf) != ROK) {
1282 else if (pst->selector == ODU_SELECTOR_LC)
1283 if (cmUnpkCtfsyncReqInfo(syncReqInfo, mBuf) != ROK) {
1284 SPutSBuf(pst->region, pst->pool, (Data *)syncReqInfo, sizeof(CtfCnmInitSyncReq));
1286 #if (ERRCLASS & ERRCLS_ADD_RES)
1287 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1288 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1289 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1290 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1295 RETVALUE((*func)(pst, spId, &transId, syncReqInfo));
1297 /*-----------------------------------------------------------------------------*/
1300 PUBLIC S16 cmPkCtfctfCnmMibInfo
1302 CtfCnmMibInfo *param,
1306 PUBLIC S16 cmPkCtfctfCnmMibInfo(param, mBuf)
1307 CtfCnmMibInfo *param;
1311 TRC3(cmPkCtfctfCnmMibInfo)
1313 CMCHKPK(SPkU16, param->sfn, mBuf);
1314 CMCHKPK(SPkU8, param->numTxAntennas, mBuf);
1315 CMCHKPK(SPkU8, param->phichDuration, mBuf);
1316 CMCHKPK(SPkU8, param->phichResource, mBuf);
1317 CMCHKPK(SPkU8, param->dlSystemBandWidht, mBuf);
1323 PUBLIC S16 cmPkCtfctfCnmInitSyncInfo
1325 CtfCnmInitSyncInfo *param,
1329 PUBLIC S16 cmPkCtfctfCnmInitSyncInfo(param, mBuf)
1330 CtfCnmInitSyncInfo *param;
1334 TRC3(cmPkCtfctfCnmInitSyncInfo)
1336 CMCHKPK(SPkU16, param->pci, mBuf);
1337 CMCHKPK(SPkU8, param->rsrp, mBuf);
1338 CMCHKPK(SPkU8, param->mibValidFlag, mBuf);
1339 CMCHKPK(SPkU16, param->localSfn, mBuf);
1340 CMCHKPK(cmPkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1341 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1347 PUBLIC S16 cmPkCtfcfgRspInfo
1349 CtfCnmInitSyncRsp *param,
1353 PUBLIC S16 cmPkCtfcfgRspInfo(param, mBuf)
1354 CtfCnmInitSyncRsp *param;
1359 TRC3(cmPkCtfcfgRspInfo)
1362 CMCHKPK(SPkU8, param->status, mBuf);
1363 CMCHKPK(SPkU16, param->earfcn, mBuf);
1364 if(param->numOfNeighbourInfo <= CTF_CNM_MAX_CELL_SEARCH)
1366 for(i= param->numOfNeighbourInfo-1; i >= 0; i--)
1368 CMCHKPK(cmPkCtfctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1371 CMCHKPK(SPkU8, param->numOfNeighbourInfo, mBuf);
1377 * @brief Configuration Request from App to CL for
1378 * cnm Init Sync responce
1382 * Function: cmPkCtfCnmInitSyncRsp
1384 * @param[in] Pst* pst
1385 * @param[in] SpId spId
1386 * @param[in] CtfCfgTransId * transId
1387 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
1392 PUBLIC S16 cmPkCtfCnmInitSyncRsp
1396 CtfCfgTransId *transId,
1397 CtfCnmInitSyncRsp * cfgRspInfo
1400 PUBLIC S16 cmPkCtfCnmInitSyncRsp(pst, spId, transId, cfgRspInfo)
1403 CtfCfgTransId *transId;
1404 CtfCnmInitSyncRsp * cfgRspInfo;
1407 Buffer *mBuf = NULLP;
1408 TRC3(cmPkCtfCnmInitSyncRsp)
1410 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1411 #if (ERRCLASS & ERRCLS_ADD_RES)
1412 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1413 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1414 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1415 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1417 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1420 if (pst->selector == ODU_SELECTOR_LC) {
1421 if (cmPkCtfcfgRspInfo(cfgRspInfo, mBuf) != ROK) {
1422 #if (ERRCLASS & ERRCLS_ADD_RES)
1423 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1424 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1425 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1426 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1428 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1433 else if (pst->selector == ODU_SELECTOR_LWLC) {
1435 if (cmPkPtr((PTR)cfgRspInfo, mBuf) != ROK) {
1436 #if (ERRCLASS & ERRCLS_ADD_RES)
1437 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1438 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1439 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1440 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1442 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1448 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1449 #if (ERRCLASS & ERRCLS_ADD_RES)
1450 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1451 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1452 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1453 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1455 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1459 if (SPkS16(spId, mBuf) != ROK) {
1460 #if (ERRCLASS & ERRCLS_ADD_RES)
1461 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1462 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1463 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1464 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1466 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1470 if (pst->selector != ODU_SELECTOR_LWLC) {
1471 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmInitSyncRsp));
1473 pst->event = (Event)EVTCTFCNMINITSYNCRSP;
1474 RETVALUE(SPstTsk(pst,mBuf));
1477 /*-----------------------------------------------------------------------------*/
1480 PUBLIC S16 cmUnpkCtfctfCnmMibInfo
1482 CtfCnmMibInfo *param,
1486 PUBLIC S16 cmUnpkCtfctfCnmMibInfo(param, mBuf)
1487 CtfCnmMibInfo *param;
1491 TRC3(cmUnpkCtfctfCnmMibInfo);
1494 CMCHKUNPK(SUnpkU8, ¶m->dlSystemBandWidht, mBuf);
1495 CMCHKUNPK(SUnpkU8, ¶m->phichResource, mBuf);
1496 CMCHKUNPK(SUnpkU8, ¶m->phichDuration, mBuf);
1497 CMCHKUNPK(SUnpkU8, ¶m->numTxAntennas, mBuf);
1498 CMCHKUNPK(SUnpkU16, ¶m->sfn, mBuf);
1504 PUBLIC S16 cmUnpkctfCnmInitSyncInfo
1506 CtfCnmInitSyncInfo *param,
1510 PUBLIC S16 cmUnpkctfCnmInitSyncInfo(param, mBuf)
1511 CtfCnmInitSyncInfo *param;
1515 TRC3(cmUnpkctfCnmInitSyncInfo);
1517 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1518 CMCHKUNPK(cmUnpkCtfctfCnmMibInfo, ¶m->ctfCnmMibInfo, mBuf);
1519 CMCHKUNPK(SUnpkU16, ¶m->localSfn, mBuf);
1520 CMCHKUNPK(SUnpkU8, ¶m->mibValidFlag, mBuf);
1521 CMCHKUNPK(SUnpkU8, ¶m->rsrp, mBuf);
1522 CMCHKUNPK(SUnpkU16, ¶m->pci, mBuf);
1528 PUBLIC S16 cmUnpkCtfCnmInitSyncRspMsg
1530 CtfCnmInitSyncRsp *param,
1534 PUBLIC S16 cmUnpkCtfCnmInitSyncRspMsg(param, mBuf)
1535 CtfCnmInitSyncRsp *param;
1540 TRC3(cmUnpkCtfCnmInitSyncRspMsg);
1543 CMCHKUNPK(SUnpkU8, ¶m->numOfNeighbourInfo, mBuf);
1544 for(i=0; (i < param->numOfNeighbourInfo)&&(i < CTF_CNM_MAX_CELL_SEARCH); i++)
1546 CMCHKUNPK(cmUnpkctfCnmInitSyncInfo, ¶m->ctfCnmInitSyncInfo[i], mBuf);
1548 CMCHKUNPK(SUnpkU16, ¶m->earfcn, mBuf);
1549 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
1554 * @brief Configuration Request from RRC to PHY for
1555 * cell or dedicated configuration.
1559 * Function: cmUnpkCtfCnmInitSyncRsp
1561 * @param[in] CtfCnmInitSyncRspMsg func
1562 * @param[in] Pst* pst
1563 * @param[in] Buffer *mBuf
1568 PUBLIC S16 cmUnpkCtfCnmInitSyncRsp
1570 CtfCnmInitSyncRspMsg func,
1575 PUBLIC S16 cmUnpkCtfCnmInitSyncRsp(func, pst, mBuf)
1576 CtfCnmInitSyncRspMsg func;
1583 CtfCfgTransId transId;
1584 CtfCnmInitSyncRsp *syncRspInfo = NULLP;
1585 TRC3(cmUnpkCtfCnmInitSyncRsp)
1587 if (SUnpkS16(&spId, mBuf) != ROK) {
1589 #if (ERRCLASS & ERRCLS_ADD_RES)
1590 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1591 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1592 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1593 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1597 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1599 #if (ERRCLASS & ERRCLS_ADD_RES)
1600 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1601 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1602 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1603 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1607 if (pst->selector != ODU_SELECTOR_LWLC) {
1608 if((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspInfo, sizeof(CtfCnmInitSyncRsp))) != ROK) {
1609 #if (ERRCLASS & ERRCLS_ADD_RES)
1610 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1611 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1612 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1613 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1619 if (pst->selector == ODU_SELECTOR_LWLC) {
1620 if(cmUnpkPtr((PTR *)&syncRspInfo, mBuf) != ROK) {
1625 else if (pst->selector == ODU_SELECTOR_LC)
1626 if(cmUnpkCtfCnmInitSyncRspMsg(syncRspInfo, mBuf) != ROK) {
1627 SPutSBuf(pst->region, pst->pool, (Data *)syncRspInfo, sizeof(CtfCnmInitSyncRsp));
1629 #if (ERRCLASS & ERRCLS_ADD_RES)
1630 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1631 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1632 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1633 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1638 RETVALUE((*func)(pst, spId, &transId, syncRspInfo));
1641 /*-----------------------------------------------------------------------*/
1644 PUBLIC S16 cmPkCtfCellSyncRsp
1646 CtfCnmCellSyncRsp *param,
1650 PUBLIC S16 cmPkCtfCellSyncRsp(param, mBuf)
1651 CtfCnmCellSyncRsp *param;
1656 TRC3(cmPkCtfCellSyncRsp)
1658 CMCHKPK(SPkU8, param->status, mBuf);
1663 * @brief Configuration Request from App to CL for
1664 * cnm Init Sync responce.
1668 * Function: cmPkCtfCnmCellSyncRsp
1670 * @param[in] Pst* pst
1671 * @param[in] SpId spId
1672 * @param[in] CtfCfgTransId * transId
1673 * @param[in] CtfCnmCellSyncRsp* ctfcnmCellSyncRsp
1678 PUBLIC S16 cmPkCtfCnmCellSyncRsp
1682 CtfCfgTransId *transId,
1683 CtfCnmCellSyncRsp * cfgRspInfo
1686 PUBLIC S16 cmPkCtfCnmCellSyncRsp(pst, spId, transId, cfgRspInfo)
1689 CtfCfgTransId *transId;
1690 CtfCnmCellSyncRsp * cfgRspInfo;
1694 Buffer *mBuf = NULLP;
1695 TRC3(cmPkCtfCnmCellSyncRsp)
1697 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1698 #if (ERRCLASS & ERRCLS_ADD_RES)
1699 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1700 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1701 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1702 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1704 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1707 if (pst->selector == ODU_SELECTOR_LC) {
1708 if (cmPkCtfCellSyncRsp(cfgRspInfo, mBuf) != ROK) {
1709 #if (ERRCLASS & ERRCLS_ADD_RES)
1710 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1711 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1712 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1713 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1715 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1720 else if (pst->selector == ODU_SELECTOR_LWLC) {
1722 if (cmPkPtr((PTR)cfgRspInfo, mBuf) != ROK) {
1723 #if (ERRCLASS & ERRCLS_ADD_RES)
1724 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1725 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1726 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1727 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1729 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1735 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1736 #if (ERRCLASS & ERRCLS_ADD_RES)
1737 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1738 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1739 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1740 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1742 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1746 if (SPkS16(spId, mBuf) != ROK) {
1747 #if (ERRCLASS & ERRCLS_ADD_RES)
1748 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1749 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1750 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1751 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1753 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1757 if (pst->selector != ODU_SELECTOR_LWLC) {
1758 SPutSBuf(pst->region, pst->pool, (Data *)cfgRspInfo, sizeof(CtfCnmCellSyncRsp));
1760 pst->event = (Event)EVTCTFCNMSYNCRSP;
1761 RETVALUE(SPstTsk(pst,mBuf));
1765 /*------------------------------------------------------------*/
1768 PUBLIC S16 cmUnpkCtfCnmSyncRspMsg
1770 CtfCnmCellSyncRsp *param,
1774 PUBLIC S16 cmUnpkCtfCnmSyncRspMsg(param, mBuf)
1775 CtfCnmCellSyncRsp *param;
1780 TRC3(cmUnpkCtfCnmSyncRspMsg);
1782 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
1787 * @brief Configuration Request from RRC to PHY for
1788 * cell or dedicated configuration.
1792 * Function: cmUnpkCtfCnmCellSyncRsp
1794 * @param[in] CtfCnmCellSyncRspMsg func
1795 * @param[in] Pst* pst
1796 * @param[in] Buffer *mBuf
1801 PUBLIC S16 cmUnpkCtfCnmCellSyncRsp
1803 CtfCnmCellSyncRspMsg func,
1808 PUBLIC S16 cmUnpkCtfCnmCellSyncRsp(func, pst, mBuf)
1809 CtfCnmCellSyncRspMsg func;
1816 CtfCfgTransId transId;
1817 CtfCnmCellSyncRsp *syncRspMsg = NULLP;
1818 TRC3(cmUnpkCtfCnmCellSyncRsp)
1820 if (SUnpkS16(&spId, mBuf) != ROK) {
1822 #if (ERRCLASS & ERRCLS_ADD_RES)
1823 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1824 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1825 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1826 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
1830 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
1832 #if (ERRCLASS & ERRCLS_ADD_RES)
1833 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1834 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1835 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1836 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
1840 if (pst->selector != ODU_SELECTOR_LWLC) {
1841 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncRspMsg, sizeof(CtfCnmCellSyncRsp))) != ROK) {
1842 #if (ERRCLASS & ERRCLS_ADD_RES)
1843 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1844 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1845 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1846 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
1852 if (pst->selector == ODU_SELECTOR_LWLC) {
1853 if (cmUnpkPtr((PTR *)&syncRspMsg, mBuf) != ROK) {
1858 else if (pst->selector == ODU_SELECTOR_LC)
1859 if (cmUnpkCtfCnmSyncRspMsg(syncRspMsg, mBuf) != ROK) {
1860 SPutSBuf(pst->region, pst->pool, (Data *)syncRspMsg, sizeof(CtfCnmCellSyncRsp));
1862 #if (ERRCLASS & ERRCLS_ADD_RES)
1863 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1864 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1865 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1866 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
1871 RETVALUE((*func)(pst, spId, &transId, syncRspMsg));
1874 /*---------------------------------------------------------------*/
1877 PUBLIC S16 cmPkCtfcfgIndInfo
1879 CtfCnmCellSyncInd *param,
1883 PUBLIC S16 cmPkCtfcfgIndInfo(param, mBuf)
1884 CtfCnmCellSyncInd *param;
1889 TRC3(cmPkCtfcfgIndInfo);
1891 CMCHKPK(SPkU8, param->status, mBuf);
1892 CMCHKPK(cmPkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
1897 * @brief Configuration Request from App to CL for
1898 * cnm Init Sync responce.
1902 * Function: cmPkCtfCnmCellSyncInd
1904 * @param[in] Pst* pst
1905 * @param[in] SpId spId
1906 * @param[in] CtfCfgTransId * transId
1907 * @param[in] CtfCnmCellSyncInd* ctfcnmCellSyncInd
1912 PUBLIC S16 cmPkCtfCnmCellSyncInd
1916 CtfCfgTransId *transId,
1917 CtfCnmCellSyncInd * cfgIndInfo
1920 PUBLIC S16 cmPkCtfCnmCellSyncInd(pst, spId, transId, cfgIndInfo)
1923 CtfCfgTransId *transId;
1924 CtfCnmCellSyncInd * cfgIndInfo;
1928 Buffer *mBuf = NULLP;
1929 TRC3(cmPkCtfCnmCellSyncInd)
1931 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1932 #if (ERRCLASS & ERRCLS_ADD_RES)
1933 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1934 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1935 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1936 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
1938 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1941 if (pst->selector == ODU_SELECTOR_LC) {
1942 if (cmPkCtfcfgIndInfo(cfgIndInfo, mBuf) != ROK) {
1943 #if (ERRCLASS & ERRCLS_ADD_RES)
1944 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1945 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1946 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1947 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
1949 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1954 else if (pst->selector == ODU_SELECTOR_LWLC) {
1956 if (cmPkPtr((PTR)cfgIndInfo, mBuf) != ROK) {
1957 #if (ERRCLASS & ERRCLS_ADD_RES)
1958 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1959 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1960 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1961 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
1963 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1969 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
1970 #if (ERRCLASS & ERRCLS_ADD_RES)
1971 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1972 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1973 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1974 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
1976 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1980 if (SPkS16(spId, mBuf) != ROK) {
1981 #if (ERRCLASS & ERRCLS_ADD_RES)
1982 /* ctf_c_001.main_3 Compilation warning fix with g++ */
1983 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
1984 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
1985 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
1987 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1991 if (pst->selector != ODU_SELECTOR_LWLC) {
1992 SPutSBuf(pst->region, pst->pool, (Data *)cfgIndInfo, sizeof(CtfCnmCellSyncInd));
1994 pst->event = (Event)EVTCTFCNMSYNCIND;
1995 RETVALUE(SPstTsk(pst,mBuf));
1999 /*---------------------------------------------------------------*/
2002 PUBLIC S16 cmUnpkCtfCnmSyncIndMsg
2004 CtfCnmCellSyncInd *param,
2008 PUBLIC S16 cmUnpkCtfCnmSyncIndMsg(param, mBuf)
2009 CtfCnmCellSyncInd *param;
2014 TRC3(cmUnpkCtfCnmSyncIndMsg);
2016 CMCHKUNPK(cmUnpkCtfCnmVendorSpecificInfo, ¶m->ctfCnmVendorSpecificInfo, mBuf);
2017 CMCHKUNPK(SUnpkU8, ¶m->status, mBuf);
2022 * @brief Configuration Request from RRC to PHY for
2023 * cell or dedicated configuration.
2027 * Function: cmUnpkCtfCnmCellSyncInd
2029 * @param[in] CtfCnmCellSyncIndMsg func
2030 * @param[in] Pst* pst
2031 * @param[in] Buffer *mBuf
2036 PUBLIC S16 cmUnpkCtfCnmCellSyncInd
2038 CtfCnmCellSyncIndMsg func,
2043 PUBLIC S16 cmUnpkCtfCnmCellSyncInd(func, pst, mBuf)
2044 CtfCnmCellSyncIndMsg func;
2051 CtfCfgTransId transId;
2052 CtfCnmCellSyncInd *syncIndMsg = NULLP;
2053 TRC3(cmUnpkCtfCnmInitSyncRsp)
2055 if (SUnpkS16(&spId, mBuf) != ROK) {
2057 #if (ERRCLASS & ERRCLS_ADD_RES)
2058 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2059 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2060 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2061 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2065 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2067 #if (ERRCLASS & ERRCLS_ADD_RES)
2068 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2069 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2070 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2071 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2075 if (pst->selector != ODU_SELECTOR_LWLC) {
2076 if ((SGetSBuf(pst->region, pst->pool, (Data **)&syncIndMsg, sizeof(CtfCnmCellSyncInd))) != ROK) {
2077 #if (ERRCLASS & ERRCLS_ADD_RES)
2078 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2079 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2080 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2081 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2087 if (pst->selector == ODU_SELECTOR_LWLC) {
2088 if (cmUnpkPtr((PTR *)&syncIndMsg, mBuf) != ROK) {
2093 else if (pst->selector == ODU_SELECTOR_LC)
2094 if (cmUnpkCtfCnmSyncIndMsg(syncIndMsg, mBuf) != ROK) {
2095 SPutSBuf(pst->region, pst->pool, (Data *)syncIndMsg, sizeof(CtfCnmCellSyncInd));
2097 #if (ERRCLASS & ERRCLS_ADD_RES)
2098 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2099 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2100 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2101 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2106 RETVALUE((*func)(pst, spId, &transId, syncIndMsg));
2110 /********************************************************************************************************************************/
2111 /*END OF CNM PACK & UNPACK FUNCTIONS*/
2112 /********************************************************************************************************************************/
2118 * @brief Configuration Request from RRC to PHY for
2119 * cell or dedicated configuration.
2123 * Function: cmPkCtfCfgReq
2125 * @param[in] Pst* pst
2126 * @param[in] SpId spId
2127 * @param[in] CtfCfgTransId transId
2128 * @param[in] CtfCfgReqInfo* cfgReqInfo
2133 PUBLIC S16 cmPkCtfCfgReq
2137 CtfCfgTransId transId,
2138 CtfCfgReqInfo* cfgReqInfo
2141 PUBLIC S16 cmPkCtfCfgReq(pst, spId, transId, cfgReqInfo)
2144 CtfCfgTransId transId;
2145 CtfCfgReqInfo* cfgReqInfo;
2148 Buffer *mBuf = NULLP;
2151 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2152 #if (ERRCLASS & ERRCLS_ADD_RES)
2153 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2154 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2155 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2156 (ErrVal)ECTF016, (ErrVal)0, "Packing failed");
2158 cmRelCtfCfgReq(pst, cfgReqInfo);
2161 if (pst->selector == ODU_SELECTOR_LC) {
2162 if (cmPkCtfCfgReqInfo(cfgReqInfo, mBuf) != ROK) {
2163 #if (ERRCLASS & ERRCLS_ADD_RES)
2164 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2165 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2166 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2167 (ErrVal)ECTF017, (ErrVal)0, "Packing failed");
2169 cmRelCtfCfgReq(pst, cfgReqInfo);
2174 else if (pst->selector == ODU_SELECTOR_LWLC) {
2175 if (cmPkPtr((PTR)cfgReqInfo, mBuf) != ROK) {
2176 #if (ERRCLASS & ERRCLS_ADD_RES)
2177 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2178 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2179 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2180 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
2182 cmRelCtfCfgReq(pst, cfgReqInfo);
2187 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2188 #if (ERRCLASS & ERRCLS_ADD_RES)
2189 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2190 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2191 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2192 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
2194 cmRelCtfCfgReq(pst, cfgReqInfo);
2198 if (SPkS16(spId, mBuf) != ROK) {
2199 #if (ERRCLASS & ERRCLS_ADD_RES)
2200 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2201 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2202 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2203 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
2205 cmRelCtfCfgReq(pst, cfgReqInfo);
2209 if (pst->selector != ODU_SELECTOR_LWLC) {
2210 cmRelCtfCfgReq(pst, cfgReqInfo);
2212 pst->event = (Event) EVTCTFCFGREQ;
2213 RETVALUE(SPstTsk(pst,mBuf));
2216 #ifdef TENB_AS_SECURITY
2217 /***********************************************************
2219 * Func: cmPkCtfKenbCfgInfo
2222 * Desc: Key derivation funtion Input Information
2223 * @details This funtion packs the the CtfKenbCfgInfo structure
2224 * which contains the eNodeB key and Algorithm Type for
2225 * deriving AS security keys.
2234 **********************************************************/
2236 PUBLIC S16 cmUnpkCtfNhKeyInfo
2238 CtfNhKeyInfo *param,
2242 PUBLIC S16 cmUnpkCtfNhKeyInfo(param, mBuf)
2243 CtfNhKeyInfo *param;
2250 TRC3(cmUnpkCtfNhKeyInfo)
2252 CMCHKUNPK(SUnpkU16, ¶m->dlCarrFreq, mBuf);
2253 CMCHKUNPK(SUnpkU16, ¶m->physCellId, mBuf);
2254 for(idx=0;idx<32;idx++)
2256 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2261 /***********************************************************
2263 * Func: cmPkCtfKenbCfgInfo
2266 * Desc: Key derivation funtion Input Information
2267 * @details This funtion packs the the CtfKenbCfgInfo structure
2268 * which contains the eNodeB key and Algorithm Type for
2269 * deriving AS security keys.
2278 **********************************************************/
2280 PUBLIC S16 cmUnpkCtfKenbStarInfo
2282 CtfKenbStarInfo *param,
2286 PUBLIC S16 cmUnpkCtfKenbStarInfo(param, mBuf)
2287 CtfKenbStarInfo *param;
2294 TRC3(cmUnpkCtfKenbStarInfo)
2296 CMCHKUNPK(SUnpkU16, ¶m->dlCarrFreq, mBuf);
2297 CMCHKUNPK(SUnpkU16, ¶m->physCellId, mBuf);
2298 for(idx=0;idx<32;idx++)
2300 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2306 /***********************************************************
2308 * Func: cmPkCtfKenbCfgInfo
2311 * Desc: Key derivation funtion Input Information
2312 * @details This funtion packs the the CtfKenbCfgInfo structure
2313 * which contains the eNodeB key and Algorithm Type for
2314 * deriving AS security keys.
2323 **********************************************************/
2325 PUBLIC S16 cmUnpkCtfAskeyInfo
2327 CtfAsKeyInfo *param,
2331 PUBLIC S16 cmUnpkCtfAskeyInfo(param, mBuf)
2332 CtfAskeyInfo *param;
2339 TRC3(cmUnpkCtfAskeyInfo)
2341 CMCHKUNPK(SUnpkU8, ¶m->intgAlgoType, mBuf);
2342 CMCHKUNPK(SUnpkU8, ¶m->ciphAlgoType, mBuf);
2343 for(idx=0;idx<32;idx++)
2345 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
2350 /***********************************************************
2352 * Func: cmPkCtfKenbCfgInfo
2355 * Desc: Key derivation funtion Input Information
2356 * @details This funtion packs the the CtfKenbCfgInfo structure
2357 * which contains the eNodeB key and Algorithm Type for
2358 * deriving AS security keys.
2367 * **********************************************************/
2369 PUBLIC S16 cmUnpkCtfKdfReqInfo
2371 CtfKdfReqInfo *param,
2375 PUBLIC S16 cmUnpkCtfKdfReqInfo(param, mBuf)
2376 CtfKdfReqInfo *param;
2381 TRC3(cmUnpkCtfKdfReqInfo)
2383 CMCHKUNPK(SUnpkU8, ¶m->keyDerType, mBuf);
2384 switch (param->keyDerType)
2387 CMCHKUNPK(cmUnpkCtfAskeyInfo, ¶m->u.kEnbInf, mBuf);
2390 CMCHKUNPK(cmUnpkCtfKenbStarInfo, ¶m->u.kEnbStarInf, mBuf);
2393 CMCHKUNPK(cmUnpkCtfNhKeyInfo, ¶m->u.nhKeyInf, mBuf);
2402 * @brief Configuration Request from RRC to PHY for
2403 * cell or dedicated configuration.
2407 * Function: cmUnpkCtfCfgReq
2409 * @param[in] Pst* pst
2410 * @param[in] SpId spId
2411 * @param[in] CtfCfgTransId transId
2412 * @param[in] CtfCfgReqInfo* cfgReqInfo
2417 PUBLIC S16 cmUnpkCtfKdfReq
2424 PUBLIC S16 cmUnpkCtfKdfReq(func, pst, mBuf)
2431 CtfCfgTransId transId;
2432 CtfKdfReqInfo *kdfReqInfo = NULLP;
2434 TRC3(cmUnpkCtfKdfReq)
2436 if (SUnpkS16(&spId, mBuf) != ROK) {
2438 #if (ERRCLASS & ERRCLS_ADD_RES)
2439 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2440 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2441 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2442 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2447 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2449 #if (ERRCLASS & ERRCLS_ADD_RES)
2450 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2451 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2452 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2453 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2458 if (pst->selector != ODU_SELECTOR_LWLC) {
2459 if ((SGetSBuf(pst->region, pst->pool, (Data **)&kdfReqInfo, sizeof(CtfKdfReqInfo))) != ROK) {
2460 #if (ERRCLASS & ERRCLS_ADD_RES)
2461 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2462 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2463 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2464 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2472 if (pst->selector == ODU_SELECTOR_LWLC) {
2473 /*if (cmUnpkPtr((PTR *)&cfgReqInfo, mBuf) != ROK) {
2478 else if (pst->selector == ODU_SELECTOR_LC)
2479 if (cmUnpkCtfKdfReqInfo(kdfReqInfo, mBuf) != ROK) {
2480 SPutSBuf(pst->region, pst->pool, (Data *)kdfReqInfo, sizeof(CtfKdfReqInfo));
2482 #if (ERRCLASS & ERRCLS_ADD_RES)
2483 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2484 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2485 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2486 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2491 RETVALUE((*func)(pst, spId, transId, kdfReqInfo));
2498 * @brief Configuration Request from RRC to PHY for
2499 * cell or dedicated configuration.
2503 * Function: cmUnpkCtfCfgReq
2505 * @param[in] Pst* pst
2506 * @param[in] SpId spId
2507 * @param[in] CtfCfgTransId transId
2508 * @param[in] CtfCfgReqInfo* cfgReqInfo
2513 PUBLIC S16 cmUnpkCtfCfgReq
2520 PUBLIC S16 cmUnpkCtfCfgReq(func, pst, mBuf)
2527 CtfCfgTransId transId;
2528 CtfCfgReqInfo *cfgReqInfo = NULLP;
2530 TRC3(cmUnpkCtfCfgReq)
2532 if (SUnpkS16(&spId, mBuf) != ROK) {
2534 #if (ERRCLASS & ERRCLS_ADD_RES)
2535 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2536 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2537 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2538 (ErrVal)ECTF022, (ErrVal)0, (Txt*)&"Packing failed");
2542 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
2544 #if (ERRCLASS & ERRCLS_ADD_RES)
2545 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2546 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2547 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2548 (ErrVal)ECTF023, (ErrVal)0, (Txt*)&"Packing failed");
2552 if (pst->selector != ODU_SELECTOR_LWLC) {
2553 if ((SGetSBuf(pst->region, pst->pool, (Data **)&cfgReqInfo, sizeof(CtfCfgReqInfo))) != ROK) {
2554 #if (ERRCLASS & ERRCLS_ADD_RES)
2555 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2556 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2557 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2558 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
2564 if (pst->selector == ODU_SELECTOR_LWLC) {
2565 if (cmUnpkPtr((PTR *)&cfgReqInfo, mBuf) != ROK) {
2570 else if (pst->selector == ODU_SELECTOR_LC)
2571 if (cmUnpkCtfCfgReqInfo(pst,cfgReqInfo, mBuf) != ROK) {
2572 cmRelCtfCfgReq(pst, cfgReqInfo);
2574 #if (ERRCLASS & ERRCLS_ADD_RES)
2575 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2576 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2577 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2578 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
2583 RETVALUE((*func)(pst, spId, transId, cfgReqInfo));
2586 #ifdef TENB_AS_SECURITY
2587 /***********************************************************
2589 * Func: cmPkCtfKenbCfgInfo
2592 * Desc: Key derivation funtion Input Information
2593 * @details This funtion packs the the CtfKenbCfgInfo structure
2594 * which contains the eNodeB key and Algorithm Type for
2595 * deriving AS security keys.
2604 **********************************************************/
2606 PUBLIC S16 cmPkCtfNhKeyCfmInfo
2608 CtfNhKeyCfmInfo *param,
2612 PUBLIC S16 cmPkCtfNhKeyCfmInfo(param, mBuf)
2613 CtfNhKeyCfmInfo *param;
2620 TRC3(cmPkCtfNhKeyCfmInfo)
2622 for(idx=31;idx>=0;idx--)
2624 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
2629 /***********************************************************
2631 * Func: cmPkCtfKenbCfgInfo
2634 * Desc: Key derivation funtion Input Information
2635 * @details This funtion packs the the CtfKenbCfgInfo structure
2636 * which contains the eNodeB key and Algorithm Type for
2637 * deriving AS security keys.
2646 **********************************************************/
2648 PUBLIC S16 cmPkCtfKenbStarCfmInfo
2650 CtfKenbStarCfmInfo *param,
2654 PUBLIC S16 cmPkCtfKenbStarCfmInfo(param, mBuf)
2655 CtfKenbStarCfmInfo *param;
2662 TRC3(cmPkCtfKenbStarCfmInfo)
2664 for(idx=31;idx>=0;idx--)
2666 CMCHKPK(SPkU8,param->secKey[idx],mBuf);
2672 /***********************************************************
2674 * Func: cmPkCtfKenbCfgInfo
2677 * Desc: Key derivation funtion Input Information
2678 * @details This funtion packs the the CtfKenbCfgInfo structure
2679 * which contains the eNodeB key and Algorithm Type for
2680 * deriving AS security keys.
2689 **********************************************************/
2691 PUBLIC S16 cmPkCtfAskeyCfmInfo
2693 CtfAskeyCfmInfo *param,
2697 PUBLIC S16 cmPkCtfAskeyCfmInfo(param, mBuf)
2698 CtfAskeyCfmInfo *param;
2705 TRC3(cmPkCtfCtfAskeyCfmInfo)
2707 for(idx=15;idx>=0;idx--)
2709 CMCHKPK(SPkU8,param->cpCiphKey[idx],mBuf);
2711 for(idx=15;idx>=0;idx--)
2713 CMCHKPK(SPkU8,param->upCiphKey[idx],mBuf);
2715 for(idx=15;idx>=0;idx--)
2717 CMCHKPK(SPkU8,param->intKey[idx],mBuf);
2722 /***********************************************************
2724 * Func: cmPkCtfKenbCfgInfo
2727 * Desc: Key derivation funtion Input Information
2728 * @details This funtion packs the the CtfKenbCfgInfo structure
2729 * which contains the eNodeB key and Algorithm Type for
2730 * deriving AS security keys.
2739 * **********************************************************/
2741 PUBLIC S16 cmPkCtfKdfCfmInfo
2743 CtfKdfCfmInfo *param,
2747 PUBLIC S16 cmPkCtfKdfCfmInfo(param, mBuf)
2748 CtfKdfCfmInfo *param;
2753 TRC3(cmPkCtfKdfCfmInfo)
2755 switch (param->keyDerType)
2758 CMCHKPK(cmPkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
2761 CMCHKPK(cmPkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
2764 CMCHKPK(cmPkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
2769 CMCHKPK(SPkU8, param->keyDerType, mBuf);
2774 * @brief Configuration Confirm from PHY to RRC.
2778 * Function: cmPkCtfCfgCfm
2780 * @param[in] Pst* pst
2781 * @param[in] SuId suId
2782 * @param[in] CtfCfgTransId transId
2783 * @param[in] U8 status
2788 PUBLIC S16 cmPkCtfKdfCfm
2792 CtfCfgTransId transId,
2793 CtfKdfCfmInfo *kdfCfmInfo,
2797 PUBLIC S16 cmPkCtfKdfCfm(pst, suId, transId, status)
2800 CtfCfgTransId transId;
2804 Buffer *mBuf = NULLP;
2807 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2808 #if (ERRCLASS & ERRCLS_ADD_RES)
2809 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2810 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2811 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2812 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2814 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2818 if (SPkU8(status, mBuf) != ROK) {
2819 #if (ERRCLASS & ERRCLS_ADD_RES)
2820 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2821 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2822 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2823 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2825 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2830 if (cmPkCtfKdfCfmInfo(kdfCfmInfo, mBuf) != ROK) {
2831 #if (ERRCLASS & ERRCLS_ADD_RES)
2832 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2833 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2834 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2835 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2837 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2842 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2843 #if (ERRCLASS & ERRCLS_ADD_RES)
2844 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2845 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2846 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2847 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2849 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2854 if (SPkS16(suId, mBuf) != ROK) {
2855 #if (ERRCLASS & ERRCLS_ADD_RES)
2856 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2857 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2858 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2859 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2861 SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo));
2866 if (SPutSBuf(pst->region, pst->pool, (Data *)kdfCfmInfo, sizeof(CtfKdfCfmInfo)) != ROK)
2868 #if (ERRCLASS & ERRCLS_ADD_RES)
2869 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2870 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2871 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2872 (ErrVal)ECTF021, (ErrVal)0, (Txt*)&"Packing failed");
2878 pst->event = (Event) EVTCTFKDFCFM;
2879 RETVALUE(SPstTsk(pst,mBuf));
2884 * @brief Configuration Confirm from PHY to RRC.
2888 * Function: cmPkCtfCfgCfm
2890 * @param[in] Pst* pst
2891 * @param[in] SuId suId
2892 * @param[in] CtfCfgTransId transId
2893 * @param[in] U8 status
2898 PUBLIC S16 cmPkCtfCfgCfm
2902 CtfCfgTransId transId,
2906 PUBLIC S16 cmPkCtfCfgCfm(pst, suId, transId, status)
2909 CtfCfgTransId transId;
2913 Buffer *mBuf = NULLP;
2916 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2917 #if (ERRCLASS & ERRCLS_ADD_RES)
2918 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2919 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2920 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2921 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2925 if (SPkU8(status, mBuf) != ROK) {
2926 #if (ERRCLASS & ERRCLS_ADD_RES)
2927 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2928 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2929 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2930 (ErrVal)ECTF027, (ErrVal)0, (Txt*)&"Packing failed");
2935 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2936 #if (ERRCLASS & ERRCLS_ADD_RES)
2937 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2938 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2939 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2940 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
2945 if (SPkS16(suId, mBuf) != ROK) {
2946 #if (ERRCLASS & ERRCLS_ADD_RES)
2947 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2948 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2949 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2950 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
2955 pst->event = (Event) EVTCTFCFGCFM;
2956 RETVALUE(SPstTsk(pst,mBuf));
2960 * @brief ENB STOP Indication from PHY to ENB-APP.
2964 * Function: cmPkCtfEnbStopInd
2966 * @param[in] Pst* pst
2967 * @param[in] SuId suId
2968 * @param[in] CtfCfgTransId transId
2973 PUBLIC S16 cmPkCtfEnbStopInd
2977 CtfCfgTransId transId
2980 PUBLIC S16 cmPkCtfEnbStopInd(pst, suId, transId)
2983 CtfCfgTransId transId;
2986 Buffer *mBuf = NULLP;
2987 TRC3(cmPkCtfEnbStopInd)
2989 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
2990 #if (ERRCLASS & ERRCLS_ADD_RES)
2991 /* ctf_c_001.main_3 Compilation warning fix with g++ */
2992 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
2993 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
2994 (ErrVal)ECTF026, (ErrVal)0, (Txt*)&"Packing failed");
2998 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
2999 #if (ERRCLASS & ERRCLS_ADD_RES)
3000 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3001 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3002 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3003 (ErrVal)ECTF028, (ErrVal)0, (Txt*)&"Packing failed");
3008 if (SPkS16(suId, mBuf) != ROK) {
3009 #if (ERRCLASS & ERRCLS_ADD_RES)
3010 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3011 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3012 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3013 (ErrVal)ECTF029, (ErrVal)0, (Txt*)&"Packing failed");
3018 pst->event = (Event) EVTCTFENBSTOPIND;
3019 RETVALUE(SPstTsk(pst,mBuf));
3022 #ifdef TENB_AS_SECURITY
3023 /***********************************************************
3025 * Func: cmPkCtfKenbCfgInfo
3028 * Desc: Key derivation funtion Input Information
3029 * @details This funtion packs the the CtfKenbCfgInfo structure
3030 * which contains the eNodeB key and Algorithm Type for
3031 * deriving AS security keys.
3040 **********************************************************/
3042 PUBLIC S16 cmUnpkCtfNhKeyCfmInfo
3044 CtfNhKeyCfmInfo *param,
3048 PUBLIC S16 cmUnpkCtfNhKeyCfmInfo(param, mBuf)
3049 CtfNhKeyCfmInfo *param;
3056 TRC3(cmUnpkCtfNhKeyCfmInfo)
3058 for(idx=0;idx<32;idx++)
3060 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
3065 /***********************************************************
3067 * Func: cmPkCtfKenbCfgInfo
3070 * Desc: Key derivation funtion Input Information
3071 * @details This funtion packs the the CtfKenbCfgInfo structure
3072 * which contains the eNodeB key and Algorithm Type for
3073 * deriving AS security keys.
3082 **********************************************************/
3084 PUBLIC S16 cmUnpkCtfKenbStarCfmInfo
3086 CtfKenbStarCfmInfo *param,
3090 PUBLIC S16 cmUnpkCtfKenbStarCfmInfo(param, mBuf)
3091 CtfKenbStarCfmInfo *param;
3098 TRC3(cmUnpkCtfKenbStarCfmInfo)
3100 for(idx=0;idx<32;idx++)
3102 CMCHKUNPK(SUnpkU8,¶m->secKey[idx],mBuf);
3108 /***********************************************************
3110 * Func: cmPkCtfKenbCfgInfo
3113 * Desc: Key derivation funtion Input Information
3114 * @details This funtion packs the the CtfKenbCfgInfo structure
3115 * which contains the eNodeB key and Algorithm Type for
3116 * deriving AS security keys.
3125 **********************************************************/
3127 PUBLIC S16 cmUnpkCtfAskeyCfmInfo
3129 CtfAskeyCfmInfo *param,
3133 PUBLIC S16 cmUnpkCtfAskeyCfmInfo(param, mBuf)
3134 CtfAskeyCfmInfo *param;
3141 TRC3(cmUnpkCtfCtfAskeyCfmInfo)
3143 for(idx=0;idx<16;idx++)
3145 CMCHKUNPK(SUnpkU8,¶m->intKey[idx],mBuf);
3147 for(idx=0;idx<16;idx++)
3149 CMCHKUNPK(SUnpkU8,¶m->upCiphKey[idx],mBuf);
3151 for(idx=0;idx<16;idx++)
3153 CMCHKUNPK(SUnpkU8,¶m->cpCiphKey[idx],mBuf);
3158 /***********************************************************
3160 * Func: cmPkCtfKenbCfgInfo
3163 * Desc: Key derivation funtion Input Information
3164 * @details This funtion packs the the CtfKenbCfgInfo structure
3165 * which contains the eNodeB key and Algorithm Type for
3166 * deriving AS security keys.
3175 * **********************************************************/
3177 PUBLIC S16 cmUnpkCtfKdfCfmInfo
3179 CtfKdfCfmInfo *param,
3183 PUBLIC S16 cmUnpkCtfKdfCfmInfo(param, mBuf)
3184 CtfKdfCfmInfo *param;
3189 TRC3(cmUnpkCtfKdfCfmInfo)
3191 CMCHKUNPK(SUnpkU8, ¶m->keyDerType, mBuf);
3192 switch (param->keyDerType)
3195 CMCHKUNPK(cmUnpkCtfAskeyCfmInfo, ¶m->u.kEnbInf, mBuf);
3198 CMCHKUNPK(cmUnpkCtfKenbStarCfmInfo, ¶m->u.kEnbStarInf, mBuf);
3201 CMCHKUNPK(cmUnpkCtfNhKeyCfmInfo, ¶m->u.nhKeyInf, mBuf);
3210 * @brief Configuration Confirm from PHY to RRC.
3214 * Function: cmUnpkCtfCfgCfm
3216 * @param[in] Pst* pst
3217 * @param[in] SuId suId
3218 * @param[in] CtfCfgTransId transId
3219 * @param[in] U8 status
3224 PUBLIC S16 cmUnpkCtfKdfCfm
3231 PUBLIC S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3238 CtfCfgTransId transId;
3240 CtfKdfCfmInfo kdfCfmInfo;
3242 TRC3(cmUnpkCtfKdfCfm)
3244 if (SUnpkS16(&suId, mBuf) != ROK) {
3246 #if (ERRCLASS & ERRCLS_ADD_RES)
3247 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3248 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3249 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3250 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3254 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3256 #if (ERRCLASS & ERRCLS_ADD_RES)
3257 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3258 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3259 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3260 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3264 if (cmUnpkCtfKdfCfmInfo(&kdfCfmInfo, mBuf) != ROK) {
3266 #if (ERRCLASS & ERRCLS_ADD_RES)
3267 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3268 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3269 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3270 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3275 if (SUnpkU8(&status, mBuf) != ROK) {
3277 #if (ERRCLASS & ERRCLS_ADD_RES)
3278 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3279 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3280 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3281 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3286 RETVALUE((*func)(pst, suId, transId,&kdfCfmInfo, status));
3292 * @brief Configuration Confirm from PHY to RRC.
3296 * Function: cmUnpkCtfCfgCfm
3298 * @param[in] Pst* pst
3299 * @param[in] SuId suId
3300 * @param[in] CtfCfgTransId transId
3301 * @param[in] U8 status
3306 PUBLIC S16 cmUnpkCtfCfgCfm
3313 PUBLIC S16 cmUnpkCtfCfgCfm(func, pst, mBuf)
3320 CtfCfgTransId transId;
3323 TRC3(cmUnpkCtfCfgCfm)
3325 if (SUnpkS16(&suId, mBuf) != ROK) {
3327 #if (ERRCLASS & ERRCLS_ADD_RES)
3328 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3329 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3330 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3331 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3335 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3337 #if (ERRCLASS & ERRCLS_ADD_RES)
3338 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3339 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3340 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3341 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3345 if (SUnpkU8(&status, mBuf) != ROK) {
3347 #if (ERRCLASS & ERRCLS_ADD_RES)
3348 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3349 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3350 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3351 (ErrVal)ECTF032, (ErrVal)0, (Txt*)&"Packing failed");
3356 RETVALUE((*func)(pst, suId, transId, status));
3360 * @brief ENB STOP Indication from PHY to ENB-APP
3364 * Function: cmUnpkCtfEnbStopInd
3366 * @param[in] Pst* pst
3367 * @param[in] SuId suId
3368 * @param[in] CtfCfgTransId transId
3373 PUBLIC S16 cmUnpkCtfEnbStopInd
3380 PUBLIC S16 cmUnpkCtfEnbStopInd(func, pst, mBuf)
3387 CtfCfgTransId transId;
3389 TRC3(cmUnpkCtfCfgCfm)
3391 if (SUnpkS16(&suId, mBuf) != ROK) {
3393 #if (ERRCLASS & ERRCLS_ADD_RES)
3394 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3395 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3396 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3397 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
3401 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3403 #if (ERRCLASS & ERRCLS_ADD_RES)
3404 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3405 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3406 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3407 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
3412 RETVALUE((*func)(pst, suId, transId));
3417 * @brief UE ID Change Request from RRC to PHY.
3421 * Function: cmPkCtfUeIdChgReq
3423 * @param[in] Pst* pst
3424 * @param[in] SpId spId
3425 * @param[in] CtfCfgTransId transId
3426 * @param[in] CtfUeInfo * ueInfo
3427 * @param[in] CtfUeInfo * newUeInfo
3432 PUBLIC S16 cmPkCtfUeIdChgReq
3436 CtfCfgTransId transId,
3438 CtfUeInfo * newUeInfo
3441 PUBLIC S16 cmPkCtfUeIdChgReq(pst, spId, transId, ueInfo, newUeInfo)
3444 CtfCfgTransId transId;
3446 CtfUeInfo * newUeInfo;
3449 Buffer *mBuf = NULLP;
3450 TRC3(cmPkCtfUeIdChgReq)
3452 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3453 #if (ERRCLASS & ERRCLS_ADD_RES)
3454 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3455 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3456 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3457 (ErrVal)ECTF033, (ErrVal)0, (Txt*)&"Packing failed");
3459 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3460 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3463 if (pst->selector == ODU_SELECTOR_LC) {
3464 if (cmPkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3465 #if (ERRCLASS & ERRCLS_ADD_RES)
3466 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3467 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3468 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3469 (ErrVal)ECTF034, (ErrVal)0, (Txt*)&"Packing failed");
3471 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3472 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3477 else if (pst->selector == ODU_SELECTOR_LWLC) {
3478 if (cmPkPtr((PTR)newUeInfo, mBuf) != ROK) {
3479 #if (ERRCLASS & ERRCLS_ADD_RES)
3480 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3481 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3482 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3483 (ErrVal)ECTF035, (ErrVal)0, (Txt*)&"Packing failed");
3485 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3486 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3491 if (pst->selector == ODU_SELECTOR_LC) {
3492 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3493 #if (ERRCLASS & ERRCLS_ADD_RES)
3494 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3495 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3496 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3497 (ErrVal)ECTF036, (ErrVal)0, (Txt*)&"Packing failed");
3499 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3500 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3505 else if (pst->selector == ODU_SELECTOR_LWLC) {
3506 if (cmPkPtr((PTR)ueInfo, mBuf) != ROK) {
3507 #if (ERRCLASS & ERRCLS_ADD_RES)
3508 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3509 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3510 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3511 (ErrVal)ECTF037, (ErrVal)0, (Txt*)&"Packing failed");
3513 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3514 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3519 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3520 #if (ERRCLASS & ERRCLS_ADD_RES)
3521 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3522 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3523 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3524 (ErrVal)ECTF038, (ErrVal)0, (Txt*)&"Packing failed");
3526 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3527 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3531 if (SPkS16(spId, mBuf) != ROK) {
3532 #if (ERRCLASS & ERRCLS_ADD_RES)
3533 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3534 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3535 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3536 (ErrVal)ECTF039, (ErrVal)0, (Txt*)&"Packing failed");
3538 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3539 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3543 if (pst->selector != ODU_SELECTOR_LWLC) {
3544 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3545 #if (ERRCLASS & ERRCLS_ADD_RES)
3546 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3547 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3548 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3549 (ErrVal)ECTF040, (ErrVal)0, (Txt*)&"Packing failed");
3554 if (SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo)) != ROK) {
3555 #if (ERRCLASS & ERRCLS_ADD_RES)
3556 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3557 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3558 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3559 (ErrVal)ECTF041, (ErrVal)0, (Txt*)&"Packing failed");
3565 pst->event = (Event) EVTCTFUEIDCHGREQ;
3566 RETVALUE(SPstTsk(pst,mBuf));
3571 * @brief UE ID Change Request from RRC to PHY.
3575 * Function: cmUnpkCtfUeIdChgReq
3577 * @param[in] Pst* pst
3578 * @param[in] SpId spId
3579 * @param[in] CtfCfgTransId transId
3580 * @param[in] CtfUeInfo * ueInfo
3581 * @param[in] CtfUeInfo * newUeInfo
3586 PUBLIC S16 cmUnpkCtfUeIdChgReq
3593 PUBLIC S16 cmUnpkCtfUeIdChgReq(func, pst, mBuf)
3600 CtfCfgTransId transId;
3601 CtfUeInfo *ueInfo = NULLP;
3602 CtfUeInfo *newUeInfo = NULLP;
3604 TRC3(cmUnpkCtfUeIdChgReq)
3606 if (SUnpkS16(&spId, mBuf) != ROK) {
3608 #if (ERRCLASS & ERRCLS_ADD_RES)
3609 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3610 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3611 (Txt*)& __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3612 (ErrVal)ECTF042, (ErrVal)0, (Txt*)&"Packing failed");
3616 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3618 #if (ERRCLASS & ERRCLS_ADD_RES)
3619 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3620 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3621 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3622 (ErrVal)ECTF043, (ErrVal)0, (Txt*)&"Packing failed");
3626 if (pst->selector != ODU_SELECTOR_LWLC) {
3627 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3628 #if (ERRCLASS & ERRCLS_ADD_RES)
3629 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3630 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3631 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3632 (ErrVal)ECTF044, (ErrVal)0, (Txt*)&"Packing failed");
3638 if (pst->selector == ODU_SELECTOR_LWLC) {
3639 if (cmUnpkPtr((PTR *)&ueInfo, mBuf) != ROK) {
3644 else if (pst->selector == ODU_SELECTOR_LC)
3645 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3646 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3648 #if (ERRCLASS & ERRCLS_ADD_RES)
3649 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3650 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3651 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3652 (ErrVal)ECTF045, (ErrVal)0, (Txt*)&"Packing failed");
3656 if (pst->selector != ODU_SELECTOR_LWLC) {
3657 if ((SGetSBuf(pst->region, pst->pool, (Data **)&newUeInfo, sizeof(CtfUeInfo))) != ROK) {
3658 #if (ERRCLASS & ERRCLS_ADD_RES)
3659 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3660 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3661 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3662 (ErrVal)ECTF046, (ErrVal)0, (Txt*)&"Packing failed");
3665 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3669 if (pst->selector == ODU_SELECTOR_LWLC) {
3670 if (cmUnpkPtr((PTR *)&newUeInfo, mBuf) != ROK) {
3675 else if (pst->selector == ODU_SELECTOR_LC)
3676 if (cmUnpkCtfUeInfo(newUeInfo, mBuf) != ROK) {
3677 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3678 SPutSBuf(pst->region, pst->pool, (Data *)newUeInfo, sizeof(CtfUeInfo));
3680 #if (ERRCLASS & ERRCLS_ADD_RES)
3681 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3682 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3683 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3684 (ErrVal)ECTF047, (ErrVal)0, (Txt*)&"Packing failed");
3689 RETVALUE((*func)(pst, spId, transId, ueInfo, newUeInfo));
3694 * @brief UE ID Change Confirm from PHY to RRC.
3698 * Function: cmPkCtfUeIdChgCfm
3700 * @param[in] Pst* pst
3701 * @param[in] SuId suId
3702 * @param[in] CtfCfgTransId transId
3703 * @param[in] CtfUeInfo * ueInfo
3704 * @param[in] U8 status
3709 PUBLIC S16 cmPkCtfUeIdChgCfm
3713 CtfCfgTransId transId,
3718 PUBLIC S16 cmPkCtfUeIdChgCfm(pst, suId, transId, ueInfo, status)
3721 CtfCfgTransId transId;
3726 Buffer *mBuf = NULLP;
3727 TRC3(cmPkCtfUeIdChgCfm)
3729 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
3730 #if (ERRCLASS & ERRCLS_ADD_RES)
3731 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3732 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3733 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3734 (ErrVal)ECTF048, (ErrVal)0, (Txt*)&"Packing failed");
3736 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3739 if (cmPkCmStatus(&status, mBuf) != ROK) {
3740 #if (ERRCLASS & ERRCLS_ADD_RES)
3741 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3742 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3743 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3744 (ErrVal)ECTF049, (ErrVal)0, (Txt*)&"Packing failed");
3746 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3750 if (pst->selector == ODU_SELECTOR_LC) {
3751 if (cmPkCtfUeInfo(ueInfo, mBuf) != ROK) {
3752 #if (ERRCLASS & ERRCLS_ADD_RES)
3753 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3754 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3755 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3756 (ErrVal)ECTF050, (ErrVal)0, (Txt*)&"Packing failed");
3758 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3763 else if (pst->selector == ODU_SELECTOR_LWLC) {
3764 if (cmPkPtr((PTR)ueInfo, mBuf) != ROK) {
3765 #if (ERRCLASS & ERRCLS_ADD_RES)
3766 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3767 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3768 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3769 (ErrVal)ECTF051, (ErrVal)0, (Txt*)&"Packing failed");
3771 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3776 if (cmPkCtfCfgTransId(&transId, mBuf) != ROK) {
3777 #if (ERRCLASS & ERRCLS_ADD_RES)
3778 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3779 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3780 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3781 (ErrVal)ECTF052, (ErrVal)0, (Txt*)&"Packing failed");
3783 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3787 if (SPkS16(suId, mBuf) != ROK) {
3788 #if (ERRCLASS & ERRCLS_ADD_RES)
3789 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3790 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3791 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3792 (ErrVal)ECTF053, (ErrVal)0, (Txt*)&"Packing failed");
3794 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3798 if (pst->selector != ODU_SELECTOR_LWLC) {
3799 if (SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo)) != ROK) {
3800 #if (ERRCLASS & ERRCLS_ADD_RES)
3801 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3802 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3803 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3804 (ErrVal)ECTF054, (ErrVal)0, (Txt*)&"Packing failed");
3810 pst->event = (Event) EVTCTFUEIDCHGCFM;
3811 RETVALUE(SPstTsk(pst,mBuf));
3816 * @brief UE ID Change Confirm from PHY to RRC.
3820 * Function: cmUnpkCtfUeIdChgCfm
3822 * @param[in] Pst* pst
3823 * @param[in] SuId suId
3824 * @param[in] CtfCfgTransId transId
3825 * @param[in] CtfUeInfo * ueInfo
3826 * @param[in] U8 status
3831 PUBLIC S16 cmUnpkCtfUeIdChgCfm
3838 PUBLIC S16 cmUnpkCtfUeIdChgCfm(func, pst, mBuf)
3845 CtfCfgTransId transId;
3846 CtfUeInfo *ueInfo = NULLP;
3849 TRC3(cmUnpkCtfUeIdChgCfm)
3851 if (SUnpkS16(&suId, mBuf) != ROK) {
3853 #if (ERRCLASS & ERRCLS_ADD_RES)
3854 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3855 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3856 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3857 (ErrVal)ECTF055, (ErrVal)0, (Txt*)&"Packing failed");
3861 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
3863 #if (ERRCLASS & ERRCLS_ADD_RES)
3864 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3865 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3866 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3867 (ErrVal)ECTF056, (ErrVal)0, (Txt*)&"Packing failed");
3871 if (pst->selector != ODU_SELECTOR_LWLC) {
3872 if ((SGetSBuf(pst->region, pst->pool, (Data **)&ueInfo, sizeof(CtfUeInfo))) != ROK) {
3873 #if (ERRCLASS & ERRCLS_ADD_RES)
3874 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3875 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3876 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3877 (ErrVal)ECTF057, (ErrVal)0, (Txt*)&"Packing failed");
3883 if (pst->selector == ODU_SELECTOR_LWLC) {
3884 if (cmUnpkPtr((PTR *)&ueInfo, mBuf) != ROK) {
3889 else if (pst->selector == ODU_SELECTOR_LC)
3890 if (cmUnpkCtfUeInfo(ueInfo, mBuf) != ROK) {
3891 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3893 #if (ERRCLASS & ERRCLS_ADD_RES)
3894 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3895 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3896 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3897 (ErrVal)ECTF058, (ErrVal)0, (Txt*)&"Packing failed");
3901 if (cmUnpkCmStatus(&status, mBuf) != ROK) {
3902 SPutSBuf(pst->region, pst->pool, (Data *)ueInfo, sizeof(CtfUeInfo));
3904 #if (ERRCLASS & ERRCLS_ADD_RES)
3905 /* ctf_c_001.main_3 Compilation warning fix with g++ */
3906 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
3907 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
3908 (ErrVal)ECTF059, (ErrVal)0, (Txt*)&"Packing failed");
3913 RETVALUE((*func)(pst, suId, transId, ueInfo, status));
3917 /***********************************************************
3919 * Func: cmPkCtfCfgTransId
3922 * Desc: Transaction ID between CTF and RRC.
3931 **********************************************************/
3933 PUBLIC S16 cmPkCtfCfgTransId
3935 CtfCfgTransId *param,
3939 PUBLIC S16 cmPkCtfCfgTransId(param, mBuf)
3940 CtfCfgTransId *param;
3946 TRC3(cmPkCtfCfgTransId)
3948 for (i=CTF_CFG_TRANSID_SIZE-1; i >= 0; i--) {
3949 CMCHKPK(SPkU8, param->trans[i], mBuf);
3956 /***********************************************************
3958 * Func: cmUnpkCtfCfgTransId
3961 * Desc: Transaction ID between CTF and RRC.
3970 **********************************************************/
3972 PUBLIC S16 cmUnpkCtfCfgTransId
3974 CtfCfgTransId *param,
3978 PUBLIC S16 cmUnpkCtfCfgTransId(param, mBuf)
3979 CtfCfgTransId *param;
3985 TRC3(cmUnpkCtfCfgTransId)
3987 for (i=0; i<CTF_CFG_TRANSID_SIZE; i++) {
3988 CMCHKUNPK(SUnpkU8, ¶m->trans[i], mBuf);
3995 /***********************************************************
3997 * Func: cmPkCtfUeInfo
4000 * Desc: * UE ID information
4009 **********************************************************/
4011 PUBLIC S16 cmPkCtfUeInfo
4017 PUBLIC S16 cmPkCtfUeInfo(param, mBuf)
4025 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
4026 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
4032 /***********************************************************
4034 * Func: cmUnpkCtfUeInfo
4037 * Desc: * UE ID information
4046 **********************************************************/
4048 PUBLIC S16 cmUnpkCtfUeInfo
4054 PUBLIC S16 cmUnpkCtfUeInfo(param, mBuf)
4060 TRC3(cmUnpkCtfUeInfo)
4062 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
4063 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
4069 /***********************************************************
4071 * Func: cmPkCtfBwCfgInfo
4074 * Desc: Bandwidth Configuration
4075 * @details This structure contains the uplink and downlink bandwidth
4076 * information for configuration at PHY.
4085 **********************************************************/
4087 PUBLIC S16 cmPkCtfBwCfgInfo
4089 CtfBwCfgInfo *param,
4093 PUBLIC S16 cmPkCtfBwCfgInfo(param, mBuf)
4094 CtfBwCfgInfo *param;
4099 TRC3(cmPkCtfBwCfgInfo)
4101 CMCHKPK(SPkU8, param->eUtraBand, mBuf);
4102 CMCHKPK(SPkU32, param->ulBw, mBuf);
4103 CMCHKPK(SPkU32, param->dlBw, mBuf);
4104 /* ctf_c_001.main_4: Removed packing of param->pres */
4110 /***********************************************************
4112 * Func: cmUnpkCtfBwCfgInfo
4115 * Desc: Bandwidth Configuration
4116 * @details This structure contains the uplink and downlink bandwidth
4117 * information for configuration at PHY.
4126 **********************************************************/
4128 PUBLIC S16 cmUnpkCtfBwCfgInfo
4130 CtfBwCfgInfo *param,
4134 PUBLIC S16 cmUnpkCtfBwCfgInfo(param, mBuf)
4135 CtfBwCfgInfo *param;
4141 TRC3(cmUnpkCtfBwCfgInfo)
4143 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4144 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4145 param->dlBw = (CtfBandwidth)tmpEnum;
4146 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4147 param->ulBw = (CtfBandwidth)tmpEnum;
4148 CMCHKUNPK(SUnpkU8, ¶m->eUtraBand, mBuf);
4154 /***********************************************************
4156 * Func: cmPkCtfTxSchemeCfg
4159 * Desc: Transmission Scheme Configuration
4160 * @details This structure contains the transmission scheme related information.
4169 **********************************************************/
4171 PUBLIC S16 cmPkCtfTxSchemeCfg
4173 CtfTxSchemeCfg *param,
4177 PUBLIC S16 cmPkCtfTxSchemeCfg(param, mBuf)
4178 CtfTxSchemeCfg *param;
4183 TRC3(cmPkCtfTxSchemeCfg)
4185 CMCHKPK(SPkU32, param->cycPfx, mBuf);
4186 CMCHKPK(SPkU32, param->scSpacing, mBuf);
4187 CMCHKPK(SPkU32, param->duplexMode, mBuf);
4188 /* ctf_c_001.main_4: Removed packing of param->pres */
4194 /***********************************************************
4196 * Func: cmUnpkCtfTxSchemeCfg
4199 * Desc: Transmission Scheme Configuration
4200 * @details This structure contains the transmission scheme related information.
4209 **********************************************************/
4211 PUBLIC S16 cmUnpkCtfTxSchemeCfg
4213 CtfTxSchemeCfg *param,
4217 PUBLIC S16 cmUnpkCtfTxSchemeCfg(param, mBuf)
4218 CtfTxSchemeCfg *param;
4224 TRC3(cmUnpkCtfTxSchemeCfg)
4226 /* ctf_c_001.main_4: Removed UnPacking of param->pres */
4227 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4228 param->duplexMode = (CtfDuplexMode)tmpEnum;
4229 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4230 param->scSpacing = (CtfSCSpacing)tmpEnum;
4231 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4232 param->cycPfx = (CtfCPCfg)tmpEnum;
4238 /***********************************************************
4240 * Func: cmPkCtfAntennaCfgInfo
4243 * Desc: Antenna Ports configuration
4244 * @details This structure contains the antenna configuration information for
4245 * configuration at PHY.
4254 **********************************************************/
4256 PUBLIC S16 cmPkCtfAntennaCfgInfo
4258 CtfAntennaCfgInfo *param,
4262 PUBLIC S16 cmPkCtfAntennaCfgInfo(param, mBuf)
4263 CtfAntennaCfgInfo *param;
4268 TRC3(cmPkCtfAntennaCfgInfo)
4270 CMCHKPK(SPkU32, param->antPortsCnt, mBuf);
4276 /***********************************************************
4278 * Func: cmUnpkCtfAntennaCfgInfo
4281 * Desc: Antenna Ports configuration
4282 * @details This structure contains the antenna configuration information for
4283 * configuration at PHY.
4292 **********************************************************/
4294 PUBLIC S16 cmUnpkCtfAntennaCfgInfo
4296 CtfAntennaCfgInfo *param,
4300 PUBLIC S16 cmUnpkCtfAntennaCfgInfo(param, mBuf)
4301 CtfAntennaCfgInfo *param;
4307 TRC3(cmUnpkCtfAntennaCfgInfo)
4308 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4309 param->antPortsCnt = (CtfAntennaPortsCount)tmpEnum;
4315 /***********************************************************
4317 * Func: cmPkCtfPrachCfgInfo
4320 * Desc: PRACH configuration
4321 * @details This structure contains the configuration information for PRACH at PHY.
4322 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4323 * sequences.[Ref: 36.211, 5.7.2]
4324 * -# PRACH preamble format is derived from PRACH Configuration Index.
4325 * [Ref: 36.211, Table 5.7.1-2]
4326 * -# PrachFreqOffset is the first physical resource block allocated to
4327 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4328 * [Ref: 36.211, 5.7.1]
4337 **********************************************************/
4339 PUBLIC S16 cmPkCtfPrachCfgInfo
4341 CtfPrachCfgInfo *param,
4345 PUBLIC S16 cmPkCtfPrachCfgInfo(param, mBuf)
4346 CtfPrachCfgInfo *param;
4351 TRC3(cmPkCtfPrachCfgInfo)
4353 /*ctf_c_001.main_1*/
4354 if(param->pres != FALSE)
4356 CMCHKPK(SPkU8, param->prachFreqOffset, mBuf);
4357 CMCHKPK(SPkU8, param->highSpeedFlag, mBuf);
4358 CMCHKPK(SPkU8, param->zeroCorrelationZoneCfg, mBuf);
4359 CMCHKPK(SPkU8, param->prachCfgIndex, mBuf);
4360 CMCHKPK(SPkU16, param->rootSequenceIndex, mBuf);
4362 CMCHKPK(SPkU8, param->pres, mBuf);
4368 /***********************************************************
4370 * Func: cmUnpkCtfPrachCfgInfo
4373 * Desc: PRACH configuration
4374 * @details This structure contains the configuration information for PRACH at PHY.
4375 * -# PRACH preamble sequences are generated by PHY using Zadoff-Chu
4376 * sequences.[Ref: 36.211, 5.7.2]
4377 * -# PRACH preamble format is derived from PRACH Configuration Index.
4378 * [Ref: 36.211, Table 5.7.1-2]
4379 * -# PrachFreqOffset is the first physical resource block allocated to
4380 * the PRACH opportunity considered for preamble format 0, 1, 2, and 3.
4381 * [Ref: 36.211, 5.7.1]
4390 **********************************************************/
4392 PUBLIC S16 cmUnpkCtfPrachCfgInfo
4394 CtfPrachCfgInfo *param,
4398 PUBLIC S16 cmUnpkCtfPrachCfgInfo(param, mBuf)
4399 CtfPrachCfgInfo *param;
4404 TRC3(cmUnpkCtfPrachCfgInfo)
4406 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4407 /*ctf_c_001.main_1*/
4408 if(param->pres != FALSE)
4410 CMCHKUNPK(SUnpkU16, ¶m->rootSequenceIndex, mBuf);
4411 CMCHKUNPK(SUnpkU8, ¶m->prachCfgIndex, mBuf);
4412 CMCHKUNPK(SUnpkU8, ¶m->zeroCorrelationZoneCfg, mBuf);
4413 CMCHKUNPK(SUnpkU8, ¶m->highSpeedFlag, mBuf);
4414 CMCHKUNPK(SUnpkU8, ¶m->prachFreqOffset, mBuf);
4421 /***********************************************************
4423 * Func: cmPkCtfPdschCfgInfo
4426 * Desc: PDSCH configuration
4427 * @details This structure contains the PDSCH configuration information for
4428 * configuration at PHY.
4437 **********************************************************/
4439 PUBLIC S16 cmPkCtfPdschCfgInfo
4441 CtfPdschCfgInfo *param,
4445 PUBLIC S16 cmPkCtfPdschCfgInfo(param, mBuf)
4446 CtfPdschCfgInfo *param;
4451 TRC3(cmPkCtfPdschCfgInfo)
4452 /*ctf_c_001.main_1*/
4453 if(param->pres != FALSE)
4455 CMCHKPK(SPkU8, param->p_b, mBuf);
4456 CMCHKPK(SPkS16, param->refSigPwr, mBuf);
4458 CMCHKPK(SPkU8, param->pres, mBuf);
4464 /***********************************************************
4466 * Func: cmUnpkCtfPdschCfgInfo
4469 * Desc: PDSCH configuration
4470 * @details This structure contains the PDSCH configuration information for
4471 * configuration at PHY.
4480 **********************************************************/
4482 PUBLIC S16 cmUnpkCtfPdschCfgInfo
4484 CtfPdschCfgInfo *param,
4488 PUBLIC S16 cmUnpkCtfPdschCfgInfo(param, mBuf)
4489 CtfPdschCfgInfo *param;
4494 TRC3(cmUnpkCtfPdschCfgInfo)
4496 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4497 /*ctf_c_001.main_1*/
4498 if(param->pres != FALSE)
4500 CMCHKUNPK(SUnpkS16, ¶m->refSigPwr, mBuf);
4501 CMCHKUNPK(SUnpkU8, ¶m->p_b, mBuf);
4508 /***********************************************************
4510 * Func: cmPkCtfPuschCfgBasic
4513 * Desc: Basic PUSCH configuration
4514 * @details This structure contains the basic PUSCH configuration information for
4515 * configuration at PHY.
4524 **********************************************************/
4526 PUBLIC S16 cmPkCtfPuschCfgBasic
4528 CtfPuschCfgBasic *param,
4532 PUBLIC S16 cmPkCtfPuschCfgBasic(param, mBuf)
4533 CtfPuschCfgBasic *param;
4538 TRC3(cmPkCtfPuschCfgBasic)
4540 CMCHKPK(SPkU8, param->enable64QAM, mBuf);
4541 CMCHKPK(SPkU8, param->hoppingOffset, mBuf);
4542 CMCHKPK(SPkU32, param->hoppingMode, mBuf);
4543 CMCHKPK(SPkU8, param->noOfsubBands, mBuf);
4549 /***********************************************************
4551 * Func: cmUnpkCtfPuschCfgBasic
4554 * Desc: Basic PUSCH configuration
4555 * @details This structure contains the basic PUSCH configuration information for
4556 * configuration at PHY.
4565 **********************************************************/
4567 PUBLIC S16 cmUnpkCtfPuschCfgBasic
4569 CtfPuschCfgBasic *param,
4573 PUBLIC S16 cmUnpkCtfPuschCfgBasic(param, mBuf)
4574 CtfPuschCfgBasic *param;
4580 TRC3(cmUnpkCtfPuschCfgBasic)
4582 CMCHKUNPK(SUnpkU8, ¶m->noOfsubBands, mBuf);
4583 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4584 param->hoppingMode = (CtfPuschHoppingMode)tmpEnum;
4585 CMCHKUNPK(SUnpkU8, ¶m->hoppingOffset, mBuf);
4586 CMCHKUNPK(SUnpkU8, ¶m->enable64QAM, mBuf);
4592 /***********************************************************
4594 * Func: cmPkCtfPuschUlRS
4597 * Desc: PUSCH Uplink Reference Signals configuration
4598 * @details This structure contains the PUSCH configuration information for
4599 * uplink reference signals configuration at PHY.
4608 **********************************************************/
4610 PUBLIC S16 cmPkCtfPuschUlRS
4612 CtfPuschUlRS *param,
4616 PUBLIC S16 cmPkCtfPuschUlRS(param, mBuf)
4617 CtfPuschUlRS *param;
4622 TRC3(cmPkCtfPuschUlRS)
4624 CMCHKPK(SPkU8, param->cycShift, mBuf);
4625 CMCHKPK(SPkU8, param->grpNum, mBuf);
4626 CMCHKPK(SPkU8, param->seqHopEnabled, mBuf);
4627 CMCHKPK(SPkU8, param->grpHopEnabled, mBuf);
4633 /***********************************************************
4635 * Func: cmUnpkCtfPuschUlRS
4638 * Desc: PUSCH Uplink Reference Signals configuration
4639 * @details This structure contains the PUSCH configuration information for
4640 * uplink reference signals configuration at PHY.
4649 **********************************************************/
4651 PUBLIC S16 cmUnpkCtfPuschUlRS
4653 CtfPuschUlRS *param,
4657 PUBLIC S16 cmUnpkCtfPuschUlRS(param, mBuf)
4658 CtfPuschUlRS *param;
4663 TRC3(cmUnpkCtfPuschUlRS)
4665 CMCHKUNPK(SUnpkU8, ¶m->grpHopEnabled, mBuf);
4666 CMCHKUNPK(SUnpkU8, ¶m->seqHopEnabled, mBuf);
4667 CMCHKUNPK(SUnpkU8, ¶m->grpNum, mBuf);
4668 CMCHKUNPK(SUnpkU8, ¶m->cycShift, mBuf);
4674 /***********************************************************
4676 * Func: cmPkCtfPuschCfgInfo
4679 * Desc: PUSCH configuration
4680 * @details This structure contains the information for PUSCH
4681 * configuration at PHY.
4690 **********************************************************/
4692 PUBLIC S16 cmPkCtfPuschCfgInfo
4694 CtfPuschCfgInfo *param,
4698 PUBLIC S16 cmPkCtfPuschCfgInfo(param, mBuf)
4699 CtfPuschCfgInfo *param;
4704 TRC3(cmPkCtfPuschCfgInfo)
4706 /*ctf_c_001.main_1*/
4707 if(param->pres != FALSE)
4709 CMCHKPK(cmPkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4710 CMCHKPK(cmPkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4712 CMCHKPK(SPkU8, param->pres, mBuf);
4718 /***********************************************************
4720 * Func: cmUnpkCtfPuschCfgInfo
4723 * Desc: PUSCH configuration
4724 * @details This structure contains the information for PUSCH
4725 * configuration at PHY.
4734 **********************************************************/
4736 PUBLIC S16 cmUnpkCtfPuschCfgInfo
4738 CtfPuschCfgInfo *param,
4742 PUBLIC S16 cmUnpkCtfPuschCfgInfo(param, mBuf)
4743 CtfPuschCfgInfo *param;
4748 TRC3(cmUnpkCtfPuschCfgInfo)
4750 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4751 /*ctf_c_001.main_1*/
4752 if(param->pres != FALSE)
4754 CMCHKUNPK(cmUnpkCtfPuschCfgBasic, ¶m->puschBasicCfg, mBuf);
4755 CMCHKUNPK(cmUnpkCtfPuschUlRS, ¶m->puschUlRS, mBuf);
4762 /***********************************************************
4764 * Func: cmPkCtfPhichCfgInfo
4767 * Desc: PHICH configuration
4768 * @details This structure contains the duration and resource information for
4769 * PHICH configuration at PHY.
4778 **********************************************************/
4780 PUBLIC S16 cmPkCtfPhichCfgInfo
4782 CtfPhichCfgInfo *param,
4786 PUBLIC S16 cmPkCtfPhichCfgInfo(param, mBuf)
4787 CtfPhichCfgInfo *param;
4792 TRC3(cmPkCtfPhichCfgInfo)
4794 /*ctf_c_001.main_1*/
4795 if(param->pres != FALSE)
4797 CMCHKPK(SPkU32, param->resource, mBuf);
4798 CMCHKPK(SPkU32, param->duration, mBuf);
4800 CMCHKPK(SPkU8, param->pres, mBuf);
4806 /***********************************************************
4808 * Func: cmUnpkCtfPhichCfgInfo
4811 * Desc: PHICH configuration
4812 * @details This structure contains the duration and resource information for
4813 * PHICH configuration at PHY.
4822 **********************************************************/
4824 PUBLIC S16 cmUnpkCtfPhichCfgInfo
4826 CtfPhichCfgInfo *param,
4830 PUBLIC S16 cmUnpkCtfPhichCfgInfo(param, mBuf)
4831 CtfPhichCfgInfo *param;
4837 TRC3(cmUnpkCtfPhichCfgInfo)
4839 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4840 /*ctf_c_001.main_1*/
4841 if(param->pres != FALSE)
4843 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4844 param->duration = (CtfPhichDuration)tmpEnum;
4845 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4846 param->resource = (CtfPhichResource)tmpEnum;
4853 /***********************************************************
4855 * Func: cmPkCtfPucchCfgInfo
4858 * Desc: PUCCH configuration
4859 * @details This structure contains the information for PUCCH
4860 * configuration at PHY.
4869 **********************************************************/
4871 PUBLIC S16 cmPkCtfPucchCfgInfo
4873 CtfPucchCfgInfo *param,
4877 PUBLIC S16 cmPkCtfPucchCfgInfo(param, mBuf)
4878 CtfPucchCfgInfo *param;
4883 TRC3(cmPkCtfPucchCfgInfo)
4885 /*ctf_c_001.main_1*/
4886 if(param->pres != FALSE)
4888 CMCHKPK(SPkU32, param->deltaShift, mBuf);
4889 CMCHKPK(SPkU16, param->n1PUCCH, mBuf);
4890 CMCHKPK(SPkU8, param->nCS, mBuf);
4891 CMCHKPK(SPkU8, param->nRB, mBuf);
4893 CMCHKPK(SPkU8, param->pres, mBuf);
4899 /***********************************************************
4901 * Func: cmUnpkCtfPucchCfgInfo
4904 * Desc: PUCCH configuration
4905 * @details This structure contains the information for PUCCH
4906 * configuration at PHY.
4915 **********************************************************/
4917 PUBLIC S16 cmUnpkCtfPucchCfgInfo
4919 CtfPucchCfgInfo *param,
4923 PUBLIC S16 cmUnpkCtfPucchCfgInfo(param, mBuf)
4924 CtfPucchCfgInfo *param;
4930 TRC3(cmUnpkCtfPucchCfgInfo)
4932 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
4933 /*ctf_c_001.main_1*/
4934 if(param->pres != FALSE)
4936 CMCHKUNPK(SUnpkU8, ¶m->nRB, mBuf);
4937 CMCHKUNPK(SUnpkU8, ¶m->nCS, mBuf);
4938 CMCHKUNPK(SUnpkU16, ¶m->n1PUCCH, mBuf);
4939 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
4940 param->deltaShift = (CtfPucchDeltaShift)tmpEnum;
4947 /***********************************************************
4949 * Func: cmPkCtfSrsUlCfgInfo
4952 * Desc: SRS uplink configuration
4953 * @details This structure contains the information for setting-up/release
4954 * of uplink SRS configuration at PHY.
4963 **********************************************************/
4965 PUBLIC S16 cmPkCtfSrsUlCfgInfo
4967 CtfSrsUlCfgInfo *param,
4971 PUBLIC S16 cmPkCtfSrsUlCfgInfo(param, mBuf)
4972 CtfSrsUlCfgInfo *param;
4977 TRC3(cmPkCtfSrsUlCfgInfo)
4979 /*ctf_c_001.main_1*/
4980 if(param->pres != FALSE)
4982 CMCHKPK(SPkU8, param->srsSetup.srsMaxUpPts, mBuf);
4983 CMCHKPK(SPkU8, param->srsSetup.srsANSimultTx, mBuf);
4984 CMCHKPK(SPkU8, param->srsSetup.sfCfg, mBuf);
4985 CMCHKPK(SPkU8, param->srsSetup.srsBw, mBuf);
4986 CMCHKPK(SPkU8, param->srsCfgType, mBuf);
4988 CMCHKPK(SPkU8, param->pres, mBuf);
4994 /***********************************************************
4996 * Func: cmUnpkCtfSrsUlCfgInfo
4999 * Desc: SRS uplink configuration
5000 * @details This structure contains the information for setting-up/release
5001 * of uplink SRS configuration at PHY.
5010 **********************************************************/
5012 PUBLIC S16 cmUnpkCtfSrsUlCfgInfo
5014 CtfSrsUlCfgInfo *param,
5018 PUBLIC S16 cmUnpkCtfSrsUlCfgInfo(param, mBuf)
5019 CtfSrsUlCfgInfo *param;
5024 TRC3(cmUnpkCtfSrsUlCfgInfo)
5026 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5027 /*ctf_c_001.main_1*/
5028 if(param->pres != FALSE)
5030 CMCHKUNPK(SUnpkU8, ¶m->srsCfgType, mBuf);
5031 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsBw, mBuf);
5032 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.sfCfg, mBuf);
5033 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsANSimultTx, mBuf);
5034 CMCHKUNPK(SUnpkU8, ¶m->srsSetup.srsMaxUpPts, mBuf);
5041 /***********************************************************
5043 * Func: cmPkCtfTddSfCfgInfo
5046 * Desc: Subframe Configuration for TDD mode.
5047 * @details This structure contains the information for setting-up
5048 * the subframe for TDD mode at PHY.
5057 **********************************************************/
5059 PUBLIC S16 cmPkCtfTddSfCfgInfo
5061 CtfTddSfCfgInfo *param,
5065 PUBLIC S16 cmPkCtfTddSfCfgInfo(param, mBuf)
5066 CtfTddSfCfgInfo *param;
5071 TRC3(cmPkCtfTddSfCfgInfo)
5073 /*ctf_c_001.main_1*/
5074 if(param->pres != FALSE)
5076 CMCHKPK(SPkU8, param->spclSfPatterns, mBuf);
5077 CMCHKPK(SPkU8, param->sfAssignment, mBuf);
5079 CMCHKPK(SPkU8, param->pres, mBuf);
5083 /* ctf_c_001.main_4: Added support for vendor specific parameters */
5085 /***********************************************************
5087 * Func: cmPkCtfVendorSpecParams
5090 * Desc: Vendor Specific Parameter configuration
5091 * @details This structure contains the Parameters which is spaciftc to
5101 **********************************************************/
5103 PUBLIC S16 cmPkCtfVendorSpecParams
5105 CtfVendorSpecific *param,
5109 PUBLIC S16 cmPkCtfVendorSpecParams(param, mBuf)
5110 CtfVendorSpecific *param;
5115 TRC3(cmPkCtfVendorSpecParams)
5116 if( param->buffLen != 0) {
5117 SAddPreMsgMultInOrder(param->paramBuffer,param->buffLen,mBuf);
5119 CMCHKPK(SPkU16,param->buffLen,mBuf);
5124 /***********************************************************
5126 * Func: cmUnpkCtfVendorSpecParams
5129 * Desc: Vendor Specific Parameter configuration
5130 * @details This structure contains the Parameters which is spaciftc to
5140 **********************************************************/
5142 PUBLIC S16 cmUnpkCtfVendorSpecParams
5145 CtfVendorSpecific *param,
5149 PUBLIC S16 cmUnpkCtfVendorSpecParams(pst, param, mBuf)
5151 CtfVendorSpecific *param;
5156 TRC3(cmUnpkCtfVendorSpecParams)
5158 CMCHKUNPK(SUnpkU16, ¶m->buffLen, mBuf);
5160 if(param->buffLen != 0) {
5161 if ((SGetSBuf(pst->region, pst->pool, (Data **)¶m->paramBuffer, param->buffLen)) != ROK) {
5162 #if (ERRCLASS & ERRCLS_ADD_RES)
5163 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
5164 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
5165 (ErrVal)ECTF060, (ErrVal)0, (Txt*)&"Unpacking failed");
5169 SRemPreMsgMult(param->paramBuffer, param->buffLen,mBuf) ;
5172 param->paramBuffer = NULLP ;
5179 /***********************************************************
5181 * Func: cmUnpkCtfTddSfCfgInfo
5184 * Desc: Subframe Configuration for TDD mode.
5185 * @details This structure contains the information for setting-up
5186 * the subframe for TDD mode at PHY.
5195 **********************************************************/
5197 PUBLIC S16 cmUnpkCtfTddSfCfgInfo
5199 CtfTddSfCfgInfo *param,
5203 PUBLIC S16 cmUnpkCtfTddSfCfgInfo(param, mBuf)
5204 CtfTddSfCfgInfo *param;
5209 TRC3(cmUnpkCtfTddSfCfgInfo)
5211 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5212 /*ctf_c_001.main_1*/
5213 if(param->pres != FALSE)
5215 CMCHKUNPK(SUnpkU8, ¶m->sfAssignment, mBuf);
5216 CMCHKUNPK(SUnpkU8, ¶m->spclSfPatterns, mBuf);
5220 /***********************************************************
5222 * Func: cmPkCtfUnLicnsdCellParam
5225 * Desc: Packing unlicensed SDL cell specific parameter
5234 **********************************************************/
5236 PRIVATE S16 cmPkCtfUnLicnsdCellParam
5238 CtfUnLicnsdCfgInfo *param,
5242 PRIVATE S16 cmPkCtfUnLicnsdCellParam(param, mBuf)
5243 CtfUnLicnsdCfgInfo *param;
5249 TRC3(cmPkCtfUnLicnsdCellParam)
5251 CMCHKPK(SPkS32, param->txPowerLimit, mBuf);
5252 CMCHKPK(SPkU8, param->coExistMethod, mBuf);
5253 CMCHKPK(SPkU8, param->lteOnPeriod, mBuf);
5254 CMCHKPK(SPkU8, param->ccaMethod, mBuf);
5255 CMCHKPK(SPkU8, param->adaptiveTx, mBuf);
5256 CMCHKPK(SPkU16, param->transPeriod, mBuf);
5257 CMCHKPK(SPkU16, param->listenPrd, mBuf);
5258 CMCHKPK(SPkS16, param->energyTh, mBuf);
5259 CMCHKPK(SPkU16, param->scanTimePrd, mBuf);
5260 CMCHKPK(SPkU16, param->activityTh, mBuf);
5262 for(idx = 0; idx < param->numFreq; idx++)
5264 CMCHKPK(SPkU32, param->earfcn[idx], mBuf);
5267 CMCHKPK(SPkU8, param->numFreq, mBuf);
5272 /***********************************************************
5274 * Func: cmPkCtfCellCfgInfo
5277 * Desc: Cell Configuration Information
5278 * @details This structure contains the information for setting-up
5279 * of a cell and its associated resources at PHY.
5288 **********************************************************/
5290 PUBLIC S16 cmPkCtfCellCfgInfo
5292 CtfCellCfgInfo *param,
5296 PUBLIC S16 cmPkCtfCellCfgInfo(param, mBuf)
5297 CtfCellCfgInfo *param;
5304 TRC3(cmPkCtfCellCfgInfo)
5307 for (i = CTF_MAX_CE_LEVEL-1; i >= 0; i--) {
5308 CMCHKPK(SPkU8, param->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5309 CMCHKPK(SPkU8, param->ceLevelInfo[i].lastPreamble, mBuf);
5310 CMCHKPK(SPkU8, param->ceLevelInfo[i].firstPreamble, mBuf);
5312 CMCHKPK(SPkU8, param->mPdcchStart, mBuf);
5313 CMCHKPK(SPkU8, param->catMenabled, mBuf);
5315 if(param->unLicnsdCfgPres)
5317 printf("pverma param->unLicnsdCfgPres cm/ctf -->%d\n",param->unLicnsdCfgPres);
5318 CMCHKPK(cmPkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5320 CMCHKPK(SPkU8, param->unLicnsdCfgPres, mBuf);
5321 /*Added for rgu dynamic delta*/
5322 CMCHKPK(SPkU8, param->numDlUePerTti, mBuf);
5323 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5324 CMCHKPK(SPkU16, param->ulEarfcn, mBuf);
5325 CMCHKPK(SPkU16, param->dlEarfcn, mBuf);
5326 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5327 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5328 /* Packing PHY configuration parameters */
5329 CMCHKPK(SPkU32, param->period, mBuf);
5330 CMCHKPK(SPkU32, param->counter, mBuf);
5331 CMCHKPK(SPkU16, param->opMode, mBuf);
5333 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5334 CMCHKPK(SPkU8, param->rachSrRepModePres, mBuf);
5335 CMCHKPK(SPkU16, param->rachSrRepMode, mBuf);
5337 CMCHKPK(SPkU8, param->dataRepModePres, mBuf);
5338 CMCHKPK(SPkU16, param->dataRepMode, mBuf);
5340 CMCHKPK(SPkU8, param->phySyncModePres, mBuf);
5341 CMCHKPK(SPkU16, param->phySyncMode, mBuf);
5343 CMCHKPK(SPkU8, param->rxAntennaPortsPres, mBuf);
5344 CMCHKPK(SPkU16, param->rxAntennaPorts, mBuf);
5346 CMCHKPK(SPkU8, param->txAntennaPortsPres, mBuf);
5347 CMCHKPK(SPkU16, param->txAntennaPorts, mBuf);
5349 CMCHKPK(SPkU8, param->pucchProbDtxAckPres, mBuf);
5350 CMCHKPK(SPkU16, param->pucchProbDtxAck, mBuf);
5352 CMCHKPK(SPkU8, param->puschProbDtxAckPres, mBuf);
5353 CMCHKPK(SPkU16, param->puschProbDtxAck, mBuf);
5355 CMCHKPK(SPkU8, param->srsDopEstFactorPres, mBuf);
5356 CMCHKPK(SPkU16, param->srsDopEstFactor, mBuf);
5358 CMCHKPK(SPkU8, param->prachPkRatio0Pres, mBuf);
5359 CMCHKPK(SPkU16, param->prachPkRatio0, mBuf);
5361 CMCHKPK(SPkU8, param->prachPkRatio4Pres, mBuf);
5362 CMCHKPK(SPkU16, param->prachPkRatio4, mBuf);
5364 CMCHKPK(SPkU8, param->pucchNoiseGammaPres, mBuf);
5365 CMCHKPK(SPkU16, param->pucchNoiseGamma, mBuf);
5367 CMCHKPK(SPkU8, param->extWinMarginPres, mBuf);
5368 CMCHKPK(SPkU16, param->extWinMargin, mBuf);
5370 CMCHKPK(SPkU8, param->dciPowOsPres, mBuf);
5371 CMCHKPK(SPkU16, param->dciPowOs, mBuf);
5373 CMCHKPK(SPkU8, param->cfiPowOsPres, mBuf);
5374 CMCHKPK(SPkU16, param->cfiPowOs, mBuf);
5376 CMCHKPK(SPkU8, param->syncSigPowOsPres, mBuf);
5377 CMCHKPK(SPkU16, param->syncSigPowOs, mBuf);
5379 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5380 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5381 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5382 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5383 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5384 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5385 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5386 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5387 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5388 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5389 CMCHKPK(SPkU8, param->physCellId, mBuf);
5390 CMCHKPK(SPkU8, param->physCellIdPres, mBuf);
5392 CMCHKPK(SPkS16, param->macSapId, mBuf);
5393 CMCHKPK(SPkS16, param->schSapId, mBuf);
5395 CMCHKPK(SPkU8, param->cellIdGrpId, mBuf);
5396 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5399 /***********************************************************
5401 * Func: cmUnpkCtfUnLicnsdCellParam
5404 * Desc: Unpacking unLicensed SDL cell specific parameter
5413 **********************************************************/
5415 PRIVATE S16 cmUnpkCtfUnLicnsdCellParam
5417 CtfUnLicnsdCfgInfo *param,
5421 PRIVATE S16 cmUnpkCtfUnLicnsdCellParam(param, mBuf)
5422 CtfUnLicnsdCfgInfo *param;
5428 TRC3(cmPkCtfUnLicnsdCellParam)
5430 CMCHKUNPK(SUnpkU8, ¶m->numFreq, mBuf);
5432 for(idx = 0; idx < param->numFreq; idx++)
5434 CMCHKUNPK(SUnpkU32, ¶m->earfcn[idx], mBuf);
5437 CMCHKUNPK(SUnpkU16, ¶m->activityTh, mBuf);
5438 CMCHKUNPK(SUnpkU16, ¶m->scanTimePrd, mBuf);
5439 CMCHKUNPK(SUnpkS16, ¶m->energyTh, mBuf);
5440 CMCHKUNPK(SUnpkU16, ¶m->listenPrd, mBuf);
5441 CMCHKUNPK(SUnpkU16, ¶m->transPeriod, mBuf);
5442 CMCHKUNPK(SUnpkU8, ¶m->adaptiveTx, mBuf);
5443 CMCHKUNPK(SUnpkU8, ¶m->ccaMethod, mBuf);
5444 CMCHKUNPK(SUnpkU8, ¶m->lteOnPeriod, mBuf);
5445 CMCHKUNPK(SUnpkU8, ¶m->coExistMethod, mBuf);
5446 CMCHKUNPK(SUnpkS32, ¶m->txPowerLimit, mBuf);
5452 /***********************************************************
5454 * Func: cmUnpkCtfCellCfgInfo
5457 * Desc: Cell Configuration Information
5458 * @details This structure contains the information for setting-up
5459 * of a cell and its associated resources at PHY.
5468 **********************************************************/
5470 PUBLIC S16 cmUnpkCtfCellCfgInfo
5472 CtfCellCfgInfo *param,
5476 PUBLIC S16 cmUnpkCtfCellCfgInfo(param, mBuf)
5477 CtfCellCfgInfo *param;
5484 TRC3(cmUnpkCtfCellCfgInfo)
5486 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5487 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5488 CMCHKUNPK(SUnpkU8, ¶m->cellIdGrpId, mBuf);
5490 CMCHKUNPK(SUnpkS16, ¶m->schSapId, mBuf);
5491 CMCHKUNPK(SUnpkS16, ¶m->macSapId, mBuf);
5493 CMCHKUNPK(SUnpkU8, ¶m->physCellIdPres, mBuf);
5494 CMCHKUNPK(SUnpkU8, ¶m->physCellId, mBuf);
5495 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5496 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5497 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5498 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5499 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5500 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5501 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5502 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5503 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5504 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5506 CMCHKUNPK(SUnpkU16, ¶m->syncSigPowOs, mBuf);
5507 CMCHKUNPK(SUnpkU8, ¶m->syncSigPowOsPres, mBuf);
5509 CMCHKUNPK(SUnpkU16, ¶m->cfiPowOs, mBuf);
5510 CMCHKUNPK(SUnpkU8, ¶m->cfiPowOsPres, mBuf);
5512 CMCHKUNPK(SUnpkU16, ¶m->dciPowOs, mBuf);
5513 CMCHKUNPK(SUnpkU8, ¶m->dciPowOsPres, mBuf);
5515 CMCHKUNPK(SUnpkU16, ¶m->extWinMargin, mBuf);
5516 CMCHKUNPK(SUnpkU8, ¶m->extWinMarginPres, mBuf);
5518 CMCHKUNPK(SUnpkU16, ¶m->pucchNoiseGamma, mBuf);
5519 CMCHKUNPK(SUnpkU8, ¶m->pucchNoiseGammaPres, mBuf);
5521 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio4, mBuf);
5522 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio4Pres, mBuf);
5524 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio0, mBuf);
5525 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio0Pres, mBuf);
5527 CMCHKUNPK(SUnpkU16, ¶m->srsDopEstFactor, mBuf);
5528 CMCHKUNPK(SUnpkU8, ¶m->srsDopEstFactorPres, mBuf);
5530 CMCHKUNPK(SUnpkU16, ¶m->puschProbDtxAck, mBuf);
5531 CMCHKUNPK(SUnpkU8, ¶m->puschProbDtxAckPres, mBuf);
5533 CMCHKUNPK(SUnpkU16, ¶m->pucchProbDtxAck, mBuf);
5534 CMCHKUNPK(SUnpkU8, ¶m->pucchProbDtxAckPres, mBuf);
5536 CMCHKUNPK(SUnpkU16, ¶m->txAntennaPorts, mBuf);
5537 CMCHKUNPK(SUnpkU8, ¶m->txAntennaPortsPres, mBuf);
5539 CMCHKUNPK(SUnpkU16, ¶m->rxAntennaPorts, mBuf);
5540 CMCHKUNPK(SUnpkU8, ¶m->rxAntennaPortsPres, mBuf);
5542 CMCHKUNPK(SUnpkU16, ¶m->phySyncMode, mBuf);
5543 CMCHKUNPK(SUnpkU8, ¶m->phySyncModePres, mBuf);
5545 CMCHKUNPK(SUnpkU16, ¶m->dataRepMode, mBuf);
5546 CMCHKUNPK(SUnpkU8, ¶m->dataRepModePres, mBuf);
5548 CMCHKUNPK(SUnpkU16, ¶m->rachSrRepMode, mBuf);
5549 CMCHKUNPK(SUnpkU8, ¶m->rachSrRepModePres, mBuf);
5551 /* UnPacking PHY configuration parameters */
5552 CMCHKUNPK(SUnpkU16, ¶m->opMode, mBuf);
5553 CMCHKUNPK(SUnpkU32, ¶m->counter, mBuf);
5554 CMCHKUNPK(SUnpkU32, ¶m->period, mBuf);
5555 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5556 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5557 CMCHKUNPK(SUnpkU16, ¶m->dlEarfcn, mBuf);
5558 CMCHKUNPK(SUnpkU16, ¶m->ulEarfcn, mBuf);
5559 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5560 /* Added for rgu dynamic delta change*/
5561 CMCHKUNPK(SUnpkU8, ¶m->numDlUePerTti, mBuf);
5562 CMCHKUNPK(SUnpkU8, ¶m->unLicnsdCfgPres, mBuf);
5564 if(param->unLicnsdCfgPres)
5566 printf("pverma param->unLicnsdCfgPres 2 -->%d \n",param->unLicnsdCfgPres);
5567 CMCHKUNPK(cmUnpkCtfUnLicnsdCellParam, ¶m->lteUCfg, mBuf);
5570 CMCHKUNPK(SUnpkU8, ¶m->catMenabled, mBuf);
5571 CMCHKUNPK(SUnpkU8, ¶m->mPdcchStart, mBuf);
5573 for (i = 0; i < CTF_MAX_CE_LEVEL; i++) {
5574 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].firstPreamble, mBuf);
5575 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].lastPreamble, mBuf);
5576 CMCHKUNPK(SUnpkU8, ¶m->ceLevelInfo[i].emtcNumRepPerPreambleAtt, mBuf);
5584 /* ctf_c_001.main_4: Modified cmPkCtfCellRecfgInfo() to Add support for
5585 * vendor specific parameters */
5586 /***********************************************************
5588 * Func: cmPkCtfCellRecfgInfo
5591 * Desc: Cell Re-configuration Information
5592 * @details This structure contains the information for reconfiguration
5593 * of a cell and its associated resources at PHY.
5602 **********************************************************/
5604 PUBLIC S16 cmPkCtfCellRecfgInfo
5606 CtfCellRecfgInfo *param,
5610 PUBLIC S16 cmPkCtfCellRecfgInfo(param, mBuf)
5611 CtfCellRecfgInfo *param;
5616 TRC3(cmPkCtfCellRecfgInfo)
5618 #ifdef ENABLE_API_LOG
5619 CMCHKPK(SPkU8, param->enableAPILog, mBuf);
5620 #endif /* ENABLE_API_LOG */
5621 /* ctf_c_001.main_3: Added the pack for newly added fileds inside the CFG structure*/
5622 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
5623 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
5624 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
5625 CMCHKPK(SPkU8, param->rachSrRepModePres, mBuf);
5626 CMCHKPK(SPkU16, param->rachSrRepMode, mBuf);
5628 CMCHKPK(SPkU8, param->dataRepModePres, mBuf);
5629 CMCHKPK(SPkU16, param->dataRepMode, mBuf);
5631 CMCHKPK(SPkU8, param->phySyncModePres, mBuf);
5632 CMCHKPK(SPkU16, param->phySyncMode, mBuf);
5634 CMCHKPK(SPkU8, param->rxAntennaPortsPres, mBuf);
5635 CMCHKPK(SPkU16, param->rxAntennaPorts, mBuf);
5637 CMCHKPK(SPkU8, param->txAntennaPortsPres, mBuf);
5638 CMCHKPK(SPkU16, param->txAntennaPorts, mBuf);
5640 CMCHKPK(SPkU8, param->pucchProbDtxAckPres, mBuf);
5641 CMCHKPK(SPkU16, param->pucchProbDtxAck, mBuf);
5644 CMCHKPK(SPkU8, param->puschProbDtxAckPres, mBuf);
5645 CMCHKPK(SPkU16, param->puschProbDtxAck, mBuf);
5647 CMCHKPK(SPkU8, param->srsDopEstFactorPres, mBuf);
5648 CMCHKPK(SPkU16, param->srsDopEstFactor, mBuf);
5650 CMCHKPK(SPkU8, param->prachPkRatio0Pres, mBuf);
5651 CMCHKPK(SPkU16, param->prachPkRatio0, mBuf);
5653 CMCHKPK(SPkU8, param->prachPkRatio4Pres, mBuf);
5654 CMCHKPK(SPkU16, param->prachPkRatio4, mBuf);
5656 CMCHKPK(SPkU8, param->pucchNoiseGammaPres, mBuf);
5657 CMCHKPK(SPkU16, param->pucchNoiseGamma, mBuf);
5659 CMCHKPK(SPkU8, param->extWinMarginPres, mBuf);
5660 CMCHKPK(SPkU16, param->extWinMargin, mBuf);
5662 CMCHKPK(SPkU8, param->dciPowOsPres, mBuf);
5663 CMCHKPK(SPkU16, param->dciPowOs, mBuf);
5665 CMCHKPK(SPkU8, param->cfiPowOsPres, mBuf);
5666 CMCHKPK(SPkU16, param->cfiPowOs, mBuf);
5668 CMCHKPK(SPkU8, param->syncSigPowOsPres, mBuf);
5669 CMCHKPK(SPkU16, param->syncSigPowOs, mBuf);
5671 CMCHKPK(cmPkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5672 CMCHKPK(cmPkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5673 CMCHKPK(cmPkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5674 CMCHKPK(cmPkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5675 CMCHKPK(cmPkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5676 CMCHKPK(cmPkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5677 CMCHKPK(cmPkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5678 CMCHKPK(cmPkLteTimingInfo, ¶m->actvnTime, mBuf);
5680 CMCHKPK(cmPkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5681 CMCHKPK(cmPkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5682 CMCHKPK(cmPkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5683 CMCHKPK(SPkU8, param->physCellId, mBuf);
5684 CMCHKPK(SPkU8, param->physCellIdPres, mBuf);
5685 CMCHKPK(SPkU8, param->cellIdGrpId, mBuf);
5686 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
5687 CMCHKPK(SPkU32, param->ctfReCfgType, mBuf);
5693 /***********************************************************
5695 * Func: cmUnpkCtfCellRecfgInfo
5698 * Desc: Cell Re-configuration Information
5699 * @details This structure contains the information for reconfiguration
5700 * of a cell and its associated resources at PHY.
5709 **********************************************************/
5711 PUBLIC S16 cmUnpkCtfCellRecfgInfo
5713 CtfCellRecfgInfo *param,
5717 PUBLIC S16 cmUnpkCtfCellRecfgInfo(param, mBuf)
5718 CtfCellRecfgInfo *param;
5724 TRC3(cmUnpkCtfCellRecfgInfo)
5726 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
5727 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
5728 param->ctfReCfgType = (CtfReCfgType)tmpEnum;
5729 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
5730 CMCHKUNPK(SUnpkU8, ¶m->cellIdGrpId, mBuf);
5731 CMCHKUNPK(SUnpkU8, ¶m->physCellIdPres, mBuf);
5732 CMCHKUNPK(SUnpkU8, ¶m->physCellId, mBuf);
5733 CMCHKUNPK(cmUnpkCtfBwCfgInfo, ¶m->bwCfg, mBuf);
5734 CMCHKUNPK(cmUnpkCtfTxSchemeCfg, ¶m->txCfg, mBuf);
5735 CMCHKUNPK(cmUnpkCtfAntennaCfgInfo, ¶m->antennaCfg, mBuf);
5737 CMCHKUNPK(cmUnpkLteTimingInfo, ¶m->actvnTime, mBuf);
5738 CMCHKUNPK(cmUnpkCtfPrachCfgInfo, ¶m->prachCfg, mBuf);
5739 CMCHKUNPK(cmUnpkCtfPdschCfgInfo, ¶m->pdschCfg, mBuf);
5740 CMCHKUNPK(cmUnpkCtfPuschCfgInfo, ¶m->puschCfg, mBuf);
5741 CMCHKUNPK(cmUnpkCtfPhichCfgInfo, ¶m->phichCfg, mBuf);
5742 CMCHKUNPK(cmUnpkCtfPucchCfgInfo, ¶m->pucchCfg, mBuf);
5743 CMCHKUNPK(cmUnpkCtfSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
5744 CMCHKUNPK(cmUnpkCtfTddSfCfgInfo, ¶m->tddSfCfg, mBuf);
5746 CMCHKUNPK(SUnpkU16, ¶m->syncSigPowOs, mBuf);
5747 CMCHKUNPK(SUnpkU8, ¶m->syncSigPowOsPres, mBuf);
5749 CMCHKUNPK(SUnpkU16, ¶m->cfiPowOs, mBuf);
5750 CMCHKUNPK(SUnpkU8, ¶m->cfiPowOsPres, mBuf);
5752 CMCHKUNPK(SUnpkU16, ¶m->dciPowOs, mBuf);
5753 CMCHKUNPK(SUnpkU8, ¶m->dciPowOsPres, mBuf);
5755 CMCHKUNPK(SUnpkU16, ¶m->extWinMargin, mBuf);
5756 CMCHKUNPK(SUnpkU8, ¶m->extWinMarginPres, mBuf);
5758 CMCHKUNPK(SUnpkU16, ¶m->pucchNoiseGamma, mBuf);
5759 CMCHKUNPK(SUnpkU8, ¶m->pucchNoiseGammaPres, mBuf);
5761 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio4, mBuf);
5762 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio4Pres, mBuf);
5764 CMCHKUNPK(SUnpkU16, ¶m->prachPkRatio0, mBuf);
5765 CMCHKUNPK(SUnpkU8, ¶m->prachPkRatio0Pres, mBuf);
5767 CMCHKUNPK(SUnpkU16, ¶m->srsDopEstFactor, mBuf);
5768 CMCHKUNPK(SUnpkU8, ¶m->srsDopEstFactorPres, mBuf);
5770 CMCHKUNPK(SUnpkU16, ¶m->puschProbDtxAck, mBuf);
5771 CMCHKUNPK(SUnpkU8, ¶m->puschProbDtxAckPres, mBuf);
5773 CMCHKUNPK(SUnpkU16, ¶m->pucchProbDtxAck, mBuf);
5774 CMCHKUNPK(SUnpkU8, ¶m->pucchProbDtxAckPres, mBuf);
5776 CMCHKUNPK(SUnpkU16, ¶m->txAntennaPorts, mBuf);
5777 CMCHKUNPK(SUnpkU8, ¶m->txAntennaPortsPres, mBuf);
5779 CMCHKUNPK(SUnpkU16, ¶m->rxAntennaPorts, mBuf);
5780 CMCHKUNPK(SUnpkU8, ¶m->rxAntennaPortsPres, mBuf);
5782 CMCHKUNPK(SUnpkU16, ¶m->phySyncMode, mBuf);
5783 CMCHKUNPK(SUnpkU8, ¶m->phySyncModePres, mBuf);
5785 CMCHKUNPK(SUnpkU16, ¶m->dataRepMode, mBuf);
5786 CMCHKUNPK(SUnpkU8, ¶m->dataRepModePres, mBuf);
5788 CMCHKUNPK(SUnpkU16, ¶m->rachSrRepMode, mBuf);
5789 CMCHKUNPK(SUnpkU8, ¶m->rachSrRepModePres, mBuf);
5791 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
5792 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
5793 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
5794 printf("param->pilotSigPwr = %d\nparam->priSigPwr = %d\n param->secSigPwr = %d\n",param->pilotSigPwr,param->priSigPwr,param->secSigPwr);
5795 #ifdef ENABLE_API_LOG
5796 CMCHKUNPK(SUnpkU8, ¶m->enableAPILog, mBuf);
5797 #endif /* ENABLE_API_LOG */
5803 /***********************************************************
5805 * Func: cmPkCtfDedPdschCfgInfo
5808 * Desc: Dedicated PDSCH Configuration
5809 * @details This structure contains the information for PDSCH configuration
5810 * specific to an UE.
5819 **********************************************************/
5821 PUBLIC S16 cmPkCtfDedPdschCfgInfo
5823 CtfDedPdschCfgInfo *param,
5827 PUBLIC S16 cmPkCtfDedPdschCfgInfo(param, mBuf)
5828 CtfDedPdschCfgInfo *param;
5833 TRC3(cmPkCtfDedPdschCfgInfo)
5835 /*ctf_c_001.main_1*/
5836 if(param->pres != FALSE)
5837 CMCHKPK(SPkU32, param->pA, mBuf);
5838 CMCHKPK(SPkU8, param->pres, mBuf);
5844 /***********************************************************
5846 * Func: cmUnpkCtfDedPdschCfgInfo
5849 * Desc: Dedicated PDSCH Configuration
5850 * @details This structure contains the information for PDSCH configuration
5851 * specific to an UE.
5860 **********************************************************/
5862 PUBLIC S16 cmUnpkCtfDedPdschCfgInfo
5864 CtfDedPdschCfgInfo *param,
5868 PUBLIC S16 cmUnpkCtfDedPdschCfgInfo(param, mBuf)
5869 CtfDedPdschCfgInfo *param;
5874 TRC3(cmUnpkCtfDedPdschCfgInfo)
5876 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5877 /*ctf_c_001.main_1*/
5878 if(param->pres != FALSE)
5880 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
5881 param->pA = (CtfPdschPaParam)tmpEnum;
5888 /***********************************************************
5890 * Func: cmPkCtfDedPucchCfgInfo
5893 * Desc: Dedicated PUCCH Configuration
5894 * @details This structure contains the information for setting-up/release
5895 * PUCCH configuration specific to an UE.
5904 **********************************************************/
5906 PUBLIC S16 cmPkCtfDedPucchCfgInfo
5908 CtfDedPucchCfgInfo *param,
5912 PUBLIC S16 cmPkCtfDedPucchCfgInfo(param, mBuf)
5913 CtfDedPucchCfgInfo *param;
5918 TRC3(cmPkCtfDedPucchCfgInfo)
5920 /*ctf_c_001.main_1*/
5921 if(param->pres != FALSE)
5924 /*ctf_c_001.main_4:115549: packing tddAckNackFBMode and tddAckNackCfgPres */
5925 if (param->tddAckNackCfgPres != FALSE)
5927 CMCHKPK(SPkU32, param->tddAckNackFBMode, mBuf);
5930 CMCHKPK(SPkU8, param->tddAckNackCfgPres, mBuf);
5931 #endif /* CTF_VER3 */
5932 CMCHKPK(SPkU16, param->pucchSetup.n1PUCCHRep, mBuf);
5934 /*ctf_c_001.main_4:115549: packing pucchSetup.repFactPres */
5935 if (param->pucchSetup.repFactPres)
5937 CMCHKPK(SPkU32, param->pucchSetup.repFact, mBuf);
5940 CMCHKPK(SPkU8, param->pucchSetup.repFactPres, mBuf);
5942 CMCHKPK(SPkU32, param->pucchSetup.repFact, mBuf);
5943 #endif /* CTF_VER3 */
5944 CMCHKPK(SPkU8, param->dedPucchCfgType, mBuf);
5946 CMCHKPK(SPkU8, param->pres, mBuf);
5952 /***********************************************************
5954 * Func: cmUnpkCtfDedPucchCfgInfo
5957 * Desc: Dedicated PUCCH Configuration
5958 * @details This structure contains the information for setting-up/release
5959 * PUCCH configuration specific to an UE.
5968 **********************************************************/
5970 PUBLIC S16 cmUnpkCtfDedPucchCfgInfo
5972 CtfDedPucchCfgInfo *param,
5976 PUBLIC S16 cmUnpkCtfDedPucchCfgInfo(param, mBuf)
5977 CtfDedPucchCfgInfo *param;
5982 TRC3(cmUnpkCtfDedPucchCfgInfo)
5984 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
5985 /*ctf_c_001.main_1*/
5986 if(param->pres != FALSE)
5988 CMCHKUNPK(SUnpkU8, ¶m->dedPucchCfgType, mBuf);
5990 /* ctf_c_001.main_4:115549: unpacking pucchSetup.repFactPres */
5991 CMCHKUNPK(SUnpkU8, ¶m->pucchSetup.repFactPres, mBuf);
5993 if (param->pucchSetup.repFactPres)
5995 CMCHKUNPK(SUnpkU32, (U32 *)¶m->pucchSetup.repFact, mBuf);
5998 CMCHKUNPK(SUnpkU32, (U32 *)¶m->pucchSetup.repFact, mBuf);
5999 #endif /*CTF_VER3 */
6000 CMCHKUNPK(SUnpkU16, ¶m->pucchSetup.n1PUCCHRep, mBuf);
6002 /*ctf_c_001.main_4:115549: unpacking tddAckNackCfgPres and tddAckNackFBMode */
6003 CMCHKUNPK(SUnpkU8, ¶m->tddAckNackCfgPres, mBuf);
6005 if (param->tddAckNackCfgPres != FALSE)
6007 CMCHKUNPK(SUnpkU32, (U32 *)¶m->tddAckNackFBMode, mBuf);
6009 #endif /* CTF_VER3 */
6016 /***********************************************************
6018 * Func: cmPkCtfDedPuschCfgInfo
6021 * Desc: Dedicated PUSCH Configuration
6022 * @details This structure contains the information for PUCCH
6023 * configuration specific to an UE.
6032 **********************************************************/
6034 PUBLIC S16 cmPkCtfDedPuschCfgInfo
6036 CtfDedPuschCfgInfo *param,
6040 PUBLIC S16 cmPkCtfDedPuschCfgInfo(param, mBuf)
6041 CtfDedPuschCfgInfo *param;
6046 TRC3(cmPkCtfDedPuschCfgInfo)
6048 /*ctf_c_001.main_1*/
6049 if(param->pres != FALSE)
6051 CMCHKPK(SPkU8, param->betaOffsetCqiIdx, mBuf);
6052 CMCHKPK(SPkU8, param->betaOffsetRiIdx, mBuf);
6053 CMCHKPK(SPkU8, param->betaOffsetAckIdx, mBuf);
6055 CMCHKPK(SPkU8, param->pres, mBuf);
6061 /***********************************************************
6063 * Func: cmUnpkCtfDedPuschCfgInfo
6066 * Desc: Dedicated PUSCH Configuration
6067 * @details This structure contains the information for PUCCH
6068 * configuration specific to an UE.
6077 **********************************************************/
6079 PUBLIC S16 cmUnpkCtfDedPuschCfgInfo
6081 CtfDedPuschCfgInfo *param,
6085 PUBLIC S16 cmUnpkCtfDedPuschCfgInfo(param, mBuf)
6086 CtfDedPuschCfgInfo *param;
6091 TRC3(cmUnpkCtfDedPuschCfgInfo)
6093 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6094 /*ctf_c_001.main_1*/
6095 if(param->pres != FALSE)
6097 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetAckIdx, mBuf);
6098 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetRiIdx, mBuf);
6099 CMCHKUNPK(SUnpkU8, ¶m->betaOffsetCqiIdx, mBuf);
6107 /***********************************************************
6109 * Func: cmPkCtfCqiRptModePeriodic
6112 * Desc: Periodic CQI Report Configuration
6113 * @details This structure contains the information for periodic CQI report
6114 * related configuration specific to an UE.
6123 **********************************************************/
6125 PUBLIC S16 cmPkCtfCqiRptModePeriodic
6127 CtfCqiRptModePeriodic *param,
6131 PUBLIC S16 cmPkCtfCqiRptModePeriodic(param, mBuf)
6132 CtfCqiRptModePeriodic *param;
6137 TRC3(cmPkCtfCqiRptModePeriodic)
6138 /* ctf_c_001.main_2: added packning for cqiMask*/
6140 CMCHKPK(SPkU32, (U32 )param->cqiSetup.cqiMask.cqiMaskSetup, mBuf);
6141 CMCHKPK(SPkU8, param->cqiSetup.cqiMask.pres, mBuf);
6142 #endif /* CTF_VER1 */
6143 CMCHKPK(SPkU8, param->cqiSetup.simultaneousAckNack, mBuf);
6144 CMCHKPK(SPkU16, param->cqiSetup.riCfgIndx, mBuf);
6145 CMCHKPK(SPkU8, param->cqiSetup.riCfgPres, mBuf);
6146 CMCHKPK(SPkU8, param->cqiSetup.subbandCqi.k, mBuf);
6147 CMCHKPK(SPkU8, param->cqiSetup.formatIndicator, mBuf);
6148 CMCHKPK(SPkU16, param->cqiSetup.cqiPmiCfgIndx, mBuf);
6149 CMCHKPK(SPkU16, param->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6150 CMCHKPK(SPkU8, param->cqiPeriodicCfgType, mBuf);
6156 /***********************************************************
6158 * Func: cmUnpkCtfCqiRptModePeriodic
6161 * Desc: Periodic CQI Report Configuration
6162 * @details This structure contains the information for periodic CQI report
6163 * related configuration specific to an UE.
6172 **********************************************************/
6174 PUBLIC S16 cmUnpkCtfCqiRptModePeriodic
6176 CtfCqiRptModePeriodic *param,
6180 PUBLIC S16 cmUnpkCtfCqiRptModePeriodic(param, mBuf)
6181 CtfCqiRptModePeriodic *param;
6188 TRC3(cmUnpkCtfCqiRptModePeriodic)
6190 CMCHKUNPK(SUnpkU8, ¶m->cqiPeriodicCfgType, mBuf);
6191 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.cqiPUCCHRsrcIndx, mBuf);
6192 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.cqiPmiCfgIndx, mBuf);
6193 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.formatIndicator, mBuf);
6194 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.subbandCqi.k, mBuf);
6195 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.riCfgPres, mBuf);
6196 CMCHKUNPK(SUnpkU16, ¶m->cqiSetup.riCfgIndx, mBuf);
6197 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.simultaneousAckNack, mBuf);
6198 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6200 CMCHKUNPK(SUnpkU8, ¶m->cqiSetup.cqiMask.pres, mBuf);
6201 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6202 param->cqiSetup.cqiMask.cqiMaskSetup = tmpEnum;
6203 #endif /* CTF_VER1 */
6209 /***********************************************************
6211 * Func: cmPkCtfCqiReportCfgInfo
6214 * Desc: CQI Report Configuration
6215 * @details This structure contains the information for CQI report
6216 * related configuration specific to an UE.
6225 **********************************************************/
6227 PUBLIC S16 cmPkCtfCqiReportCfgInfo
6229 CtfCqiReportCfgInfo *param,
6233 PUBLIC S16 cmPkCtfCqiReportCfgInfo(param, mBuf)
6234 CtfCqiReportCfgInfo *param;
6239 TRC3(cmPkCtfCqiReportCfgInfo)
6241 /*ctf_c_001.main_1*/
6242 if(param->pres != FALSE)
6246 * ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6247 *report configuration in the same message
6249 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6251 CMCHKPK(SPkU32, param->reportMode.aPeriodicRpt.aPeriodicRptMode, mBuf);
6253 CMCHKPK(SPkU8, param->reportMode.aPeriodicRpt.pres, mBuf);
6255 if(param->reportMode.periodicRpt.pres != FALSE)
6257 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6259 CMCHKPK(SPkU8, param->reportMode.periodicRpt.pres, mBuf);
6261 #else /* CTF_VER2 */
6263 switch(param->reportingMode) {
6264 case CTF_CQI_RPTMODE_PRDIOC:
6265 CMCHKPK(cmPkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6267 case CTF_CQI_RPTMODE_APRDIOC:
6268 CMCHKPK(SPkU32, param->reportMode.aPeriodicRpt, mBuf);
6273 CMCHKPK(SPkU8, param->reportingMode, mBuf);
6274 #endif /* CTF_VER2 */
6276 /* ctf_c_001.main_2: added packning for pmiRiRpt*/
6278 CMCHKPK(SPkU32, param->pmiRiRpt.pmiRiRptSetup, mBuf);
6279 CMCHKPK(SPkU8, param->pmiRiRpt.pres, mBuf);
6280 #endif /* CTF_VER1 */
6283 CMCHKPK(SPkU8, param->pres, mBuf);
6289 /***********************************************************
6291 * Func: cmUnpkCtfCqiReportCfgInfo
6294 * Desc: CQI Report Configuration
6295 * @details This structure contains the information for CQI report
6296 * related configuration specific to an UE.
6305 **********************************************************/
6307 PUBLIC S16 cmUnpkCtfCqiReportCfgInfo
6309 CtfCqiReportCfgInfo *param,
6313 PUBLIC S16 cmUnpkCtfCqiReportCfgInfo(param, mBuf)
6314 CtfCqiReportCfgInfo *param;
6318 #if defined (CTF_VER1) || defined (CTF_VER2)
6321 TRC3(cmUnpkCtfCqiReportCfgInfo)
6323 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6324 /*ctf_c_001.main_1*/
6325 if(param->pres != FALSE)
6327 /* ctf_c_001.main_2: added Unpackning for cqiMask*/
6329 CMCHKUNPK(SUnpkU8, ¶m->pmiRiRpt.pres, mBuf);
6330 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6331 param->pmiRiRpt.pmiRiRptSetup = tmpEnum;
6332 #endif /* CTF_VER1 */
6336 *ctf_c_001.main_2: Added provision to send Periodic and aPeriodic CQI
6337 *report configuration in the same message
6339 CMCHKUNPK(SUnpkU8, ¶m->reportMode.periodicRpt.pres, mBuf)
6340 if(param->reportMode.periodicRpt.pres != FALSE)
6342 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6345 CMCHKUNPK(SUnpkU8, ¶m->reportMode.aPeriodicRpt.pres, mBuf)
6346 if(param->reportMode.aPeriodicRpt.pres != FALSE)
6348 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6349 param->reportMode.aPeriodicRpt.aPeriodicRptMode =
6350 (CtfCqiRptModeAperiodic)tmpEnum;
6353 #else /* CTF_VER2 */
6355 CMCHKUNPK(SUnpkU8, ¶m->reportingMode, mBuf);
6356 switch(param->reportingMode) {
6357 case CTF_CQI_RPTMODE_APRDIOC:
6358 CMCHKUNPK(SUnpkU32, (U32 *)¶m->reportMode.aPeriodicRpt, mBuf);
6360 case CTF_CQI_RPTMODE_PRDIOC:
6361 CMCHKUNPK(cmUnpkCtfCqiRptModePeriodic, ¶m->reportMode.periodicRpt, mBuf);
6366 #endif /* CTF_VER2 */
6373 /***********************************************************
6375 * Func: cmPkCtfDedSrsUlCfgInfo
6378 * Desc: Dedicated Uplink SRS Configuration
6379 * @details This structure contains the information for setting-up/release
6380 * UL SRS configuration specific to an UE.
6389 **********************************************************/
6391 PUBLIC S16 cmPkCtfDedSrsUlCfgInfo
6393 CtfDedSrsUlCfgInfo *param,
6397 PUBLIC S16 cmPkCtfDedSrsUlCfgInfo(param, mBuf)
6398 CtfDedSrsUlCfgInfo *param;
6403 TRC3(cmPkCtfDedSrsUlCfgInfo)
6405 /*ctf_c_001.main_1*/
6406 if(param->pres != FALSE)
6408 CMCHKPK(SPkU8, param->dedSrsSetup.cyclicShift, mBuf);
6409 CMCHKPK(SPkU8, param->dedSrsSetup.txComb, mBuf);
6410 CMCHKPK(SPkU16, param->dedSrsSetup.srsCfgIdx, mBuf);
6411 CMCHKPK(SPkU8, param->dedSrsSetup.duration, mBuf);
6412 CMCHKPK(SPkU8, param->dedSrsSetup.freqDmnPos, mBuf);
6413 CMCHKPK(SPkU8, param->dedSrsSetup.srsHopngBw, mBuf);
6414 CMCHKPK(SPkU8, param->dedSrsSetup.srsBw, mBuf);
6415 CMCHKPK(SPkU8, param->dedSrsUlCfgType, mBuf);
6417 CMCHKPK(SPkU8, param->pres, mBuf);
6423 /***********************************************************
6425 * Func: cmUnpkCtfDedSrsUlCfgInfo
6428 * Desc: Dedicated Uplink SRS Configuration
6429 * @details This structure contains the information for setting-up/release
6430 * UL SRS configuration specific to an UE.
6439 **********************************************************/
6441 PUBLIC S16 cmUnpkCtfDedSrsUlCfgInfo
6443 CtfDedSrsUlCfgInfo *param,
6447 PUBLIC S16 cmUnpkCtfDedSrsUlCfgInfo(param, mBuf)
6448 CtfDedSrsUlCfgInfo *param;
6453 TRC3(cmUnpkCtfDedSrsUlCfgInfo)
6455 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6456 /*ctf_c_001.main_1*/
6457 if(param->pres != FALSE)
6459 CMCHKUNPK(SUnpkU8, ¶m->dedSrsUlCfgType, mBuf);
6460 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.srsBw, mBuf);
6461 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.srsHopngBw, mBuf);
6462 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.freqDmnPos, mBuf);
6463 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.duration, mBuf);
6464 CMCHKUNPK(SUnpkU16, ¶m->dedSrsSetup.srsCfgIdx, mBuf);
6465 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.txComb, mBuf);
6466 CMCHKUNPK(SUnpkU8, ¶m->dedSrsSetup.cyclicShift, mBuf);
6473 /***********************************************************
6475 * Func: cmPkCtfDedSRCfgInfo
6478 * Desc: Dedicated SR Configuration
6479 * @details This structure contains the information for setting-up/release
6480 * SR configuration specific to an UE at PHY.
6489 **********************************************************/
6491 PUBLIC S16 cmPkCtfDedSRCfgInfo
6493 CtfDedSRCfgInfo *param,
6497 PUBLIC S16 cmPkCtfDedSRCfgInfo(param, mBuf)
6498 CtfDedSRCfgInfo *param;
6503 TRC3(cmPkCtfDedSRCfgInfo)
6505 /*ctf_c_001.main_1*/
6506 if(param->pres != FALSE)
6508 CMCHKPK(SPkU8, param->dedSrSetup.srCfgIdx, mBuf);
6509 CMCHKPK(SPkU16, param->dedSrSetup.srPUCCHRi, mBuf);
6510 CMCHKPK(SPkU8, param->dedSRCfgType, mBuf);
6512 CMCHKPK(SPkU8, param->pres, mBuf);
6518 /***********************************************************
6520 * Func: cmUnpkCtfDedSRCfgInfo
6523 * Desc: Dedicated SR Configuration
6524 * @details This structure contains the information for setting-up/release
6525 * SR configuration specific to an UE at PHY.
6534 **********************************************************/
6536 PUBLIC S16 cmUnpkCtfDedSRCfgInfo
6538 CtfDedSRCfgInfo *param,
6542 PUBLIC S16 cmUnpkCtfDedSRCfgInfo(param, mBuf)
6543 CtfDedSRCfgInfo *param;
6548 TRC3(cmUnpkCtfDedSRCfgInfo)
6550 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6551 /*ctf_c_001.main_1*/
6552 if(param->pres != FALSE)
6554 CMCHKUNPK(SUnpkU8, ¶m->dedSRCfgType, mBuf);
6555 CMCHKUNPK(SUnpkU16, ¶m->dedSrSetup.srPUCCHRi, mBuf);
6556 CMCHKUNPK(SUnpkU8, ¶m->dedSrSetup.srCfgIdx, mBuf);
6561 #endif /* TFU_UPGRADE */
6564 /***********************************************************
6566 * Func: cmPkCtfDedAntCfgInfo
6569 * Desc: Dedicated Antenna Configuration
6570 * @details This structure contains the information for antenna related
6571 * configuration specific to an UE at PHY.
6580 **********************************************************/
6582 PUBLIC S16 cmPkCtfDedAntCfgInfo
6584 CtfDedAntCfgInfo *param,
6588 PUBLIC S16 cmPkCtfDedAntCfgInfo(param, mBuf)
6589 CtfDedAntCfgInfo *param;
6596 #endif /* CTF_VER2 */
6598 TRC3(cmPkCtfDedAntCfgInfo)
6600 /*ctf_c_001.main_1*/
6601 if(param->pres != FALSE)
6603 CMCHKPK(SPkU32, param->ueTxAntSelection.txAntSelect, mBuf);
6604 CMCHKPK(SPkU8, param->ueTxAntSelection.cfgType, mBuf);
6605 /* ctf_c_001.main_3 txMode is of type enum and is 32bit length */
6606 CMCHKPK(SPkU32, (U32)param->txMode, mBuf);
6609 *ctf_c_001.main_2: Added Packing of CodeBookSubsetRestriction parameter
6611 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6614 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6619 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6624 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6629 for(idx = 0; idx < 8; idx++)
6630 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6631 n4TxAntTm4[idx], mBuf);
6635 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6640 CMCHKPK(SPkU16, param->codeBookSubsetRes.codeBookSubsetRestn.
6645 CMCHKPK(SPkU8, param->codeBookSubsetRes.codeBookSubsetRestn.
6650 CMCHKPK(SPkU16, param->codeBookSubsetRes.codeBookSubsetRestn.
6657 CMCHKPK(SPkU32, param->codeBookSubsetRes.ctfCdBkRestType, mBuf);
6658 #endif /* CTF_VER2 */
6660 CMCHKPK(SPkU8, param->pres, mBuf);
6666 /***********************************************************
6668 * Func: cmUnpkCtfDedAntCfgInfo
6671 * Desc: Dedicated Antenna Configuration
6672 * @details This structure contains the information for antenna related
6673 * configuration specific to an UE at PHY.
6682 **********************************************************/
6684 PUBLIC S16 cmUnpkCtfDedAntCfgInfo
6686 CtfDedAntCfgInfo *param,
6690 PUBLIC S16 cmUnpkCtfDedAntCfgInfo(param, mBuf)
6691 CtfDedAntCfgInfo *param;
6697 #endif /* CTF_VER2 */
6701 TRC3(cmUnpkCtfDedAntCfgInfo)
6703 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6704 /*ctf_c_001.main_1*/
6705 if(param->pres != FALSE)
6709 * Added Unpacking for CodeBookSubsetRestriction parameter
6711 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6712 param->codeBookSubsetRes.ctfCdBkRestType = (CtfCdBkSubsetRestnType)tmpEnum;
6713 switch(param->codeBookSubsetRes.ctfCdBkRestType)
6716 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6721 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6726 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6731 for(idx = 7; idx >= 0; idx--)
6733 CMCHKUNPK(SUnpkU8, &(param->codeBookSubsetRes.codeBookSubsetRestn.
6734 n4TxAntTm4[idx]), mBuf);
6739 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6744 CMCHKUNPK(SUnpkU16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6749 CMCHKUNPK(SUnpkU8, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6754 CMCHKUNPK(SUnpkU16, ¶m->codeBookSubsetRes.codeBookSubsetRestn.
6760 #endif /* CTF_VER2 */
6761 /* ctf_c_001.main_3 Enum is 32bit length */
6762 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6763 param->txMode = (CtfUeTxAntMode)tmpEnum;
6764 CMCHKUNPK(SUnpkU8, ¶m->ueTxAntSelection.cfgType, mBuf);
6765 CMCHKUNPK(SUnpkU32, (U32 *)&tmpEnum, mBuf);
6766 param->ueTxAntSelection.txAntSelect = (CtfUeTxAntSelectType)tmpEnum;
6772 /***********************************************************
6774 * Func: cmPkCtfUeSecCellCfgInfo
6777 * Desc: Secondary Cell Configuration for a UE
6778 * @details This structure contains the information for
6779 * secondary cells for the UE
6787 **********************************************************/
6789 PUBLIC S16 cmPkCtfUeSecCellCfgInfo
6791 CtfUeSecCellCfgInfo *param,
6795 PUBLIC S16 cmPkCtfUeSecCellCfgInfo(*param, mBuf)
6796 CtfUeSecCellCfgInfo *param;
6800 CMCHKPK(SPkU16, param->sCellId, mBuf);
6801 CMCHKPK(SPkU8, param->sCellIdx, mBuf);
6805 /***********************************************************
6807 * Func: cmPkCtfSecCellCfgInfo
6810 * Desc: Secondary Cell Configuration for a UE
6811 * @details This structure contains the information for
6812 * secondary cells for the UE
6820 **********************************************************/
6822 PUBLIC S16 cmPkCtfSecCellCfgInfo
6824 CtfSecCellCfgInfo *param,
6828 PUBLIC S16 cmPkCtfSecCellCfgInfo(*param, mBuf)
6829 CtfSecCellCfgInfo *param;
6835 for(idx = param->numSCells - 1; idx >= 0; idx--)
6837 CMCHKPK(cmPkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[(U8)idx], mBuf);
6839 CMCHKPK(SPkU32, param->sCellAction, mBuf);
6840 CMCHKPK(SPkU8, param->numSCells, mBuf);
6845 /***********************************************************
6847 * Func: cmUnpkCtfUeSecCellCfgInfo
6850 * Desc: Secondary Cell Configuration for a UE
6851 * @details This structure contains the information for
6852 * secondary cells for the UE
6860 **********************************************************/
6862 PUBLIC S16 cmUnpkCtfUeSecCellCfgInfo
6864 CtfUeSecCellCfgInfo *param,
6868 PUBLIC S16 cmUnpkCtfUeSecCellCfgInfo(*param, mBuf)
6869 CtfUeSecCellCfgInfo *param;
6873 CMCHKUNPK(SUnpkU8, ¶m->sCellIdx, mBuf);
6874 CMCHKUNPK(SUnpkU16, ¶m->sCellId, mBuf);
6879 /***********************************************************
6881 * Func: cmUnpkCtfSecCellCfgInfo
6884 * Desc: Secondary Cell Configuration for a UE
6885 * @details This structure contains the information for
6886 * secondary cells for the UE
6894 **********************************************************/
6897 PUBLIC S16 cmUnpkCtfSecCellCfgInfo
6899 CtfSecCellCfgInfo *param,
6903 PUBLIC S16 cmUnpkCtfSecCellCfgInfo(*param, mBuf)
6904 CtfSecCellCfgInfo *param;
6910 CMCHKUNPK(SUnpkU8, ¶m->numSCells, mBuf);
6911 CMCHKUNPK(SUnpkU32, (U32*)¶m->sCellAction, mBuf);
6912 for(idx = 0 ; idx < param->numSCells; idx++)
6914 CMCHKUNPK(cmUnpkCtfUeSecCellCfgInfo, ¶m->ueSCellDedCfg[idx], mBuf);
6921 /***********************************************************
6923 * Func: cmPkCtfUeCatCfgInfo
6926 * Desc: UE Category Configuration
6927 * @details This structure contains the information for configuring
6928 * the UE category at PHY.
6937 **********************************************************/
6939 PUBLIC S16 cmPkCtfUeCatCfgInfo
6941 CtfUeCatCfgInfo *param,
6945 PUBLIC S16 cmPkCtfUeCatCfgInfo(param, mBuf)
6946 CtfUeCatCfgInfo *param;
6951 TRC3(cmPkCtfUeCatCfgInfo)
6953 /*ctf_c_001.main_1*/
6954 if(param->pres != FALSE)
6955 CMCHKPK(SPkU32, param->ueCategory, mBuf);
6956 CMCHKPK(SPkU8, param->pres, mBuf);
6962 /***********************************************************
6964 * Func: cmUnpkCtfUeCatCfgInfo
6967 * Desc: UE Category Configuration
6968 * @details This structure contains the information for configuring
6969 * the UE category at PHY.
6978 **********************************************************/
6980 PUBLIC S16 cmUnpkCtfUeCatCfgInfo
6982 CtfUeCatCfgInfo *param,
6986 PUBLIC S16 cmUnpkCtfUeCatCfgInfo(param, mBuf)
6987 CtfUeCatCfgInfo *param;
6992 TRC3(cmUnpkCtfUeCatCfgInfo)
6994 CMCHKUNPK(SUnpkU8, ¶m->pres, mBuf);
6995 /*ctf_c_001.main_1*/
6996 if(param->pres != FALSE)
6997 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ueCategory, mBuf);
7003 /***********************************************************
7005 * Func: cmPkCtfDedCfgInfo
7008 * Desc: Dedicated Configuration Information
7009 * @details This structure contains the information for configuration
7010 * of UE-specific physical channel resources at PHY.
7019 **********************************************************/
7021 PUBLIC S16 cmPkCtfDedCfgInfo
7023 CtfDedCfgInfo *param,
7027 PUBLIC S16 cmPkCtfDedCfgInfo(param, mBuf)
7028 CtfDedCfgInfo *param;
7033 TRC3(cmPkCtfDedCfgInfo)
7035 CMCHKPK(SPkU8, param->isEmtcUe, mBuf);
7037 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7039 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7040 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7041 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7042 #endif /* TFU_UPGRADE */
7043 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7044 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7045 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7046 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7047 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7048 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7054 /***********************************************************
7056 * Func: cmUnpkCtfDedCfgInfo
7059 * Desc: Dedicated Configuration Information
7060 * @details This structure contains the information for configuration
7061 * of UE-specific physical channel resources at PHY.
7070 **********************************************************/
7072 PUBLIC S16 cmUnpkCtfDedCfgInfo
7074 CtfDedCfgInfo *param,
7078 PUBLIC S16 cmUnpkCtfDedCfgInfo(param, mBuf)
7079 CtfDedCfgInfo *param;
7084 TRC3(cmUnpkCtfDedCfgInfo)
7086 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7087 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7088 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7089 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7090 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7091 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7093 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7094 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7095 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7096 #endif /* TFU_UPGRADE */
7097 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7099 CMCHKUNPK(SUnpkU8, ¶m->isEmtcUe, mBuf);
7106 /***********************************************************
7108 * Func: cmPkCtfDedRecfgInfo
7111 * Desc: Dedicated Re-configuration Information
7112 * @details This structure contains the information for re-configuration
7113 * of UE-specific physical channel resources at PHY.
7122 **********************************************************/
7124 PUBLIC S16 cmPkCtfDedRecfgInfo
7126 CtfDedRecfgInfo *param,
7130 PUBLIC S16 cmPkCtfDedRecfgInfo(param, mBuf)
7131 CtfDedRecfgInfo *param;
7136 TRC3(cmPkCtfDedRecfgInfo)
7138 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7139 /*ctf_c_001.main_1*/
7140 CMCHKPK(cmPkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7142 CMCHKPK(cmPkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7143 CMCHKPK(cmPkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7144 CMCHKPK(cmPkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7145 #endif /* TFU_UPGRADE */
7146 CMCHKPK(cmPkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7147 CMCHKPK(cmPkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7148 CMCHKPK(cmPkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7149 CMCHKPK(cmPkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7150 /* ctf_c_001.main_4: ReEst Fix */
7152 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7154 CMCHKPK(cmPkLteRnti, param->newUeId, mBuf);
7156 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7157 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7163 /***********************************************************
7165 * Func: cmUnpkCtfDedRecfgInfo
7168 * Desc: Dedicated Re-configuration Information
7169 * @details This structure contains the information for re-configuration
7170 * of UE-specific physical channel resources at PHY.
7179 **********************************************************/
7181 PUBLIC S16 cmUnpkCtfDedRecfgInfo
7183 CtfDedRecfgInfo *param,
7187 PUBLIC S16 cmUnpkCtfDedRecfgInfo(param, mBuf)
7188 CtfDedRecfgInfo *param;
7193 TRC3(cmUnpkCtfDedRecfgInfo)
7195 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7196 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7197 /* ctf_c_001.main_4: ReEst Fix */
7199 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7201 CMCHKUNPK(cmUnpkLteRnti, ¶m->newUeId, mBuf);
7203 CMCHKUNPK(cmUnpkCtfUeCatCfgInfo, ¶m->ueCatCfg, mBuf);
7204 CMCHKUNPK(cmUnpkCtfDedPdschCfgInfo, ¶m->pdschCfg, mBuf);
7205 CMCHKUNPK(cmUnpkCtfDedPucchCfgInfo, ¶m->pucchCfg, mBuf);
7206 CMCHKUNPK(cmUnpkCtfDedPuschCfgInfo, ¶m->puschCfg, mBuf);
7208 CMCHKUNPK(cmUnpkCtfDedSrsUlCfgInfo, ¶m->srsUlCfg, mBuf);
7209 CMCHKUNPK(cmUnpkCtfDedSRCfgInfo, ¶m->dedSRCfg, mBuf);
7210 /*ctf_c_001.main_1*/
7211 CMCHKUNPK(cmUnpkCtfCqiReportCfgInfo, ¶m->cqiRptCfg, mBuf);
7212 #endif /* TFU_UPGRADE */
7213 CMCHKUNPK(cmUnpkCtfDedAntCfgInfo, ¶m->antInfo, mBuf);
7215 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7222 /***********************************************************
7224 * Func: cmPkCtfCellReleaseInfo
7227 * Desc: Cell Release Information
7228 * @details This structure contains the information for release/removal
7229 * of a cell and its assocated resources at PHY.
7238 **********************************************************/
7240 PUBLIC S16 cmPkCtfCellReleaseInfo
7242 CtfCellReleaseInfo *param,
7246 PUBLIC S16 cmPkCtfCellReleaseInfo(param, mBuf)
7247 CtfCellReleaseInfo *param;
7252 TRC3(cmPkCtfCellReleaseInfo)
7254 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7260 /***********************************************************
7262 * Func: cmUnpkCtfCellReleaseInfo
7265 * Desc: Cell Release Information
7266 * @details This structure contains the information for release/removal
7267 * of a cell and its assocated resources at PHY.
7276 **********************************************************/
7278 PUBLIC S16 cmUnpkCtfCellReleaseInfo
7280 CtfCellReleaseInfo *param,
7284 PUBLIC S16 cmUnpkCtfCellReleaseInfo(param, mBuf)
7285 CtfCellReleaseInfo *param;
7290 TRC3(cmUnpkCtfCellReleaseInfo)
7292 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7298 /***********************************************************
7300 * Func: cmPkCtfDedReleaseInfo
7303 * Desc: Dedicated Release Information
7304 * @details This structure contains the information for release/removal
7305 * of dedicated/UE-specific configuration at PHY.
7314 **********************************************************/
7316 PUBLIC S16 cmPkCtfDedReleaseInfo
7318 CtfDedReleaseInfo *param,
7322 PUBLIC S16 cmPkCtfDedReleaseInfo(param, mBuf)
7323 CtfDedReleaseInfo *param;
7328 TRC3(cmPkCtfDedReleaseInfo)
7329 CMCHKPK(cmPkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7330 CMCHKPK(cmPkLteRnti, param->ueId, mBuf);
7331 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7337 /***********************************************************
7339 * Func: cmUnpkCtfDedReleaseInfo
7342 * Desc: Dedicated Release Information
7343 * @details This structure contains the information for release/removal
7344 * of dedicated/UE-specific configuration at PHY.
7353 **********************************************************/
7355 PUBLIC S16 cmUnpkCtfDedReleaseInfo
7357 CtfDedReleaseInfo *param,
7361 PUBLIC S16 cmUnpkCtfDedReleaseInfo(param, mBuf)
7362 CtfDedReleaseInfo *param;
7367 TRC3(cmUnpkCtfDedReleaseInfo)
7369 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7370 CMCHKUNPK(cmUnpkLteRnti, ¶m->ueId, mBuf);
7371 CMCHKUNPK(cmUnpkCtfSecCellCfgInfo, ¶m->sCellInfo,mBuf);
7377 /***********************************************************
7379 * Func: cmPkCtfCfgInfo
7382 * Desc: Configuration Information
7383 * @details This structure contains the information for setting-up
7384 * cell or UE-specific configuration at PHY.
7393 **********************************************************/
7395 PUBLIC S16 cmPkCtfCfgInfo
7401 PUBLIC S16 cmPkCtfCfgInfo(param, mBuf)
7407 TRC3(cmPkCtfCfgInfo)
7409 switch(param->cfgElem) {
7411 CMCHKPK(cmPkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7414 CMCHKPK(cmPkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7419 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7425 /***********************************************************
7427 * Func: cmUnpkCtfCfgInfo
7430 * Desc: Configuration Information
7431 * @details This structure contains the information for setting-up
7432 * cell or UE-specific configuration at PHY.
7441 **********************************************************/
7443 PUBLIC S16 cmUnpkCtfCfgInfo
7449 PUBLIC S16 cmUnpkCtfCfgInfo(param, mBuf)
7455 TRC3(cmUnpkCtfCfgInfo)
7457 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7458 switch(param->cfgElem) {
7460 CMCHKUNPK(cmUnpkCtfCellCfgInfo, ¶m->u.cellCfg, mBuf);
7463 CMCHKUNPK(cmUnpkCtfDedCfgInfo, ¶m->u.dedCfg, mBuf);
7473 /***********************************************************
7475 * Func: cmPkCtfReCfgInfo
7478 * Desc: Re-configuration Information
7479 * @details This structure contains the information for re-configuring
7480 * cell or UE-specific configuration at PHY.
7489 **********************************************************/
7491 PUBLIC S16 cmPkCtfReCfgInfo
7493 CtfReCfgInfo *param,
7497 PUBLIC S16 cmPkCtfReCfgInfo(param, mBuf)
7498 CtfReCfgInfo *param;
7503 TRC3(cmPkCtfReCfgInfo)
7505 switch(param->cfgElem) {
7507 CMCHKPK(cmPkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7510 CMCHKPK(cmPkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7512 /* Starts - Fix for CR ccpu00123185 */
7513 case CTF_TX_PWR_CFG:
7514 CMCHKPK(cmPkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7516 /* ends - Fix for CR ccpu00123185 */
7518 CMCHKPK(cmPkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7524 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7530 /***********************************************************
7532 * Func: cmUnpkCtfReCfgInfo
7535 * Desc: Re-configuration Information
7536 * @details This structure contains the information for re-configuring
7537 * cell or UE-specific configuration at PHY.
7546 **********************************************************/
7548 PUBLIC S16 cmUnpkCtfReCfgInfo
7550 CtfReCfgInfo *param,
7554 PUBLIC S16 cmUnpkCtfReCfgInfo(param, mBuf)
7555 CtfReCfgInfo *param;
7560 TRC3(cmUnpkCtfReCfgInfo)
7562 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7563 switch(param->cfgElem) {
7565 CMCHKUNPK(cmUnpkCtfCellRecfgInfo, ¶m->u.cellRecfg, mBuf);
7568 CMCHKUNPK(cmUnpkCtfDedRecfgInfo, ¶m->u.dedRecfg, mBuf);
7570 /* Starts - Fix for CR ccpu00123185 */
7571 case CTF_TX_PWR_CFG:
7572 CMCHKUNPK(cmUnpkCtfCellPwrcfgInfo, ¶m->u.cellRecfg, mBuf);
7574 /* ends - Fix for CR ccpu00123185 */
7576 CMCHKUNPK(cmUnpkCtfCellStop, ¶m->u.cellRecfg, mBuf);
7586 /***********************************************************
7588 * Func: cmPkCtfReleaseInfo
7591 * Desc: Release configuration Information
7592 * @details This structure contains the information for releasing
7593 * cell or UE-specific configuration at PHY.
7602 **********************************************************/
7604 PUBLIC S16 cmPkCtfReleaseInfo
7606 CtfReleaseInfo *param,
7610 PUBLIC S16 cmPkCtfReleaseInfo(param, mBuf)
7611 CtfReleaseInfo *param;
7616 TRC3(cmPkCtfReleaseInfo)
7618 switch(param->cfgElem) {
7620 CMCHKPK(cmPkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7623 CMCHKPK(cmPkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7628 CMCHKPK(SPkU8, param->cfgElem, mBuf);
7634 /***********************************************************
7636 * Func: cmUnpkCtfReleaseInfo
7639 * Desc: Release configuration Information
7640 * @details This structure contains the information for releasing
7641 * cell or UE-specific configuration at PHY.
7650 **********************************************************/
7652 PUBLIC S16 cmUnpkCtfReleaseInfo
7654 CtfReleaseInfo *param,
7658 PUBLIC S16 cmUnpkCtfReleaseInfo(param, mBuf)
7659 CtfReleaseInfo *param;
7664 TRC3(cmUnpkCtfReleaseInfo)
7666 CMCHKUNPK(SUnpkU8, ¶m->cfgElem, mBuf);
7667 switch(param->cfgElem) {
7669 CMCHKUNPK(cmUnpkCtfCellReleaseInfo, ¶m->u.cellRel, mBuf);
7672 CMCHKUNPK(cmUnpkCtfDedReleaseInfo, ¶m->u.dedRel, mBuf);
7682 /***********************************************************
7684 * Func: cmPkCtfCfgReqInfo
7687 * Desc: Configuration Request information
7688 * @details This is the main structure in the Configuration request primitive.
7689 * -# This structure contains the configuration information as given by
7690 * the RRC to configure PHY layer for common/dedicated resources.
7691 * -# It can contain Config/Reconfig/Release.
7692 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7701 **********************************************************/
7703 PUBLIC S16 cmPkCtfCfgReqInfo
7705 CtfCfgReqInfo *param,
7709 PUBLIC S16 cmPkCtfCfgReqInfo(param, mBuf)
7710 CtfCfgReqInfo *param;
7715 TRC3(cmPkCtfCfgReqInfo)
7717 /* ctf_c_001.main_4: Added support for vendor specific parameters */
7719 CMCHKPK(cmPkCtfVendorSpecParams, ¶m->vendorParams, mBuf);
7721 switch(param->cfgType) {
7723 CMCHKPK(cmPkCtfReleaseInfo, ¶m->u.release, mBuf);
7726 CMCHKPK(cmPkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7729 CMCHKPK(cmPkCtfCfgInfo, ¶m->u.cfg, mBuf);
7734 CMCHKPK(SPkU8, param->cfgType, mBuf);
7740 /* ctf_c_001.main_4: Modified cmUnpkCtfCfgReqInfo() to add support
7741 * for vendor specific parameters */
7742 /***********************************************************
7744 * Func: cmUnpkCtfCfgReqInfo
7747 * Desc: Configuration Request information
7748 * @details This is the main structure in the Configuration request primitive.
7749 * -# This structure contains the configuration information as given by
7750 * the RRC to configure PHY layer for common/dedicated resources.
7751 * -# It can contain Config/Reconfig/Release.
7752 * -# The result of configuration is indicated in TfUiCtfCfgCfm.
7761 **********************************************************/
7763 PUBLIC S16 cmUnpkCtfCfgReqInfo
7766 CtfCfgReqInfo *param,
7770 PUBLIC S16 cmUnpkCtfCfgReqInfo(param, mBuf)
7772 CtfCfgReqInfo *param;
7781 TRC3(cmUnpkCtfCfgReqInfo)
7783 CMCHKUNPK(SUnpkU8, ¶m->cfgType, mBuf);
7784 switch(param->cfgType) {
7786 CMCHKUNPK(cmUnpkCtfCfgInfo, ¶m->u.cfg, mBuf);
7789 CMCHKUNPK(cmUnpkCtfReCfgInfo, ¶m->u.reCfg, mBuf);
7792 CMCHKUNPK(cmUnpkCtfReleaseInfo, ¶m->u.release, mBuf);
7798 if((retVal = cmUnpkCtfVendorSpecParams(pst, ¶m->vendorParams, mBuf)) != ROK)
7804 /* Starts - Fix for CR ccpu00123185 */
7805 /***********************************************************
7807 * Func: cmPkCtfCellPwrcfgInfo
7810 * Desc: Cell Re-configuration Information
7811 * @details This structure contains the information for reconfiguration of Reference Signal Power
7812 * of a cell and its associated resources at PHY.
7821 **********************************************************/
7823 PUBLIC S16 cmPkCtfCellPwrcfgInfo
7825 CtfCellRecfgInfo *param,
7829 PUBLIC S16 cmPkCtfCellPwrcfgInfo(param, mBuf)
7830 CtfCellRecfgInfo *param;
7835 TRC3(cmPkCtfCellPwrcfgInfo)
7837 /* Added the pack for newly added reference signal Power*/
7838 CMCHKPK(SPkU32, (U32)param->ctfCellStatus, mBuf);
7839 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7840 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7841 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7843 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7844 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7850 /***********************************************************
7852 * Func: cmUnpkCtfCellPwrcfgInfo
7855 * Desc: Cell Re-configuration Information
7856 * @details This structure contains the information for reconfiguration
7857 * of a cell and its associated resources at PHY.
7866 **********************************************************/
7868 PUBLIC S16 cmUnpkCtfCellPwrcfgInfo
7870 CtfCellRecfgInfo *param,
7874 PUBLIC S16 cmUnpkCtfCellPwrcfgInfo(param, mBuf)
7875 CtfCellRecfgInfo *param;
7880 TRC3(cmUnpkCtfCellPwrcfgInfo)
7882 /* ctf_c_001.main_3: Added the unpack for newly added fileds inside the CFG structure*/
7883 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7885 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7886 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7887 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7888 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7889 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ctfCellStatus, mBuf);
7894 /***********************************************************
7896 * Func: cmPkCtfCellStop
7899 * Desc: Cell Re-configuration Information
7900 * @details This structure contains the information for reconfiguration of Reference Signal Power
7901 * of a cell and its associated resources at PHY.
7910 **********************************************************/
7912 PUBLIC S16 cmPkCtfCellStop
7914 CtfCellRecfgInfo *param,
7918 PUBLIC S16 cmPkCtfCellStop(param, mBuf)
7919 CtfCellRecfgInfo *param;
7924 TRC3(cmPkCtfCellStop)
7926 /* Added the pack for newly added reference signal Power*/
7927 CMCHKPK(SPkU32, (U32)param->ctfCellStatus, mBuf);
7928 CMCHKPK(SPkS16, param->pilotSigPwr, mBuf);
7929 CMCHKPK(SPkS16, param->priSigPwr, mBuf);
7930 CMCHKPK(SPkS16, param->secSigPwr, mBuf);
7932 CMCHKPK(SPkS16, param->pdschCfg.refSigPwr, mBuf);
7933 CMCHKPK(cmPkLteCellId, param->cellId, mBuf);
7937 /***********************************************************
7939 * Func: cmUnpkCtfCellStop
7942 * Desc: Cell Re-configuration Information
7943 * @details This structure contains the information for reconfiguration
7944 * of a cell and its associated resources at PHY.
7953 **********************************************************/
7955 PUBLIC S16 cmUnpkCtfCellStop
7957 CtfCellRecfgInfo *param,
7961 PUBLIC S16 cmUnpkCtfCellStop(param, mBuf)
7962 CtfCellRecfgInfo *param;
7967 TRC3(cmUnpkCtfCellStop)
7969 CMCHKUNPK(cmUnpkLteCellId, ¶m->cellId, mBuf);
7971 CMCHKUNPK(SUnpkS16, ¶m->pdschCfg.refSigPwr, mBuf);
7972 CMCHKUNPK(SUnpkS16, ¶m->secSigPwr, mBuf);
7973 CMCHKUNPK(SUnpkS16, ¶m->priSigPwr, mBuf);
7974 CMCHKUNPK(SUnpkS16, ¶m->pilotSigPwr, mBuf);
7975 CMCHKUNPK(SUnpkU32, (U32 *)¶m->ctfCellStatus, mBuf);
7980 /* Periodic REM Scan for TPM */
7981 /***********************************************************
7983 * Func: cmPkPerRemScanCellInfo
7986 * Desc: Periodic REM cell search response
7987 * @details This Message contains cell search results.
7996 **********************************************************/
7998 PUBLIC S16 cmPkPerRemScanCellInfo
8000 CtfPeriodicRemCellInfo *param,
8004 PUBLIC S16 cmPkPerRemScanCellInfo(param, mBuf)
8005 CtfPeriodicRemCellInfo *param;
8009 TRC3(cmPkPerRemScanCellInfo)
8011 CMCHKPK(SPkU16,param->pci, mBuf);
8012 CMCHKPK(SPkU8, param->rsrp, mBuf);
8013 CMCHKPK(SPkU8, param->dlBw, mBuf);
8014 CMCHKPK(SPkU8, param->numTx, mBuf);
8019 /***********************************************************
8021 * Func: cmPkCtfPeriodicCellSearchRsp
8024 * Desc: Periodic REM cell search response
8025 * @details This Message contains Periodic REM scan results.
8034 **********************************************************/
8036 PUBLIC S16 cmPkCtfPeriodicCellSearchRsp
8038 CtfPeriodicRemCellSearchRsp *param,
8042 PUBLIC S16 cmPkCtfPeriodicCellSearchRsp(param, mBuf)
8043 CtfPeriodicRemCellSearchRsp *param;
8048 TRC3(cmPkCtfPeriodicCellSearchRsp)
8050 for(idx = param->numCells - 1; idx >=0; idx--)
8052 CMCHKPK(cmPkPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8054 CMCHKPK(SPkU8, param->numCells, mBuf);
8060 * @brief Configuration Request from App to CL for
8061 * cnm Init Sync responce
8065 * Function: cmPkCtfPeriodicRemCellSearchRsp
8067 * @param[in] Pst* pst
8068 * @param[in] SpId spId
8069 * @param[in] CtfCfgTransId * transId
8070 * @param[in] CtfCnmInitSyncRsp* ctfcnmInitSyncRsp
8075 PUBLIC S16 cmPkCtfPeriodicRemCellSearchRsp
8079 CtfCfgTransId *transId,
8080 CtfPeriodicRemCellSearchRsp *CellCfgRsp
8083 PUBLIC S16 cmPkCtfPeriodicRemCellSearchRsp(pst, spId, transId, CellCfgRsp)
8086 CtfCfgTransId *transId;
8087 CtfPeriodicRemCellSearchRsp *CellCfgRsp;
8090 Buffer *mBuf = NULLP;
8091 TRC3(cmPkCtfPeriodicRemCellSearchRsp)
8093 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
8094 #if (ERRCLASS & ERRCLS_ADD_RES)
8095 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8096 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8097 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8098 (ErrVal)ECTF016, (ErrVal)0, (Txt*)&"Packing failed");
8100 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8101 sizeof(CtfPeriodicRemCellSearchRsp));
8104 if (pst->selector == ODU_SELECTOR_LC) {
8105 if (cmPkCtfPeriodicCellSearchRsp(CellCfgRsp, mBuf) != ROK) {
8106 #if (ERRCLASS & ERRCLS_ADD_RES)
8107 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8108 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8109 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8110 (ErrVal)ECTF017, (ErrVal)0, (Txt*)&"Packing failed");
8112 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8113 sizeof(CtfPeriodicRemCellSearchRsp));
8118 else if (pst->selector == ODU_SELECTOR_LWLC) {
8120 if (cmPkPtr((PTR)CellCfgRsp, mBuf) != ROK) {
8121 #if (ERRCLASS & ERRCLS_ADD_RES)
8122 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8123 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8124 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8125 (ErrVal)ECTF018, (ErrVal)0, "Packing failed");
8127 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8128 sizeof(CtfPeriodicRemCellSearchRsp));
8134 if(cmPkCtfCfgTransId(transId, mBuf) != ROK) {
8135 #if (ERRCLASS & ERRCLS_ADD_RES)
8136 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8137 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8138 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8139 (ErrVal)ECTF019, (ErrVal)0, "Packing failed");
8141 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8142 sizeof(CtfPeriodicRemCellSearchRsp));
8146 if (SPkS16(spId, mBuf) != ROK) {
8147 #if (ERRCLASS & ERRCLS_ADD_RES)
8148 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8149 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8150 __FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8151 (ErrVal)ECTF020, (ErrVal)0, "Packing failed");
8153 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8154 sizeof(CtfPeriodicRemCellSearchRsp));
8158 if (pst->selector != ODU_SELECTOR_LWLC) {
8159 SPutSBuf(pst->region, pst->pool, (Data *)CellCfgRsp,
8160 sizeof(CtfPeriodicRemCellSearchRsp));
8162 pst->event = (Event)EVTCTFPREMCELLSRCHRSP;
8163 RETVALUE(SPstTsk(pst,mBuf));
8167 PUBLIC S16 cmUnpkCtfPerRemScanCellInfo
8169 CtfPeriodicRemCellInfo *param,
8173 PUBLIC S16 cmUnpkCtfPerRemScanCellInfo(param, mBuf)
8174 CtfPeriodicRemCellInfo *param;
8178 TRC3(cmUnpkCtfPerRemScanCellInfo);
8180 CMCHKUNPK(SUnpkU8, ¶m->numTx, mBuf);
8181 CMCHKUNPK(SUnpkU8, ¶m->dlBw, mBuf);
8182 CMCHKUNPK(SUnpkU8, ¶m->rsrp, mBuf);
8183 CMCHKUNPK(SUnpkU16, ¶m->pci, mBuf);
8188 PUBLIC S16 cmUnpkCtfPerRemCellSrch
8190 CtfPeriodicRemCellSearchRsp *param,
8194 PUBLIC S16 cmUnpkCtfPerRemCellSrch(param, mBuf)
8195 CtfPeriodicRemCellSearchRsp *param;
8200 TRC3(cmUnpkCtfPerRemCellSrch);
8202 CMCHKUNPK(SUnpkU8, ¶m->numCells, mBuf);
8203 for(idx = 0; idx < (param->numCells); idx++)
8205 CMCHKUNPK(cmUnpkCtfPerRemScanCellInfo, ¶m->cellInfo[idx], mBuf);
8212 * @brief ENB STOP Indication from PHY to ENB-APP
8216 * Function: cmUnpkPerRemCellSrchRsp
8218 * @param[in] Pst* pst
8219 * @param[in] SuId suId
8220 * @param[in] CtfCfgTransId transId
8225 PUBLIC S16 cmUnpkPerRemCellSrchRsp
8227 CtfPerRemCellSrchRsp func,
8232 PUBLIC S16 cmUnpkPerRemCellSrchRsp(func, pst, mBuf)
8233 CtfPerRemCellSrchRsp func;
8239 CtfCfgTransId transId;
8240 CtfPeriodicRemCellSearchRsp *CellSrchRsp = NULLP;
8241 TRC3(cmUnpkPerRemCellSrchRsp)
8243 if (SUnpkS16(&suId, mBuf) != ROK) {
8245 #if (ERRCLASS & ERRCLS_ADD_RES)
8246 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8247 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8248 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8249 (ErrVal)ECTF030, (ErrVal)0, (Txt*)&"Packing failed");
8253 if (cmUnpkCtfCfgTransId(&transId, mBuf) != ROK) {
8255 #if (ERRCLASS & ERRCLS_ADD_RES)
8256 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8257 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8258 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8259 (ErrVal)ECTF031, (ErrVal)0, (Txt*)&"Packing failed");
8263 if (pst->selector != ODU_SELECTOR_LWLC) {
8264 if ((SGetSBuf(pst->region, pst->pool, (Data **)&CellSrchRsp,
8265 sizeof(CtfPeriodicRemCellSearchRsp))) != ROK) {
8266 #if (ERRCLASS & ERRCLS_ADD_RES)
8267 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8268 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8269 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8270 (ErrVal)ECTF024, (ErrVal)0, (Txt*)&"Packing failed");
8276 if (pst->selector == ODU_SELECTOR_LWLC) {
8277 if (cmUnpkPtr((PTR *)&CellSrchRsp, mBuf) != ROK) {
8282 else if (pst->selector == ODU_SELECTOR_LC)
8283 if (cmUnpkCtfPerRemCellSrch(CellSrchRsp, mBuf) != ROK) {
8284 SPutSBuf(pst->region, pst->pool, (Data *)CellSrchRsp,
8285 sizeof(CtfPeriodicRemCellSearchRsp));
8287 #if (ERRCLASS & ERRCLS_ADD_RES)
8288 /* ctf_c_001.main_3 Compilation warning fix with g++ */
8289 SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
8290 (Txt*)&__FILE__, __LINE__, (ErrCls)ERRCLS_ADD_RES,
8291 (ErrVal)ECTF025, (ErrVal)0, (Txt*)&"Packing failed");
8297 RETVALUE((*func)(pst, suId, &transId, CellSrchRsp));
8299 /* Periodic REM Scan for TPM End */
8301 /* ends - Fix for CR ccpu00123185 */
8304 /**********************************************************************
8306 **********************************************************************/