blob: cad6aebc3499cc0fc3504ccb18a29e66c192ed50 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
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
69typedef 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
80typedef 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
86typedef 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
135typedef 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
147typedef mm_cell_global_identity_info_ind_struct nwsel_mm_cell_global_identity_info_ind_struct;
148
149typedef struct {
150 LOCAL_PARA_HDR
151 mode_switch_cause_enum cause;
152} nwsel_mm_global_mode_change_start_req_struct;
153
154typedef 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
163typedef 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
175typedef 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
185typedef struct
186{
187 LOCAL_PARA_HDR
188 kal_bool is_user_plmn_list_ongoing;
189} nwsel_mm_plmn_list_status_update_req_struct;
190
191typedef 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
201typedef 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
208typedef 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
214typedef 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
223typedef 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__
232typedef 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
241typedef 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
268typedef struct {
269 LOCAL_PARA_HDR
270 domain_id_enum conn_domain;
271} nwsel_mm_out_of_service_ind_struct;
272
273#ifdef __GEMINI__
274typedef 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
280typedef struct {
281 LOCAL_PARA_HDR
282 kal_bool is_virtual_idle_mode;
283} nwsel_mm_resume_ind_struct;
284
285typedef 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
294typedef struct {
295 LOCAL_PARA_HDR
296 mm_event_type_enum event;
297} nwsel_mm_event_ind_struct;
298
299typedef 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
306typedef 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
312typedef struct {
313 LOCAL_PARA_HDR
314 kal_bool is_successful;
315} nwsel_mm_eutran_cap_update_cnf_struct;
316
317typedef 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 */
328typedef 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
334typedef 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
342typedef 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 */
348typedef 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
356typedef 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
363typedef 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
370typedef gmss_nwsel_rat_disable_config_req_struct nwsel_mm_rat_disable_config_req_struct;
371
372typedef gmss_nwsel_inactive_mode_configuration_req_struct nwsel_mm_inactive_mode_configuration_req_struct;
373
374typedef 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
380typedef 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
387typedef 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 */