| /***************************************************************************** |
| * 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) 2018 |
| * |
| * 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: |
| * --------- |
| * nas_sv_struct.h |
| * |
| * Project: |
| * -------- |
| * UMOLYE |
| * |
| * Description: |
| * ------------ |
| * |
| * Author: |
| * ------- |
| * ------- |
| ******************************************************************************/ |
| |
| #ifndef _NAS_SV_STRUCT_H_ |
| #define _NAS_SV_STRUCT_H_ |
| |
| |
| #include "kal_general_types.h" |
| #include "ps_public_enum.h" |
| #include "l3_inc_enums.h" |
| #include "mcd_l3_inc_struct.h" |
| |
| |
| |
| #include "l3_inc_local.h" |
| |
| #include "gmss_public.h" |
| #include "mm_mmi_enums.h" |
| #include "mmi2mm_struct.h" |
| |
| #include "kal_public_defs.h" |
| #include "sim_public_enum.h" |
| #include "global_type.h" |
| #include "irat_common_struct.h" |
| //#include "c2k_irat_msg_struct.h" |
| #include "l3_inc_enums_public.h" |
| #include "ims_interface_md.h" |
| #include "ps_public_struct.h" |
| #include "sim_ps_struct.h" |
| |
| |
| #define MAX_SEARCH_BAND_LIST_SIZE 32 |
| #define NAS_MAX_PS_RESULT_LIST 128 |
| #define NAS_MIN_PS_RSSI_VALUE -360 |
| #define MAX_NWSEL_MCC_POOL 6 |
| #define LEN_OF_ALL_ALLOWED_NSSAI 144 |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| domain_id_enum attach_type; |
| kal_uint8 ready_timer_p; |
| gmmreg_timer_struct ready_timer_value; |
| kal_uint8 att_id; |
| mm_user_search_type_enum search_type; |
| kal_bool is_follow_on_request; |
| mm_user_search_cause_enum search_cause; //used for GSMA SIM block feature |
| } nas_sv_any_attach_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| domain_id_enum detach_type; |
| kal_bool power_off; |
| kal_uint8 att_id; |
| l4c_rac_detach_cause_enum detach_cause; |
| kal_bool is_user_ps_reattach; |
| } nas_sv_any_detach_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat_mode; /* RATCM_RAT_ENUM*/ |
| rat_enum reported_rat; |
| irat_system_type_enum c2k_mode; |
| kal_bool is_rf_on; |
| vg_option_enum vg_option_map; |
| } nas_sv_gmss_set_rat_mode_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| proc_status_enum status; |
| mm_cause_enum cause; |
| } nas_sv_gmss_set_rat_mode_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_deact_cs; |
| kal_bool is_deact_ps; |
| } nas_sv_gmss_c2k_deactivate_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| nas_sv_any_event_update_req_enum event; |
| } nas_sv_any_event_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| nas_sv_any_event_update_ind_enum event; |
| rat_enum rat; |
| } nas_sv_any_event_update_ind_struct; |
| |
| typedef nas_sv_any_event_update_ind_struct nas_sv_vgmm_event_update_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| erac_rat_enum rat_mode; |
| erac_rat_enum reported_rat; |
| rat_mode_change_cause_enum rat_mode_change_cause; |
| irat_system_type_enum c2k_mode; |
| } nas_sv_emm_set_rat_mode_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| proc_status_enum status; |
| } nas_sv_emm_set_rat_mode_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| ho_from_lte_type_enum ir_ho_type; |
| } nas_sv_any_rat_change_start_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| irat_result_enum irat_result; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| ho_from_lte_type_enum ir_ho_type; |
| // NAS_SV only updates for 23G. For other RATs, set it to Unknown |
| // This filed is requested by MOD_SMIC |
| nas_sv_camped_on_cell_type_enum camped_on_cell_type; |
| } nas_sv_any_rat_change_finish_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 trx_id; |
| } nas_sv_emm_plmn_search_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 trx_id; |
| rat_enum rat; |
| } nas_sv_mm_plmn_search_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| active_nas_enum init_nas; |
| |
| } nas_sv_smic_boot_up_init_nas_update_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 trx_id; |
| rat_enum rat; |
| plmn_search_result_enum result; |
| kal_bool is_as_plmn_list_present; |
| as_plmn_list_struct as_plmn_list; |
| 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_ps_conn_releasing; |
| kal_bool is_quick_search; |
| kal_bool no_search_candidate; |
| } nwsel_nas_sv_plmn_search_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 trx_id; |
| plmn_search_result_enum result; |
| plmn_search_cant_proc_reason_enum cant_proc_reason; |
| kal_bool is_as_plmn_list_present; |
| as_plmn_list_struct as_plmn_list; |
| 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; |
| kal_bool no_search_candidate; |
| } nas_sv_emm_plmn_search_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint16 gibi_tag; |
| kal_uint8 ta_code[2]; |
| kal_uint8 multi_plmn_count; |
| plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN]; |
| as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN]; |
| kal_uint8 multi_ta_code[MAX_NUM_MULTI_PLMN][2]; // 36.331 R14 CR2912 EUTRAN sharing enhancement |
| kal_uint32 multi_cell_id[MAX_NUM_MULTI_PLMN]; // 36.331 R14 CR2912 EUTRAN sharing enhancement |
| csg_access_mode_enum csg_access_mode[MAX_NUM_MULTI_PLMN]; |
| csg_info_struct csg_info[MAX_NUM_MULTI_PLMN]; |
| lte_duplex_type_enum lte_type; |
| kal_bool ims_emergency_support; |
| #ifdef __NG_ECALL_SUPPORT__ |
| kal_bool ecall_over_ims_support; |
| #endif /* __NG_ECALL_SUPPORT__ */ |
| kal_bool is_c2k_as_irat; |
| kal_uint16 band; |
| kal_bool is_3G_sib_scheduled; |
| kal_bool is_2G_sib_scheduled; |
| kal_bool is_C2K_sib_scheduled; |
| enasas_ssac_ac_barringfactor_enum ssac_voice_ac_barring_factor; |
| kal_bool match_op_cfg; |
| |
| //--- Debug Only ---// |
| endc_sib_status_enum endc_sib_status; /* "endc_sib_status" will be set to "ENDC_SIB_STATUS_SUPPORT" if the corresponding |
| * bit of selected PLMN in PLMN-InfoList-r15 from SIB2 is TRUE. |
| */ |
| kal_bool endc_available; /* "endc_available" wil be set to TRUE if any bit in PLMN-InfoList-r15 from SIB2 is TRUE */ |
| kal_bool endc_band_ue_supported; /* TRUE: UE support at least 1 ENDC combo with attached LTE cell band */ |
| } nas_sv_emm_sys_info_update_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| ho_from_lte_type_enum ir_ho_type; |
| kal_uint8 nas_security_param_from_eutra; |
| gas_cipher_algo_enum gas_cipher_algo; |
| kal_bool csfb_ind; |
| } nas_sv_emm_nas_ctxt_transfer_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| irat_result_enum irat_result; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| } nas_sv_emm_rat_change_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_container_errc_to_emm_struct irat_container; |
| } nas_sv_emm_as_param_notify_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat_mode; /* RATCM_RAT_ENUM*/ |
| domain_id_enum detach_domain; //for UEMODE:PS_MODE_x, CS domain should be detached first in RAT_MODE which contains RAT_LTE |
| rat_enum reported_rat; |
| rat_mode_change_cause_enum rat_mode_change_cause; |
| } nas_sv_mm_set_rat_mode_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| proc_status_enum status; /* proc_status_enum */ |
| mm_cause_enum cause; /* mm_cause_enum */ |
| } nas_sv_mm_set_rat_mode_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN]; |
| } nas_sv_mm_nas_ctxt_transfer_req_struct,nas_sv_mm_rat_change_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| irat_result_enum irat_result; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| irat_reject_cause_enum irat_reject_cause; |
| } nas_sv_mm_rat_change_cnf_struct; |
| |
| #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__) |
| /** [MT2735][WNC] ILM: MSG_ID_SIM_NAS_SV_ECALL_MODE_SWITCH_IND which will carry changed ecall mode information */ |
| typedef sim_nas_sv_set_ecall_mode_ind_struct nas_sv_any_update_ecall_mode_change_ind_struct; |
| #endif |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| rat_enum reported_rat; |
| } nas_sv_ratcm_set_rat_mode_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_successful; |
| mm_cause_enum cause; |
| } nas_sv_ratcm_set_rat_mode_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| void* as_info_ptr; |
| 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) |
| } nas_sv_ratcm_rat_change_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| irat_result_enum irat_result; |
| irat_reject_cause_enum irat_reject_cause; |
| void* as_info_ptr; |
| } nas_sv_ratcm_rat_change_rsp_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| void* as_info_ptr; |
| ratcm_gas_security_mode_req_struct gas_security; |
| uas_security_context_struct uas_security[2]; |
| csfb_indicator_enum csfb_indicator; |
| loopback_mode_status_enum loopback_mode_status; |
| kal_bool is_lai_valid; |
| lai_struct lai; |
| kal_bool is_srvcc; |
| kal_bool is_mapped_rai_valid; |
| rai_struct mapped_rai; |
| } nas_sv_ratcm_rat_change_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| irat_type_enum irat_type; |
| rat_type_enum source_rat; |
| rat_type_enum target_rat; |
| irat_result_enum irat_result; |
| void* as_info_ptr; |
| domain_id_enum connection_domain; |
| kal_bool is_gibi_tag_valid; |
| kal_uint16 gibi_tag; |
| } nas_sv_ratcm_rat_change_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint16 gibi_tag; |
| rat_enum rat; |
| kal_bool is_data_pending; |
| kal_bool is_sys_info_present; |
| kal_uint8 multi_plmn_count; |
| plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN]; |
| as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN]; |
| plmn_id_struct plmn_id; |
| kal_uint8 la_code[2]; |
| kal_uint8 ra_code; |
| kal_uint32 cell_id; |
| 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; /* for DSAC/data_speed_support update in connected mode*/ |
| kal_uint8 dsac_plmn_bitmask; |
| kal_uint16 cs_dsac[MAX_NUM_MULTI_PLMN]; |
| kal_uint16 ps_dsac[MAX_NUM_MULTI_PLMN]; |
| 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; |
| data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */ |
| kal_uint8 ppacr_plmn_bitmask; |
| ppacr_info_struct ppacr_info_plmn_list[MAX_NUM_MULTI_PLMN]; |
| csg_access_mode_enum csg_access_mode; |
| csg_info_struct csg_info; |
| kal_bool is_gprs_info_in_si13_deferred; |
| kal_uint8 band; |
| } nas_sv_ratcm_sys_info_update_ind_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; |
| kal_bool is_ps_conn_releasing; |
| 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; |
| } nas_sv_mm_plmn_search_cnf_struct; |
| |
| /* workaround need to remove */ |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint16 gibi_tag; |
| kal_uint8 plmn_id_num; |
| plmn_id_struct plmn_id[MAX_NUM_MULTI_PLMN]; |
| as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN]; |
| kal_uint8 ta_code[MAX_NUM_MULTI_PLMN][3]; |
| kal_uint8 cell_id[MAX_NUM_MULTI_PLMN][5]; |
| nrrc_ac1_selection_assistance_info_enum |
| ac1_selection_assistance_info[MAX_NUM_MULTI_PLMN]; |
| kal_bool ims_emergency_support; |
| kal_uint16 band; |
| duplex_type_enum duplex_type; |
| } nas_sv_nrrc_sys_info_update_ind_struct; |
| /* workaround need to remove */ |
| |
| |
| typedef union |
| { |
| nas_sv_ratcm_sys_info_update_ind_struct mm_sys_info; |
| nas_sv_emm_sys_info_update_ind_struct emm_sys_info; |
| nas_sv_nrrc_sys_info_update_ind_struct nrrc_sys_info; |
| } nwsel_nas_sv_sys_info_update_ind_union; |
| |
| typedef union |
| { |
| kal_uint8 nr_cell_id[MAX_NUM_MULTI_PLMN][5]; |
| kal_uint32 lte_cell_id[MAX_NUM_MULTI_PLMN]; |
| kal_uint32 umts_cell_id; |
| kal_uint16 gsm_cell_id; |
| } cell_id_union; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| nwsel_nas_sv_sys_info_update_ind_union sys_info; |
| } nwsel_nas_sv_sys_info_update_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 eq_plmn_count; |
| plmn_id_struct eq_plmn_id[MAX_NUM_EQ_PLMN]; |
| } nwsel_nas_sv_nrrc_eq_plmn_list_update_req_struct; |
| |
| |
| typedef struct |
| { |
| kal_bool is_ecc_triggered; |
| /* filled by MM */ |
| kal_bool is_csfb_ongoing; |
| kal_uint16 factory_mode_arfcn; |
| } gsm_search_param_container_struct; |
| |
| typedef struct |
| { |
| kal_bool is_manual_csg_sel; // identify if the csg_id below is valid |
| kal_uint32 csg_id; |
| kal_bool is_ecc_triggered; |
| /* filled by MM */ |
| kal_bool is_csfb_ongoing; |
| kal_uint16 factory_mode_arfcn; |
| } umts_search_param_container_struct; |
| |
| typedef struct |
| { |
| lte_duplex_type_enum lte_type; |
| /* NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found */ |
| kal_bool force_ims_ecc_cell; |
| #ifdef __NG_ECALL_SUPPORT__ |
| /* Indicate whether this search needs to prefer IMS ecc cell. If one of search preference and prefer_ims_ecc_cell is false, not prefer ims ecc cell. |
| * Check this field only when force_ims_ecc_cell is set to FALSE. */ |
| kal_bool prefer_ims_ecc_cell; |
| /* Use in eCall only mode, force 4G AS to search cells with ecall_over_ims_support*/ |
| kal_bool force_ecall_cell; |
| #endif /* __NG_ECALL_SUPPORT__ */ |
| |
| /* OOS scenario, NWSEL need to search again Not-Found entry. AS should not apply U2D filter when this flag on */ |
| kal_bool force_stored_search; |
| endc_search_enum endc_search; /* Search ENDC cell or not for LTE cell. */ |
| kal_bool is_manual_csg_sel; // identify if the csg_id below is valid |
| kal_uint32 csg_id; |
| kal_bool is_mpsr_trigger; //for VzW MPSR expired based improvement |
| kal_uint32 factory_mode_arfcn; |
| /* OOS interleave source */ |
| kal_uint8 additional_stored_freq_plmn_num; |
| plmn_id_struct additional_stored_freq_plmn[MAX_NUM_SEARCH_PLMN]; |
| } lte_search_param_container_struct; |
| |
| typedef struct |
| { |
| NRARFCN factory_mode_arfcn; |
| /* NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found */ |
| kal_bool force_ecc_cell; |
| /* OOS scenario, NWSEL need to search again Not-Found entry. AS should not apply U2D filter when this flag on */ |
| kal_bool force_stored_search; |
| /* OOS interleave source */ |
| kal_uint8 additional_stored_freq_plmn_num; |
| plmn_id_struct additional_stored_freq_plmn[MAX_NUM_SEARCH_PLMN]; |
| } nr_search_param_container_struct; |
| |
| |
| typedef union |
| { |
| gsm_search_param_container_struct gsm; |
| umts_search_param_container_struct umts; |
| lte_search_param_container_struct lte; |
| nr_search_param_container_struct nr; |
| } search_rat_specific_param_container_union; |
| |
| typedef struct |
| { |
| kal_bool is_power_on; //for CMCC case 5.1.1: is first search after power on |
| kal_bool is_manual_sel; // if search is manual selection |
| kal_bool trigger_by_signal_appear; |
| kal_bool is_higher_plmn_search; |
| kal_uint32 factory_mode_arfcn; //0xFFFFFFFF means invalid arfcn - do normal search. For fast camp on test machine |
| |
| scan_type_enum scan_type; |
| search_period_enum search_period; // only a suggestion value for RAT switch. |
| /* number of valid items in the band list. */ |
| kal_uint32 num_of_band; |
| /*band list for OP/MCC band and MRU/RAL */ |
| kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| kal_bool is_band_list_sorted; |
| kal_bool is_quick_search; |
| kal_bool is_all_stored; |
| found_mcc_info_struct found_mcc_info; |
| kal_bool is_predict_search; |
| } search_param_container_struct; |
| |
| |
| typedef struct |
| { |
| kal_bool force_to_release; |
| kal_bool is_clear_abnormal_state; |
| kal_bool is_srlte; |
| kal_bool is_to_deactivate_c2k_cs_service; |
| } nas_control_param_container_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint8 trx_id; |
| plmn_search_type_enum plmn_search_type; |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN]; |
| nas_control_param_container_struct nas_ctrl_container; |
| search_param_container_struct as_param_container; |
| search_rat_specific_param_container_union as_specific_container; |
| } nwsel_nas_sv_plmn_search_req_struct; |
| |
| typedef nwsel_nas_sv_plmn_search_req_struct nas_sv_emm_plmn_search_req_struct; |
| typedef nwsel_nas_sv_plmn_search_req_struct nas_sv_mm_plmn_search_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_manual_sel; |
| } nwsel_nas_sv_manual_mode_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_manual_list; |
| rat_enum rat; |
| lte_duplex_type_enum lte_type; // phase out |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN]; |
| scan_type_enum scan_type; |
| kal_bool is_mpsr_trigger; //for VzW MPSR expired based improvement |
| kal_bool is_elevator_mode; |
| found_mcc_info_struct found_mcc_info; |
| kal_bool is_higher_plmn_search; |
| kal_bool list_endc_info; /* LIST ENDC info or not for LTE cell. ERRC will collect SIB2 for PLMN_LIST. */ |
| /** number of valid items in the band list. */ |
| kal_uint32 num_of_band; |
| /** band list for MCC Band for PLMN List Optimization */ |
| kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| user_list_type_enum user_list_type; |
| kal_uint8 given_number_of_plmn; // When xAS found the given number of plmn, xAS return PLMN_LIST_CNF. When value is 0 means xAS do complete list, no need care it. |
| network_scan_input_struct network_scan_input; |
| } nwsel_nas_sv_plmn_list_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_user_plmn_list_ongoing; |
| } nwsel_nas_sv_plmn_list_status_update_req_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| as_plmn_list_struct as_plmn_list; |
| scan_type_enum scan_type; |
| plmn_list_result_enum cause; |
| kal_bool is_complete; // If list not complete, the available list is not complete too. |
| kal_bool is_plmn_list_aborted; //indicate if the PLMN List is aborted by PLMN_LIST_ABORT_REQ |
| } nwsel_nas_sv_plmn_list_cnf_struct; |
| |
| typedef nwsel_nas_sv_plmn_list_cnf_struct nas_sv_mm_plmn_list_cnf_struct; |
| typedef nwsel_nas_sv_plmn_list_cnf_struct nas_sv_emm_plmn_list_cnf_struct; |
| |
| typedef nwsel_nas_sv_plmn_list_req_struct nas_sv_mm_plmn_list_req_struct; |
| typedef nwsel_nas_sv_plmn_list_req_struct nas_sv_emm_plmn_list_req_struct; |
| typedef nwsel_nas_sv_plmn_list_status_update_req_struct nas_sv_vgmm_plmn_list_status_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| network_scan_5g_output_struct nw_scan_5g_output; |
| } nwsel_nas_sv_plmn_scan_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| lte_duplex_type_enum lte_type; // phase out |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN]; |
| } nwsel_nas_sv_csg_list_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| as_csg_list_struct as_csg_list; |
| } nwsel_nas_sv_csg_list_cnf_struct; |
| |
| typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_mm_csg_list_cnf_struct; |
| typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_emm_csg_list_cnf_struct; |
| typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_nrrc_csg_list_cnf_struct; |
| |
| |
| typedef nwsel_nas_sv_csg_list_req_struct nas_sv_mm_csg_list_req_struct; |
| typedef nwsel_nas_sv_csg_list_req_struct nas_sv_emm_csg_list_req_struct; |
| typedef nwsel_nas_sv_csg_list_req_struct nas_sv_nrrc_csg_list_req_struct; |
| |
| /* MSG_ID_NWSEL_NAS_SV_NRRC_PLMN_SEARCH_PREFERENCE_UPDATE_REQ */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool prefer_ims_emergency; |
| } nwsel_nas_sv_nrrc_plmn_search_preference_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_received; |
| kal_bool is_security_check; |
| kal_uint8 sor_header; |
| kal_uint16 oplmn_data_size; |
| kal_uint8 *oplmn_data; |
| } nwsel_nas_sv_sor_oplmn_list_update_ind_struct; |
| |
| typedef nwsel_nas_sv_sor_oplmn_list_update_ind_struct nas_sv_vgmm_sor_oplmn_list_update_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool abort_reg_needed; |
| } nwsel_nas_sv_sor_oplmn_list_update_rsp_struct; |
| |
| typedef nwsel_nas_sv_sor_oplmn_list_update_rsp_struct nas_sv_vgmm_sor_oplmn_list_update_rsp_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 size_of_addr; |
| kal_uint8 addr[MAX_SIM_ADDR_LEN]; |
| } nwsel_nas_sv_sor_secure_packet_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_successful; |
| kal_uint16 size_of_sim_ack_data; |
| kal_uint8 sim_ack_data[256]; |
| kal_uint8 cause; |
| } nwsel_nas_sv_sor_secure_packet_rsp_struct; |
| |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| } nwsel_nas_sv_plmn_search_ind_struct; |
| |
| /*Check Active RAT Req*/ |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum check_rat; |
| }nwsel_nas_sv_check_active_rat_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; /*For RATCM only*/ |
| }nas_sv_ratcm_check_active_rat_req_struct; |
| |
| /*Set Active RAT Req*/ |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; /*For RATCM only*/ |
| }nas_sv_ratcm_set_active_rat_req_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; /*For RATCM only*/ |
| }nas_sv_ratcm_sniffer_stop_req_struct; |
| |
| |
| /*Check Active RAT Cnf*/ |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; /*For RATCM only*/ |
| kal_bool is_active_rat; |
| }nas_sv_any_check_active_rat_cnf_struct; |
| |
| typedef nas_sv_any_check_active_rat_cnf_struct nas_sv_ratcm_check_active_rat_cnf_struct; |
| |
| /*Set Active RAT Cnf*/ |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; /*For RATCM only*/ |
| kal_bool is_success; |
| }nas_sv_any_set_active_rat_cnf_struct; |
| |
| typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_ratcm_set_active_rat_cnf_struct; |
| typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_emm_set_active_rat_cnf_struct; |
| typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_vgmm_set_active_rat_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| // sniff RPLMN |
| // only valid when the conditions hold |
| // plmn_search_status == PLMN_SEARCH_UNRELATED |
| // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE) |
| as_sniffer_req_service_enum sniffer_service_type; |
| as_sniffer_plmn_list_operate_type_enum plmn_list_operate_type; |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MAX_NUM_SNIFFER_PLMN]; |
| |
| }nwsel_nas_sv_sniffer_start_req_struct; |
| |
| typedef nwsel_nas_sv_sniffer_start_req_struct nas_sv_ratcm_sniffer_start_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; /*stop rat*/ |
| }nwsel_nas_sv_sniffer_stop_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MAX_NUM_SIGNAL_APPEAR_PLMN]; |
| kal_uint32 num_of_detected_band; |
| kal_uint16 detected_band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| }nwsel_nas_sv_signal_appear_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint32 num_of_detected_band; |
| kal_uint16 detected_band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| }nas_sv_ratcm_signal_appear_ind_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| nwsel_status_enum nwsel_search_status; |
| } nwsel_nas_sv_display_search_status_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint8 plmn_band_count; |
| plmn_band_struct plmn_band[MAX_PLMN_BAND_NUM]; |
| } nwsel_nas_sv_plmn_band_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool force_to_release; |
| } nas_sv_mm_deactivate_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_completed; |
| kal_bool is_ps_conn_releasing; |
| } nas_sv_mm_deactivate_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool force_to_release; |
| } nas_sv_emm_deactivate_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_completed; |
| } nas_sv_emm_deactivate_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ratcm_gas_security_mode_req_struct gas_security; |
| uas_security_context_struct uas_security[2]; |
| csfb_indicator_enum csfb_indicator; |
| loopback_mode_status_enum loopback_mode_status; |
| kal_bool is_lai_valid; |
| lai_struct lai; |
| kal_bool is_srvcc; |
| kal_bool is_mapped_rai_valid; |
| rai_struct mapped_rai; |
| } nas_sv_mm_nas_ctxt_transfer_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_csfb_fast_return; |
| } nas_sv_emm_as_param_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 kasme[KASME_NUM]; |
| } nas_sv_emm_nas_ctxt_transfer_cnf_struct, nas_sv_emm_as_param_update_ind_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| domain_id_enum connection_domain; |
| kal_bool is_gibi_tag_valid; |
| kal_uint16 gibi_tag; |
| } nas_sv_mm_as_param_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| no_action_cause_enum cause; |
| kal_uint8 trx_id; |
| } nas_sv_emm_no_action_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 trx_id; |
| } nas_sv_mm_no_action_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| no_action_cause_enum cause; |
| } nwsel_nas_sv_no_action_ind_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| enasas_add_epsbearer_list_struct add_list; |
| } nas_sv_esm_as_param_update_req_struct; |
| |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| domain_id_enum attach_type; |
| mm_cause_enum cause; /* failure cause*/ |
| kal_uint8 att_id; /* Johnny: 3G RAC, for attach_req and detach_req using */ |
| mm_cause_enum abnormal_lu_cause; /* MAUI_01650679 */ |
| cell_info_and_rat_struct cell_info; /* registered cell info*/ |
| } nas_sv_mm_attach_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 att_id; |
| domain_id_enum attach_type; |
| cell_info_and_rat_struct cell_info; |
| additional_update_result_enum additional_update_result; |
| kal_bool is_lai_valid; |
| lai_struct lai; |
| } nas_sv_emm_attach_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 att_id; |
| vgmm_cause_enum cause; /* failure cause*/ |
| cell_info_and_rat_struct cell_info; /* registered cell info*/ |
| kal_uint8 allowed_nssai_length; /* Number of bytes in allowed NSSAI */ |
| kal_uint8 allowed_nssai[LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */ |
| } nas_sv_vgmm_attach_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 att_id; |
| vgmm_cause_enum cause; |
| cell_info_and_rat_struct cell_info; |
| kal_bool is_reged; /* 5GMM registration status */ |
| kal_bool is_reattach; |
| sat_loc_send_type_enum sat_send_type; |
| } nas_sv_vgmm_detach_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| emm_nw_feature_support_struct eps_nw_feature; |
| } nas_sv_emm_nw_feature_support_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| domain_id_enum detach_type; |
| mm_cause_enum cause; |
| //kal_bool issearching; |
| kal_bool is_reged; |
| kal_uint8 att_id; |
| cell_info_and_rat_struct cell_info; |
| integ_protect_status_enum is_integ_protected; |
| kal_uint8 invalid_cs_sim_counter; |
| kal_uint8 invalid_ps_sim_counter; |
| sat_loc_send_type_enum sat_send_type; |
| kal_bool is_reattach; |
| } nas_sv_mm_detach_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 att_id; |
| domain_id_enum detach_type; |
| emm_cause_enum emm_cause; |
| emm_cause_source_enum emm_cause_source; |
| esm_cause_enum esm_cause; |
| kal_bool is_reged; |
| cell_info_and_rat_struct cell_info; |
| kal_bool is_reattach; |
| sat_loc_send_type_enum sat_send_type; |
| dos_enhance_info_struct dos_enhance_info; |
| kal_bool is_auth_reject_during_attach; |
| } nas_sv_emm_detach_ind_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; |
| } nas_sv_any_duplex_mode_change_req_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; |
| } nas_sv_any_duplex_mode_change_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rfoff_cause_enum rfoff_cause; |
| } nas_sv_any_rfoff_req_struct; |
| |
| typedef nas_sv_any_rfoff_req_struct nas_sv_pam_rfoff_ntf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| } nas_sv_ratcm_cell_change_finish_ind_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_plmn_cell_type[MAX_NUM_MULTI_PLMN]; |
| /* Only for LTE */ |
| kal_uint8 multi_ta_code[MAX_NUM_MULTI_PLMN][2]; // 36.331 R14 CR2912 EUTRAN sharing enhancement |
| rat_enum rat; |
| ue_capability_struct acting_capability; |
| kal_bool is_nw_endc_disabled; |
| nas_sv_capability_update_procedure_type_enum query_proc; |
| domain_id_enum capability_query_attach_type; |
| mm_user_search_type_enum capability_query_search_type; |
| } nwsel_nas_sv_capability_query_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| ue_capability_struct capability; |
| kal_bool is_nw_endc_disabled; |
| kal_bool will_trigger_search; // if nwsel trigger search, can update by next sys_info. |
| nas_sv_local_release_cause_enum local_rel_cause; |
| } nwsel_nas_sv_capability_query_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| ue_capability_struct capability; |
| kal_bool is_nw_endc_disabled; |
| nas_sv_local_release_cause_enum local_rel_cause; |
| } nwsel_nas_sv_capability_update_req_struct; |
| |
| typedef struct{ |
| LOCAL_PARA_HDR |
| nas_sv_capability_rat_enum target_rat; |
| ue_capability_struct capability; |
| } nas_sv_ratcm_cap_update_req_struct; |
| |
| typedef struct{ |
| LOCAL_PARA_HDR |
| nas_sv_capability_rat_enum target_rat; |
| kal_bool is_successful; /* Indicates whether enabling or disabling capability is successful. */ |
| } nas_sv_ratcm_cap_update_cnf_struct; |
| |
| typedef struct { |
| kal_uint32 begin; |
| kal_uint32 end; |
| } nas_freq_range_struct; |
| |
| typedef struct { |
| nas_freq_range_struct freq_range; |
| kal_int16 rssi; |
| kal_uint16 band; |
| } nas_ps_result_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum power_scan_rat; // could be multi-rat |
| kal_uint32 nr_num_of_band; |
| kal_uint16 nr_band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| kal_uint32 lte_num_of_band; |
| kal_uint16 lte_band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| } nwsel_nas_sv_power_scan_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint16 power_scan_result_list_num; |
| nas_ps_result_struct power_scan_result_list[NAS_MAX_PS_RESULT_LIST]; |
| } nwsel_nas_sv_power_scan_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint16 power_scan_result_list_num; |
| nas_ps_result_struct power_scan_result_list[NAS_MAX_PS_RESULT_LIST]; |
| } nwsel_nas_sv_power_scan_ind_struct; |
| |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| ps_cause_enum cause; |
| } nas_sv_esm_eps_attach_needed_rej_rsp_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| plmn_id_struct current_plmn_id; |
| |
| } nas_sv_esm_eps_attach_needed_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool force_emc_attach; |
| } nas_sv_esm_emc_attach_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| srvcc_status_enum status; |
| } nas_sv_any_srvcc_status_update_ind_struct; |
| |
| typedef struct |
| { |
| kal_bool forbidden_plmn_update_not_allowed; /*MM may change NW reject cause, and no need to add forbidden PLMN */ |
| kal_bool is_back_to_abnormal_la; |
| kal_bool is_rau_performed; |
| 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; |
| |
| /* todo remove, NWSEL shall not know those status*/ |
| 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; |
| |
| /* todo use seperate interface to update */ |
| plmn_id_struct rplmn; //from stored lai. Valid when LR_ACCEPT & LR_ACCEPT_PS_ONLY |
| 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 */ |
| |
| }mm_rat_specific_param_container_struct; |
| |
| #include "nwsel_eval_enums.h" |
| |
| typedef struct |
| { |
| kal_bool stored_lai_valid; |
| kal_bool stored_guti_valid; |
| gsm_state_enum gsm_attach_state; |
| eps_state_enum lte_attach_state; |
| gsm_update_status_enum gsm_update_status; |
| eps_update_status_enum lte_update_status; |
| #ifdef __NG_ECALL_SUPPORT__ |
| mm_check_ecall_status_enum ecall_status; |
| #endif /* __NG_ECALL_SUPPORT__ */ |
| } update_param_struct; |
| |
| typedef struct |
| { |
| esm_cause_enum esm_cause; |
| mm_cause_enum airlr_cause; // If above lr_cause is replaced, EMM will bring real 'air cause' by this parameter. If it is none, just use lr_cause. |
| kal_bool is_esm_attempt_max_times; |
| additional_update_result_enum additional_update_result; |
| eps_attach_update_result_enum eps_attach_update_result; |
| kal_bool is_ims_vops_support; |
| lte_duplex_type_enum lte_type; |
| //CR1917: REL12 feature, use REL11 temporarily |
| /* is_eutran_not_allowed should be checked only when Reject#15. Disable E-UTRAN if #15 and this field is True. */ |
| kal_bool is_eutran_not_allowed; |
| kal_bool is_ps_reattach; |
| kal_bool is_service_request_max_times; |
| kal_bool is_t3402_valid; |
| kal_uint16 t3402; |
| kal_bool is_rach_fail_max_times; |
| integ_protect_status_enum is_integ_protected; |
| kal_uint8 invalid_cs_sim_counter; |
| kal_uint8 invalid_ps_sim_counter; |
| /* use to identify the TA is change or not when TAU/Combined TAU */ |
| kal_bool is_mobility_tau; |
| kal_bool is_persistent_EPS_bearer_exist; |
| kal_bool is_emc_bs_support; |
| restrict_dcnr_enum restrict_dcnr_ind; |
| kal_bool is_tau_before_search; |
| update_param_struct update_param; |
| /* [TMO] notify NAS_SV not to Disable S1 under real network */ |
| kal_bool is_t3402_not_start; |
| }emm_rat_specific_param_container_struct; |
| |
| typedef struct |
| { |
| mm_cause_enum airlr_cause; |
| vg_ims_3gpp_ind_enum ims_vops_supported_indicator; |
| vg_emergency_service_ind_enum emc_supported_indicator; |
| vg_emergency_fallback_ind_enum emc_fallback_supported_indicator; |
| vgmm_5g_update_status_enum vg_update_status; |
| kal_bool is_proc_reported_earlier; |
| }vgmm_rat_specific_param_container_struct; |
| |
| typedef union |
| { |
| mm_rat_specific_param_container_struct mm; |
| emm_rat_specific_param_container_struct emm; |
| vgmm_rat_specific_param_container_struct vgmm; |
| } nas_rat_specific_param_container_union; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| nas_proc_enum nas_proc; |
| lr_result_enum lr_result; |
| mm_cause_enum lr_cause; // This value may be replaced by customized cause. |
| kal_uint8 attempt_counter; |
| nas_rat_specific_param_container_union nas_specific_container; |
| } nas_sv_any_regn_result_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| nas_proc_enum nas_proc; |
| lr_result_enum lr_result; |
| mm_cause_enum lr_cause; // This value may be replaced by customized cause. |
| kal_uint8 attempt_counter; |
| mm_cause_enum airlr_cause; |
| } nas_sv_vgmm_proc_result_ind_struct; |
| |
| typedef nas_sv_vgmm_proc_result_ind_struct nwsel_nas_sv_vgmm_proc_result_ind_struct; |
| |
| typedef nas_sv_any_regn_result_ind_struct nwsel_nas_sv_regn_result_ind_struct; |
| |
| typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_ratcm_plmn_band_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| plmn_search_status_enum plmn_search_status; |
| plmn_search_type_enum plmn_search_type; /* new plmn search type */ |
| } nwsel_nas_sv_nrrc_regn_status_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool normal_oos_recovery_round_present; |
| kal_uint8 normal_oos_recovery_round; // default value = 5 |
| kal_bool inactive_fullband_period_present; |
| kal_uint16 inactive_fullband_period; // default = 200s |
| kal_bool inactive_sniffer_period_present; |
| kal_uint8 inactive_sniffer_period; // default = 30s |
| kal_bool is_inactive_mode_present; |
| kal_bool is_inactive_mode; // True: enter inactive mode, False: leave inactive mode |
| } nwsel_nas_sv_nrrc_inactive_mode_configuration_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_over_inactive_mode_threshold; |
| } nwsel_nas_sv_nrrc_service_recovery_round_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| regn_proc_status_enum mm_proc_status; |
| }nwsel_nas_sv_vgmm_regn_status_update_req_struct; |
| |
| |
| /* NRRC related NAS interface */ |
| |
| /* shall sync nas_sv_nrrc_plmn_loss_ind_struct */ |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_as_plmn_list_present; |
| as_plmn_list_struct as_plmn_list; |
| } nwsel_nas_sv_nr_plmn_loss_ind_struct; |
| |
| /* common */ |
| 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]; |
| /// source from cell reselection or search |
| found_ind_source_enum source; |
| rat_enum rat; |
| cell_id_union cell_id; |
| } nas_sv_any_plmn_found_ind_struct; |
| |
| typedef nas_sv_any_plmn_found_ind_struct nwsel_nas_sv_plmn_found_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum anchor_rat; |
| plmn_search_status_enum plmn_search_status; |
| as_cell_type_enum cell_type; |
| plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */ |
| } nas_sv_any_search_status_update_req_struct; |
| |
| typedef nas_sv_any_search_status_update_req_struct nwsel_nas_sv_search_status_update_req_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| rat_enum disable_rat; |
| } nas_sv_any_rat_disable_config_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_user_plmn_list_ongoing; |
| } nas_sv_any_plmn_list_status_update_req_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]; |
| } nas_sv_any_hplmn_info_update_req_struct; |
| |
| typedef nas_sv_any_hplmn_info_update_req_struct nwsel_nas_sv_hplmn_info_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| update_eplmn_struct eplmn_info; |
| } nas_sv_any_eplmn_update_ind_struct; |
| |
| typedef nas_sv_any_eplmn_update_ind_struct nwsel_nas_sv_eplmn_update_ind_struct; |
| |
| /* eval refactor */ |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| update_param_struct update_param; |
| } nas_sv_emm_update_param_ind_struct; |
| |
| typedef nas_sv_emm_update_param_ind_struct nwsel_nas_sv_emm_update_param_ind_struct; |
| |
| /***** message structure definition *****/ |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_plmn_search_2G3G_ongoing; |
| as_cell_type_enum cell_type; // 2G/3G camped on cell type |
| plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */ |
| |
| } nas_sv_emm_search_status_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool prefer_ims_emergency; |
| } nas_sv_emm_search_preference_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| regn_proc_status_enum mm_proc_status; // indicate if MS is in limited or no service |
| plmn_search_status_enum plmn_search_status; |
| plmn_search_type_enum plmn_search_type; |
| // sniff RPLMN |
| // only valid when the conditions hold |
| // plmn_search_status == PLMN_SEARCH_UNRELATED |
| // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE) |
| kal_uint8 plmn_id_count; |
| plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN]; |
| kal_bool is_send_to_as; |
| kal_bool other_rat_found_notify_4G; |
| } nas_sv_emm_regn_status_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| domain_id_enum conn_domain; |
| kal_bool is_waiting_cell; //RRC connection release, no cell case, need to wiat ERRC to report a new cell |
| } nas_sv_emm_out_of_service_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| as_plmn_list_struct eas_plmn_list; |
| kal_bool full_band_searched_4g; |
| plmn_loss_reason_enum plmn_loss_reason; |
| } nas_sv_emm_plmn_loss_ind_struct; |
| |
| //#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST) |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 emc_fplmn_count; |
| plmn_id_struct emc_fplmn_list[MAX_NUM_EMC_FPLMN]; |
| // band 0 => all band disabled, bar this PLMN |
| kal_uint16 emc_fplmn_band[MAX_NUM_EMC_FPLMN]; |
| } nas_sv_emm_emc_fplmn_list_update_req_struct; |
| //#endif |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| voice_domain_preference_enum eutran_voice_domain_preference; |
| ue_mode_enum ue_mode; |
| kal_bool sms_only; |
| voice_domain_preference_enum utran_voice_domain_preference; |
| } nas_sv_emm_uemode_param_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint16 t3402_value; // t3402 value in seconds |
| } nas_sv_emm_t3402_change_ind_struct; // __REL10__: t3402 |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| plmn_id_struct current_plmn_id; |
| timer_status_enum status; |
| } rac_nas_sv_t3402_stop_ind_struct; |
| |
| typedef rac_nas_sv_t3402_stop_ind_struct nas_sv_emm_t3402_stop_ind_struct; |
| |
| //#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST) |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool prefer_ims_emergency; |
| } nas_sv_emm_plmn_search_preference_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| emc_status_enum emc_status; |
| emc_pdn_status_enum emc_pdn_status; |
| } nas_sv_emm_emergency_status_update_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| kal_uint32 num_of_band; |
| kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE]; |
| } nwsel_nas_sv_background_band_learning_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| } nwsel_nas_sv_background_band_learning_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| } nwsel_nas_sv_background_band_learning_stop_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rat_enum rat; |
| } nwsel_nas_sv_background_band_learning_stop_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 local_rel_cause; |
| } nas_sv_check_cap_update_ind_struct; |
| |
| //#endif // __VOLTE_SUPPORT__ |
| #if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__)) |
| |
| typedef errc_sim_protect_req_struct nas_sv_emm_power_on_protection_req_struct; |
| |
| #endif |
| |
| #ifdef __FIVEG_NAS__ |
| |
| typedef struct |
| { |
| /* VGMM Definitions */ |
| vgmm_bcast_regn_update_enum vgmm_regn_update_type; |
| |
| kal_bool vgmm_msg_type_present; |
| vgmm_msg_type_enum vgmm_msg_type; |
| |
| kal_bool vgmm_reg_type_present; |
| vgmm_reg_type_enum vgmm_reg_type; |
| |
| kal_bool vgmm_detach_type_present; |
| vgmm_detach_type_enum vgmm_detach_type; |
| |
| kal_bool vgmm_cause_present; |
| vgmm_cause_enum vgmm_cause; |
| |
| kal_bool vgmm_attempt_cnt_present; |
| kal_uint8 vgmm_attempt_cnt; |
| |
| kal_bool vgmm_ims_voice_over_ps_ind_present; |
| ims_ind_enum vgmm_ims_voice_over_ps_ind; |
| |
| kal_bool vgmm_is_reattach_required; |
| /* End of VGMM Definitions */ |
| }nas_sv_vgmm_broadcast_regn_result_struct; |
| #endif //__FIVEG_NAS__ |
| |
| typedef struct |
| { |
| /* EMM Definitions */ |
| emm_msg_type_enum emm_msg_type; |
| |
| kal_bool emm_cause_present; |
| emm_cause_enum emm_cause; |
| |
| /* Whether the UE is registered or not according to state and current executing procedure in EMM view |
| used for EMM/VGMM un-sync state checking for any_xmm_broadcast_regn_result handling */ |
| emm_bcast_regn_update_enum emm_regn_update_type; |
| |
| kal_bool emm_is_reattach_required; |
| /* End of EMM Definitions */ |
| }nas_sv_emm_broadcast_regn_result_struct; |
| |
| typedef struct |
| { |
| /* MM Definitions */ |
| mm_msg_type_enum mm_msg_type; |
| |
| kal_bool is_mm_rej_cause_present; |
| mm_cause_enum mm_rej_cause; |
| |
| kal_bool is_mm_attempt_cnt_present; |
| kal_uint8 mm_attempt_cnt; |
| /* End of MM Definitions */ |
| }nas_sv_mm_broadcast_regn_result_struct; |
| |
| typedef struct |
| { |
| /* GMM Definitions */ |
| gmm_msg_type_enum gmm_msg_type; |
| |
| kal_bool is_gmm_proc_direction_present; |
| gmm_proc_direction_enum gmm_proc_direction; |
| |
| kal_bool is_gmm_attach_type_present; |
| gmm_attach_type_enum gmm_attach_type; |
| |
| kal_bool is_gmm_update_type_present; |
| gmm_update_type_enum gmm_update_type; |
| |
| kal_bool is_gmm_detach_type_present; |
| gmm_detach_type_enum gmm_detach_type; |
| |
| kal_bool is_gmm_attach_result_present; |
| gmm_attach_result_enum gmm_attach_result; |
| |
| kal_bool is_gmm_update_result_present; |
| gmm_update_result_enum gmm_update_result; |
| |
| kal_bool is_gmm_cause_present; |
| mm_cause_enum gmm_cause; |
| |
| kal_bool is_gmm_attempt_cnt_present; |
| kal_uint8 gmm_attempt_cnt; |
| /* End of GMM Definitions */ |
| }nas_sv_gmm_broadcast_regn_result_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| |
| /* XMM Common Definitions */ |
| rat_type_enum source_rat; |
| integ_protect_status_enum is_integ_protected; |
| domain_id_enum cn_domain; |
| /* End of XMM Common Definitions */ |
| |
| union |
| { |
| #ifdef __FIVEG_NAS__ |
| /* VGMM Definitions */ |
| nas_sv_vgmm_broadcast_regn_result_struct vgmm_info; |
| #endif //__FIVEG_NAS__ |
| |
| /* EMM Definitions */ |
| nas_sv_emm_broadcast_regn_result_struct emm_info; |
| |
| /* MM Definitions */ |
| nas_sv_mm_broadcast_regn_result_struct mm_info; |
| |
| /* GMM Definitions */ |
| nas_sv_gmm_broadcast_regn_result_struct gmm_info; |
| }info; |
| |
| } nas_sv_xmm_broadcast_regn_result_struct; |
| |
| typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_vgmm_broadcast_regn_result_ind_struct; |
| typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_emm_broadcast_regn_result_ind_struct; |
| typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_mm_broadcast_regn_result_ind_struct; |
| typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_any_broadcast_regn_result_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| |
| |
| xmm_common_timer_id_enum xmm_common_timer_id; |
| kal_bool status; /**< KAL_FALSE:Stop, KAL_TRUE:start*/ |
| plmn_id_struct backoff_timer_plmn; |
| kal_bool is_backoff_timer_plmn_in_eq_plmn_list; |
| |
| #ifdef __SUPPORT_CLIB_TIME__ /**< Target & MoDIS */ |
| kal_int64 expire_time; /**< unit is seconds */ |
| #else /**< UESIM */ |
| kal_uint16 remaining_time; /**< unit is seconds */ |
| #endif |
| } nas_sv_xmm_broadcast_timer_status_struct; |
| |
| typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_vgmm_broadcast_timer_status_ind_struct; |
| typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_emm_broadcast_timer_status_ind_struct; |
| typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_mm_broadcast_timer_status_ind_struct; |
| typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_any_broadcast_timer_status_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| |
| /* XMM Common Definitions */ |
| rat_type_enum source_rat; |
| |
| } nas_sv_xmm_broadcast_detach_required_struct; |
| |
| typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_emm_broadcast_detach_required_ind_struct; |
| typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_any_broadcast_detach_required_ind_struct; |
| |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_allow; |
| } nas_sv_any_operation_allow_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| nas_sv_any_operation_enum operation_to_be_allowed; |
| } nas_sv_any_operation_allow_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| nas_sv_manipulate_connection_enum operation_to_be_exe; |
| kal_bool is_local_release_later; |
| } nas_sv_any_manipulate_connection_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_triggered_by_sys_info; |
| ue_capability_struct capability; |
| } nas_sv_any_mm_cap_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| vg_option_enum vg_option_bitmap; |
| kal_bool is_need_local_release; |
| kal_bool is_trigger_nr_search; //used for option 2 is turned on and search SA |
| } rac_nas_sv_vg_option_update_req_struct; |
| |
| typedef rac_nas_sv_vg_option_update_req_struct nas_sv_any_vg_option_update_req_struct; |
| |
| typedef l4c_general_modem_configure_set_req_struct nas_sv_any_general_modem_configure_set_req_struct; |
| typedef l4c_general_modem_configure_set_cnf_struct nas_sv_any_general_modem_configure_set_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| mode_switch_cause_enum cause; |
| } nwsel_nas_sv_vgmm_global_mode_change_start_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_persistent_pdu_session_exist; |
| } nas_sv_vgsm_persistent_pdu_session_ind_struct; |
| |
| typedef nas_sv_vgsm_persistent_pdu_session_ind_struct nwsel_nas_sv_vgsm_persistent_pdu_session_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_roaming; |
| nwsel_capability_disabled_reason_enum disabled_reason; |
| } nwsel_nas_sv_disable_info_update_ntf_struct; |
| |
| typedef nwsel_nas_sv_disable_info_update_ntf_struct nas_sv_any_disable_info_update_ntf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_searching; |
| } nwsel_nas_sv_as_plmn_search_report_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_emc_info_valid; |
| kal_bool is_nr_emc_service_available; |
| } nwsel_nas_sv_nr_emc_service_availability_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_emc_info_valid; |
| } nwsel_nas_sv_nr_emc_service_availability_rsp_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 !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* 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 |
| |
| |
| |
| #endif |
| |
| |