[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6

MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF  modem version: NA

Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/protocol/interface/l4/l4c2rac_struct.h b/mcu/protocol/interface/l4/l4c2rac_struct.h
new file mode 100644
index 0000000..327cfca
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c2rac_struct.h
@@ -0,0 +1,885 @@
+/*****************************************************************************
+*  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) 2005
+*
+*  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:
+ * ---------
+ *	l4crac_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for structure definition between RAC and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+*  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) 2002
+*
+*******************************************************************************
+ *  FILENAME : l4c2rac_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2RAC_STRUCT_H
+#define _L4C2RAC_STRUCT_H
+
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+#include "mcd_l3_inc_struct.h"
+#include "kal_general_types.h"
+#include "l3_inc_enums.h"
+#include "l3_inc_local.h"
+#include "l4c_common_enum.h"
+#include "l4crac_enums.h"
+#include "sim_public_enum.h"
+#include "ims_common_def.h"
+#include "irat_common_enums.h"
+#include "gmss_public.h"
+#include "rac_gmss_struct.h"
+
+#include "c2k_irat_msg_struct.h"
+#include "l4c_eval_struct.h"
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+} l4crac_act_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+    mm_user_search_type_enum search_type; //mm_user_search_type_enum, erica 20070424, MAUI_00232280
+    mm_user_search_cause_enum search_cause; //used for GSMA SIM block feature
+} l4crac_reg_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+    mm_user_search_type_enum search_type; //mm_user_search_type_enum, erica 20070424, MAUI_00232280
+} l4crac_ps_reg_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+    domain_id_enum service; /* CS/PS/CS_PS*/
+    kal_bool is_poweroff; /* TRUE/FALSE*/
+    l4c_rac_detach_cause_enum detach_cause; /*DETACH_CAUSE_NONE/DETACH_CAUSE_DUPLEX_MODE_CHANGE*/
+    kal_uint8 sim_index; /*which sim is invalid*/
+    rat_enum reject_rat; /*which rat reject the sim*/
+} l4crac_dereg_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rfoff_cause_enum rfoff_cause;
+} l4crac_rfoff_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+    user_list_type_enum user_list_type;
+    rat_enum list_rat;
+    kal_uint8 given_number_of_plmn; // used for the USER_LIST_TYPE_GIVEN_TIMER_NUMBER. When xAS found the given number of plmn, xAS return plmn list cnf (with signal power value). If the number is 255, means feature OFF.
+    kal_uint32 given_timer_period;  //used for the USER_LIST_TYPE_GIVEN_TIMER_NUMBER to guard the plmn list procedure, if the timer timeout, RAC will notify lower layer to update what they found
+    network_scan_input_struct  network_scan_input;
+} l4crac_plmn_list_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+    ms_mobile_class_enum ms_class; /* CC/CG/B*/
+} l4crac_class_change_req_struct;
+
+#if 0 // MOLY00083802 remove band related codes in RAC
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#ifdef __LTE_RAT__
+/* under construction !*/
+/* under construction !*/
+#endif /* __LTE_RAT__ */
+/* under construction !*/
+/* under construction !*/
+#endif
+
+#if defined(__GEMINI__)
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_config_status_enum sim_config_status; // refer to sim_config_status_enum
+    sim_insert_status_enum sim_insert_status; // refer to sim_insert_status_enum
+}l4crac_sim_status_update_req_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; /* source id*/
+    plmn_id_rat_struct plmn_id;
+    //kal_uint8 plmn_sel_mode;
+
+    /* Johnny:
+    AUTO_RESELECTION/MANUAL_RESELECTION, there is no __MANUAL_MODE_NW_SEL__ compile option
+    */
+    plmn_reselection_enum plmn_reselection_mode;
+    rat_enum preference;   //  0:default ,  1:GSM ,   2:UMTS
+    endc_search_enum  endc_search_mode;
+    kal_uint32 factory_mode_arfcn; //FastCampOn 20081104
+#ifdef __CSG_SUPPORT__
+//mtk02475: for Rel8 CSG feature, user can specify CSG id for manual CSG selection
+    kal_bool is_manual_csg_sel;
+    kal_uint32 csg_id;
+#endif
+} l4crac_plmn_search_req_struct;
+
+typedef rac_gmss_abort_enwsel_search_req_struct l4crac_abort_enwsel_search_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    rat_enum rat_mode;
+    kal_bool save_to_nvram; //MAUI_02554068
+}l4crac_set_rat_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+}l4crac_plmn_list_stop_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    prefer_rat_type_enum type;
+    rat_enum prefer_rat;
+    kal_uint32 rat_num;
+    rat_enum rat_order[MAX_SUPPORTED_RAT];
+}l4crac_set_prefer_rat_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    prefer_rat_type_enum type;
+}l4crac_get_prefer_rat_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    susp_resu_mode_enum  mode;
+    susp_resu_action_enum action;
+    kal_uint8            susp_id;
+    susp_resu_source_enum source;
+}l4crac_susp_resu_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    kal_bool is_supporting_roaming;
+    kal_bool disable_international_roaming_support;
+    kal_bool disable_national_roaming_support;
+    kal_bool disable_hhplmn_search_support;
+}l4crac_set_roaming_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    kal_bool force_send_SCRI;
+    end_session_cause_enum cause;
+}l4crac_end_ps_data_session_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    end_session_cause_enum cause;
+}l4crac_end_ps_data_session_ind_struct;
+
+#ifdef __CSG_SUPPORT__
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    plmn_id_rat_struct plmn_id_rat; //mtk02475: user can specified the CSG list scope
+} l4crac_csg_list_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+}l4crac_csg_list_stop_req_struct;
+#endif /* __CSG_SUPPORT__ */
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    l4c_rac_sms_preference_enum     sms_preference;
+    kal_bool                        is_from_provision;
+} l4crac_set_sms_preference_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    kal_bool                        enable;
+} l4crac_set_sms_over_sgs_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum                  src_id;
+    kal_bool                            is_utran_vdp_valid;
+    kal_bool                            is_eutran_vdp_valid;
+    l4_voice_domain_preference_enum     utran_voice_domain_preference;
+    l4_voice_domain_preference_enum     eutran_voice_domain_preference;
+    kal_bool                            is_from_provision;
+} l4crac_set_voice_domain_preference_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    ue_usage_setting_enum           ue_usage_setting;
+} l4crac_set_ue_usage_setting_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    ue_mode_enum                    ue_mode;
+} l4crac_set_ue_mode_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    kal_bool                        is_ims_voice_available;
+} l4crac_set_ims_voice_availability_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    kal_bool                        is_ims_sms_available;
+} l4crac_set_ims_sms_availability_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} l4crac_sim_ready_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    sim_error_cause_enum cause;
+} l4crac_sim_error_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
+} l4crac_set_recovery_search_timer_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    kal_bool result;
+} l4crac_set_recovery_search_timer_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; // need to piggyback to L4C
+} l4crac_get_recovery_search_timer_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id; // piggyback to L4C from REQ
+    kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
+} l4crac_get_recovery_search_timer_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    ps_cause_enum cause;
+} l4crac_eps_attach_needed_rej_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    ct_mode_enum  mode;
+} l4crac_set_ct_mode_req_struct;
+
+
+#if defined(__CDMA2000_RAT__)
+typedef struct
+{
+    LOCAL_PARA_HDR
+    mmdc_recovery_search_enum trigger_type;
+} l4crac_mmdc_recovery_search_req_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    act_sim_enum active_sim;
+}l4crac_active_sim_ind_struct, l4crac_active_sim_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    plmn_id_struct plmn;
+    rat_enum rat;
+    kal_uint8 ara_start[2];
+    kal_uint8 ara_end[2];
+}l4crac_aral_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    ims_reg_state_enum 	            reg_state;
+    ims_reg_type_enum	            reg_type;
+    ims_dereg_cause_enum            dereg_cause;
+    ims_access_rat_enum             rat;
+	kal_bool                        is_retry;
+	kal_uint32 						ext_info;
+} l4crac_ims_reg_status_update_req_struct;
+
+#ifdef __IMS_SUPPORT__
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    kal_bool                        is_ims_voice_support;    
+    kal_bool                        is_ims_sms_support;
+    ims_cap_rat_enum                ims_rat_cap;
+} l4crac_ims_config_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ims_reg_type_enum               reg_type;
+} l4crac_ims_reg_start_req_struct, l4crac_ims_dereg_start_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ims_timer_type_enum             timer_type;
+    ims_timer_status_enum           timer_status;
+    kal_uint16                      timer_length;
+} l4crac_ims_timer_status_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ims_special_event_enum          ims_event;
+    imcb_imc_sip_cause_enum         sip_cause;
+} l4crac_ims_event_update_req_struct;
+
+#endif /* __IMS_SUPPORT__*/
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_ims_roaming_enable;
+} l4crac_set_ims_roaming_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    custom_plmn_type_enum type;
+} l4crac_get_custom_plmn_list_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    custom_plmn_type_enum type;
+    kal_uint8 plmn_ver[2];
+    kal_uint16 no_plmn_entry;
+    kal_uint8 *plmn_data;
+} l4crac_custom_plmn_list_update_req_struct;
+
+#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    mm_ims_voice_termination        mm_ivt;
+} l4crac_set_mm_ims_voice_termination_req_struct;
+#endif /* __VOLTE_SUPPORT__ */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    call_status_enum            call_status;
+    call_type_indication_enum   call_type;
+    kal_bool is_flight_mode_on_ecc;    // GMSS need this flag to determine System/PLMN selection logic during filght mode ECC
+    rat_enum                    call_current_rat;   // the call start/stop current rat
+} l4crac_call_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat;
+} l4crac_set_first_camp_on_prefer_rat_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    emdstatus_md_config_enum md_config;
+    emdstatus_sim_config_enum sim_config;
+} l4crac_md_sim_config_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum              src_id;
+    plmn_id_struct                  plmn_id;
+} l4crac_disable_eutran_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum  src_id;
+    kal_bool geran_tdma;
+    kal_bool utran_fdd;
+    kal_bool utran_tdd_lcr;
+    kal_bool eutran_fdd;
+    kal_bool eutran_tdd;
+    kal_bool nr_fdd;
+    kal_bool nr_tdd;
+    mode_switch_cause_enum  cause;
+} l4crac_duplex_mode_change_req_struct;
+
+ typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+ } l4crac_clear_mru_req_struct;
+
+ typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum     src_id;
+    rat_enum               rat;
+    plmn_id_struct         plmn_id;
+    kal_uint16             arfcn;
+    kal_uint8              requested_band;
+} l4crac_set_mru_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum     src_id;
+    rat_enum               rat;
+    plmn_id_struct         plmn_id;
+} l4crac_set_aux_plmn_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool voice_over_ims_ongoing;
+} l4crac_ims_call_info_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    ims_scm_info_type_enum application;
+    ims_scm_info_action_enum indication;
+} l4crac_ims_scm_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    wm_policy_enum wm_policy;
+} l4crac_set_wm_policy_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool data_enabled_setting;
+    kal_bool data_roaming_setting;
+} l4crac_set_roaming_data_config_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    module_type dst_id;                 // destination module ID
+    omadm_cmd_type_enum cmd;
+    omadm_node_type_enum node_type;     // OMADM node
+    kal_uint32 node_value;              // used only cmd=SET
+} l4crac_omadm_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    mru_cmd_type_enum cmd;
+    mmss_list_type_enum list_type;          // RAL or MRU
+    vzwmru_entry_struct entry;              // used only cmd=EDIT
+} l4crac_vzwmru_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum      src_id;
+    hvolte_mode_enum        mode;
+    kal_bool                is_for_silent_redial;
+    set_hvolte_mode_cause_enum cause;
+} l4crac_set_hvolte_mode_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool mode;      //to indicate the mode=0/1 to RAC
+} l4crac_cs_voice_call_protection_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_main_ps; /* GEMINI : data preferred SIM e.g. internet data*/
+} l4crac_data_allow_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_main_ps; /* GEMINI : data preferred SIM e.g. internet data*/
+} l4cvdm_data_allow_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_user_selected_main_ps; /* GEMINI : user selected data preferred stack e.g. internet data*/
+} l4crac_user_selected_main_ps_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 tw_mode;
+    kal_uint8 setting;
+} l4crac_gmss_set_tw_mode_req_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_apn_enable;
+} l4crac_vzw_admin_apn_setting_notify_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+	kal_bool is_data_service_present;
+    kal_bool is_data_service_on;
+	kal_bool is_data_roaming_service_present;
+	kal_bool is_data_roaming_service_on;
+} l4crac_data_service_status_update_req_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+}l4crac_rsim_auth_abort_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_rsim_enable;
+}l4crac_rsim_set_ps_only_req_struct;
+
+typedef struct {
+	LOCAL_PARA_HDR
+	kal_bool is_rsim_enabled;							/* TRUE when RSIM is enabled, (i.e when AT+ERSIM = 1 is received), FALSE when RSIM is disabled, (i.e when AT+ERSIM = 0 is received)*/
+	kal_bool is_aka_sim_enabled;				   /* TRUE when AKA SIM is enabled (I.E when AT+ERSIMAKA=1 is received), FALSE when AKA SIM is enabled, (i.e when AT+ERSIMAKA = 0 is received) */
+}l4crac_rsim_aka_status_req_struct;
+
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_ct_volte_support;
+} l4crac_volte_status_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum                  src_id;
+} l4crac_reset_ota_ctxt_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+} l4crac_get_last_rat_select_ind_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   src_id;
+    vzw_barring_timer_type_enum timer_type;
+    kal_uint32  timer_interval;  /* in second */
+} l4crac_gmss_set_plmn_barring_timer_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   src_id;
+    kal_bool    result;
+} l4crac_gmss_set_plmn_barring_timer_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   src_id;
+    vzw_barring_timer_type_enum timer_type;
+} l4crac_gmss_get_plmn_barring_timer_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   src_id;
+    kal_uint32  timer_interval;
+} l4crac_gmss_get_plmn_barring_timer_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum disable_rat;
+}l4crac_rat_disable_config_req_struct;  /*TMO diable 2G*/
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 svn;    // BCD type, non reverse
+} l4crac_set_ms_sv_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    fplmn_action_enum action;
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__	
+    kal_bool card_lock;
+#endif	
+    kal_uint8 fplmn_count; 
+    plmn_id_struct fplmn_id[MAX_NUM_FPLMNS];
+} l4crac_fplmn_action_req_struct;
+
+typedef struct {
+    kal_bool is_mobile_data_enable_present;
+    kal_bool is_mobile_data_enable;
+    kal_bool is_mobile_data_roaming_enable_present;
+    kal_bool is_mobile_data_roaming_enable;
+    kal_bool is_volte_enable_present;
+    kal_bool is_volte_enable;
+    kal_bool is_vzw_ims_test_mode_enable_present;
+    kal_bool is_vzw_ims_test_mode_enable;
+} l4crac_cellular_network_config;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4crac_cellular_network_config config;
+}l4crac_cellular_network_config_req_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 purpose;
+	kal_uint8 mode;
+    kal_uint32 timer1;
+	kal_bool is_timer1_valid;
+    kal_uint32 timer2;
+    kal_bool is_timer2_valid;
+}l4crac_set_timer_req_struct;
+#endif
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    module_type user;
+    kal_uint8   src_id;
+    vg_option_enum vg_option_bitmap;
+    kal_uint8 act_operation;    // 0 (default value): no operation, 1: need local release, 2: need local release + trigger NR search
+} l4crac_vg_option_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    module_type user;      // Piggy back
+    kal_uint8   src_id;
+    kal_bool    result;
+} l4crac_vg_option_update_cnf_struct;
+
+//should be the same as mm_emm_csfb_page_rsp_struct
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_accept_paging;   //Whether upper layer decides to answer the mobile terminating CS service
+} l4crac_csfb_page_rsp_struct;
+
+//should be the same as mm_emm_csfb_page_config_req_struct
+typedef struct {
+    LOCAL_PARA_HDR
+    csfb_page_config_enum csfb_page_config;
+    kal_uint8 add_info; // if csfb_page_config is 3 or 4, add_info will be the new timer value
+} l4crac_csfb_page_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_rude_wakeup;
+}l4crac_screen_on_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool normal_oos_recovery_round_present;
+	kal_uint8 normal_oos_recovery_round; /* default value =5, range [2,10] */
+	kal_bool inactive_fullband_period_present;
+	kal_uint16 inactive_fullband_period; /* default value =200s, range [90,360] */
+	kal_bool inactive_sniffer_period_present;
+	kal_uint8 inactive_sniffer_period; /* default value =30s, range [10,60] */
+	kal_bool is_inactive_mode_present;
+	kal_bool is_inactive_mode; /* TRUE: Enter inactive mode, FALSE: Leave inactive mode*/
+    kal_bool inactive_scan_time_present;
+    kal_uint32 inactive_scan_time;
+    kal_bool inactive_sleep_time_present;
+    kal_uint32 inactive_sleep_time;
+} l4crac_inactive_mode_configuration_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               trans_id;
+    ims_service_type_enum   type;
+    ims_service_status_enum status;
+    kal_uint8 src_id; //source id of this message (IMS or VDM)
+} l4crac_uac_param_check_req_struct;    // rac_vgmm_ims_uac_req_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8   trans_id;
+    kal_uint8   src_id; //source id of this message (IMS or VDM)
+} l4crac_uac_abort_req_struct;    // rac_vgmm_ims_uac_abort_req_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ims_service_type_enum   type;
+    ims_service_status_enum status;
+} l4crac_nr_ims_service_status_req_struct;  // rac_vgmm_ims_service_status_req_struct
+
+
+// TODO: Define below struct
+/* Below enums are defined in rac_vgmm_struct.h.
+   rac_vgmm_struct.h includes this header, so this header cannot include it again.
+   Do not use kal_uint8/kal_uint32. The sizes of enums are unpredictable!
+*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} l4crac_emergency_service_fallback_req_struct; // rac_vgmm_emergency_service_fallback_req_struct
+
+typedef l4c_eval_sr_failure_ind_struct l4crac_vgmm_proc_failure_ind_struct;
+
+#if defined(__TC01__) // at%ltecall
+typedef struct{
+	#if defined(__GSM_RAT__)
+	kal_uint8	requested_gsm_band;
+	#endif /* __GSM_RAT__ */
+	#if defined(__UMTS_RAT__)
+	kal_uint8	requested_umts_fdd_band[SIZE_OF_UMTS_BAND];
+	#endif /* __UMTS_RAT__ */
+}custom_factory_ugrac_context_struct;
+
+#ifdef __LTE_RAT__
+typedef struct{
+	kal_uint8	requested_lte_band[SIZE_LTE_BAND];
+}custom_factory_rac_erac_context_struct;
+#endif
+
+typedef struct {
+	kal_uint8	factory_dynamic_band;
+	rat_enum	factory_change_rat;
+	#if defined(__GSM_RAT__) || defined(__UMTS_RAT__)
+	custom_factory_ugrac_context_struct	ugrac;
+	#endif
+	#if defined(__LTE_RAT__)
+	custom_factory_rac_erac_context_struct	erac;
+	#endif /* __LTE_RAT__ */
+	kal_uint8 initial_lte_call;
+}custom_factory_band_context_struct;
+#endif /* __TC01__ */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool high_prio_timer_config;
+} l4crac_high_prio_search_timer_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_source_id_enum src_id;
+    kal_bool is_disable_integrity_check; //KAL_TRUE to disable integirty check
+ } l4crac_set_save_rac_preference_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool ims_pdn_activation_ongoing;
+ } l4crac_ims_pdn_activation_req_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ecall_registration_state_enum  ecall_reg_state;
+} l4crac_set_ecall_registration_req_struct;
+#endif /* (__ECALL_SUPPORT__) || (__NG_ECALL_SUPPORT__) */
+typedef rac_gmss_set_allowed_mcc_list_req_struct l4crac_set_allowed_mcc_list_req_struct;
+
+typedef rac_gmss_set_allowed_mcc_list_cnf_struct l4crac_set_allowed_mcc_list_cnf_struct;
+#endif /* _L4C2RAC_STRUCT_H */
+