blob: ab06bfe975eaf738413a79ace4d192170d3776ed [file] [log] [blame]
/*****************************************************************************
* 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 */