[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/lte/nwsel_eval_struct.h b/mcu/protocol/interface/lte/nwsel_eval_struct.h
new file mode 100644
index 0000000..5a64da7
--- /dev/null
+++ b/mcu/protocol/interface/lte/nwsel_eval_struct.h
@@ -0,0 +1,936 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2012
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *   nwsel_eval_struct.h
+ *
+ * Project:
+ * --------
+ *   MOLY
+ *
+ * Description:
+ * ------------
+ *   message and common structure definition between NWSEL and EVAL module
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 02 08 2022 ot_suresha.m
+ * [MOLY00761475] [Tonga] Patch Request - MOLY00680766
+ * 	
+ * 	.
+ *
+ * 12 16 2021 rahamtulla.mulla
+ * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV.
+ *
+ * 12 04 2020 wen.zhuang
+ * [MOLY00591485] [MT6853][Mouton][VzW][Pre-LRA][MP7 must][HQ][RnS][LTE][DR][2.4]Fail at step 18 - UE does not send RACH attempt within WaitTime
+ * 	
+ * 	.
+ *
+ * 11 26 2020 ken.lu
+ * [MOLY00591485] [MT6853][Mouton][VzW][Pre-LRA][MP7 must][HQ][RnS][LTE][DR][2.4]Fail at step 18 - UE does not send RACH attempt within WaitTime
+ * 	
+ * 	.
+ *
+ * 07 30 2020 chengyu.chen
+ * [MOLY00545502] [MT6853][Mouton][MP6][R3][Q0][SQC][China][Shanghai][CU FT][NSA][MDST][SWIFT]mtkrild:AT command pending too long. assert!!! AT cmd: EPSCONFIG
+ * Don't know why there's always a file being modified after I submitted it to P4....
+ *
+ * 05 25 2020 lucien.li
+ * [MOLY00526454] [Gen97][UNITE][5G][SA][HEAT][EMER][R15_SA_IRAT_ECC_ESFB_3]EMM_CALL for TAU ¡§active¡¨ flag not set problem.
+ * [L4C] add call_current_rat in CALL_STATUS_IND
+ *
+ * 05 19 2020 chengyu.chen
+ * [MOLY00524216] [Gen97][VZW][E2E] Code sync request from Gen93 to Gen97
+ * [MPD][R3.MP][Out of Vlist] ECBM re-arch on Gen97
+ *
+ * 05 07 2020 harry.chang
+ * [MOLY00511199] (VMOLY)[A21 NA][MTK] Please implement the feature for IPC_NET_NETWORK_SCAN
+ * [NWSEL] IPC_NET_NETWORK_SCAN
+ *
+ * 01 17 2020 harry.chang
+ * MOLY00470870
+ *
+ * 01 13 2020 harry.chang
+ * [MOLY00470870] [Gen97][VMOLY] Huawei's Gen93 CR patch-back activity
+ * NWSEL reply is_ims_support to EMM
+ *
+ * 12 06 2019 harry.chang
+ * [MOLY00464108] [IMS] T311 timeout local release call patch back
+ * T311 feature patch back
+ *
+ * 12 02 2019 prime.xiao
+ * [MOLY00381008] [Gen97][GMSS] 5G related feature
+ * 	
+ * 	.MOLY00366859
+ * 	MOLY00438399
+ * 	MOLY00442288
+ * 	MOLY00442633
+ * 	MOLY00442781
+ * 	MOLY00443807
+ *
+ * 07 25 2019 andy.huang
+ * [MOLY00423200] [VMOLY][D2/L4/NAS] Gen93/Gen95 CR sync to Gen97
+ * ia apn change.
+ *
+ * 07 24 2019 norman.chang
+ * [MOLY00424396] [CODE SYNC] ?ªA?¤U¥\¯Óɬ¤Æ¤§·jÊIµ¦²¤
+ * .
+ *
+ * 06 17 2019 shih-che.chou
+ * [MOLY00413860] [NAS_SV/ xMM/ xAS] S1/ N1 mode update
+ * [Interface] cap.update and local release
+ *
+ * 04 13 2019 jerry-yh.chang
+ * [MOLY00399102] [MT6297][Apollo][DCT][SQC][5G][TC_Apollo_DCT_Register_Network_005][EVB] Not show 5G
+ * relay endc_sib_status/endc_available
+ *
+ * 10 24 2018 chinte.chen
+ * [MOLY00360557] [VMOLY][CODE_SYNC] UMOLY code sync to VMOLY
+ * .
+ *
+ * 10 04 2018 james-chi-ju.chang
+ * [MOLY00306148] [NAS] pangu giant CR
+ * .
+ *
+ * 09 26 2018 shih-che.chou
+ * [MOLY00355476] [Gen97][NWSIM][4G][TC_6_3_1][TC_6_3_6][TC_6_4_1] CSG related cases failed
+ * .
+ *
+ * 09 13 2018 jerry-yh.chang
+ * [MOLY00306148] [NAS] pangu giant CR
+ * [EMM][OA Domain] PLMN_SEARCH_STATUS_UPDATE_REQ struct re-arch
+ *
+ * 08 17 2018 yenchih.yang
+ * [MOLY00346658] [VMOLY] Gen97 ERRC-CEL modifications
+ * 	
+ * 	1) ERRC-CEL ENDC support.
+ * 	2) MRS ERRC Up to Down Search Information.
+ *
+ * 08 17 2018 james-chi-ju.chang
+ * [MOLY00306148] [NAS] pangu giant CR
+ * interface
+ *
+ * 08 01 2018 chien-li.chou
+ * [MOLY00343510] [Gen95][LR13.R0] R14 Enhanced EUTRAN Sharing
+ * 	
+ * 	R14 sys info ind multi TAC and cell id
+ *
+ * 06 26 2018 chien-li.chou
+ * [MOLY00334837] [Gen95] Replace MAX_NUM_HPLMN by MD1_MAX_NUM_HPLMN and fix MAX_NUM_SEARCH_PLMN
+ * 	
+ * 	remove MAX_NUM_HPLMN (NWSEL part)
+ *
+ * 04 23 2018 andy.huang
+ * [MOLY00307255] [MT6771][BSP+][O1]Cannot show ECC button when put the device out to shielding room
+ * ECC Icon
+ * 	.
+ *
+ * 04 18 2018 chien-li.chou
+ * [MOLY00320601] [A70AXL TMO][simulator][US][Protocol][42271]Recover Interrupted File - Sender Interrupted due to network conditions ¡V Sender Resumes fail
+ * 	
+ * 	ALPS03864120 do not send IMS_SERVICE_IND when connected OOS end and no reestablishment
+ *
+ * 03 20 2018 sh.yeh
+ * [MOLY00314920] [GEN95][NWSEL]#15 fake cell enhancement
+ * .
+ *
+ * 03 09 2018 chien-li.chou
+ * [MOLY00307748] Sprint RMS ALFMS01265379
+ * 	
+ * 	Sprint requirement - add is higher plmn search in PLMN list
+ *
+ * 03 02 2018 puneet.t
+ * [MOLY00310959] [CODE SYNC] [Gen93] TELCEL CC33 (MM NWSEL interface change part)
+ * TELCEL patch back to UMOLYE
+ *
+ * 11 29 2017 harry.chang
+ * [MOLY00292927] [MT6755][TMO-US][N0+MP5][2017Q3][Simulation][Anritsu][IMS][L_IMS_VoLTE_43003_3]Fail at step2.
+ * .
+ *
+ * 11 28 2017 chien-li.chou
+ * [MOLY00292082] [Gen93][TMO] 2G disable with ecc enable
+ * Dummy check-in for auto-sync
+ *
+ * 11 28 2017 chien-li.chou
+ * [MOLY00292082] [Gen93][TMO] 2G disable with ecc enable
+ * 2G disable (NWSEL interface and SBP part)
+ *
+ * 11 02 2017 harry.chang
+ * [MOLY00286282] [Gen93][Network Search+CDMA-less+plmn-loss Optimization] Code merge from LR12 to LR12A.R3
+ * .
+ *
+ * 08 31 2017 harry.chang
+ * [MOLY00274693] [Gen93][Network Search Optimization] Code Merge from LR11 to UMOLYA TRUNK
+ * 	
+ * 	NWSEL part
+ *
+ * 08 30 2017 chien-li.chou
+ * [MOLY00274799] [MT6763][C2K][OM6M][Regression][Titan case] too long time and hang up automatically when dialing 110 (UMOLYA)
+ * Send regn_status_update_req to EMM when emc_session_ongoing
+ *
+ * 08 29 2017 harry.chang
+ * [MOLY00274167] [Copy MOLY00262171][CDMA-less][LR12] main CR
+ * NWSEL part
+ *
+ * 08 24 2017 kelly.lo
+ * [MOLY00273395] [Bianco][N1][MTK FT][SRLTE][CT 6M C][SH][Random]APN protocol changing issue(TRUNK & R2)
+ * 	
+ * 	ia_apn_change (interface) (OA)
+ *
+ * 08 17 2017 harry.chang
+ * [MOLY00271671] [Copy MOLY00259858][Rose][Vinson][N1]The ECC call will can't be dial out success.(5/5)
+ * .
+ *
+ * 04 05 2017 mw.hsu
+ * [MOLY00223961] [93] Remove EMM's C2K context maintenance for GMSS LWCG search flow
+ * Patch NWSEL M3 related features: remove LC mode and remove EMM LC context.
+ *
+ * 02 09 2017 mw.hsu
+ * [MOLY00228375] [copy MOLY00220113][6292][Gemini][LG+WG] SBP_CSFB_DUPLEX_CHG_FOR_LG_MODE / SBP_DUPLEX_MODE_CHG_AFTER_CSFB / AT+ETWMODE
+ * .
+ *
+ * 01 17 2017 mw.hsu
+ * [MOLY00224986] [MT6293][R13 DoS] rename MARCO and ENUM
+ * .
+ *
+ * 12 21 2016 mw.hsu
+ * [MOLY00220167] [NWSEL] check in B66 related modification
+ * .
+ *
+ * 11 08 2016 mw.hsu
+ * [MOLY00211920] [6293] MOLY00190308 merge to UMOLYA
+ * .
+ *
+ * 09 26 2016 mw.hsu
+ * [MOLY00205124] [NWSEL] sync R12/R13 feature to UMOLYA
+ * .
+ *
+ * 09 26 2016 sh.yeh
+ * [MOLY00205082] EMM_REG merge from UMOLYA-PS-DEV to UMOLYA
+ * sync MOLY187316 CL2614331, MOLY00141896 CL2648845.
+ *
+ * 06 24 2016 mw.hsu
+ * [MOLY00186459] [MT6293] [NWSEL] UMOLY merge to UMOLYA.
+ *
+ * 05 27 2016 james-chi-ju.chang
+ * [MOLY00175925] sync LR11 to UMOLY
+ * SP01 sync to UMOLY (missing part)
+ *
+ * 05 23 2016 james-chi-ju.chang
+ * [MOLY00179411] [Denali1+][CT 6M C][IR][Macau][Free Test]If UE uses China Telecom 4G SIM card, can not roam to Macao 4G network
+ * .
+ *
+ * 05 17 2016 mark.ng
+ * [MOLY00179023] Allowable Registration Area List Feature V2 Check In
+ * ARAL 2.0 interface
+ *
+ * 04 26 2016 sherry.kuo
+ * [MOLY00175925] sync LR11 to UMOLY
+ * .
+ *
+ * 04 26 2016 tim.huang
+ * [MOLY00172111] [PH1_VZW][joint-camp][Protocol] [E911] TC 2.8. failure. No ESR
+ * .
+ *
+ * 04 26 2016 tim.huang
+ * [MOLY00167450] [PH1_VZW][joint-camp][Radio][hVoLTE][Blocking] TC 2.1.10.2 - At step5, in the TAU Request message, there is not "UE radio capability information update needed" field
+ * .
+ *
+ * 10 28 2015 tim.huang
+ * [MOLY00147169] [Rose]The CT card camp on 2G all time after switch data to CT card.
+ * .
+ *
+ * 10 19 2015 james-chi-ju.chang
+ * [MOLY00145708] [Jade-L][SRLTE][CT OM 6M][LTE IOT][FT][SH][ALU][Random]?ºÝ¦b3G¤U¡A¥X?¤£¯à?¦æPS©MCS??
+ * .
+ *
+ * 10 07 2015 yc.chen
+ * [MOLY00141417] [Jade-L][SRLTE][LTE IOT][FT][SH][ZTE][random]±µ¦¬±m«H¦Z?«Ì EE,0,0,99,/data/core/,1,modem,md1
+ * 	.
+ *
+ * 10 05 2015 panu.peisa
+ * [MOLY00142657] [VzW][VZ_REQ_e911_30203] RAL and MRU cell band info update implementation to 6291
+ * 	Integrated CLs 1690397 and 1690428 from LR11_VzW.
+ *
+ *
+ * 09 30 2015 marko.akselin
+ * [MOLY00142657][VzW] VZ_REQ_e911_30203 - Add band information into NWSEL - EVAL interface.
+ * 	.
+ *
+ * 07 27 2015 kun-lin.wu
+ * [MOLY00107136] [Denali-1] force success flag in C2L_TRANSFER_REQ
+ *
+ * 07 03 2015 tim.huang
+ * [MOLY00125845] [JADE] SRLTE related design
+ * .
+ *
+ * 06 18 2015 james-chi-ju.chang
+ * [MOLY00122048] [6795] Request new feature to improve registration time of roaming case
+ * 	.
+ *
+ * 05 29 2015 ye.yuan
+ * [MOLY00116932] [UMOLY] [NAS]compile option modify
+ * .
+ *
+ * 05 29 2015 kun-lin.wu
+ * [MOLY00117190] PLMN List in CONNECTED Mode
+ *
+ * 04 23 2015 mark.chung
+ * [MOLY00095378] Amazon Requirement
+ * 	.
+ *
+ * 04 16 2015 james-chi-ju.chang
+ * [MOLY00078264] [UMOLY][R10][R11] NAS check-in from CBr to 6291_DEV
+ * 	.
+ *
+ * 04 16 2015 carlson.lin
+ * [MOLY00091967] Merge C2K IRAT code
+ * C2K merge (OA, NWSEL EVAL interface)
+ *
+ * 02 23 2015 bob.chiang
+ * [MOLY00096607] Sync C2K CR
+ * .
+ *
+ * 01 09 2015 kun-lin.wu
+ * [MOLY00088493] CMCC���w�V���ѫO�@�u�Ƥ�ï½
+ * 01 06 2015 james-chi-ju.chang
+ * [MOLY00078264] [UMOLY][R10][R11] NAS check-in from CBr to 6291_DEV
+ * .
+ *
+ * 12 17 2014 james-chi-ju.chang
+ * [MOLY00078264] [UMOLY][R10][R11] NAS check-in from CBr to 6291_DEV
+ * 	.
+ *
+ * 11 10 2014 robert.wu
+ * [MOLY00083874] [UMOLY][R10][R11] EMM MTC sync code from 6291_DEV to UMOLY trunk
+ *
+ * 11 04 2014 james-chi-ju.chang
+ * [MOLY00078264] [UMOLY][R10][R11] NAS check-in from CBr to 6291_DEV
+ * .
+ *
+ * 10 07 2014 james-chi-ju.chang
+ * [MOLY00077752] 4G3G2Gauto�Ҧ��U����\�Ӥj
+ * .
+ *
+ * 09 19 2014 sherry.kuo
+ * [MOLY00077433] [SoMC][K2][LTE] Clear Code #29/#33 feature check in
+ * interface rename to is_esm_attempt_max_times.
+ *
+ * 08 28 2014 sherry.kuo
+ * [MOLY00077433] [SoMC][K2][LTE] Clear Code #29/#33 feature check in
+ * Clear Code 33
+ *
+ * 08 14 2014 jinghan.wang
+ * [MOLY00075318] [4G Gemini][FT][CMCC Case][TDL FT][BJ][5.4.6][CMCC+CMCC] [K2 Alpha][Regression 1]ping���q��ping�q43.61s,��ɬ�_?����Ficon��ping�q27.92s�A��??���� [FOCUS ISSUE]
+ * 	Change full_band_search to full_band_searched_3g_status & full_band_searched_4g
+ *
+ * 07 07 2014 benjamin.kuo
+ * [MOLY00071459] Add Mobility Management for IMS Voice Termination
+ * MMIVT2MOLY
+ *
+ * 07 02 2014 shaowu.huang
+ * [MOLY00070824] [4G Gemini][FT][BJ][CSFB test][case5.1.1][SIM1 CMCC+SIM2 CMCC][4G,3G,2Gע��ʱ�Ӿ�ϳ�]
+ * .
+ *
+ * 06 19 2014 roy.lin
+ * [MOLY00069512] �iCMCC Official �Ĥ@?�J? �j�iZTE Q507T�j�i���n�j�i?1-Critical�j�i�D�Ψҡj??��L-�D�Ψ�-��?��?"APN"?�A�I?�ݱ`
+ * Update interface for PS detach without disable EUTRAN.
+ *
+ * 06 09 2014 tuan-che.chen
+ * [MOLY00068767] [MT6290] Recovery to other RAT after 4G OOS speed up
+ * add full_band_search
+ *
+ * 01 21 2014 wcpuser_integrator
+ * [MOLY00054475] SGLTE option rename
+ * .
+ *
+ * 01 14 2014 sherry.kuo
+ * [MOLY00052313] [Customer requested feature] 4G factory mode arfcn
+ * Merging from //MOLY_CBr/maruco.tu/MOLY_CBr.factory/mcu/modem/...
+ *
+ * 01 13 2014 james-chi-ju.chang
+ * [MOLY00037567] [VOLTE] IMS NWSEL IT
+ * Merging
+ *  	
+ * 	//MOLY_CBr/ben.chiu/MOLY_VOLTE.PHASE2.DEV/mcu/...
+ *  	
+ * 	to //MOLY/TRUNK/MOLY/mcu/...
+ *
+ * 08 19 2013 sherry.kuo
+ * [MOLY00009250] [LTE Multimode] NWSEL check in
+ * MT last PDN deactivation.
+ *
+ * 07 24 2013 benjamin.kuo
+ * [MOLY00031020] [MMDS_DC] Merge MMDC interface to MOLY
+ * .
+ *
+ * 07 24 2013 benjamin.kuo
+ * [MOLY00031020] [MMDS_DC] Merge MMDC interface to MOLY
+ * .
+ *
+ * 07 10 2013 shaowu.huang
+ * NAS REJECT CAUSE interface, MM<->EMM,MM<->NWSEL,MM<->MM
+ * 07 15 2013 sherry.kuo
+ * [MOLY00029775] [MT6290E1][NAS RTD][MM][FDD] EMM_PLMNSEL_doesn't_report_sys_info
+ * add search_type to search_status_update_req_struct
+ *
+ * 03 27 2013 benjamin.kuo
+ * [MOLY00011934] LTE MM IT CBr merge to MOLY
+ * .
+ *
+ * 03 14 2013 tuan-che.chen
+ * [MOLY00009163] LTE Multimode merge back to MOLY
+ * merge back to MOLY.
+ *
+ * 02 04 2013 sherry.kuo
+ * [MOLY00009250] [LTE Multimode] NWSEL check in
+ * td-fdd lte separate nwsel interface.
+ *
+ * 01 22 2013 benjamin.kuo
+ * [MOLY00009163] LTE Multimode merge back to MOLY
+ *
+ * 01 22 2013 benjamin.kuo
+ * [MOLY00009163] LTE Multimode merge back to MOLY
+ *
+ * 01 22 2013 benjamin.kuo
+ * [MOLY00009163] LTE Multimode merge back to MOLY
+ * MOLY_CBr to MOLY.
+ ****************************************************************************/
+
+
+#ifndef  _NWSEL_EVAL_STRUCT_INC
+#define  _NWSEL_EVAL_STRUCT_INC
+
+
+#include "nwsel_eval_enums.h"
+#include "l3_inc_local.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "irat_common_enums.h"
+#include "ims_common_def.h"
+#include "c2k_irat_msg_struct.h"
+#include "nas_sv_struct.h"
+#include "ps_public_struct.h"
+
+
+/***** common structure definition *****/
+typedef struct
+{
+    nas_proc_enum               emm_proc;
+    lr_result_enum              lr_result;
+    mm_cause_enum               lr_cause;
+    esm_cause_enum              esm_cause; 
+    kal_uint8                   attempt_counter;
+    kal_bool                    is_esm_attempt_max_times;
+    additional_update_result_enum   additional_update_result;
+    eps_attach_update_result_enum   eps_attach_update_result;
+    kal_bool                        is_ims_vops_support;
+    lte_duplex_type_enum        lte_type;
+//CR1917: REL12 feature, use REL11 temporarily
+    /* is_eutran_not_allowed should be checked only when Reject#15. Disable E-UTRAN if #15 and this field is True. */
+    kal_bool                    is_eutran_not_allowed; 
+    kal_bool                    is_ps_reattach;
+    kal_bool                    is_service_request_max_times; 
+    kal_bool                    is_t3402_valid;
+    kal_uint16                  t3402;
+    kal_bool                    is_rach_fail_max_times;
+    integ_protect_status_enum   is_integ_protected;
+    kal_uint8                   invalid_cs_sim_counter;
+    kal_uint8                   invalid_ps_sim_counter;
+    /* use to identify the TA is change or not when TAU/Combined TAU */
+    kal_bool                    is_mobility_tau;
+//#ifdef __REL10__ // persistent EPSB
+    kal_bool                    is_persistent_EPS_bearer_exist;
+//#endif
+    kal_bool                    is_emc_bs_support;
+} proc_result_only_struct;
+
+/***** message structure definition *****/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   trx_id;
+    plmn_search_type_enum       plmn_search_type;
+    lte_duplex_type_enum        lte_type;
+    kal_uint8                   plmn_id_count;
+    plmn_id_struct              plmn_id[MAX_NUM_SEARCH_PLMN];
+    kal_bool                    is_manual_sel;        // if search is manual selection
+    kal_bool                    force_to_release;
+    kal_bool                    is_manual_csg_sel;    // identify if the csg_id below is valid
+    kal_uint32                  csg_id;
+    kal_bool                    trigger_by_signal_appear;
+    kal_bool                    is_higher_plmn_search;
+    kal_uint32                  factory_mode_arfcn; //0xFFFFFFFF means invalid arfcn - do normal search. For fast camp on test machine
+    kal_bool                    is_power_on; //for CMCC case 5.1.1: is first search after power on
+    kal_bool                    is_mpsr_trigger;    //for VzW MPSR expired based improvement
+    scan_type_enum              scan_type; 
+    search_period_enum          search_period; // only a suggestion value for RAT switch.
+    /**< Number of valid items in the KAL/MRU list. */
+    kal_uint8                   num_items;
+    /**< RAL/MRU list */
+    cell_band_info_struct       ral_mru_list_info [SYS_MAX_MRU_LIST_NUM];
+    kal_bool                    is_resel_shared_nw; // R13 feature, TS24.301 CR2100
+    kal_bool                    is_quick_search;
+    kal_bool                    is_all_stored;
+    found_mcc_info_struct       found_mcc_info;
+    // NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found
+    kal_bool                    force_ims_ecc_cell; 
+} nwsel_eval_plmn_search_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   trx_id;
+    plmn_search_result_enum     result;
+    kal_bool                    full_band_searched_4g;  // for NWSEL to decide if 2nd round PLMN search is necessary when PLMN is not found
+    kal_bool                    is_eas_plmn_list_present;
+    as_plmn_list_struct         eas_plmn_list;
+    kal_uint8                   multi_plmn_count;
+    plmn_id_struct              multi_selected_plmn[MAX_NUM_MULTI_PLMN];
+    as_cell_type_enum           multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
+    scan_type_enum              scan_type;
+    kal_bool                    is_stored_list_exist; // only for stored search not for fullband + fullband and stored
+    fullband_result_enum        is_fullband_finished;
+    kal_bool                    is_quick_search;
+} nwsel_eval_plmn_search_cnf_struct; 
+
+typedef struct 
+{ 
+    LOCAL_PARA_HDR 
+    kal_uint8                   multi_plmn_count; 
+    plmn_id_struct              multi_plmn_id[MAX_NUM_MULTI_PLMN]; 
+    as_cell_type_enum           multi_cell_type[MAX_NUM_MULTI_PLMN];
+    /// source from cell reselection or search 
+    found_ind_source_enum source;
+} nwsel_eval_plmn_found_ind_struct;
+
+typedef  nwsel_nas_sv_search_status_update_req_struct  nwsel_eval_search_status_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_user_plmn_list_ongoing;
+} nwsel_eval_plmn_list_status_update_req_struct;
+
+//#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                    prefer_ims_emergency;
+} nwsel_eval_search_preference_update_req_struct;
+//#endif
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                  gibi_tag;
+    plmn_id_struct              plmn_id;
+    kal_uint8                   ta_code[2];
+    kal_uint32                  cell_id;  // NWSEL chooses the cell_id and sends back to EMM. Requested by EMM 
+    as_cell_type_enum           cell_type;
+    hplmn_status_enum           hplmn_status;
+    fplmn_status_enum           fplmn_status;
+    kal_bool                    is_in_eq_plmn_list;
+    csg_access_mode_enum        csg_access_mode;
+    csg_info_struct             csg_info;
+//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
+    kal_bool                    ims_emergency_support;
+//#endif
+    kal_uint16                  band; /* MOLY00142657 VZ_REQ_e911_30203, band for VzW RAL and MRU */
+    kal_bool                    match_op_cfg;
+    endc_sib_status_enum        endc_sib_status; /* "endc_sib_status" will be set to "ENDC_SIB_STATUS_SUPPORT" if the corresponding 
+                                                  * bit of selected PLMN in PLMN-InfoList-r15 from SIB2 is TRUE. 
+                                                  */
+    kal_bool                    endc_available;  /* "endc_available" wil be set to TRUE if any bit in PLMN-InfoList-r15 from SIB2 is TRUE */
+#ifdef __NG_ECALL_SUPPORT__
+    kal_bool                    ecall_over_ims_support;
+#endif            
+} nwsel_eval_sys_info_update_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    event_type_enum             event_type_bitmask;
+    update_eplmn_struct         eplmn_info;
+    proc_result_only_struct     proc_result_only;
+    update_param_struct         update_param;
+
+} nwsel_eval_regn_result_ind_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    regn_proc_status_enum       mm_proc_status;         // indicate if MS is in limited or no service
+    plmn_search_status_enum     plmn_search_status;
+    plmn_search_type_enum       plmn_search_type;
+    // sniff RPLMN 
+    // only valid when the conditions hold 
+    // plmn_search_status  == PLMN_SEARCH_UNRELATED
+    // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE)
+    kal_uint8                   plmn_id_count;
+    plmn_id_struct              plmn_id[MAX_NUM_SEARCH_PLMN];
+    kal_bool                    is_send_to_as;
+    kal_bool                    other_rat_found_notify_4G;
+} nwsel_eval_regn_status_update_req_struct;
+
+typedef struct 
+{ 
+    LOCAL_PARA_HDR 
+    network_scan_4g_output_struct   nw_scan_4g_output;
+} nwsel_eval_plmn_scan_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                    is_manual_list;
+    lte_duplex_type_enum        lte_type;
+    kal_uint8                   plmn_id_count;
+    plmn_id_struct              plmn_id[MAX_NUM_SEARCH_PLMN];
+    scan_type_enum              scan_type;
+    kal_bool                    is_mpsr_trigger;   //for VzW MPSR expired based improvement
+    kal_bool                    is_higher_plmn_search;
+    found_mcc_info_struct       found_mcc_info;
+    kal_bool                    list_endc_info; /* LIST ENDC info or not for LTE cell. ERRC will collect SIB2 for PLMN_LIST. */
+} nwsel_eval_plmn_list_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    as_plmn_list_struct         eas_plmn_list;
+    kal_bool                    full_band_searched_4g;
+    scan_type_enum              scan_type;    
+    plmn_list_result_enum       cause;    
+} nwsel_eval_plmn_list_cnf_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    lte_duplex_type_enum        lte_type;
+    kal_uint8                   plmn_count;
+    plmn_id_struct              plmn_id[MAX_NUM_SEARCH_PLMN];  // include RPLMN
+
+} nwsel_eval_csg_list_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    as_csg_list_struct          eas_csg_list;
+
+} nwsel_eval_csg_list_cnf_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    domain_id_enum  conn_domain;
+    kal_bool        is_waiting_cell; //RRC connection release, no cell case, need to wiat ERRC to report a new cell
+    kal_bool        is_t311_expire;  /* RRC connection release due to RRC T311 timer expire */
+} nwsel_eval_out_of_service_ind_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    as_plmn_list_struct         eas_plmn_list;
+    full_band_searched_enum     full_band_searched_3g_status;
+    kal_bool                    full_band_searched_4g;
+    plmn_loss_reason_enum       plmn_loss_reason;
+} nwsel_eval_plmn_loss_ind_struct;
+
+//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   emc_fplmn_count;
+    plmn_id_struct              emc_fplmn_list[MAX_NUM_EMC_FPLMN];
+    // band 0 => all band disabled, bar this PLMN
+    kal_uint16                  emc_fplmn_band[MAX_NUM_EMC_FPLMN];
+} nwsel_eval_emc_fplmn_list_update_req_struct;
+//#endif
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   eq_plmn_count;
+    plmn_id_struct              eq_plmn_id[MAX_NUM_EQ_PLMN];
+    
+} nwsel_eval_eq_plmn_list_update_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   plmn_id_count;
+    plmn_id_struct              plmn_id[MD1_MAX_NUM_HPLMN];
+    kal_uint8                   home_country_mcc[3];
+} nwsel_eval_hplmn_info_update_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    voice_domain_preference_enum    eutran_voice_domain_preference;
+    kal_bool                        is_evdp_changed_by_ims_on_off;
+    ue_mode_enum                    ue_mode;
+    kal_bool                        sms_only;
+    voice_domain_preference_enum    utran_voice_domain_preference;
+    kal_bool                        ims_support;
+    /* EMC specific config*/
+    kal_bool                        is_emc_param_valid;
+    voice_domain_preference_enum    emc_voice_domain_preference;
+    ue_usage_setting_enum           emc_ue_usage_setting;
+} nwsel_eval_uemode_param_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16           t3402_value;   // t3402 value in seconds
+    kal_bool             is_reset_t3402_after_5_attempt_to_attach_fail;
+} nwsel_eval_t3402_change_ind_struct;  // __REL10__: t3402
+
+//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool        prefer_ims_emergency;
+} nwsel_eval_plmn_search_preference_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    emc_status_enum         emc_status;
+    emc_pdn_status_enum     emc_pdn_status;
+} nwsel_eval_emergency_status_update_ind_struct;
+
+
+//#endif // __VOLTE_SUPPORT__
+#if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__))         
+
+typedef errc_sim_protect_req_struct nwsel_eval_power_on_protection_req_struct;
+
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    eutran_cap_enum eutran_cap;  //only use "EUTRAN_DISABLED", for EMM to know if need to reset CService and CExtService
+} nwsel_eval_eutran_cap_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    plmn_based_timer_enum timer_type;
+    timer_status_enum timer_status;
+    plmn_id_struct target_plmn;
+    plmn_restrict_additional_information_enum event;
+} nwsel_eval_plmn_restriction_change_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    //kal_uint8                   req_id; //MD3 can only allow one 1XCSFB session
+    c2k_lte_csfb_req_type_enum  csfb_req_type;
+} nwsel_eval_c2k_csfb_start_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    //kal_uint8                   req_id; //MD3 can only allow one 1XCSFB session
+    c2k_lte_csfb_result_enum    result;
+}  nwsel_eval_c2k_csfb_est_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    c2k_lte_csfb_stop_req_type_enum    cause;
+} nwsel_eval_c2k_csfb_stop_ind_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    irat_type_enum irat_type; // new added, for AS triggered iRAT, need to forward IRAT_COMPLETE_REQ to EMM, for GMSS triggered iRAT, no need to forward. 
+    c2k_irat_attach_result_enum result;
+} nwsel_eval_c2k_irat_complete_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   plmn_id_count;
+    plmn_id_struct              plmn_id[MAX_NUM_SEARCH_PLMN];
+    gmss_rat_enum               c2k_ps_rat; /* C2K or HRPD */
+} nwsel_eval_c2k_normal_service_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_attach_needed; 
+} nwsel_eval_irat_c2l_success_notify_ind_struct;
+
+// should be consistent to nwsel_mm_need_duplex_mode_chg_update_req_struct
+typedef struct
+{
+    LOCAL_PARA_HDR
+    rat_type_enum    target_rat;
+    kal_uint8        freq_num;
+    kal_uint32       redirect_freq[MAX_REDIRECT_FREQ_NUM];
+    mt_csfb_type_enum   mt_csfb_type;
+} nwsel_eval_need_duplex_mode_chg_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    mode_switch_cause_enum  cause;
+} nwsel_eval_global_mode_change_start_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum               rat;   
+    plmn_id_struct         plmn_id;
+    kal_uint16             arfcn;
+    kal_uint16             requested_band;
+} nwsel_eval_set_mru_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    set_mru_result_enum result;  
+} nwsel_eval_set_mru_cnf_struct;
+
+/* VzW requirement for MRU/RAL, only band/channel */
+typedef struct {
+    LOCAL_PARA_HDR  
+    cell_band_info_type_enum    type;
+    plmn_id_struct         plmn_id;
+    kal_uint16             band; 
+} nwsel_eval_cell_band_info_update_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    emm_nwsel_event_enum event;  
+} nwsel_eval_search_interrupt_event_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool  bEvdoEnterConnection;  /* TRUE, means EVDO has been in PS connection state; else, EVDO has been in idle state. */
+} nwsel_eval_evdo_ps_connection_status_ind_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    hvolte_mode_enum    source_hvolte_mode;            /** indicate original hvolte mode */ // enum defined in ims_common_def.h
+    hvolte_mode_enum    target_hvolte_mode;            /** indicate source hvolte mode */ // enum defined in ims_common_def.h
+    kal_bool            is_silent_redial_and_call_ongoing;
+} nwsel_eval_hvolte_mode_change_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool  b1xRttEnterConnection;  /* TRUE, means 1xRTT has been in PS connection state; else, 1xRTT has been in idle state. */
+} nwsel_eval_1xrtt_ps_connection_status_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    aral_op_enum op_code;
+    plmn_id_struct plmn;
+    rat_enum rat;
+    kal_uint8 ara_start[2];
+    kal_uint8 ara_end[2];
+} nwsel_eval_aral_update_req_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    call_status_enum call_status;
+    call_type_indication_enum call_type;
+    kal_bool                  is_flight_mode_on_ecc;    // align rac_gmss_call_status_req_struct
+    rat_enum                  call_current_rat;         // the call start/stop current rat
+} nwsel_eval_call_status_ind_struct;
+
+
+typedef struct{
+    LOCAL_PARA_HDR
+    emc_pdn_status_enum emc_pdn_status;
+}nwsel_eval_update_emc_pdn_status_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum disable_rat;
+} nwsel_eval_rat_disable_config_req_struct;
+
+typedef ia_apn_change_req_struct nwsel_eval_ia_apn_change_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool    normal_oos_recovery_round_present;
+    kal_uint8   normal_oos_recovery_round;  // default value = 5
+    kal_bool    inactive_fullband_period_present;
+    kal_uint16  inactive_fullband_period;   // default = 200s
+    kal_bool    inactive_sniffer_period_present;    
+    kal_uint8   inactive_sniffer_period;    // default = 30s
+    kal_bool    is_inactive_mode_present;
+    kal_bool    is_inactive_mode;           // True: enter inactive mode, False: leave inactive mode
+} nwsel_eval_inactive_mode_configuration_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                    is_over_inactive_mode_threshold;
+} nwsel_eval_service_recovery_round_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool  is_dan_sms_start;
+} nwsel_eval_send_dan_sms_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16  gibi_tag;
+}nwsel_eval_discard_sys_info_update_req_struct;
+#endif   /* ----- #ifndef _NWSEL_EVAL_STRUCT_INC ----- */
+