[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/mm_ratcm_struct.h b/mcu/protocol/interface/general/mm_ratcm_struct.h
new file mode 100644
index 0000000..ab06bfe
--- /dev/null
+++ b/mcu/protocol/interface/general/mm_ratcm_struct.h
@@ -0,0 +1,783 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mm_ratcm_struct.h
+ *
+ * Project:
+ * --------
+ * MONZA
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ******************************************************************************/
+
+#ifndef MM_RATCM_STRUCT_H
+#define MM_RATCM_STRUCT_H
+
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "l3llc_enums.h"
+#include "mmllc_enums.h"
+#include "as2nas_struct.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "ps_public_enum.h"
+#include "mm_ratcm_enums.h"
+#include "rsvas_enum.h"
+#include "kal_public_defs.h"
+#include "irat_common_struct.h"
+#include "irat_common_enums.h"
+#include "nas_as_inter_core_enum.h"
+#include "gmss_public.h"
+#include "nwsel_mm_struct.h"
+
+#include "nas_sv_struct.h"
+
+#include "ratcm_rrce_struct.h"
+#include "ratcm_csce_struct.h"
+#include "mmi2mm_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rfoff_cause_enum rfoff_cause;
+} mm_ratcm_rfoff_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ rat_enum reported_rat;
+ rat_enum active_rat;
+} mm_ratcm_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ mm_cause_enum cause;
+} mm_ratcm_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 drx_para[2]; /* for split paging cycle and non-drx timer */
+ kal_uint8 imeisv_value_digit0;
+ kal_uint8 imeisv_value_digit_byte[8];
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+ gprs_transfer_preference_enum prefer;
+#endif
+ init_cause_enum init_cause;
+} mm_ratcm_init_req_struct;
+
+
+typedef nwsel_nas_sv_plmn_search_req_struct mm_ratcm_plmn_search_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ plmn_search_result_enum result;
+ rat_enum rat;
+ plmn_id_struct selected_plmn;
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+ as_cell_type_enum selected_cell_type; //20081027
+ 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;
+} mm_ratcm_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];
+ rat_enum rat;
+ /// source from cell reselection or search
+ found_ind_source_enum source;
+} mm_ratcm_plmn_found_ind_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];
+} mm_ratcm_hplmn_info_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 la_code[2];
+ forbidden_la_type_enum forbidden_la_type; /* forbidden_la_type_enum */
+ plmn_id_struct plmn_id;
+} mm_ratcm_add_forbidden_la_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 la_code[2];
+ plmn_id_struct plmn_id;
+ kal_bool delete_all;
+} mm_ratcm_del_forbidden_la_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ csg_update_type_enum csg_update_type;
+ plmn_id_struct plmn_id;
+ kal_uint32 csg_id;
+} mm_ratcm_update_allowed_csg_list_req_struct;
+
+typedef mm_sys_info_ind_struct mm_ratcm_sys_info_ind_struct;
+typedef mm_cell_global_identity_info_ind_struct mm_ratcm_cell_global_identity_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+ csfb_indicator_enum csfb_ind;
+#ifdef __GEMINI__
+ as_suspend_mode_reason_enum cause; /* for RR suspend mode */
+#endif /* __GEMINI__ */
+ plmn_loss_reason_enum plmn_loss_reason;
+} mm_ratcm_plmn_loss_ind_struct;
+
+typedef nas_sv_mm_plmn_list_req_struct mm_ratcm_plmn_list_req_struct;
+
+typedef nwsel_mm_plmn_list_status_update_req_struct mm_ratcm_plmn_list_status_update_req_struct;
+
+typedef nas_sv_mm_plmn_list_cnf_struct mm_ratcm_plmn_list_cnf_struct;
+
+typedef nas_sv_mm_csg_list_req_struct mm_ratcm_csg_list_req_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ RATCM_RRC_PagingCause paging_cause;
+ domain_id_enum cn_domain_id;
+ ue_id_type_enum ue_id_type;
+} mm_ratcm_page_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 old_tlli;
+ kal_uint32 new_tlli;
+ tlli_update_type_enum status_tlli;
+ rai_struct rai;
+} mm_ratcm_tlli_assign_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_tmsi_lai_present;
+ kal_uint8 tmsi[4];
+ kal_bool is_lai_abnormal; /* MAUI_01959495 */
+ lai_struct reg_lai;
+ kal_bool is_ptmsi_rai_present;
+ kal_uint8 ptmsi[4];
+ kal_bool is_rai_abnormal; /* MAUI_01959495 */
+ rai_struct reg_rai;
+ kal_uint8 umts_ps_drx_clc;
+} mm_ratcm_paging_param_assign_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ kal_bool is_new_keys;
+ kal_uint8 cksn;
+ kal_bool gsm_cipher_key_infoP;
+ kal_uint8 gsm_cipher_key_info[KC_LEN];
+ kal_bool gsm_cipher_key128_infoP;
+ kal_uint8 gsm_cipher_key128_info[KC128_LEN];
+ kal_uint8 ps_cipher_algo;
+ kal_bool umts_keys_infoP;
+ kal_uint8 umts_cipher_key_info[CK_LEN];
+ kal_uint8 umts_integrity_key_info[IK_LEN];
+ kal_bool is_power_on; // for TS 24.008 CR1994
+} mm_ratcm_security_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sync_ind_cause_enum cause;
+ channel_type_enum channel_type; /* channel_type_enum */
+ channel_mode_enum channel_mode; /* channel_mode_enum */
+ kal_uint8 si;
+ kal_bool is_cipher_on;
+} mm_ratcm_sync_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ kal_bool is_integrity_enabled;
+ Ciphering_Status umts_ciphering_status;
+ kal_uint8 service_req_mui;
+} mm_ratcm_security_mode_complete_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ Ciphering_Status umts_ciphering_status; /* Ciphering_Status */
+} mm_ratcm_security_mode_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mui;
+ kal_uint16 gibi_tag;
+ domain_id_enum cn_domain_id;
+ mm_ratcm_est_cause_enum estb_cause;
+ peer_msg_id_struct peer_msg_id;
+ kal_bool is_service_req;
+#if defined (__R6_DSAC__) || defined (UNIT_TEST)
+ kal_bool is_dsac_present;
+ kal_uint16 selected_dsac_info;
+#endif
+ plmn_id_struct selected_plmn;
+
+#if defined(__PPACR_SUPPORT__) || defined (UNIT_TEST)
+ ppac_checked_type_enum PPACCheckedType;
+ kal_uint16 selectedPPACInfo; //used by PPAC_LR_ALLOWED
+#endif
+
+#ifdef __LTE_RAT__
+ csfb_indicator_enum csfb_indicator;
+ csfb_service_type_enum csfb_service_type;
+#endif /* __LTE_RAT__*/
+ rat_enum current_rat; /* CELL_CHANGE_FINISH is in MM external queue and MM current rat is still source rat *
+ * RATCM should reject conn_est_req when current_rat is not match RATCM active rat */
+ kal_bool is_imsi_detach_for_power_off;
+} mm_ratcm_conn_est_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ as_est_cnf_cause_enum result;
+ kal_bool wait_gibi_flag;
+ kal_bool is_rrc_conn_already_existed;
+} mm_ratcm_conn_est_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ domain_id_enum cn_domain_id;
+ kal_bool is_t3126_expiry;
+} mm_ratcm_conn_est_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ as_rel_scope_enum scope;
+ conn_rel_cause_enum cause;
+} mm_ratcm_conn_rel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ as_rel_scope_enum scope;
+ kal_bool ps_resume_flag;
+ kal_bool wait_gibi_flag;
+ kal_bool wait_rrc_connection_release_ind;
+} mm_ratcm_conn_rel_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum cn_domain_id;
+ RATCM_RRC_ReleaseCause cause;
+ kal_bool ps_resume_flag;
+ kal_bool wait_gibi_flag;
+ kal_bool wait_rrc_connection_release_ind;
+} mm_ratcm_conn_rel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ regn_proc_status_enum mm_proc_status;
+ kal_uint32 t3212_or_t3302;
+ gmm_ms_state_enum ms_state;
+ mmas_regn_status_enum regn_status;
+ plmn_search_status_enum plmn_search_status;
+ plmn_search_type_enum plmn_search_type; /* new plmn search type */
+ lai_struct lai; /* for GAS bar cell */
+ kal_uint32 cell_id; /* for GAS bar cell */
+} mm_ratcm_regn_status_req_struct;
+
+typedef mm_ratcm_regn_status_req_struct mm_ratcm_regn_status_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ action_on_ready_timer_enum action;
+ gmm_ms_state_enum new_state;
+ kal_uint32 value;
+} mm_ratcm_ready_timer_update_req_struct; /* should be same as ratcm_gas_ready_timer_update_req_struct. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ready_timer_status_enum status;
+} mm_ratcm_ready_timer_update_ind_struct; /* should be same as ratcm_gas_ready_timer_update_ind_struct. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_gprs_required;
+} mm_ratcm_service_change_req_struct; /* Should same as ratcm_gas_service_change_req_struct. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mui;
+ kal_uint16 gibi_tag;
+ DC_Priority priority;
+ kal_bool is_service_req;
+ kal_bool is_imsi_detach_for_power_off;
+ peer_msg_id_struct peer_msg_id;
+} mm_ratcm_cs_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_integrity_applied;
+} mm_ratcm_cs_data_ind_struct;
+typedef struct {
+ LOCAL_PARA_HDR
+ peer_msg_id_struct peer_msg_id;
+ DC_Status status;
+} mm_ratcm_cs_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mui;
+ kal_uint16 gibi_tag;
+ llc_sapi_enum sapi;
+ rp_enum radio_priority;
+ kal_uint8 cipher_ind;
+ res_req_cause msg_type;
+ kal_uint8 nsapi;
+ kal_uint32 tlli;
+ kal_uint8 pfi;
+ concise_qos_struct qos_param;
+ peer_msg_id_struct peer_msg_id;
+} mm_ratcm_ps_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ //kal_uint8 mui;
+ DC_Status status;
+ peer_msg_id_struct peer_msg_id;
+} mm_ratcm_ps_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_integrity_applied;
+ kal_uint32 tlli;
+} mm_ratcm_ps_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_cs_reset_keys;
+ kal_bool is_ps_reset_keys;
+} mm_ratcm_reset_keys_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 tlli;
+} mm_ratcm_llc_resume_req_struct; /* Should be same as ratcm_llc_resume_req_struct */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 tlli;
+} mm_ratcm_llc_suspend_req_struct; /* Should be same as ratcm_llc_suspend_req_struct */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 tlli;
+ res_req_cause cause; /* res_req_cause */
+ llgmm_cell_update_type_enum cell_update_type; /* llgmm_cell_update_type_enum */
+} mm_ratcm_llc_trigger_req_struct; /* Should be same as ratcm_llc_trigger_req_struct */
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_expiry; /*KAL_TRUE: T3122 expires, MM will retry LU immediately
+ KAL_FALSE: T3122 is stopped */
+} mm_ratcm_t3122_timeout_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_expiry; /*KAL_TRUE: CCO activation time expires, MM will retry LU immediately
+ KAL_FALSE: CCO activation time is stopped */
+} mm_ratcm_cco_activation_time_timeout_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} mm_ratcm_signal_appear_ind_struct;
+
+#ifdef __DYNAMIC_BAND_SEL__
+typedef struct {
+ LOCAL_PARA_HDR
+ band_selection_enum gsm_band; /* refer to band_selection_enum value*/
+ kal_bool is_gsm_band_present;
+ kal_uint8 umts_fdd_band[SIZE_OF_UMTS_BAND]; /* 3G band change */
+ kal_bool is_umts_band_present; /* 3G band change */
+}mm_ratcm_set_preferred_band_req_struct;
+#endif
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_config_status_enum sim_config_status;
+ sim_insert_status_enum sim_insert_status;
+} mm_ratcm_sim_status_update_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+} mm_ratcm_suspend_ind_struct;
+
+
+//mtk02475: local param struct is only exist in GEMINI 2.0 project
+typedef struct {
+ LOCAL_PARA_HDR
+ as_gemini_status_enum as_gemini_status;
+} mm_ratcm_resume_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ as_gemini_status_enum as_gemini_status;
+} mm_ratcm_virtual_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ as_gemini_status_enum as_gemini_status;
+} mm_ratcm_uas_virtual_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ gprs_transfer_preference_enum prefer;
+} mm_ratcm_set_gprs_transfer_preference_req_struct;
+#endif /* __GEMINI__ */
+
+/* MAUI_02852442, __NO_PSDATA_SEND_SCRI__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool force_send_SCRI;
+ end_session_cause_enum cause;
+}mm_ratcm_end_ps_data_session_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ end_session_result_enum cause;
+}mm_ratcm_end_ps_data_session_cnf_struct;
+/* __NO_PSDATA_SEND_SCRI__ */
+
+#ifdef __TC7__CS__SUPPORT__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool isForceLau;
+} mm_ratcm_cell_change_start_ind_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ domain_id_enum connection_domain;
+ kal_bool is_gibi_tag_valid;
+ kal_uint16 gibi_tag;
+} mm_ratcm_cell_change_finish_ind_struct;
+
+/* MAUI_03101878, [Silver Clam][CV][SilverClam-94]Pre-CV-CMAS: GPRS failed due to timeout */
+typedef struct {
+ LOCAL_PARA_HDR
+ lai_struct current_lai;
+} mm_ratcm_cb_loc_update_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ nas_req_gemini_ps_high_sem_enum gemini_ps_high_sem_status;
+} mm_ratcm_uas_gemini_ps_high_sem_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool is_sim_inserted;
+ kal_bool is_delete_pending;
+} mm_ratcm_sim_info_reset_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ RATCM_RRC_LocalReleaseType localReleaseType;
+ kal_uint16 locally_released_PS_RAB_bitmap;
+ //traffic_class_enum max_traffic_class;
+} mm_ratcm_local_release_ind_struct;
+
+//__LTE__
+typedef struct{
+ LOCAL_PARA_HDR
+ eutran_cap_enum eutran_cap;
+} mm_ratcm_eutran_cap_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+} mm_ratcm_eutran_cap_update_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type; //Indicates the inter-RAT type
+ rat_type_enum source_rat; //Source RAT (GAS or UAS)
+ rat_type_enum target_rat; //Target RAT (Should be EAS)
+ void* as_info_ptr; //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
+ //The buffer will be freed by soure or target AS
+ ratcm_gas_security_mode_req_struct gas_security; //Indicates the GERAN security context if target_rat is GAS.
+ //Note that if the RAT change is failed and return to LTE, the security context should be reverted to the original one. NAS will send RATCM_GAS_SECURITY_MODE_REQ to update the original security information when NAS receives RAT_CHANGE_CNF indicated that the inter-RAT procedure is failed.
+ uas_security_context_struct uas_security[2]; //Indicates the UTRAN security context if target_rat is UAS.
+ //Note that if the RAT change is failed and return to LTE, the security information should be reverted to the original one. NAS will send RATCM_RRCE_SECURITY_MODE_REQ to update the original security information when NAS receives RAT_CHANGE_CNF indicated that the inter-RAT procedure is failed.
+ csfb_indicator_enum csfb_indicator; //Indicate that the purpose of current inter-RAT change is for CS fallback which is combined the information (MobilityFromEutra) from ERRC and the processing type of CSFB in EMM.
+ loopback_mode_status_enum loopback_mode_status; //Notify RATCM to enter test mode for LTE-LBM mode B
+ kal_bool is_lai_valid; //CSFB enhancement
+ lai_struct lai; //CSFB enhancement
+ kal_bool is_srvcc; //SRVCC support. If is_srvcc=KAL_TRUE, it means RATCM vsd_mod is 4. (is_r99_nw = KAL_TRUE)
+ kal_bool is_mapped_rai_valid; // For 4G3 HO, AS may not have valid plmn id. AS will derive plmn id from mapped rai.
+ rai_struct mapped_rai;
+} mm_ratcm_rat_change_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type; //Indicates the inter-RAT type
+ rat_type_enum source_rat; //Source RAT
+ rat_type_enum target_rat; //Target RAT
+ irat_result_enum irat_result; //The result of inter-RAT change
+ void* as_info_ptr; //The pointer of AS container information
+ domain_id_enum connection_domain; //Indicates that the current connection domain for the target RAT
+ kal_bool is_gibi_tag_valid;
+ kal_uint16 gibi_tag;
+} mm_ratcm_rat_change_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat; //Source RAT (GAS or UAS)
+ rat_type_enum target_rat; //Target RAT (Should be EAS)
+ void* as_info_ptr; //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
+ //The buffer will be freed by soure or target AS
+ kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
+ //NAS security parameter (Only valid for IRHO from UAS)
+ //Byte1 ~ 4: NouceMME
+ //Byte5: Selected Algorithm (Ciphering/Integrity)
+ //Byte6: eKSI (including type of security context)
+} mm_ratcm_rat_change_ind_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat; //Source RAT (GAS or UAS)
+ rat_type_enum target_rat; //Target RAT (Should be EAS)
+ irat_result_enum irat_result; //The result of inter-RAT change
+ irat_reject_cause_enum irat_reject_cause; //Reject cause when irat_result is equal to IR_RESULT_REJECT.
+ void* as_info_ptr; //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
+ //The buffer will be freed by soure or target AS
+} mm_ratcm_rat_change_rsp_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ paging_type_enum paging_type;
+ csfb_service_type_enum paging_service;
+ kal_bool is_paging_retry;
+}mm_ratcm_page_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_completed;
+}mm_ratcm_deactivate_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ cs_status_enum status;
+} mm_ratcm_cs_status_update_req_struct;
+
+/*For TDD call clearing optimization*/
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} mm_ratcm_force_rel_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 imeisv_value_digit0;
+ kal_uint8 imeisv_value_digit_byte[8];
+}mm_ratcm_set_imei_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_pch_state;
+}mm_ratcm_rrc_state_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat_mode;
+ kal_bool is_pgcheck_on;
+}mm_ratcm_set_pgcheck_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ umts_duplex_mode_type source_umts_duplex_mode;
+ umts_duplex_mode_type target_umts_duplex_mode;
+ lte_duplex_mode_type source_lte_duplex_mode;
+ lte_duplex_mode_type target_lte_duplex_mode;
+ mode_switch_cause_enum cause;
+} mm_ratcm_duplex_mode_change_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+} mm_ratcm_duplex_mode_change_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint16 arfcn;
+ kal_uint8 requested_band;
+} mm_ratcm_set_mru_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ set_mru_result_enum result;
+} mm_ratcm_set_mru_cnf_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];
+} mm_ratcm_aral_update_req_struct;
+
+typedef nwsel_mm_emc_forbidden_nw_list_update_req_struct mm_ratcm_emc_forbidden_nw_list_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ call_status_enum call_status;
+ call_type_indication_enum call_type;
+} mm_ratcm_call_status_ind_struct;
+typedef nwsel_mm_rat_disable_config_req_struct mm_ratcm_rat_disable_config_req_struct;
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 imeisv_value_digit0;
+ kal_uint8 imeisv_value_digit_byte[8];
+} mm_ratcm_set_imei_sv_req_struct;
+
+typedef ratcm_rrce_conn_loss_ind_struct mm_ratcm_conn_loss_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_auth_download_ongoing;
+} mm_ratcm_rsim_auth_download_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_over_inactive_mode_threshold; // True: recovery counter > normal_oos_recovery_round
+} mm_ratcm_service_recovery_round_update_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 = 200s, range: [90, 360]
+ kal_bool inactive_sniffer_period_present;
+ kal_uint8 inactive_sniffer_period; // default = 30s, range: [10, 60]
+ kal_bool is_inactive_mode_present;
+ kal_bool is_inactive_mode; // True: enter inactive mode, False: leave inactive mode
+} mm_ratcm_inactive_mode_configuration_req_struct;
+
+//MSG_ID_MM_RATCM_LTE_NORMAL_SERVICE_LOSS_UPDATE_REQ
+typedef gmmreg_lte_normal_service_loss_update_req_struct mm_ratcm_lte_normal_service_loss_update_req_struct ;
+
+//MSG_ID_MM_RATCM_END_PS_DATA_SESSION_IND
+typedef ratcm_csce_end_ps_data_session_ind_struct mm_ratcm_end_ps_data_session_ind_struct ;
+
+//MSG_ID_MM_RATCM_NO_CC_DATA_DETECT_IND
+typedef ratcm_rrce_no_cc_data_detect_ind_struct mm_ratcm_no_cc_data_detect_ind_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_data_allowed;
+} mm_ratcm_data_allow_req_struct;
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ network_scan_23g_union nw_scan_23g_output;
+} mm_ratcm_plmn_scan_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn_id;
+} mm_ratcm_plmn_info_update_req_struct;
+
+#endif /* MM_RATCM_STRUCT_H */