rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | /***************************************************************************** |
| 2 | * Copyright Statement: |
| 3 | * -------------------- |
| 4 | * This software is protected by Copyright and the information contained |
| 5 | * herein is confidential. The software may not be copied and the information |
| 6 | * contained herein may not be used or disclosed except with the written |
| 7 | * permission of MediaTek Inc. (C) 2005 |
| 8 | * |
| 9 | * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| 10 | * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
| 11 | * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| 12 | * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| 13 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| 14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| 15 | * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| 16 | * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| 17 | * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| 18 | * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| 19 | * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| 20 | * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| 21 | * |
| 22 | * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| 23 | * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| 24 | * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| 25 | * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| 26 | * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| 27 | * |
| 28 | * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| 29 | * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| 30 | * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| 31 | * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| 32 | * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| 33 | * |
| 34 | *****************************************************************************/ |
| 35 | |
| 36 | /******************************************************************************* |
| 37 | * Filename: |
| 38 | * --------- |
| 39 | * nwsel_mm_struct.h |
| 40 | * |
| 41 | * Project: |
| 42 | * -------- |
| 43 | * MONZA |
| 44 | * |
| 45 | * Description: |
| 46 | * ------------ |
| 47 | * This file define the interface structure used by NWSEL_MM SAP |
| 48 | * |
| 49 | * Author: |
| 50 | * ------- |
| 51 | * ------- |
| 52 | * |
| 53 | ******************************************************************************/ |
| 54 | |
| 55 | #ifndef NWSEL_MM_STRUCT_H |
| 56 | #define NWSEL_MM_STRUCT_H |
| 57 | |
| 58 | #include "l3_inc_enums.h" |
| 59 | #include "mcd_l3_inc_struct.h" |
| 60 | #include "l3_inc_local.h" |
| 61 | #include "as2nas_struct.h" |
| 62 | #include "mcd_l3_inc_gprs_struct.h" |
| 63 | #include "ps_public_enum.h" |
| 64 | #include "rsvas_enum.h" |
| 65 | #include "mm_mmi_enums.h" |
| 66 | #include "mm_ratcm_enums.h" |
| 67 | #include "gmss_nwsel_struct.h" |
| 68 | |
| 69 | typedef struct |
| 70 | { |
| 71 | LOCAL_PARA_HDR |
| 72 | kal_uint8 multi_plmn_count; |
| 73 | plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN]; |
| 74 | as_cell_type_enum multi_cell_type[MAX_NUM_MULTI_PLMN]; |
| 75 | rat_enum rat; |
| 76 | /// source from cell reselection or search |
| 77 | found_ind_source_enum source; |
| 78 | } nwsel_mm_plmn_found_ind_struct; |
| 79 | |
| 80 | typedef struct { |
| 81 | LOCAL_PARA_HDR |
| 82 | kal_bool is_plmn_search_lte_ongoing; |
| 83 | as_cell_type_enum cell_type; // 4G camped on cell type |
| 84 | } nwsel_mm_search_status_update_req_struct; |
| 85 | |
| 86 | typedef struct { |
| 87 | LOCAL_PARA_HDR |
| 88 | kal_uint16 gibi_tag; |
| 89 | rat_enum rat; |
| 90 | kal_bool is_data_pending; |
| 91 | kal_bool is_sys_info_present; |
| 92 | hplmn_status_enum hplmn_status; |
| 93 | fplmn_status_enum fplmn_status; |
| 94 | kal_bool is_in_eq_plmn_list; |
| 95 | mm_cell_change_enum abnormal_cell_change; |
| 96 | mm_cell_change_enum abnormal_rai_cell_change; |
| 97 | plmn_id_struct plmn_id; |
| 98 | kal_uint8 la_code[2]; |
| 99 | kal_uint8 ra_code; |
| 100 | kal_uint32 cell_id; //mtk02475: extended cell id in UMTS |
| 101 | kal_bool cell_support_cs; |
| 102 | kal_bool cell_support_ps; /* if FALSE, nmo and ra_code should not refer. */ |
| 103 | kal_bool is_acc_class_present; |
| 104 | kal_uint16 acc_class; |
| 105 | kal_uint8 extra_info_bitmask; /* mtk02475: for DSAC/data_speed_support update in connected mode*/ |
| 106 | #if defined (__R6_DSAC__) || defined (UNIT_TEST) |
| 107 | kal_bool is_dsac_present; |
| 108 | kal_uint16 cs_dsac; |
| 109 | kal_uint16 ps_dsac; |
| 110 | #endif |
| 111 | kal_uint8 t3212_timer_val; |
| 112 | network_mode_enum nmo; |
| 113 | as_cell_type_enum cell_type; |
| 114 | att_flag_enum att_flag; |
| 115 | kal_bool mscr; |
| 116 | rr_mm_sgsnr_flag_enum sgsnr; |
| 117 | #ifdef __PS_SERVICE__ |
| 118 | data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */ |
| 119 | #endif |
| 120 | |
| 121 | #if defined (__PPACR_SUPPORT__) || defined (UNIT_TEST) |
| 122 | kal_bool is_ppacr_present; |
| 123 | ppacr_info_struct ppacr_info; |
| 124 | #endif |
| 125 | |
| 126 | csg_access_mode_enum csg_access_mode; |
| 127 | csg_info_struct csg_info; |
| 128 | |
| 129 | #ifdef __LTE_RAT__ |
| 130 | kal_bool is_gprs_info_in_si13_deferred; |
| 131 | #endif |
| 132 | kal_uint8 band; |
| 133 | } nwsel_mm_sys_info_update_req_struct; |
| 134 | |
| 135 | typedef struct { |
| 136 | LOCAL_PARA_HDR |
| 137 | rat_enum rat; |
| 138 | kal_uint32 cell_id; |
| 139 | kal_bool is_la_valid; |
| 140 | kal_uint8 la_code[2]; |
| 141 | kal_bool is_ra_valid; |
| 142 | kal_uint8 ra_code; |
| 143 | plmn_id_struct plmn_id; |
| 144 | kal_bool is_on_hplmn; |
| 145 | } nwsel_mm_cell_global_identity_info_update_req_struct; |
| 146 | |
| 147 | typedef mm_cell_global_identity_info_ind_struct nwsel_mm_cell_global_identity_info_ind_struct; |
| 148 | |
| 149 | typedef struct { |
| 150 | LOCAL_PARA_HDR |
| 151 | mode_switch_cause_enum cause; |
| 152 | } nwsel_mm_global_mode_change_start_req_struct; |
| 153 | |
| 154 | typedef struct |
| 155 | { |
| 156 | LOCAL_PARA_HDR |
| 157 | rat_type_enum target_rat; |
| 158 | kal_uint8 freq_num; |
| 159 | kal_uint32 redirect_freq[MAX_REDIRECT_FREQ_NUM]; |
| 160 | mt_csfb_type_enum mt_csfb_type; |
| 161 | } nwsel_mm_need_duplex_mode_chg_update_req_struct; |
| 162 | |
| 163 | typedef struct { |
| 164 | LOCAL_PARA_HDR |
| 165 | kal_bool is_as_plmn_list_present; |
| 166 | as_plmn_list_struct as_plmn_list; |
| 167 | #ifdef __GEMINI__ |
| 168 | as_suspend_mode_reason_enum cause; /* for RR suspend mode */ |
| 169 | #endif /* __GEMINI__ */ |
| 170 | csfb_indicator_enum csfb_ind; |
| 171 | kal_bool is_nas_csfb_ongoing; |
| 172 | plmn_loss_reason_enum plmn_loss_reason; |
| 173 | } nwsel_mm_plmn_loss_ind_struct; |
| 174 | |
| 175 | typedef struct { |
| 176 | LOCAL_PARA_HDR |
| 177 | rat_enum rat; |
| 178 | kal_bool is_manual_list; |
| 179 | scan_type_enum scan_type; |
| 180 | kal_uint8 plmn_count; |
| 181 | plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN]; |
| 182 | found_mcc_info_struct found_mcc_info; |
| 183 | } nwsel_mm_plmn_list_req_struct; |
| 184 | |
| 185 | typedef struct |
| 186 | { |
| 187 | LOCAL_PARA_HDR |
| 188 | kal_bool is_user_plmn_list_ongoing; |
| 189 | } nwsel_mm_plmn_list_status_update_req_struct; |
| 190 | |
| 191 | typedef struct { |
| 192 | LOCAL_PARA_HDR |
| 193 | kal_bool is_uas_plmn_list_present; |
| 194 | as_plmn_list_struct uas_plmn_list; |
| 195 | kal_bool is_gas_plmn_list_present; |
| 196 | as_plmn_list_struct gas_plmn_list; |
| 197 | scan_type_enum scan_type; |
| 198 | plmn_list_result_enum cause; |
| 199 | } nwsel_mm_plmn_list_cnf_struct; |
| 200 | |
| 201 | typedef struct { |
| 202 | LOCAL_PARA_HDR |
| 203 | rat_enum rat; |
| 204 | kal_uint8 plmn_count; |
| 205 | plmn_id_struct plmn_id[MAX_NUM_EQ_PLMN]; |
| 206 | } nwsel_mm_csg_list_req_struct; |
| 207 | |
| 208 | typedef struct { |
| 209 | LOCAL_PARA_HDR |
| 210 | //kal_bool is_uas_csg_list_present; |
| 211 | as_csg_list_struct uas_csg_list; |
| 212 | } nwsel_mm_csg_list_cnf_struct; |
| 213 | |
| 214 | typedef struct { |
| 215 | LOCAL_PARA_HDR |
| 216 | aral_op_enum op_code; |
| 217 | plmn_id_struct plmn; |
| 218 | rat_enum rat; |
| 219 | kal_uint8 ara_start[2]; |
| 220 | kal_uint8 ara_end[2]; |
| 221 | }nwsel_mm_aral_update_req_struct; |
| 222 | |
| 223 | typedef struct { |
| 224 | LOCAL_PARA_HDR |
| 225 | regn_proc_status_enum nwsel_proc_status; |
| 226 | plmn_search_status_enum plmn_search_status; |
| 227 | plmn_search_type_enum plmn_search_type; /* new plmn search type */ |
| 228 | kal_bool is_send_to_as; |
| 229 | } nwsel_mm_regn_status_update_req_struct; |
| 230 | |
| 231 | #ifdef __DYNAMIC_BAND_SEL__ |
| 232 | typedef struct { |
| 233 | LOCAL_PARA_HDR |
| 234 | band_selection_enum gsm_band; /* refer to band_selection_enum value*/ |
| 235 | kal_bool is_gsm_band_present; |
| 236 | kal_uint8 umts_fdd_band[2]; /* 3G band change */ |
| 237 | kal_bool is_umts_band_present; /* 3G band change */ |
| 238 | }nwsel_mm_set_preferred_band_req_struct; |
| 239 | #endif |
| 240 | |
| 241 | typedef struct { |
| 242 | LOCAL_PARA_HDR |
| 243 | lr_result_enum lr_result; |
| 244 | mm_cause_enum lr_cause; |
| 245 | mm_proc_enum mm_proc; |
| 246 | kal_uint8 attempt_counter; //update only when lr_proc needed |
| 247 | plmn_id_struct rplmn; //from stored lai. Valid when LR_ACCEPT & LR_ACCEPT_PS_ONLY |
| 248 | kal_bool forbidden_plmn_update_not_allowed; /*MM may change NW reject cause, and no need to add forbidden PLMN */ |
| 249 | kal_bool is_update_eq_plmn_needed; /* always check; indicate if NWSEL need to update EPLMN */ |
| 250 | kal_uint8 eq_plmn_byte_count; |
| 251 | kal_uint8 eq_plmn_id[MAX_NUM_EQ_PLMN*3]; /* the EPLMN list from NW; 3 is NWSEL_PLMN_LEN */ |
| 252 | kal_bool is_back_to_abnormal_la; |
| 253 | kal_bool is_rau_performed; |
| 254 | kal_bool is_stored_lai_same_as_current; |
| 255 | kal_bool stored_lai_valid; |
| 256 | kal_bool stored_rai_valid; |
| 257 | gsm_state_enum gsm_attach_state; |
| 258 | gprs_state_enum gprs_attach_state; |
| 259 | gsm_update_status_enum gsm_update_status; |
| 260 | gprs_update_status_enum gprs_update_status; |
| 261 | mm_check_ecall_status_enum ecall_status; |
| 262 | kal_bool is_mobility_rau; /*To check whether update_type is periodic rau or mobility rau */ |
| 263 | integ_protect_status_enum is_integ_protected; |
| 264 | kal_uint8 invalid_cs_sim_counter; |
| 265 | kal_uint8 invalid_ps_sim_counter; |
| 266 | } nwsel_mm_regn_result_ind_struct; |
| 267 | |
| 268 | typedef struct { |
| 269 | LOCAL_PARA_HDR |
| 270 | domain_id_enum conn_domain; |
| 271 | } nwsel_mm_out_of_service_ind_struct; |
| 272 | |
| 273 | #ifdef __GEMINI__ |
| 274 | typedef struct { |
| 275 | LOCAL_PARA_HDR |
| 276 | as_suspend_mode_reason_enum cause; |
| 277 | } nwsel_mm_suspend_ind_struct; |
| 278 | |
| 279 | //mtk02475: local param struct is only exist in GEMINI 2.0 project |
| 280 | typedef struct { |
| 281 | LOCAL_PARA_HDR |
| 282 | kal_bool is_virtual_idle_mode; |
| 283 | } nwsel_mm_resume_ind_struct; |
| 284 | |
| 285 | typedef struct { |
| 286 | LOCAL_PARA_HDR |
| 287 | kal_bool is_virtual_idle_mode; |
| 288 | kal_bool is_in_connected; |
| 289 | /*Naming is "is_in_connected but it is expected that GMM updates only |
| 290 | virtual_connected state to NWSEL"*/ |
| 291 | } nwsel_mm_virtual_mode_ind_struct; |
| 292 | #endif /* __GEMINI__ */ |
| 293 | |
| 294 | typedef struct { |
| 295 | LOCAL_PARA_HDR |
| 296 | mm_event_type_enum event; |
| 297 | } nwsel_mm_event_ind_struct; |
| 298 | |
| 299 | typedef struct { |
| 300 | LOCAL_PARA_HDR |
| 301 | kal_uint8 plmn_id_count; |
| 302 | plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN]; //MAX_NUM_HPLMN: 4 |
| 303 | kal_uint8 home_country_mcc[3]; |
| 304 | } nwsel_mm_hplmn_info_update_req_struct; |
| 305 | |
| 306 | typedef struct { |
| 307 | LOCAL_PARA_HDR |
| 308 | eutran_cap_enum eutran_cap; |
| 309 | kal_bool is_eucap_sysinfo_triggered; |
| 310 | } nwsel_mm_eutran_cap_update_req_struct; |
| 311 | |
| 312 | typedef struct { |
| 313 | LOCAL_PARA_HDR |
| 314 | kal_bool is_successful; |
| 315 | } nwsel_mm_eutran_cap_update_cnf_struct; |
| 316 | |
| 317 | typedef struct { |
| 318 | LOCAL_PARA_HDR |
| 319 | voice_domain_preference_enum utran_voice_domain_preference; |
| 320 | kal_bool is_eutran_param_updated; /* if FALSE, the following parameters are invalid */ |
| 321 | kal_bool is_eutran_vdp_or_ue_usage_changed; |
| 322 | voice_domain_preference_enum eutran_voice_domain_preference; |
| 323 | ue_usage_setting_enum ue_usage_setting; |
| 324 | eutran_cap_update_wait_status_enum eutran_cap_update_wait_status; |
| 325 | } nwsel_mm_voice_prefer_ue_usage_update_req_struct; |
| 326 | |
| 327 | /* 24.008 CR# 2109 Start */ |
| 328 | typedef struct { |
| 329 | LOCAL_PARA_HDR |
| 330 | kal_bool is_manual_sel; |
| 331 | } nwsel_mm_manual_mode_update_req_struct; |
| 332 | /* 24.008 CR# 2109 End */ |
| 333 | |
| 334 | typedef struct { |
| 335 | LOCAL_PARA_HDR |
| 336 | rat_enum rat; |
| 337 | plmn_id_struct plmn_id; |
| 338 | kal_uint16 arfcn; |
| 339 | kal_uint8 requested_band; |
| 340 | } nwsel_mm_set_mru_req_struct; |
| 341 | |
| 342 | typedef struct { |
| 343 | LOCAL_PARA_HDR |
| 344 | set_mru_result_enum result; |
| 345 | } nwsel_mm_set_mru_cnf_struct; |
| 346 | |
| 347 | /* VzW requirement for MRU/RAL, only band/channel */ |
| 348 | typedef struct { |
| 349 | LOCAL_PARA_HDR |
| 350 | cell_band_info_type_enum type; |
| 351 | rat_enum rat; |
| 352 | plmn_id_struct plmn_id; |
| 353 | kal_uint8 band; |
| 354 | } nwsel_mm_cell_band_info_update_ind_struct; |
| 355 | |
| 356 | typedef struct { |
| 357 | LOCAL_PARA_HDR |
| 358 | rat_enum rat; |
| 359 | kal_uint8 num_of_nw; |
| 360 | emc_forbidden_nw_list_struct nw_list[MAX_FORBIDDEN_NETWORK_NUM]; |
| 361 | } nwsel_mm_emc_forbidden_nw_list_update_req_struct; |
| 362 | |
| 363 | typedef struct |
| 364 | { |
| 365 | LOCAL_PARA_HDR |
| 366 | call_status_enum call_status; |
| 367 | call_type_indication_enum call_type; |
| 368 | } nwsel_mm_call_status_ind_struct; |
| 369 | |
| 370 | typedef gmss_nwsel_rat_disable_config_req_struct nwsel_mm_rat_disable_config_req_struct; |
| 371 | |
| 372 | typedef gmss_nwsel_inactive_mode_configuration_req_struct nwsel_mm_inactive_mode_configuration_req_struct; |
| 373 | |
| 374 | typedef struct |
| 375 | { |
| 376 | LOCAL_PARA_HDR |
| 377 | kal_bool is_over_inactive_mode_threshold; // True: recovery counter > normal_oos_recovery_round |
| 378 | } nwsel_mm_service_recovery_round_update_req_struct; |
| 379 | |
| 380 | typedef struct |
| 381 | { |
| 382 | LOCAL_PARA_HDR |
| 383 | rat_enum rat; |
| 384 | network_scan_23g_union nw_scan_23g_output; |
| 385 | }nwsel_mm_plmn_scan_ind_struct; |
| 386 | |
| 387 | typedef struct |
| 388 | { |
| 389 | LOCAL_PARA_HDR |
| 390 | plmn_id_struct plmn_id; |
| 391 | } nwsel_mm_plmn_info_update_req_struct; |
| 392 | |
| 393 | |
| 394 | #endif /* NWSEL_MM_STRUCT_H */ |