blob: 98849214f1f83ffa15b0ea40a510c4d8a870dffb [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) 2018
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* nas_sv_struct.h
40*
41* Project:
42* --------
43* UMOLYE
44*
45* Description:
46* ------------
47*
48* Author:
49* -------
50 * -------
51******************************************************************************/
52
53#ifndef _NAS_SV_STRUCT_H_
54#define _NAS_SV_STRUCT_H_
55
56
57#include "kal_general_types.h"
58#include "ps_public_enum.h"
59#include "l3_inc_enums.h"
60#include "mcd_l3_inc_struct.h"
61
62
63
64#include "l3_inc_local.h"
65
66#include "gmss_public.h"
67#include "mm_mmi_enums.h"
68#include "mmi2mm_struct.h"
69
70#include "kal_public_defs.h"
71#include "sim_public_enum.h"
72#include "global_type.h"
73#include "irat_common_struct.h"
74//#include "c2k_irat_msg_struct.h"
75#include "l3_inc_enums_public.h"
76#include "ims_interface_md.h"
77#include "ps_public_struct.h"
yu.donge372c322023-08-30 20:25:04 -070078#include "sim_ps_struct.h"
rjw6c1fd8f2022-11-30 14:33:01 +080079
80
81#define MAX_SEARCH_BAND_LIST_SIZE 32
82#define NAS_MAX_PS_RESULT_LIST 128
83#define NAS_MIN_PS_RSSI_VALUE -360
84#define MAX_NWSEL_MCC_POOL 6
85#define LEN_OF_ALL_ALLOWED_NSSAI 144
86
87typedef struct {
88 LOCAL_PARA_HDR
89 domain_id_enum attach_type;
90 kal_uint8 ready_timer_p;
91 gmmreg_timer_struct ready_timer_value;
92 kal_uint8 att_id;
93 mm_user_search_type_enum search_type;
94 kal_bool is_follow_on_request;
95 mm_user_search_cause_enum search_cause; //used for GSMA SIM block feature
96} nas_sv_any_attach_req_struct;
97
98typedef struct {
99 LOCAL_PARA_HDR
100 domain_id_enum detach_type;
101 kal_bool power_off;
102 kal_uint8 att_id;
103 l4c_rac_detach_cause_enum detach_cause;
104 kal_bool is_user_ps_reattach;
105} nas_sv_any_detach_req_struct;
106
107typedef struct {
108 LOCAL_PARA_HDR
109 rat_enum rat_mode; /* RATCM_RAT_ENUM*/
110 rat_enum reported_rat;
111 irat_system_type_enum c2k_mode;
112 kal_bool is_rf_on;
113 vg_option_enum vg_option_map;
114} nas_sv_gmss_set_rat_mode_req_struct;
115
116typedef struct {
117 LOCAL_PARA_HDR
118 proc_status_enum status;
119 mm_cause_enum cause;
120} nas_sv_gmss_set_rat_mode_cnf_struct;
121
122typedef struct {
123 LOCAL_PARA_HDR
124 kal_bool is_deact_cs;
125 kal_bool is_deact_ps;
126} nas_sv_gmss_c2k_deactivate_ind_struct;
127
128typedef struct {
129 LOCAL_PARA_HDR
130 nas_sv_any_event_update_req_enum event;
131} nas_sv_any_event_update_req_struct;
132
133typedef struct {
134 LOCAL_PARA_HDR
135 nas_sv_any_event_update_ind_enum event;
136 rat_enum rat;
137} nas_sv_any_event_update_ind_struct;
138
139typedef nas_sv_any_event_update_ind_struct nas_sv_vgmm_event_update_ind_struct;
140
141typedef struct {
142 LOCAL_PARA_HDR
143 erac_rat_enum rat_mode;
144 erac_rat_enum reported_rat;
145 rat_mode_change_cause_enum rat_mode_change_cause;
146 irat_system_type_enum c2k_mode;
147} nas_sv_emm_set_rat_mode_req_struct;
148
149typedef struct {
150 LOCAL_PARA_HDR
151 proc_status_enum status;
152} nas_sv_emm_set_rat_mode_cnf_struct;
153
154typedef struct {
155 LOCAL_PARA_HDR
156 irat_type_enum irat_type;
157 rat_type_enum source_rat;
158 rat_type_enum target_rat;
159 ho_from_lte_type_enum ir_ho_type;
160} nas_sv_any_rat_change_start_ind_struct;
161
162typedef struct {
163 LOCAL_PARA_HDR
164 irat_type_enum irat_type;
165 irat_result_enum irat_result;
166 rat_type_enum source_rat;
167 rat_type_enum target_rat;
168 ho_from_lte_type_enum ir_ho_type;
169 // NAS_SV only updates for 23G. For other RATs, set it to Unknown
170 // This filed is requested by MOD_SMIC
171 nas_sv_camped_on_cell_type_enum camped_on_cell_type;
172} nas_sv_any_rat_change_finish_ind_struct;
173
174typedef struct {
175 LOCAL_PARA_HDR
176 kal_uint8 trx_id;
177} nas_sv_emm_plmn_search_ind_struct;
178
179typedef struct {
180 LOCAL_PARA_HDR
181 kal_uint8 trx_id;
182 rat_enum rat;
183} nas_sv_mm_plmn_search_ind_struct;
184
185typedef struct {
186 LOCAL_PARA_HDR
187 active_nas_enum init_nas;
188
189} nas_sv_smic_boot_up_init_nas_update_ind_struct;
190
191typedef struct {
192 LOCAL_PARA_HDR
193 kal_uint8 trx_id;
194 rat_enum rat;
195 plmn_search_result_enum result;
196 kal_bool is_as_plmn_list_present;
197 as_plmn_list_struct as_plmn_list;
198 kal_uint8 multi_plmn_count;
199 plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
200 as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
201 scan_type_enum scan_type;
202 kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
203 fullband_result_enum is_fullband_finished;
204 kal_bool is_ps_conn_releasing;
205 kal_bool is_quick_search;
206 kal_bool no_search_candidate;
207} nwsel_nas_sv_plmn_search_cnf_struct;
208
209typedef struct {
210 LOCAL_PARA_HDR
211 kal_uint8 trx_id;
212 plmn_search_result_enum result;
213 plmn_search_cant_proc_reason_enum cant_proc_reason;
214 kal_bool is_as_plmn_list_present;
215 as_plmn_list_struct as_plmn_list;
216 kal_uint8 multi_plmn_count;
217 plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
218 as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
219 scan_type_enum scan_type;
220 kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
221 fullband_result_enum is_fullband_finished;
222 kal_bool is_quick_search;
223 kal_bool no_search_candidate;
224} nas_sv_emm_plmn_search_cnf_struct;
225
226typedef struct
227{
228 LOCAL_PARA_HDR
229 kal_uint16 gibi_tag;
230 kal_uint8 ta_code[2];
231 kal_uint8 multi_plmn_count;
232 plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
233 as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
234 kal_uint8 multi_ta_code[MAX_NUM_MULTI_PLMN][2]; // 36.331 R14 CR2912 EUTRAN sharing enhancement
235 kal_uint32 multi_cell_id[MAX_NUM_MULTI_PLMN]; // 36.331 R14 CR2912 EUTRAN sharing enhancement
236 csg_access_mode_enum csg_access_mode[MAX_NUM_MULTI_PLMN];
237 csg_info_struct csg_info[MAX_NUM_MULTI_PLMN];
238 lte_duplex_type_enum lte_type;
239 kal_bool ims_emergency_support;
240#ifdef __NG_ECALL_SUPPORT__
241 kal_bool ecall_over_ims_support;
242#endif /* __NG_ECALL_SUPPORT__ */
243 kal_bool is_c2k_as_irat;
244 kal_uint16 band;
245 kal_bool is_3G_sib_scheduled;
246 kal_bool is_2G_sib_scheduled;
247 kal_bool is_C2K_sib_scheduled;
248 enasas_ssac_ac_barringfactor_enum ssac_voice_ac_barring_factor;
249 kal_bool match_op_cfg;
250
251 //--- Debug Only ---//
252 endc_sib_status_enum endc_sib_status; /* "endc_sib_status" will be set to "ENDC_SIB_STATUS_SUPPORT" if the corresponding
253 * bit of selected PLMN in PLMN-InfoList-r15 from SIB2 is TRUE.
254 */
255 kal_bool endc_available; /* "endc_available" wil be set to TRUE if any bit in PLMN-InfoList-r15 from SIB2 is TRUE */
yu.donge372c322023-08-30 20:25:04 -0700256 kal_bool endc_band_ue_supported; /* TRUE: UE support at least 1 ENDC combo with attached LTE cell band */
rjw6c1fd8f2022-11-30 14:33:01 +0800257} nas_sv_emm_sys_info_update_ind_struct;
258
259typedef struct {
260 LOCAL_PARA_HDR
261 irat_type_enum irat_type;
262 rat_type_enum source_rat;
263 rat_type_enum target_rat;
264 ho_from_lte_type_enum ir_ho_type;
265 kal_uint8 nas_security_param_from_eutra;
266 gas_cipher_algo_enum gas_cipher_algo;
267 kal_bool csfb_ind;
268} nas_sv_emm_nas_ctxt_transfer_req_struct;
269
270typedef struct {
271 LOCAL_PARA_HDR
272 irat_type_enum irat_type;
273 irat_result_enum irat_result;
274 rat_type_enum source_rat;
275 rat_type_enum target_rat;
276} nas_sv_emm_rat_change_cnf_struct;
277
278typedef struct {
279 LOCAL_PARA_HDR
280 irat_container_errc_to_emm_struct irat_container;
281} nas_sv_emm_as_param_notify_ind_struct;
282
283typedef struct {
284 LOCAL_PARA_HDR
285 rat_enum rat_mode; /* RATCM_RAT_ENUM*/
286 domain_id_enum detach_domain; //for UEMODE:PS_MODE_x, CS domain should be detached first in RAT_MODE which contains RAT_LTE
287 rat_enum reported_rat;
288 rat_mode_change_cause_enum rat_mode_change_cause;
289} nas_sv_mm_set_rat_mode_req_struct;
290
291typedef struct {
292 LOCAL_PARA_HDR
293 proc_status_enum status; /* proc_status_enum */
294 mm_cause_enum cause; /* mm_cause_enum */
295} nas_sv_mm_set_rat_mode_cnf_struct;
296
297typedef struct {
298 LOCAL_PARA_HDR
299 irat_type_enum irat_type;
300 rat_type_enum source_rat;
301 rat_type_enum target_rat;
302 kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
303} nas_sv_mm_nas_ctxt_transfer_req_struct,nas_sv_mm_rat_change_req_struct;
304
305typedef struct {
306 LOCAL_PARA_HDR
307 irat_type_enum irat_type;
308 irat_result_enum irat_result;
309 rat_type_enum source_rat;
310 rat_type_enum target_rat;
311 irat_reject_cause_enum irat_reject_cause;
312} nas_sv_mm_rat_change_cnf_struct;
313
yu.donge372c322023-08-30 20:25:04 -0700314#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
315/** [MT2735][WNC] ILM: MSG_ID_SIM_NAS_SV_ECALL_MODE_SWITCH_IND which will carry changed ecall mode information */
316typedef sim_nas_sv_set_ecall_mode_ind_struct nas_sv_any_update_ecall_mode_change_ind_struct;
317#endif
rjw6c1fd8f2022-11-30 14:33:01 +0800318
319typedef struct {
320 LOCAL_PARA_HDR
321 rat_enum rat;
322 rat_enum reported_rat;
323} nas_sv_ratcm_set_rat_mode_req_struct;
324
325typedef struct {
326 LOCAL_PARA_HDR
327 kal_bool is_successful;
328 mm_cause_enum cause;
329} nas_sv_ratcm_set_rat_mode_cnf_struct;
330
331typedef struct {
332 LOCAL_PARA_HDR
333 irat_type_enum irat_type;
334 rat_type_enum source_rat;
335 rat_type_enum target_rat;
336 void* as_info_ptr;
337 kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
338 //NAS security parameter (Only valid for IRHO from UAS)
339 //Byte1 ~ 4: NouceMME
340 //Byte5: Selected Algorithm (Ciphering/Integrity)
341 //Byte6: eKSI (including type of security context)
342} nas_sv_ratcm_rat_change_ind_struct;
343
344typedef struct {
345 LOCAL_PARA_HDR
346 irat_type_enum irat_type;
347 rat_type_enum source_rat;
348 rat_type_enum target_rat;
349 irat_result_enum irat_result;
350 irat_reject_cause_enum irat_reject_cause;
351 void* as_info_ptr;
352} nas_sv_ratcm_rat_change_rsp_struct;
353
354typedef struct {
355 LOCAL_PARA_HDR
356 irat_type_enum irat_type;
357 rat_type_enum source_rat;
358 rat_type_enum target_rat;
359 void* as_info_ptr;
360 ratcm_gas_security_mode_req_struct gas_security;
361 uas_security_context_struct uas_security[2];
362 csfb_indicator_enum csfb_indicator;
363 loopback_mode_status_enum loopback_mode_status;
364 kal_bool is_lai_valid;
365 lai_struct lai;
366 kal_bool is_srvcc;
367 kal_bool is_mapped_rai_valid;
368 rai_struct mapped_rai;
369} nas_sv_ratcm_rat_change_req_struct;
370
371typedef struct {
372 LOCAL_PARA_HDR
373 irat_type_enum irat_type;
374 rat_type_enum source_rat;
375 rat_type_enum target_rat;
376 irat_result_enum irat_result;
377 void* as_info_ptr;
378 domain_id_enum connection_domain;
379 kal_bool is_gibi_tag_valid;
380 kal_uint16 gibi_tag;
381} nas_sv_ratcm_rat_change_cnf_struct;
382
383typedef struct {
384 LOCAL_PARA_HDR
385 kal_uint16 gibi_tag;
386 rat_enum rat;
387 kal_bool is_data_pending;
388 kal_bool is_sys_info_present;
389 kal_uint8 multi_plmn_count;
390 plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
391 as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
392 plmn_id_struct plmn_id;
393 kal_uint8 la_code[2];
394 kal_uint8 ra_code;
395 kal_uint32 cell_id;
396 kal_bool cell_support_cs;
397 kal_bool cell_support_ps; /* if FALSE, nmo and ra_code should not refer. */
398 kal_bool is_acc_class_present;
399 kal_uint16 acc_class;
400 kal_uint8 extra_info_bitmask; /* for DSAC/data_speed_support update in connected mode*/
401 kal_uint8 dsac_plmn_bitmask;
402 kal_uint16 cs_dsac[MAX_NUM_MULTI_PLMN];
403 kal_uint16 ps_dsac[MAX_NUM_MULTI_PLMN];
404 kal_uint8 t3212_timer_val;
405 network_mode_enum nmo;
406 as_cell_type_enum cell_type;
407 att_flag_enum att_flag;
408 kal_bool mscr;
409 rr_mm_sgsnr_flag_enum sgsnr;
410 data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */
411 kal_uint8 ppacr_plmn_bitmask;
412 ppacr_info_struct ppacr_info_plmn_list[MAX_NUM_MULTI_PLMN];
413 csg_access_mode_enum csg_access_mode;
414 csg_info_struct csg_info;
415 kal_bool is_gprs_info_in_si13_deferred;
416 kal_uint8 band;
417} nas_sv_ratcm_sys_info_update_ind_struct;
418
419typedef struct {
420 LOCAL_PARA_HDR
421 kal_uint8 trx_id;
422 plmn_search_result_enum result;
423 rat_enum rat;
424 plmn_id_struct selected_plmn;
425 kal_bool is_as_plmn_list_present;
426 as_plmn_list_struct as_plmn_list;
427 as_cell_type_enum selected_cell_type;
428 kal_bool is_ps_conn_releasing;
429 kal_uint8 multi_plmn_count;
430 plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
431 as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
432 scan_type_enum scan_type;
433 kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
434 fullband_result_enum is_fullband_finished;
435 kal_bool is_quick_search;
436} nas_sv_mm_plmn_search_cnf_struct;
437
438/* workaround need to remove */
439typedef struct
440{
441 LOCAL_PARA_HDR
442 kal_uint16 gibi_tag;
443 kal_uint8 plmn_id_num;
444 plmn_id_struct plmn_id[MAX_NUM_MULTI_PLMN];
445 as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
446 kal_uint8 ta_code[MAX_NUM_MULTI_PLMN][3];
447 kal_uint8 cell_id[MAX_NUM_MULTI_PLMN][5];
448 nrrc_ac1_selection_assistance_info_enum
449 ac1_selection_assistance_info[MAX_NUM_MULTI_PLMN];
450 kal_bool ims_emergency_support;
451 kal_uint16 band;
452 duplex_type_enum duplex_type;
453} nas_sv_nrrc_sys_info_update_ind_struct;
454/* workaround need to remove */
455
456
457typedef union
458{
459 nas_sv_ratcm_sys_info_update_ind_struct mm_sys_info;
460 nas_sv_emm_sys_info_update_ind_struct emm_sys_info;
461 nas_sv_nrrc_sys_info_update_ind_struct nrrc_sys_info;
462} nwsel_nas_sv_sys_info_update_ind_union;
463
464typedef union
465{
466 kal_uint8 nr_cell_id[MAX_NUM_MULTI_PLMN][5];
467 kal_uint32 lte_cell_id[MAX_NUM_MULTI_PLMN];
468 kal_uint32 umts_cell_id;
469 kal_uint16 gsm_cell_id;
470} cell_id_union;
471
472typedef struct {
473 LOCAL_PARA_HDR
474 rat_enum rat;
475 nwsel_nas_sv_sys_info_update_ind_union sys_info;
476} nwsel_nas_sv_sys_info_update_ind_struct;
477
478typedef struct
479{
480 LOCAL_PARA_HDR
481 kal_uint8 eq_plmn_count;
482 plmn_id_struct eq_plmn_id[MAX_NUM_EQ_PLMN];
483} nwsel_nas_sv_nrrc_eq_plmn_list_update_req_struct;
484
485
486typedef struct
487{
488 kal_bool is_ecc_triggered;
489 /* filled by MM */
490 kal_bool is_csfb_ongoing;
491 kal_uint16 factory_mode_arfcn;
492} gsm_search_param_container_struct;
493
494typedef struct
495{
496 kal_bool is_manual_csg_sel; // identify if the csg_id below is valid
497 kal_uint32 csg_id;
498 kal_bool is_ecc_triggered;
499 /* filled by MM */
500 kal_bool is_csfb_ongoing;
501 kal_uint16 factory_mode_arfcn;
502} umts_search_param_container_struct;
503
504typedef struct
505{
506 lte_duplex_type_enum lte_type;
507 /* NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found */
508 kal_bool force_ims_ecc_cell;
509#ifdef __NG_ECALL_SUPPORT__
510 /* 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.
511 * Check this field only when force_ims_ecc_cell is set to FALSE. */
512 kal_bool prefer_ims_ecc_cell;
513 /* Use in eCall only mode, force 4G AS to search cells with ecall_over_ims_support*/
514 kal_bool force_ecall_cell;
515#endif /* __NG_ECALL_SUPPORT__ */
516
517 /* OOS scenario, NWSEL need to search again Not-Found entry. AS should not apply U2D filter when this flag on */
518 kal_bool force_stored_search;
519 endc_search_enum endc_search; /* Search ENDC cell or not for LTE cell. */
520 kal_bool is_manual_csg_sel; // identify if the csg_id below is valid
521 kal_uint32 csg_id;
522 kal_bool is_mpsr_trigger; //for VzW MPSR expired based improvement
523 kal_uint32 factory_mode_arfcn;
524 /* OOS interleave source */
525 kal_uint8 additional_stored_freq_plmn_num;
526 plmn_id_struct additional_stored_freq_plmn[MAX_NUM_SEARCH_PLMN];
527} lte_search_param_container_struct;
528
529typedef struct
530{
531 NRARFCN factory_mode_arfcn;
532 /* NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found */
533 kal_bool force_ecc_cell;
534 /* OOS scenario, NWSEL need to search again Not-Found entry. AS should not apply U2D filter when this flag on */
535 kal_bool force_stored_search;
536 /* OOS interleave source */
537 kal_uint8 additional_stored_freq_plmn_num;
538 plmn_id_struct additional_stored_freq_plmn[MAX_NUM_SEARCH_PLMN];
539} nr_search_param_container_struct;
540
541
542typedef union
543{
544 gsm_search_param_container_struct gsm;
545 umts_search_param_container_struct umts;
546 lte_search_param_container_struct lte;
547 nr_search_param_container_struct nr;
548} search_rat_specific_param_container_union;
549
550typedef struct
551{
552 kal_bool is_power_on; //for CMCC case 5.1.1: is first search after power on
553 kal_bool is_manual_sel; // if search is manual selection
554 kal_bool trigger_by_signal_appear;
555 kal_bool is_higher_plmn_search;
556 kal_uint32 factory_mode_arfcn; //0xFFFFFFFF means invalid arfcn - do normal search. For fast camp on test machine
557
558 scan_type_enum scan_type;
559 search_period_enum search_period; // only a suggestion value for RAT switch.
560 /* number of valid items in the band list. */
561 kal_uint32 num_of_band;
562 /*band list for OP/MCC band and MRU/RAL */
563 kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
564 kal_bool is_band_list_sorted;
565 kal_bool is_quick_search;
566 kal_bool is_all_stored;
567 found_mcc_info_struct found_mcc_info;
568 kal_bool is_predict_search;
569} search_param_container_struct;
570
571
572typedef struct
573{
574 kal_bool force_to_release;
575 kal_bool is_clear_abnormal_state;
576 kal_bool is_srlte;
577 kal_bool is_to_deactivate_c2k_cs_service;
578} nas_control_param_container_struct;
579
580typedef struct {
581 LOCAL_PARA_HDR
582 rat_enum rat;
583 kal_uint8 trx_id;
584 plmn_search_type_enum plmn_search_type;
585 kal_uint8 plmn_id_count;
586 plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
587 nas_control_param_container_struct nas_ctrl_container;
588 search_param_container_struct as_param_container;
589 search_rat_specific_param_container_union as_specific_container;
590} nwsel_nas_sv_plmn_search_req_struct;
591
592typedef nwsel_nas_sv_plmn_search_req_struct nas_sv_emm_plmn_search_req_struct;
593typedef nwsel_nas_sv_plmn_search_req_struct nas_sv_mm_plmn_search_req_struct;
594
595typedef struct {
596 LOCAL_PARA_HDR
597 kal_bool is_manual_sel;
598} nwsel_nas_sv_manual_mode_update_req_struct;
599
600typedef struct {
601 LOCAL_PARA_HDR
602 kal_bool is_manual_list;
603 rat_enum rat;
604 lte_duplex_type_enum lte_type; // phase out
605 kal_uint8 plmn_id_count;
606 plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
607 scan_type_enum scan_type;
608 kal_bool is_mpsr_trigger; //for VzW MPSR expired based improvement
609 kal_bool is_elevator_mode;
610 found_mcc_info_struct found_mcc_info;
611 kal_bool is_higher_plmn_search;
612 kal_bool list_endc_info; /* LIST ENDC info or not for LTE cell. ERRC will collect SIB2 for PLMN_LIST. */
613 /** number of valid items in the band list. */
614 kal_uint32 num_of_band;
615 /** band list for MCC Band for PLMN List Optimization */
616 kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
617 user_list_type_enum user_list_type;
618 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.
619 network_scan_input_struct network_scan_input;
620} nwsel_nas_sv_plmn_list_req_struct;
621
622typedef struct
623{
624 LOCAL_PARA_HDR
625 kal_bool is_user_plmn_list_ongoing;
626} nwsel_nas_sv_plmn_list_status_update_req_struct;
627
628
629typedef struct {
630 LOCAL_PARA_HDR
631 rat_enum rat;
632 as_plmn_list_struct as_plmn_list;
633 scan_type_enum scan_type;
634 plmn_list_result_enum cause;
635 kal_bool is_complete; // If list not complete, the available list is not complete too.
636 kal_bool is_plmn_list_aborted; //indicate if the PLMN List is aborted by PLMN_LIST_ABORT_REQ
637} nwsel_nas_sv_plmn_list_cnf_struct;
638
639typedef nwsel_nas_sv_plmn_list_cnf_struct nas_sv_mm_plmn_list_cnf_struct;
640typedef nwsel_nas_sv_plmn_list_cnf_struct nas_sv_emm_plmn_list_cnf_struct;
641
642typedef nwsel_nas_sv_plmn_list_req_struct nas_sv_mm_plmn_list_req_struct;
643typedef nwsel_nas_sv_plmn_list_req_struct nas_sv_emm_plmn_list_req_struct;
644typedef nwsel_nas_sv_plmn_list_status_update_req_struct nas_sv_vgmm_plmn_list_status_update_req_struct;
645
646typedef struct
647{
648 LOCAL_PARA_HDR
649 network_scan_5g_output_struct nw_scan_5g_output;
650} nwsel_nas_sv_plmn_scan_ind_struct;
651
652typedef struct {
653 LOCAL_PARA_HDR
654 rat_enum rat;
655 lte_duplex_type_enum lte_type; // phase out
656 kal_uint8 plmn_id_count;
657 plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
658} nwsel_nas_sv_csg_list_req_struct;
659
660typedef struct {
661 LOCAL_PARA_HDR
662 rat_enum rat;
663 as_csg_list_struct as_csg_list;
664} nwsel_nas_sv_csg_list_cnf_struct;
665
666typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_mm_csg_list_cnf_struct;
667typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_emm_csg_list_cnf_struct;
668typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_nrrc_csg_list_cnf_struct;
669
670
671typedef nwsel_nas_sv_csg_list_req_struct nas_sv_mm_csg_list_req_struct;
672typedef nwsel_nas_sv_csg_list_req_struct nas_sv_emm_csg_list_req_struct;
673typedef nwsel_nas_sv_csg_list_req_struct nas_sv_nrrc_csg_list_req_struct;
674
675/* MSG_ID_NWSEL_NAS_SV_NRRC_PLMN_SEARCH_PREFERENCE_UPDATE_REQ */
676typedef struct {
677 LOCAL_PARA_HDR
678 kal_bool prefer_ims_emergency;
679} nwsel_nas_sv_nrrc_plmn_search_preference_update_req_struct;
680
681typedef struct {
682 LOCAL_PARA_HDR
683 kal_bool is_received;
684 kal_bool is_security_check;
685 kal_uint8 sor_header;
686 kal_uint16 oplmn_data_size;
687 kal_uint8 *oplmn_data;
688} nwsel_nas_sv_sor_oplmn_list_update_ind_struct;
689
690typedef nwsel_nas_sv_sor_oplmn_list_update_ind_struct nas_sv_vgmm_sor_oplmn_list_update_ind_struct;
691
692typedef struct {
693 LOCAL_PARA_HDR
694 kal_bool abort_reg_needed;
695} nwsel_nas_sv_sor_oplmn_list_update_rsp_struct;
696
697typedef nwsel_nas_sv_sor_oplmn_list_update_rsp_struct nas_sv_vgmm_sor_oplmn_list_update_rsp_struct;
698
699typedef struct {
700 LOCAL_PARA_HDR
701 kal_uint8 size_of_addr;
702 kal_uint8 addr[MAX_SIM_ADDR_LEN];
703} nwsel_nas_sv_sor_secure_packet_ind_struct;
704
705typedef struct {
706 LOCAL_PARA_HDR
707 kal_bool is_successful;
708 kal_uint16 size_of_sim_ack_data;
709 kal_uint8 sim_ack_data[256];
710 kal_uint8 cause;
711} nwsel_nas_sv_sor_secure_packet_rsp_struct;
712
713
714
715typedef struct {
716 LOCAL_PARA_HDR
717 rat_enum rat;
718} nwsel_nas_sv_plmn_search_ind_struct;
719
720/*Check Active RAT Req*/
721typedef struct {
722 LOCAL_PARA_HDR
723 rat_enum check_rat;
724}nwsel_nas_sv_check_active_rat_req_struct;
725
726typedef struct {
727 LOCAL_PARA_HDR
728 rat_enum rat; /*For RATCM only*/
729}nas_sv_ratcm_check_active_rat_req_struct;
730
731/*Set Active RAT Req*/
732typedef struct {
733 LOCAL_PARA_HDR
734 rat_enum rat; /*For RATCM only*/
735}nas_sv_ratcm_set_active_rat_req_struct;
736
737
738typedef struct {
739 LOCAL_PARA_HDR
740 rat_enum rat; /*For RATCM only*/
741}nas_sv_ratcm_sniffer_stop_req_struct;
742
743
744/*Check Active RAT Cnf*/
745typedef struct {
746 LOCAL_PARA_HDR
747 rat_enum rat; /*For RATCM only*/
748 kal_bool is_active_rat;
749}nas_sv_any_check_active_rat_cnf_struct;
750
751typedef nas_sv_any_check_active_rat_cnf_struct nas_sv_ratcm_check_active_rat_cnf_struct;
752
753/*Set Active RAT Cnf*/
754typedef struct {
755 LOCAL_PARA_HDR
756 rat_enum rat; /*For RATCM only*/
757 kal_bool is_success;
758}nas_sv_any_set_active_rat_cnf_struct;
759
760typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_ratcm_set_active_rat_cnf_struct;
761typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_emm_set_active_rat_cnf_struct;
762typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_vgmm_set_active_rat_cnf_struct;
763
764typedef struct {
765 LOCAL_PARA_HDR
766 rat_enum rat;
767 // sniff RPLMN
768 // only valid when the conditions hold
769 // plmn_search_status == PLMN_SEARCH_UNRELATED
770 // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE)
771 as_sniffer_req_service_enum sniffer_service_type;
772 as_sniffer_plmn_list_operate_type_enum plmn_list_operate_type;
773 kal_uint8 plmn_id_count;
774 plmn_id_struct plmn_id[MAX_NUM_SNIFFER_PLMN];
775
776}nwsel_nas_sv_sniffer_start_req_struct;
777
778typedef nwsel_nas_sv_sniffer_start_req_struct nas_sv_ratcm_sniffer_start_req_struct;
779
780typedef struct {
781 LOCAL_PARA_HDR
782 rat_enum rat; /*stop rat*/
783}nwsel_nas_sv_sniffer_stop_req_struct;
784
785typedef struct {
786 LOCAL_PARA_HDR
787 rat_enum rat;
788 kal_uint8 plmn_id_count;
789 plmn_id_struct plmn_id[MAX_NUM_SIGNAL_APPEAR_PLMN];
790 kal_uint32 num_of_detected_band;
791 kal_uint16 detected_band_list[MAX_SEARCH_BAND_LIST_SIZE];
792}nwsel_nas_sv_signal_appear_ind_struct;
793
794typedef struct {
795 LOCAL_PARA_HDR
796 rat_enum rat;
797 kal_uint32 num_of_detected_band;
798 kal_uint16 detected_band_list[MAX_SEARCH_BAND_LIST_SIZE];
799}nas_sv_ratcm_signal_appear_ind_struct;
800
801
802typedef struct {
803 LOCAL_PARA_HDR
804 nwsel_status_enum nwsel_search_status;
805} nwsel_nas_sv_display_search_status_ind_struct;
806
807typedef struct
808{
809 LOCAL_PARA_HDR
810 rat_enum rat;
811 kal_uint8 plmn_band_count;
812 plmn_band_struct plmn_band[MAX_PLMN_BAND_NUM];
813} nwsel_nas_sv_plmn_band_ind_struct;
814
815typedef struct {
816 LOCAL_PARA_HDR
817 kal_bool force_to_release;
818} nas_sv_mm_deactivate_req_struct;
819
820typedef struct {
821 LOCAL_PARA_HDR
822 kal_bool is_completed;
823 kal_bool is_ps_conn_releasing;
824} nas_sv_mm_deactivate_cnf_struct;
825
826typedef struct {
827 LOCAL_PARA_HDR
828 kal_bool force_to_release;
829} nas_sv_emm_deactivate_req_struct;
830
831typedef struct {
832 LOCAL_PARA_HDR
833 kal_bool is_completed;
834} nas_sv_emm_deactivate_cnf_struct;
835
836typedef struct {
837 LOCAL_PARA_HDR
838 ratcm_gas_security_mode_req_struct gas_security;
839 uas_security_context_struct uas_security[2];
840 csfb_indicator_enum csfb_indicator;
841 loopback_mode_status_enum loopback_mode_status;
842 kal_bool is_lai_valid;
843 lai_struct lai;
844 kal_bool is_srvcc;
845 kal_bool is_mapped_rai_valid;
846 rai_struct mapped_rai;
847} nas_sv_mm_nas_ctxt_transfer_cnf_struct;
848
849typedef struct {
850 LOCAL_PARA_HDR
851 kal_bool is_csfb_fast_return;
852} nas_sv_emm_as_param_update_req_struct;
853
854typedef struct {
855 LOCAL_PARA_HDR
856 kal_uint8 kasme[KASME_NUM];
857} nas_sv_emm_nas_ctxt_transfer_cnf_struct, nas_sv_emm_as_param_update_ind_struct;
858
859
860typedef struct {
861 LOCAL_PARA_HDR
862 domain_id_enum connection_domain;
863 kal_bool is_gibi_tag_valid;
864 kal_uint16 gibi_tag;
865} nas_sv_mm_as_param_update_req_struct;
866
867typedef struct
868{
869 LOCAL_PARA_HDR
870 no_action_cause_enum cause;
871 kal_uint8 trx_id;
872} nas_sv_emm_no_action_ind_struct;
873
874typedef struct
875{
876 LOCAL_PARA_HDR
877 kal_uint8 trx_id;
878} nas_sv_mm_no_action_ind_struct;
879
880typedef struct
881{
882 LOCAL_PARA_HDR
883 no_action_cause_enum cause;
884} nwsel_nas_sv_no_action_ind_struct;
885
886
887typedef struct {
888 LOCAL_PARA_HDR
889 enasas_add_epsbearer_list_struct add_list;
890} nas_sv_esm_as_param_update_req_struct;
891
892
893typedef struct
894{
895 LOCAL_PARA_HDR
896 domain_id_enum attach_type;
897 mm_cause_enum cause; /* failure cause*/
898 kal_uint8 att_id; /* Johnny: 3G RAC, for attach_req and detach_req using */
899 mm_cause_enum abnormal_lu_cause; /* MAUI_01650679 */
900 cell_info_and_rat_struct cell_info; /* registered cell info*/
901} nas_sv_mm_attach_cnf_struct;
902
903typedef struct
904{
905 LOCAL_PARA_HDR
906 kal_uint8 att_id;
907 domain_id_enum attach_type;
908 cell_info_and_rat_struct cell_info;
909 additional_update_result_enum additional_update_result;
910 kal_bool is_lai_valid;
911 lai_struct lai;
912} nas_sv_emm_attach_cnf_struct;
913
914typedef struct
915{
916 LOCAL_PARA_HDR
917 kal_uint8 att_id;
918 vgmm_cause_enum cause; /* failure cause*/
919 cell_info_and_rat_struct cell_info; /* registered cell info*/
920 kal_uint8 allowed_nssai_length; /* Number of bytes in allowed NSSAI */
921 kal_uint8 allowed_nssai[LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */
922} nas_sv_vgmm_attach_cnf_struct;
923
924typedef struct {
925 LOCAL_PARA_HDR
926 kal_uint8 att_id;
927 vgmm_cause_enum cause;
928 cell_info_and_rat_struct cell_info;
929 kal_bool is_reged; /* 5GMM registration status */
930 kal_bool is_reattach;
931 sat_loc_send_type_enum sat_send_type;
932} nas_sv_vgmm_detach_ind_struct;
933
934typedef struct
935{
936 LOCAL_PARA_HDR
937 emm_nw_feature_support_struct eps_nw_feature;
938} nas_sv_emm_nw_feature_support_ind_struct;
939
940typedef struct {
941 LOCAL_PARA_HDR
942 domain_id_enum detach_type;
943 mm_cause_enum cause;
944 //kal_bool issearching;
945 kal_bool is_reged;
946 kal_uint8 att_id;
947 cell_info_and_rat_struct cell_info;
948 integ_protect_status_enum is_integ_protected;
949 kal_uint8 invalid_cs_sim_counter;
950 kal_uint8 invalid_ps_sim_counter;
951 sat_loc_send_type_enum sat_send_type;
952 kal_bool is_reattach;
953} nas_sv_mm_detach_ind_struct;
954
955typedef struct
956{
957 LOCAL_PARA_HDR
958 kal_uint8 att_id;
959 domain_id_enum detach_type;
960 emm_cause_enum emm_cause;
961 emm_cause_source_enum emm_cause_source;
962 esm_cause_enum esm_cause;
963 kal_bool is_reged;
964 cell_info_and_rat_struct cell_info;
965 kal_bool is_reattach;
966 sat_loc_send_type_enum sat_send_type;
967 dos_enhance_info_struct dos_enhance_info;
968 kal_bool is_auth_reject_during_attach;
969} nas_sv_emm_detach_ind_struct;
970
971typedef struct {
972 LOCAL_PARA_HDR
973 umts_duplex_mode_type source_umts_duplex_mode;
974 umts_duplex_mode_type target_umts_duplex_mode;
975 lte_duplex_mode_type source_lte_duplex_mode;
976 lte_duplex_mode_type target_lte_duplex_mode;
977 mode_switch_cause_enum cause;
978} nas_sv_any_duplex_mode_change_req_struct;
979
980
981typedef struct {
982 LOCAL_PARA_HDR
983 kal_bool result;
984} nas_sv_any_duplex_mode_change_cnf_struct;
985
986typedef struct {
987 LOCAL_PARA_HDR
988 rfoff_cause_enum rfoff_cause;
989} nas_sv_any_rfoff_req_struct;
990
991typedef nas_sv_any_rfoff_req_struct nas_sv_pam_rfoff_ntf_struct;
992
993typedef struct {
994 LOCAL_PARA_HDR
995 rat_enum rat;
996} nas_sv_ratcm_cell_change_finish_ind_struct;
997
998typedef struct
999{
1000 LOCAL_PARA_HDR
1001 kal_uint8 multi_plmn_count;
1002 plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
1003 as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
1004 /* Only for LTE */
1005 kal_uint8 multi_ta_code[MAX_NUM_MULTI_PLMN][2]; // 36.331 R14 CR2912 EUTRAN sharing enhancement
1006 rat_enum rat;
1007 ue_capability_struct acting_capability;
1008 kal_bool is_nw_endc_disabled;
1009 nas_sv_capability_update_procedure_type_enum query_proc;
1010 domain_id_enum capability_query_attach_type;
1011 mm_user_search_type_enum capability_query_search_type;
1012} nwsel_nas_sv_capability_query_req_struct;
1013
1014typedef struct
1015{
1016 LOCAL_PARA_HDR
1017 ue_capability_struct capability;
1018 kal_bool is_nw_endc_disabled;
1019 kal_bool will_trigger_search; // if nwsel trigger search, can update by next sys_info.
1020 nas_sv_local_release_cause_enum local_rel_cause;
1021} nwsel_nas_sv_capability_query_cnf_struct;
1022
1023typedef struct
1024{
1025 LOCAL_PARA_HDR
1026 ue_capability_struct capability;
1027 kal_bool is_nw_endc_disabled;
1028 nas_sv_local_release_cause_enum local_rel_cause;
1029} nwsel_nas_sv_capability_update_req_struct;
1030
1031typedef struct{
1032 LOCAL_PARA_HDR
1033 nas_sv_capability_rat_enum target_rat;
1034 ue_capability_struct capability;
1035} nas_sv_ratcm_cap_update_req_struct;
1036
1037typedef struct{
1038 LOCAL_PARA_HDR
1039 nas_sv_capability_rat_enum target_rat;
1040 kal_bool is_successful; /* Indicates whether enabling or disabling capability is successful. */
1041} nas_sv_ratcm_cap_update_cnf_struct;
1042
1043typedef struct {
1044 kal_uint32 begin;
1045 kal_uint32 end;
1046} nas_freq_range_struct;
1047
1048typedef struct {
1049 nas_freq_range_struct freq_range;
1050 kal_int16 rssi;
1051 kal_uint16 band;
1052} nas_ps_result_struct;
1053
1054typedef struct {
1055 LOCAL_PARA_HDR
1056 rat_enum power_scan_rat; // could be multi-rat
1057 kal_uint32 nr_num_of_band;
1058 kal_uint16 nr_band_list[MAX_SEARCH_BAND_LIST_SIZE];
1059 kal_uint32 lte_num_of_band;
1060 kal_uint16 lte_band_list[MAX_SEARCH_BAND_LIST_SIZE];
1061} nwsel_nas_sv_power_scan_req_struct;
1062
1063typedef struct {
1064 LOCAL_PARA_HDR
1065 kal_uint16 power_scan_result_list_num;
1066 nas_ps_result_struct power_scan_result_list[NAS_MAX_PS_RESULT_LIST];
1067} nwsel_nas_sv_power_scan_cnf_struct;
1068
1069typedef struct {
1070 LOCAL_PARA_HDR
1071 kal_uint16 power_scan_result_list_num;
1072 nas_ps_result_struct power_scan_result_list[NAS_MAX_PS_RESULT_LIST];
1073} nwsel_nas_sv_power_scan_ind_struct;
1074
1075
1076typedef struct
1077{
1078 LOCAL_PARA_HDR
1079 ps_cause_enum cause;
1080} nas_sv_esm_eps_attach_needed_rej_rsp_struct;
1081
1082typedef struct
1083{
1084 LOCAL_PARA_HDR
1085 plmn_id_struct current_plmn_id;
1086
1087} nas_sv_esm_eps_attach_needed_ind_struct;
1088
1089typedef struct
1090{
1091 LOCAL_PARA_HDR
1092 kal_bool force_emc_attach;
1093} nas_sv_esm_emc_attach_ind_struct;
1094
1095typedef struct
1096{
1097 LOCAL_PARA_HDR
1098 srvcc_status_enum status;
1099} nas_sv_any_srvcc_status_update_ind_struct;
1100
1101typedef struct
1102{
1103 kal_bool forbidden_plmn_update_not_allowed; /*MM may change NW reject cause, and no need to add forbidden PLMN */
1104 kal_bool is_back_to_abnormal_la;
1105 kal_bool is_rau_performed;
1106 mm_check_ecall_status_enum ecall_status;
1107 kal_bool is_mobility_rau; /*To check whether update_type is periodic rau or mobility rau */
1108 integ_protect_status_enum is_integ_protected;
1109 kal_uint8 invalid_cs_sim_counter;
1110 kal_uint8 invalid_ps_sim_counter;
1111
1112 /* todo remove, NWSEL shall not know those status*/
1113 kal_bool stored_lai_valid;
1114 kal_bool stored_rai_valid;
1115 gsm_state_enum gsm_attach_state;
1116 gprs_state_enum gprs_attach_state;
1117 gsm_update_status_enum gsm_update_status;
1118 gprs_update_status_enum gprs_update_status;
1119
1120 /* todo use seperate interface to update */
1121 plmn_id_struct rplmn; //from stored lai. Valid when LR_ACCEPT & LR_ACCEPT_PS_ONLY
1122 kal_bool is_update_eq_plmn_needed; /* always check; indicate if NWSEL need to update EPLMN */
1123 kal_uint8 eq_plmn_byte_count;
1124 kal_uint8 eq_plmn_id[MAX_NUM_EQ_PLMN*3]; /* the EPLMN list from NW; 3 is NWSEL_PLMN_LEN */
1125
1126}mm_rat_specific_param_container_struct;
1127
1128#include "nwsel_eval_enums.h"
1129
1130typedef struct
1131{
1132 kal_bool stored_lai_valid;
1133 kal_bool stored_guti_valid;
1134 gsm_state_enum gsm_attach_state;
1135 eps_state_enum lte_attach_state;
1136 gsm_update_status_enum gsm_update_status;
1137 eps_update_status_enum lte_update_status;
1138#ifdef __NG_ECALL_SUPPORT__
1139 mm_check_ecall_status_enum ecall_status;
1140#endif /* __NG_ECALL_SUPPORT__ */
1141} update_param_struct;
1142
1143typedef struct
1144{
1145 esm_cause_enum esm_cause;
1146 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.
1147 kal_bool is_esm_attempt_max_times;
1148 additional_update_result_enum additional_update_result;
1149 eps_attach_update_result_enum eps_attach_update_result;
1150 kal_bool is_ims_vops_support;
1151 lte_duplex_type_enum lte_type;
1152 //CR1917: REL12 feature, use REL11 temporarily
1153 /* is_eutran_not_allowed should be checked only when Reject#15. Disable E-UTRAN if #15 and this field is True. */
1154 kal_bool is_eutran_not_allowed;
1155 kal_bool is_ps_reattach;
1156 kal_bool is_service_request_max_times;
1157 kal_bool is_t3402_valid;
1158 kal_uint16 t3402;
1159 kal_bool is_rach_fail_max_times;
1160 integ_protect_status_enum is_integ_protected;
1161 kal_uint8 invalid_cs_sim_counter;
1162 kal_uint8 invalid_ps_sim_counter;
1163 /* use to identify the TA is change or not when TAU/Combined TAU */
1164 kal_bool is_mobility_tau;
1165 kal_bool is_persistent_EPS_bearer_exist;
1166 kal_bool is_emc_bs_support;
1167 restrict_dcnr_enum restrict_dcnr_ind;
1168 kal_bool is_tau_before_search;
1169 update_param_struct update_param;
1170 /* [TMO] notify NAS_SV not to Disable S1 under real network */
1171 kal_bool is_t3402_not_start;
1172}emm_rat_specific_param_container_struct;
1173
1174typedef struct
1175{
1176 mm_cause_enum airlr_cause;
1177 vg_ims_3gpp_ind_enum ims_vops_supported_indicator;
1178 vg_emergency_service_ind_enum emc_supported_indicator;
1179 vg_emergency_fallback_ind_enum emc_fallback_supported_indicator;
1180 vgmm_5g_update_status_enum vg_update_status;
rjw8e44aab2022-11-30 16:42:16 +08001181 kal_bool is_proc_reported_earlier;
rjw6c1fd8f2022-11-30 14:33:01 +08001182}vgmm_rat_specific_param_container_struct;
1183
1184typedef union
1185{
1186 mm_rat_specific_param_container_struct mm;
1187 emm_rat_specific_param_container_struct emm;
1188 vgmm_rat_specific_param_container_struct vgmm;
1189} nas_rat_specific_param_container_union;
1190
1191
1192typedef struct {
1193 LOCAL_PARA_HDR
1194 rat_enum rat;
1195 nas_proc_enum nas_proc;
1196 lr_result_enum lr_result;
1197 mm_cause_enum lr_cause; // This value may be replaced by customized cause.
1198 kal_uint8 attempt_counter;
1199 nas_rat_specific_param_container_union nas_specific_container;
1200} nas_sv_any_regn_result_ind_struct;
1201
rjw8e44aab2022-11-30 16:42:16 +08001202typedef struct {
1203 LOCAL_PARA_HDR
1204 nas_proc_enum nas_proc;
1205 lr_result_enum lr_result;
1206 mm_cause_enum lr_cause; // This value may be replaced by customized cause.
1207 kal_uint8 attempt_counter;
1208 mm_cause_enum airlr_cause;
1209} nas_sv_vgmm_proc_result_ind_struct;
1210
1211typedef nas_sv_vgmm_proc_result_ind_struct nwsel_nas_sv_vgmm_proc_result_ind_struct;
1212
rjw6c1fd8f2022-11-30 14:33:01 +08001213typedef nas_sv_any_regn_result_ind_struct nwsel_nas_sv_regn_result_ind_struct;
1214
1215typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_ratcm_plmn_band_ind_struct;
1216
1217typedef struct
1218{
1219 LOCAL_PARA_HDR
1220 plmn_search_status_enum plmn_search_status;
1221 plmn_search_type_enum plmn_search_type; /* new plmn search type */
1222} nwsel_nas_sv_nrrc_regn_status_update_req_struct;
1223
1224typedef struct
1225{
1226 LOCAL_PARA_HDR
1227 kal_bool normal_oos_recovery_round_present;
1228 kal_uint8 normal_oos_recovery_round; // default value = 5
1229 kal_bool inactive_fullband_period_present;
1230 kal_uint16 inactive_fullband_period; // default = 200s
1231 kal_bool inactive_sniffer_period_present;
1232 kal_uint8 inactive_sniffer_period; // default = 30s
1233 kal_bool is_inactive_mode_present;
1234 kal_bool is_inactive_mode; // True: enter inactive mode, False: leave inactive mode
1235} nwsel_nas_sv_nrrc_inactive_mode_configuration_req_struct;
1236
1237typedef struct
1238{
1239 LOCAL_PARA_HDR
1240 kal_bool is_over_inactive_mode_threshold;
1241} nwsel_nas_sv_nrrc_service_recovery_round_update_req_struct;
1242
1243typedef struct
1244{
1245 LOCAL_PARA_HDR
1246 regn_proc_status_enum mm_proc_status;
1247}nwsel_nas_sv_vgmm_regn_status_update_req_struct;
1248
1249
1250/* NRRC related NAS interface */
1251
1252/* shall sync nas_sv_nrrc_plmn_loss_ind_struct */
1253
1254typedef struct
1255{
1256 LOCAL_PARA_HDR
1257 kal_bool is_as_plmn_list_present;
1258 as_plmn_list_struct as_plmn_list;
1259} nwsel_nas_sv_nr_plmn_loss_ind_struct;
1260
1261/* common */
1262typedef struct
1263{
1264 LOCAL_PARA_HDR
1265 kal_uint8 multi_plmn_count;
1266 plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
1267 as_cell_type_enum multi_cell_type[MAX_NUM_MULTI_PLMN];
1268 /// source from cell reselection or search
1269 found_ind_source_enum source;
1270 rat_enum rat;
1271 cell_id_union cell_id;
1272} nas_sv_any_plmn_found_ind_struct;
1273
1274typedef nas_sv_any_plmn_found_ind_struct nwsel_nas_sv_plmn_found_ind_struct;
1275
1276typedef struct
1277{
1278 LOCAL_PARA_HDR
1279 rat_enum anchor_rat;
1280 plmn_search_status_enum plmn_search_status;
1281 as_cell_type_enum cell_type;
1282 plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */
1283} nas_sv_any_search_status_update_req_struct;
1284
1285typedef nas_sv_any_search_status_update_req_struct nwsel_nas_sv_search_status_update_req_struct;
1286
1287
1288typedef struct {
1289 LOCAL_PARA_HDR
1290 rat_enum disable_rat;
1291} nas_sv_any_rat_disable_config_req_struct;
1292
1293typedef struct
1294{
1295 LOCAL_PARA_HDR
1296 kal_bool is_user_plmn_list_ongoing;
1297} nas_sv_any_plmn_list_status_update_req_struct;
1298
1299typedef struct
1300{
1301 LOCAL_PARA_HDR
1302 kal_uint8 plmn_id_count;
1303 plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN];
1304 kal_uint8 home_country_mcc[3];
1305} nas_sv_any_hplmn_info_update_req_struct;
1306
1307typedef nas_sv_any_hplmn_info_update_req_struct nwsel_nas_sv_hplmn_info_update_req_struct;
1308
1309typedef struct
1310{
1311 LOCAL_PARA_HDR
1312 update_eplmn_struct eplmn_info;
1313} nas_sv_any_eplmn_update_ind_struct;
1314
1315typedef nas_sv_any_eplmn_update_ind_struct nwsel_nas_sv_eplmn_update_ind_struct;
1316
1317/* eval refactor */
1318
1319typedef struct
1320{
1321 LOCAL_PARA_HDR
1322 update_param_struct update_param;
1323} nas_sv_emm_update_param_ind_struct;
1324
1325typedef nas_sv_emm_update_param_ind_struct nwsel_nas_sv_emm_update_param_ind_struct;
1326
1327/***** message structure definition *****/
1328
1329typedef struct
1330{
1331 LOCAL_PARA_HDR
1332 kal_bool is_plmn_search_2G3G_ongoing;
1333 as_cell_type_enum cell_type; // 2G/3G camped on cell type
1334 plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */
1335
1336} nas_sv_emm_search_status_update_req_struct;
1337
1338typedef struct
1339{
1340 LOCAL_PARA_HDR
1341 kal_bool prefer_ims_emergency;
1342} nas_sv_emm_search_preference_update_req_struct;
1343
1344typedef struct
1345{
1346 LOCAL_PARA_HDR
1347 regn_proc_status_enum mm_proc_status; // indicate if MS is in limited or no service
1348 plmn_search_status_enum plmn_search_status;
1349 plmn_search_type_enum plmn_search_type;
1350 // sniff RPLMN
1351 // only valid when the conditions hold
1352 // plmn_search_status == PLMN_SEARCH_UNRELATED
1353 // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE)
1354 kal_uint8 plmn_id_count;
1355 plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
1356 kal_bool is_send_to_as;
1357 kal_bool other_rat_found_notify_4G;
1358} nas_sv_emm_regn_status_update_req_struct;
1359
1360typedef struct
1361{
1362 LOCAL_PARA_HDR
1363 domain_id_enum conn_domain;
1364 kal_bool is_waiting_cell; //RRC connection release, no cell case, need to wiat ERRC to report a new cell
1365} nas_sv_emm_out_of_service_ind_struct;
1366
1367typedef struct
1368{
1369 LOCAL_PARA_HDR
1370 as_plmn_list_struct eas_plmn_list;
1371 kal_bool full_band_searched_4g;
1372 plmn_loss_reason_enum plmn_loss_reason;
1373} nas_sv_emm_plmn_loss_ind_struct;
1374
1375//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
1376typedef struct
1377{
1378 LOCAL_PARA_HDR
1379 kal_uint8 emc_fplmn_count;
1380 plmn_id_struct emc_fplmn_list[MAX_NUM_EMC_FPLMN];
1381 // band 0 => all band disabled, bar this PLMN
1382 kal_uint16 emc_fplmn_band[MAX_NUM_EMC_FPLMN];
1383} nas_sv_emm_emc_fplmn_list_update_req_struct;
1384//#endif
1385
1386typedef struct
1387{
1388 LOCAL_PARA_HDR
1389 voice_domain_preference_enum eutran_voice_domain_preference;
1390 ue_mode_enum ue_mode;
1391 kal_bool sms_only;
1392 voice_domain_preference_enum utran_voice_domain_preference;
1393} nas_sv_emm_uemode_param_update_req_struct;
1394
1395typedef struct
1396{
1397 LOCAL_PARA_HDR
1398 kal_uint16 t3402_value; // t3402 value in seconds
1399} nas_sv_emm_t3402_change_ind_struct; // __REL10__: t3402
1400
1401typedef struct
1402{
1403 LOCAL_PARA_HDR
1404 plmn_id_struct current_plmn_id;
1405 timer_status_enum status;
1406} rac_nas_sv_t3402_stop_ind_struct;
1407
1408typedef rac_nas_sv_t3402_stop_ind_struct nas_sv_emm_t3402_stop_ind_struct;
1409
1410//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
1411typedef struct
1412{
1413 LOCAL_PARA_HDR
1414 kal_bool prefer_ims_emergency;
1415} nas_sv_emm_plmn_search_preference_update_req_struct;
1416
1417typedef struct
1418{
1419 LOCAL_PARA_HDR
1420 emc_status_enum emc_status;
1421 emc_pdn_status_enum emc_pdn_status;
1422} nas_sv_emm_emergency_status_update_ind_struct;
1423
1424typedef struct
1425{
1426 LOCAL_PARA_HDR
1427 rat_enum rat;
1428 kal_uint32 num_of_band;
1429 kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
1430} nwsel_nas_sv_background_band_learning_req_struct;
1431
1432typedef struct
1433{
1434 LOCAL_PARA_HDR
1435 rat_enum rat;
1436} nwsel_nas_sv_background_band_learning_cnf_struct;
1437
1438typedef struct
1439{
1440 LOCAL_PARA_HDR
1441 rat_enum rat;
1442} nwsel_nas_sv_background_band_learning_stop_req_struct;
1443
1444typedef struct
1445{
1446 LOCAL_PARA_HDR
1447 rat_enum rat;
1448} nwsel_nas_sv_background_band_learning_stop_cnf_struct;
1449
1450typedef struct {
1451 LOCAL_PARA_HDR
1452 kal_uint8 local_rel_cause;
1453} nas_sv_check_cap_update_ind_struct;
1454
1455//#endif // __VOLTE_SUPPORT__
1456#if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__))
1457
1458typedef errc_sim_protect_req_struct nas_sv_emm_power_on_protection_req_struct;
1459
1460#endif
1461
1462#ifdef __FIVEG_NAS__
1463
1464typedef struct
1465{
1466 /* VGMM Definitions */
1467 vgmm_bcast_regn_update_enum vgmm_regn_update_type;
1468
1469 kal_bool vgmm_msg_type_present;
1470 vgmm_msg_type_enum vgmm_msg_type;
1471
1472 kal_bool vgmm_reg_type_present;
1473 vgmm_reg_type_enum vgmm_reg_type;
1474
1475 kal_bool vgmm_detach_type_present;
1476 vgmm_detach_type_enum vgmm_detach_type;
1477
1478 kal_bool vgmm_cause_present;
1479 vgmm_cause_enum vgmm_cause;
1480
1481 kal_bool vgmm_attempt_cnt_present;
1482 kal_uint8 vgmm_attempt_cnt;
1483
1484 kal_bool vgmm_ims_voice_over_ps_ind_present;
1485 ims_ind_enum vgmm_ims_voice_over_ps_ind;
rjw8e44aab2022-11-30 16:42:16 +08001486
1487 kal_bool vgmm_is_reattach_required;
rjw6c1fd8f2022-11-30 14:33:01 +08001488 /* End of VGMM Definitions */
1489}nas_sv_vgmm_broadcast_regn_result_struct;
1490#endif //__FIVEG_NAS__
1491
1492typedef struct
1493{
1494 /* EMM Definitions */
1495 emm_msg_type_enum emm_msg_type;
1496
1497 kal_bool emm_cause_present;
1498 emm_cause_enum emm_cause;
1499
1500 /* Whether the UE is registered or not according to state and current executing procedure in EMM view
1501 used for EMM/VGMM un-sync state checking for any_xmm_broadcast_regn_result handling */
1502 emm_bcast_regn_update_enum emm_regn_update_type;
rjw8e44aab2022-11-30 16:42:16 +08001503
1504 kal_bool emm_is_reattach_required;
rjw6c1fd8f2022-11-30 14:33:01 +08001505 /* End of EMM Definitions */
1506}nas_sv_emm_broadcast_regn_result_struct;
1507
1508typedef struct
1509{
1510 /* MM Definitions */
1511 mm_msg_type_enum mm_msg_type;
1512
1513 kal_bool is_mm_rej_cause_present;
1514 mm_cause_enum mm_rej_cause;
1515
1516 kal_bool is_mm_attempt_cnt_present;
1517 kal_uint8 mm_attempt_cnt;
1518 /* End of MM Definitions */
1519}nas_sv_mm_broadcast_regn_result_struct;
1520
1521typedef struct
1522{
1523 /* GMM Definitions */
1524 gmm_msg_type_enum gmm_msg_type;
1525
1526 kal_bool is_gmm_proc_direction_present;
1527 gmm_proc_direction_enum gmm_proc_direction;
1528
1529 kal_bool is_gmm_attach_type_present;
1530 gmm_attach_type_enum gmm_attach_type;
1531
1532 kal_bool is_gmm_update_type_present;
1533 gmm_update_type_enum gmm_update_type;
1534
1535 kal_bool is_gmm_detach_type_present;
1536 gmm_detach_type_enum gmm_detach_type;
1537
1538 kal_bool is_gmm_attach_result_present;
1539 gmm_attach_result_enum gmm_attach_result;
1540
1541 kal_bool is_gmm_update_result_present;
1542 gmm_update_result_enum gmm_update_result;
1543
1544 kal_bool is_gmm_cause_present;
1545 mm_cause_enum gmm_cause;
1546
1547 kal_bool is_gmm_attempt_cnt_present;
1548 kal_uint8 gmm_attempt_cnt;
1549 /* End of GMM Definitions */
1550}nas_sv_gmm_broadcast_regn_result_struct;
1551
1552typedef struct
1553{
1554 LOCAL_PARA_HDR
1555
1556 /* XMM Common Definitions */
1557 rat_type_enum source_rat;
1558 integ_protect_status_enum is_integ_protected;
1559 domain_id_enum cn_domain;
1560 /* End of XMM Common Definitions */
1561
1562 union
1563 {
1564 #ifdef __FIVEG_NAS__
1565 /* VGMM Definitions */
1566 nas_sv_vgmm_broadcast_regn_result_struct vgmm_info;
1567 #endif //__FIVEG_NAS__
1568
1569 /* EMM Definitions */
1570 nas_sv_emm_broadcast_regn_result_struct emm_info;
1571
1572 /* MM Definitions */
1573 nas_sv_mm_broadcast_regn_result_struct mm_info;
1574
1575 /* GMM Definitions */
1576 nas_sv_gmm_broadcast_regn_result_struct gmm_info;
1577 }info;
1578
1579} nas_sv_xmm_broadcast_regn_result_struct;
1580
1581typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_vgmm_broadcast_regn_result_ind_struct;
1582typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_emm_broadcast_regn_result_ind_struct;
1583typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_mm_broadcast_regn_result_ind_struct;
1584typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_any_broadcast_regn_result_ind_struct;
1585
1586typedef struct
1587{
1588 LOCAL_PARA_HDR
1589
1590
1591 xmm_common_timer_id_enum xmm_common_timer_id;
1592 kal_bool status; /**< KAL_FALSE:Stop, KAL_TRUE:start*/
1593 plmn_id_struct backoff_timer_plmn;
1594 kal_bool is_backoff_timer_plmn_in_eq_plmn_list;
1595
1596#ifdef __SUPPORT_CLIB_TIME__ /**< Target & MoDIS */
1597 kal_int64 expire_time; /**< unit is seconds */
1598#else /**< UESIM */
1599 kal_uint16 remaining_time; /**< unit is seconds */
1600#endif
1601} nas_sv_xmm_broadcast_timer_status_struct;
1602
1603typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_vgmm_broadcast_timer_status_ind_struct;
1604typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_emm_broadcast_timer_status_ind_struct;
1605typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_mm_broadcast_timer_status_ind_struct;
1606typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_any_broadcast_timer_status_ind_struct;
1607
1608typedef struct
1609{
1610 LOCAL_PARA_HDR
1611
1612 /* XMM Common Definitions */
1613 rat_type_enum source_rat;
1614
1615} nas_sv_xmm_broadcast_detach_required_struct;
1616
1617typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_emm_broadcast_detach_required_ind_struct;
1618typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_any_broadcast_detach_required_ind_struct;
1619
1620
1621typedef struct {
1622 LOCAL_PARA_HDR
1623 kal_bool is_allow;
1624} nas_sv_any_operation_allow_cnf_struct;
1625
1626typedef struct {
1627 LOCAL_PARA_HDR
1628 nas_sv_any_operation_enum operation_to_be_allowed;
1629} nas_sv_any_operation_allow_req_struct;
1630
1631typedef struct {
1632 LOCAL_PARA_HDR
1633 nas_sv_manipulate_connection_enum operation_to_be_exe;
1634 kal_bool is_local_release_later;
1635} nas_sv_any_manipulate_connection_req_struct;
1636
1637typedef struct
1638{
1639 LOCAL_PARA_HDR
1640 kal_bool is_triggered_by_sys_info;
1641 ue_capability_struct capability;
1642} nas_sv_any_mm_cap_update_req_struct;
1643
1644typedef struct
1645{
1646 LOCAL_PARA_HDR
1647 vg_option_enum vg_option_bitmap;
1648 kal_bool is_need_local_release;
1649 kal_bool is_trigger_nr_search; //used for option 2 is turned on and search SA
1650} rac_nas_sv_vg_option_update_req_struct;
1651
1652typedef rac_nas_sv_vg_option_update_req_struct nas_sv_any_vg_option_update_req_struct;
1653
1654typedef l4c_general_modem_configure_set_req_struct nas_sv_any_general_modem_configure_set_req_struct;
1655typedef l4c_general_modem_configure_set_cnf_struct nas_sv_any_general_modem_configure_set_cnf_struct;
1656
1657typedef struct {
1658 LOCAL_PARA_HDR
1659 mode_switch_cause_enum cause;
1660} nwsel_nas_sv_vgmm_global_mode_change_start_req_struct;
1661
1662typedef struct
1663{
1664 LOCAL_PARA_HDR
1665 kal_bool is_persistent_pdu_session_exist;
1666} nas_sv_vgsm_persistent_pdu_session_ind_struct;
1667
1668typedef nas_sv_vgsm_persistent_pdu_session_ind_struct nwsel_nas_sv_vgsm_persistent_pdu_session_ind_struct;
1669
1670typedef struct
1671{
1672 LOCAL_PARA_HDR
1673 kal_bool is_roaming;
1674 nwsel_capability_disabled_reason_enum disabled_reason;
1675} nwsel_nas_sv_disable_info_update_ntf_struct;
1676
1677typedef nwsel_nas_sv_disable_info_update_ntf_struct nas_sv_any_disable_info_update_ntf_struct;
1678
1679typedef struct {
1680 LOCAL_PARA_HDR
1681 kal_bool is_searching;
1682} nwsel_nas_sv_as_plmn_search_report_ind_struct;
1683
rjw8e44aab2022-11-30 16:42:16 +08001684typedef struct
1685{
1686 LOCAL_PARA_HDR
1687 kal_bool is_emc_info_valid;
1688 kal_bool is_nr_emc_service_available;
1689} nwsel_nas_sv_nr_emc_service_availability_ind_struct;
1690
1691typedef struct
1692{
1693 LOCAL_PARA_HDR
1694 kal_bool is_emc_info_valid;
1695} nwsel_nas_sv_nr_emc_service_availability_rsp_struct;
1696
rjw6c1fd8f2022-11-30 14:33:01 +08001697#if 0
1698/* under construction !*/
1699/* under construction !*/
1700/* under construction !*/
1701/* under construction !*/
1702/* under construction !*/
1703/* under construction !*/
1704/* under construction !*/
1705/* under construction !*/
1706/* under construction !*/
1707/* under construction !*/
1708/* under construction !*/
1709/* under construction !*/
1710/* under construction !*/
1711/* under construction !*/
1712/* under construction !*/
1713/* under construction !*/
1714/* under construction !*/
1715/* under construction !*/
1716/* under construction !*/
1717/* under construction !*/
1718/* under construction !*/
1719/* under construction !*/
1720/* under construction !*/
1721/* under construction !*/
1722/* under construction !*/
1723/* under construction !*/
1724/* under construction !*/
1725/* under construction !*/
1726/* under construction !*/
1727/* under construction !*/
1728/* under construction !*/
1729/* under construction !*/
1730/* under construction !*/
1731/* under construction !*/
1732/* under construction !*/
1733/* under construction !*/
1734/* under construction !*/
1735/* under construction !*/
1736/* under construction !*/
1737/* under construction !*/
1738/* under construction !*/
1739/* under construction !*/
1740/* under construction !*/
1741/* under construction !*/
1742/* under construction !*/
1743/* under construction !*/
1744/* under construction !*/
1745/* under construction !*/
1746/* under construction !*/
1747/* under construction !*/
1748/* under construction !*/
1749/* under construction !*/
1750/* under construction !*/
1751/* under construction !*/
1752/* under construction !*/
1753/* under construction !*/
1754/* under construction !*/
1755/* under construction !*/
1756/* under construction !*/
1757/* under construction !*/
1758/* under construction !*/
1759/* under construction !*/
1760/* under construction !*/
1761/* under construction !*/
1762/* under construction !*/
1763/* under construction !*/
1764/* under construction !*/
1765/* under construction !*/
1766/* under construction !*/
1767/* under construction !*/
1768/* under construction !*/
1769/* under construction !*/
1770/* under construction !*/
1771/* under construction !*/
1772/* under construction !*/
1773/* under construction !*/
1774/* under construction !*/
1775/* under construction !*/
1776/* under construction !*/
1777/* under construction !*/
1778/* under construction !*/
1779/* under construction !*/
1780/* under construction !*/
1781/* under construction !*/
1782/* under construction !*/
1783/* under construction !*/
1784/* under construction !*/
1785/* under construction !*/
1786/* under construction !*/
1787/* under construction !*/
1788/* under construction !*/
1789/* under construction !*/
1790/* under construction !*/
1791/* under construction !*/
1792/* under construction !*/
1793/* under construction !*/
1794/* under construction !*/
1795/* under construction !*/
1796/* under construction !*/
1797/* under construction !*/
1798/* under construction !*/
1799/* under construction !*/
1800/* under construction !*/
1801/* under construction !*/
1802/* under construction !*/
1803/* under construction !*/
1804/* under construction !*/
1805/* under construction !*/
1806/* under construction !*/
1807/* under construction !*/
1808/* under construction !*/
1809/* under construction !*/
1810/* under construction !*/
1811/* under construction !*/
1812/* under construction !*/
1813/* under construction !*/
1814/* under construction !*/
1815/* under construction !*/
1816/* under construction !*/
1817/* under construction !*/
1818/* under construction !*/
1819/* under construction !*/
1820/* under construction !*/
1821/* under construction !*/
1822/* under construction !*/
1823/* under construction !*/
1824/* under construction !*/
1825/* under construction !*/
1826/* under construction !*/
1827/* under construction !*/
1828/* under construction !*/
1829/* under construction !*/
1830/* under construction !*/
1831/* under construction !*/
1832/* under construction !*/
1833/* under construction !*/
1834/* under construction !*/
1835/* under construction !*/
1836/* under construction !*/
1837/* under construction !*/
1838/* under construction !*/
1839/* under construction !*/
1840/* under construction !*/
1841/* under construction !*/
1842#endif
1843
1844
1845
1846#endif
1847
1848