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