| /***************************************************************************** |
| * 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: |
| * --------- |
| * nwsel_mm_struct.h |
| * |
| * Project: |
| * -------- |
| * MONZA |
| * |
| * Description: |
| * ------------ |
| * This file define the interface structure used by NWSEL_MM SAP |
| * |
| * Author: |
| * ------- |
| * ------- |
| * |
| ******************************************************************************/ |
| |
| #ifndef NWSEL_MM_STRUCT_H |
| #define NWSEL_MM_STRUCT_H |
| |
| #include "l3_inc_enums.h" |
| #include "mcd_l3_inc_struct.h" |
| #include "l3_inc_local.h" |
| #include "as2nas_struct.h" |
| #include "mcd_l3_inc_gprs_struct.h" |
| #include "ps_public_enum.h" |
| #include "rsvas_enum.h" |
| #include "mm_mmi_enums.h" |
| #include "mm_ratcm_enums.h" |
| #include "gmss_nwsel_struct.h" |
| |
| 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; |
| } nwsel_mm_plmn_found_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_plmn_search_lte_ongoing; |
| as_cell_type_enum cell_type; // 4G camped on cell type |
| } nwsel_mm_search_status_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint16 gibi_tag; |
| rat_enum rat; |
| kal_bool is_data_pending; |
| kal_bool is_sys_info_present; |
| hplmn_status_enum hplmn_status; |
| fplmn_status_enum fplmn_status; |
| kal_bool is_in_eq_plmn_list; |
| mm_cell_change_enum abnormal_cell_change; |
| mm_cell_change_enum abnormal_rai_cell_change; |
| plmn_id_struct plmn_id; |
| kal_uint8 la_code[2]; |
| kal_uint8 ra_code; |
| kal_uint32 cell_id; //mtk02475: extended cell id in UMTS |
| kal_bool cell_support_cs; |
| kal_bool cell_support_ps; /* if FALSE, nmo and ra_code should not refer. */ |
| kal_bool is_acc_class_present; |
| kal_uint16 acc_class; |
| kal_uint8 extra_info_bitmask; /* mtk02475: for DSAC/data_speed_support update in connected mode*/ |
| #if defined (__R6_DSAC__) || defined (UNIT_TEST) |
| kal_bool is_dsac_present; |
| kal_uint16 cs_dsac; |
| kal_uint16 ps_dsac; |
| #endif |
| kal_uint8 t3212_timer_val; |
| network_mode_enum nmo; |
| as_cell_type_enum cell_type; |
| att_flag_enum att_flag; |
| kal_bool mscr; |
| rr_mm_sgsnr_flag_enum sgsnr; |
| #ifdef __PS_SERVICE__ |
| data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */ |
| #endif |
| |
| #if defined (__PPACR_SUPPORT__) || defined (UNIT_TEST) |
| kal_bool is_ppacr_present; |
| ppacr_info_struct ppacr_info; |
| #endif |
| |
| csg_access_mode_enum csg_access_mode; |
| csg_info_struct csg_info; |
| |
| #ifdef __LTE_RAT__ |
| kal_bool is_gprs_info_in_si13_deferred; |
| #endif |
| kal_uint8 band; |
| } nwsel_mm_sys_info_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint32 cell_id; |
| kal_bool is_la_valid; |
| kal_uint8 la_code[2]; |
| kal_bool is_ra_valid; |
| kal_uint8 ra_code; |
| plmn_id_struct plmn_id; |
| kal_bool is_on_hplmn; |
| } nwsel_mm_cell_global_identity_info_update_req_struct; |
| |
| typedef mm_cell_global_identity_info_ind_struct nwsel_mm_cell_global_identity_info_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| mode_switch_cause_enum cause; |
| } nwsel_mm_global_mode_change_start_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_mm_need_duplex_mode_chg_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_as_plmn_list_present; |
| as_plmn_list_struct as_plmn_list; |
| #ifdef __GEMINI__ |
| as_suspend_mode_reason_enum cause; /* for RR suspend mode */ |
| #endif /* __GEMINI__ */ |
| csfb_indicator_enum csfb_ind; |
| kal_bool is_nas_csfb_ongoing; |
| plmn_loss_reason_enum plmn_loss_reason; |
| } nwsel_mm_plmn_loss_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_bool is_manual_list; |
| scan_type_enum scan_type; |
| kal_uint8 plmn_count; |
| plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN]; |
| found_mcc_info_struct found_mcc_info; |
| } nwsel_mm_plmn_list_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_user_plmn_list_ongoing; |
| } nwsel_mm_plmn_list_status_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_uas_plmn_list_present; |
| as_plmn_list_struct uas_plmn_list; |
| kal_bool is_gas_plmn_list_present; |
| as_plmn_list_struct gas_plmn_list; |
| scan_type_enum scan_type; |
| plmn_list_result_enum cause; |
| } nwsel_mm_plmn_list_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint8 plmn_count; |
| plmn_id_struct plmn_id[MAX_NUM_EQ_PLMN]; |
| } nwsel_mm_csg_list_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| //kal_bool is_uas_csg_list_present; |
| as_csg_list_struct uas_csg_list; |
| } nwsel_mm_csg_list_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]; |
| }nwsel_mm_aral_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| regn_proc_status_enum nwsel_proc_status; |
| plmn_search_status_enum plmn_search_status; |
| plmn_search_type_enum plmn_search_type; /* new plmn search type */ |
| kal_bool is_send_to_as; |
| } nwsel_mm_regn_status_update_req_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[2]; /* 3G band change */ |
| kal_bool is_umts_band_present; /* 3G band change */ |
| }nwsel_mm_set_preferred_band_req_struct; |
| #endif |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| lr_result_enum lr_result; |
| mm_cause_enum lr_cause; |
| mm_proc_enum mm_proc; |
| kal_uint8 attempt_counter; //update only when lr_proc needed |
| plmn_id_struct rplmn; //from stored lai. Valid when LR_ACCEPT & LR_ACCEPT_PS_ONLY |
| kal_bool forbidden_plmn_update_not_allowed; /*MM may change NW reject cause, and no need to add forbidden PLMN */ |
| kal_bool is_update_eq_plmn_needed; /* always check; indicate if NWSEL need to update EPLMN */ |
| kal_uint8 eq_plmn_byte_count; |
| kal_uint8 eq_plmn_id[MAX_NUM_EQ_PLMN*3]; /* the EPLMN list from NW; 3 is NWSEL_PLMN_LEN */ |
| kal_bool is_back_to_abnormal_la; |
| kal_bool is_rau_performed; |
| kal_bool is_stored_lai_same_as_current; |
| kal_bool stored_lai_valid; |
| kal_bool stored_rai_valid; |
| gsm_state_enum gsm_attach_state; |
| gprs_state_enum gprs_attach_state; |
| gsm_update_status_enum gsm_update_status; |
| gprs_update_status_enum gprs_update_status; |
| mm_check_ecall_status_enum ecall_status; |
| kal_bool is_mobility_rau; /*To check whether update_type is periodic rau or mobility rau */ |
| integ_protect_status_enum is_integ_protected; |
| kal_uint8 invalid_cs_sim_counter; |
| kal_uint8 invalid_ps_sim_counter; |
| } nwsel_mm_regn_result_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| domain_id_enum conn_domain; |
| } nwsel_mm_out_of_service_ind_struct; |
| |
| #ifdef __GEMINI__ |
| typedef struct { |
| LOCAL_PARA_HDR |
| as_suspend_mode_reason_enum cause; |
| } nwsel_mm_suspend_ind_struct; |
| |
| //mtk02475: local param struct is only exist in GEMINI 2.0 project |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_virtual_idle_mode; |
| } nwsel_mm_resume_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_virtual_idle_mode; |
| kal_bool is_in_connected; |
| /*Naming is "is_in_connected but it is expected that GMM updates only |
| virtual_connected state to NWSEL"*/ |
| } nwsel_mm_virtual_mode_ind_struct; |
| #endif /* __GEMINI__ */ |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| mm_event_type_enum event; |
| } nwsel_mm_event_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN]; //MAX_NUM_HPLMN: 4 |
| kal_uint8 home_country_mcc[3]; |
| } nwsel_mm_hplmn_info_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| eutran_cap_enum eutran_cap; |
| kal_bool is_eucap_sysinfo_triggered; |
| } nwsel_mm_eutran_cap_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_successful; |
| } nwsel_mm_eutran_cap_update_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| voice_domain_preference_enum utran_voice_domain_preference; |
| kal_bool is_eutran_param_updated; /* if FALSE, the following parameters are invalid */ |
| kal_bool is_eutran_vdp_or_ue_usage_changed; |
| voice_domain_preference_enum eutran_voice_domain_preference; |
| ue_usage_setting_enum ue_usage_setting; |
| eutran_cap_update_wait_status_enum eutran_cap_update_wait_status; |
| } nwsel_mm_voice_prefer_ue_usage_update_req_struct; |
| |
| /* 24.008 CR# 2109 Start */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_manual_sel; |
| } nwsel_mm_manual_mode_update_req_struct; |
| /* 24.008 CR# 2109 End */ |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| plmn_id_struct plmn_id; |
| kal_uint16 arfcn; |
| kal_uint8 requested_band; |
| } nwsel_mm_set_mru_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| set_mru_result_enum result; |
| } nwsel_mm_set_mru_cnf_struct; |
| |
| /* VzW requirement for MRU/RAL, only band/channel */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| cell_band_info_type_enum type; |
| rat_enum rat; |
| plmn_id_struct plmn_id; |
| kal_uint8 band; |
| } nwsel_mm_cell_band_info_update_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint8 num_of_nw; |
| emc_forbidden_nw_list_struct nw_list[MAX_FORBIDDEN_NETWORK_NUM]; |
| } nwsel_mm_emc_forbidden_nw_list_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| call_status_enum call_status; |
| call_type_indication_enum call_type; |
| } nwsel_mm_call_status_ind_struct; |
| |
| typedef gmss_nwsel_rat_disable_config_req_struct nwsel_mm_rat_disable_config_req_struct; |
| |
| typedef gmss_nwsel_inactive_mode_configuration_req_struct nwsel_mm_inactive_mode_configuration_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_over_inactive_mode_threshold; // True: recovery counter > normal_oos_recovery_round |
| } nwsel_mm_service_recovery_round_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| network_scan_23g_union nw_scan_23g_output; |
| }nwsel_mm_plmn_scan_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| plmn_id_struct plmn_id; |
| } nwsel_mm_plmn_info_update_req_struct; |
| |
| |
| #endif /* NWSEL_MM_STRUCT_H */ |