blob: b3d1d2eaa42d46dcf9f135c1e23041512b0ff8da [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;
1175}vgmm_rat_specific_param_container_struct;
1176
1177typedef union
1178{
1179 mm_rat_specific_param_container_struct mm;
1180 emm_rat_specific_param_container_struct emm;
1181 vgmm_rat_specific_param_container_struct vgmm;
1182} nas_rat_specific_param_container_union;
1183
1184
1185typedef struct {
1186 LOCAL_PARA_HDR
1187 rat_enum rat;
1188 nas_proc_enum nas_proc;
1189 lr_result_enum lr_result;
1190 mm_cause_enum lr_cause; // This value may be replaced by customized cause.
1191 kal_uint8 attempt_counter;
1192 nas_rat_specific_param_container_union nas_specific_container;
1193} nas_sv_any_regn_result_ind_struct;
1194
1195typedef nas_sv_any_regn_result_ind_struct nwsel_nas_sv_regn_result_ind_struct;
1196
1197typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_ratcm_plmn_band_ind_struct;
1198
1199typedef struct
1200{
1201 LOCAL_PARA_HDR
1202 plmn_search_status_enum plmn_search_status;
1203 plmn_search_type_enum plmn_search_type; /* new plmn search type */
1204} nwsel_nas_sv_nrrc_regn_status_update_req_struct;
1205
1206typedef struct
1207{
1208 LOCAL_PARA_HDR
1209 kal_bool normal_oos_recovery_round_present;
1210 kal_uint8 normal_oos_recovery_round; // default value = 5
1211 kal_bool inactive_fullband_period_present;
1212 kal_uint16 inactive_fullband_period; // default = 200s
1213 kal_bool inactive_sniffer_period_present;
1214 kal_uint8 inactive_sniffer_period; // default = 30s
1215 kal_bool is_inactive_mode_present;
1216 kal_bool is_inactive_mode; // True: enter inactive mode, False: leave inactive mode
1217} nwsel_nas_sv_nrrc_inactive_mode_configuration_req_struct;
1218
1219typedef struct
1220{
1221 LOCAL_PARA_HDR
1222 kal_bool is_over_inactive_mode_threshold;
1223} nwsel_nas_sv_nrrc_service_recovery_round_update_req_struct;
1224
1225typedef struct
1226{
1227 LOCAL_PARA_HDR
1228 regn_proc_status_enum mm_proc_status;
1229}nwsel_nas_sv_vgmm_regn_status_update_req_struct;
1230
1231
1232/* NRRC related NAS interface */
1233
1234/* shall sync nas_sv_nrrc_plmn_loss_ind_struct */
1235
1236typedef struct
1237{
1238 LOCAL_PARA_HDR
1239 kal_bool is_as_plmn_list_present;
1240 as_plmn_list_struct as_plmn_list;
1241} nwsel_nas_sv_nr_plmn_loss_ind_struct;
1242
1243/* common */
1244typedef struct
1245{
1246 LOCAL_PARA_HDR
1247 kal_uint8 multi_plmn_count;
1248 plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
1249 as_cell_type_enum multi_cell_type[MAX_NUM_MULTI_PLMN];
1250 /// source from cell reselection or search
1251 found_ind_source_enum source;
1252 rat_enum rat;
1253 cell_id_union cell_id;
1254} nas_sv_any_plmn_found_ind_struct;
1255
1256typedef nas_sv_any_plmn_found_ind_struct nwsel_nas_sv_plmn_found_ind_struct;
1257
1258typedef struct
1259{
1260 LOCAL_PARA_HDR
1261 rat_enum anchor_rat;
1262 plmn_search_status_enum plmn_search_status;
1263 as_cell_type_enum cell_type;
1264 plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */
1265} nas_sv_any_search_status_update_req_struct;
1266
1267typedef nas_sv_any_search_status_update_req_struct nwsel_nas_sv_search_status_update_req_struct;
1268
1269
1270typedef struct {
1271 LOCAL_PARA_HDR
1272 rat_enum disable_rat;
1273} nas_sv_any_rat_disable_config_req_struct;
1274
1275typedef struct
1276{
1277 LOCAL_PARA_HDR
1278 kal_bool is_user_plmn_list_ongoing;
1279} nas_sv_any_plmn_list_status_update_req_struct;
1280
1281typedef struct
1282{
1283 LOCAL_PARA_HDR
1284 kal_uint8 plmn_id_count;
1285 plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN];
1286 kal_uint8 home_country_mcc[3];
1287} nas_sv_any_hplmn_info_update_req_struct;
1288
1289typedef nas_sv_any_hplmn_info_update_req_struct nwsel_nas_sv_hplmn_info_update_req_struct;
1290
1291typedef struct
1292{
1293 LOCAL_PARA_HDR
1294 update_eplmn_struct eplmn_info;
1295} nas_sv_any_eplmn_update_ind_struct;
1296
1297typedef nas_sv_any_eplmn_update_ind_struct nwsel_nas_sv_eplmn_update_ind_struct;
1298
1299/* eval refactor */
1300
1301typedef struct
1302{
1303 LOCAL_PARA_HDR
1304 update_param_struct update_param;
1305} nas_sv_emm_update_param_ind_struct;
1306
1307typedef nas_sv_emm_update_param_ind_struct nwsel_nas_sv_emm_update_param_ind_struct;
1308
1309/***** message structure definition *****/
1310
1311typedef struct
1312{
1313 LOCAL_PARA_HDR
1314 kal_bool is_plmn_search_2G3G_ongoing;
1315 as_cell_type_enum cell_type; // 2G/3G camped on cell type
1316 plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */
1317
1318} nas_sv_emm_search_status_update_req_struct;
1319
1320typedef struct
1321{
1322 LOCAL_PARA_HDR
1323 kal_bool prefer_ims_emergency;
1324} nas_sv_emm_search_preference_update_req_struct;
1325
1326typedef struct
1327{
1328 LOCAL_PARA_HDR
1329 regn_proc_status_enum mm_proc_status; // indicate if MS is in limited or no service
1330 plmn_search_status_enum plmn_search_status;
1331 plmn_search_type_enum plmn_search_type;
1332 // sniff RPLMN
1333 // only valid when the conditions hold
1334 // plmn_search_status == PLMN_SEARCH_UNRELATED
1335 // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE)
1336 kal_uint8 plmn_id_count;
1337 plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
1338 kal_bool is_send_to_as;
1339 kal_bool other_rat_found_notify_4G;
1340} nas_sv_emm_regn_status_update_req_struct;
1341
1342typedef struct
1343{
1344 LOCAL_PARA_HDR
1345 domain_id_enum conn_domain;
1346 kal_bool is_waiting_cell; //RRC connection release, no cell case, need to wiat ERRC to report a new cell
1347} nas_sv_emm_out_of_service_ind_struct;
1348
1349typedef struct
1350{
1351 LOCAL_PARA_HDR
1352 as_plmn_list_struct eas_plmn_list;
1353 kal_bool full_band_searched_4g;
1354 plmn_loss_reason_enum plmn_loss_reason;
1355} nas_sv_emm_plmn_loss_ind_struct;
1356
1357//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
1358typedef struct
1359{
1360 LOCAL_PARA_HDR
1361 kal_uint8 emc_fplmn_count;
1362 plmn_id_struct emc_fplmn_list[MAX_NUM_EMC_FPLMN];
1363 // band 0 => all band disabled, bar this PLMN
1364 kal_uint16 emc_fplmn_band[MAX_NUM_EMC_FPLMN];
1365} nas_sv_emm_emc_fplmn_list_update_req_struct;
1366//#endif
1367
1368typedef struct
1369{
1370 LOCAL_PARA_HDR
1371 voice_domain_preference_enum eutran_voice_domain_preference;
1372 ue_mode_enum ue_mode;
1373 kal_bool sms_only;
1374 voice_domain_preference_enum utran_voice_domain_preference;
1375} nas_sv_emm_uemode_param_update_req_struct;
1376
1377typedef struct
1378{
1379 LOCAL_PARA_HDR
1380 kal_uint16 t3402_value; // t3402 value in seconds
1381} nas_sv_emm_t3402_change_ind_struct; // __REL10__: t3402
1382
1383typedef struct
1384{
1385 LOCAL_PARA_HDR
1386 plmn_id_struct current_plmn_id;
1387 timer_status_enum status;
1388} rac_nas_sv_t3402_stop_ind_struct;
1389
1390typedef rac_nas_sv_t3402_stop_ind_struct nas_sv_emm_t3402_stop_ind_struct;
1391
1392//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
1393typedef struct
1394{
1395 LOCAL_PARA_HDR
1396 kal_bool prefer_ims_emergency;
1397} nas_sv_emm_plmn_search_preference_update_req_struct;
1398
1399typedef struct
1400{
1401 LOCAL_PARA_HDR
1402 emc_status_enum emc_status;
1403 emc_pdn_status_enum emc_pdn_status;
1404} nas_sv_emm_emergency_status_update_ind_struct;
1405
1406typedef struct
1407{
1408 LOCAL_PARA_HDR
1409 rat_enum rat;
1410 kal_uint32 num_of_band;
1411 kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
1412} nwsel_nas_sv_background_band_learning_req_struct;
1413
1414typedef struct
1415{
1416 LOCAL_PARA_HDR
1417 rat_enum rat;
1418} nwsel_nas_sv_background_band_learning_cnf_struct;
1419
1420typedef struct
1421{
1422 LOCAL_PARA_HDR
1423 rat_enum rat;
1424} nwsel_nas_sv_background_band_learning_stop_req_struct;
1425
1426typedef struct
1427{
1428 LOCAL_PARA_HDR
1429 rat_enum rat;
1430} nwsel_nas_sv_background_band_learning_stop_cnf_struct;
1431
1432typedef struct {
1433 LOCAL_PARA_HDR
1434 kal_uint8 local_rel_cause;
1435} nas_sv_check_cap_update_ind_struct;
1436
1437//#endif // __VOLTE_SUPPORT__
1438#if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__))
1439
1440typedef errc_sim_protect_req_struct nas_sv_emm_power_on_protection_req_struct;
1441
1442#endif
1443
1444#ifdef __FIVEG_NAS__
1445
1446typedef struct
1447{
1448 /* VGMM Definitions */
1449 vgmm_bcast_regn_update_enum vgmm_regn_update_type;
1450
1451 kal_bool vgmm_msg_type_present;
1452 vgmm_msg_type_enum vgmm_msg_type;
1453
1454 kal_bool vgmm_reg_type_present;
1455 vgmm_reg_type_enum vgmm_reg_type;
1456
1457 kal_bool vgmm_detach_type_present;
1458 vgmm_detach_type_enum vgmm_detach_type;
1459
1460 kal_bool vgmm_cause_present;
1461 vgmm_cause_enum vgmm_cause;
1462
1463 kal_bool vgmm_attempt_cnt_present;
1464 kal_uint8 vgmm_attempt_cnt;
1465
1466 kal_bool vgmm_ims_voice_over_ps_ind_present;
1467 ims_ind_enum vgmm_ims_voice_over_ps_ind;
1468 /* End of VGMM Definitions */
1469}nas_sv_vgmm_broadcast_regn_result_struct;
1470#endif //__FIVEG_NAS__
1471
1472typedef struct
1473{
1474 /* EMM Definitions */
1475 emm_msg_type_enum emm_msg_type;
1476
1477 kal_bool emm_cause_present;
1478 emm_cause_enum emm_cause;
1479
1480 /* Whether the UE is registered or not according to state and current executing procedure in EMM view
1481 used for EMM/VGMM un-sync state checking for any_xmm_broadcast_regn_result handling */
1482 emm_bcast_regn_update_enum emm_regn_update_type;
1483 /* End of EMM Definitions */
1484}nas_sv_emm_broadcast_regn_result_struct;
1485
1486typedef struct
1487{
1488 /* MM Definitions */
1489 mm_msg_type_enum mm_msg_type;
1490
1491 kal_bool is_mm_rej_cause_present;
1492 mm_cause_enum mm_rej_cause;
1493
1494 kal_bool is_mm_attempt_cnt_present;
1495 kal_uint8 mm_attempt_cnt;
1496 /* End of MM Definitions */
1497}nas_sv_mm_broadcast_regn_result_struct;
1498
1499typedef struct
1500{
1501 /* GMM Definitions */
1502 gmm_msg_type_enum gmm_msg_type;
1503
1504 kal_bool is_gmm_proc_direction_present;
1505 gmm_proc_direction_enum gmm_proc_direction;
1506
1507 kal_bool is_gmm_attach_type_present;
1508 gmm_attach_type_enum gmm_attach_type;
1509
1510 kal_bool is_gmm_update_type_present;
1511 gmm_update_type_enum gmm_update_type;
1512
1513 kal_bool is_gmm_detach_type_present;
1514 gmm_detach_type_enum gmm_detach_type;
1515
1516 kal_bool is_gmm_attach_result_present;
1517 gmm_attach_result_enum gmm_attach_result;
1518
1519 kal_bool is_gmm_update_result_present;
1520 gmm_update_result_enum gmm_update_result;
1521
1522 kal_bool is_gmm_cause_present;
1523 mm_cause_enum gmm_cause;
1524
1525 kal_bool is_gmm_attempt_cnt_present;
1526 kal_uint8 gmm_attempt_cnt;
1527 /* End of GMM Definitions */
1528}nas_sv_gmm_broadcast_regn_result_struct;
1529
1530typedef struct
1531{
1532 LOCAL_PARA_HDR
1533
1534 /* XMM Common Definitions */
1535 rat_type_enum source_rat;
1536 integ_protect_status_enum is_integ_protected;
1537 domain_id_enum cn_domain;
1538 /* End of XMM Common Definitions */
1539
1540 union
1541 {
1542 #ifdef __FIVEG_NAS__
1543 /* VGMM Definitions */
1544 nas_sv_vgmm_broadcast_regn_result_struct vgmm_info;
1545 #endif //__FIVEG_NAS__
1546
1547 /* EMM Definitions */
1548 nas_sv_emm_broadcast_regn_result_struct emm_info;
1549
1550 /* MM Definitions */
1551 nas_sv_mm_broadcast_regn_result_struct mm_info;
1552
1553 /* GMM Definitions */
1554 nas_sv_gmm_broadcast_regn_result_struct gmm_info;
1555 }info;
1556
1557} nas_sv_xmm_broadcast_regn_result_struct;
1558
1559typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_vgmm_broadcast_regn_result_ind_struct;
1560typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_emm_broadcast_regn_result_ind_struct;
1561typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_mm_broadcast_regn_result_ind_struct;
1562typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_any_broadcast_regn_result_ind_struct;
1563
1564typedef struct
1565{
1566 LOCAL_PARA_HDR
1567
1568
1569 xmm_common_timer_id_enum xmm_common_timer_id;
1570 kal_bool status; /**< KAL_FALSE:Stop, KAL_TRUE:start*/
1571 plmn_id_struct backoff_timer_plmn;
1572 kal_bool is_backoff_timer_plmn_in_eq_plmn_list;
1573
1574#ifdef __SUPPORT_CLIB_TIME__ /**< Target & MoDIS */
1575 kal_int64 expire_time; /**< unit is seconds */
1576#else /**< UESIM */
1577 kal_uint16 remaining_time; /**< unit is seconds */
1578#endif
1579} nas_sv_xmm_broadcast_timer_status_struct;
1580
1581typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_vgmm_broadcast_timer_status_ind_struct;
1582typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_emm_broadcast_timer_status_ind_struct;
1583typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_mm_broadcast_timer_status_ind_struct;
1584typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_any_broadcast_timer_status_ind_struct;
1585
1586typedef struct
1587{
1588 LOCAL_PARA_HDR
1589
1590 /* XMM Common Definitions */
1591 rat_type_enum source_rat;
1592
1593} nas_sv_xmm_broadcast_detach_required_struct;
1594
1595typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_emm_broadcast_detach_required_ind_struct;
1596typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_any_broadcast_detach_required_ind_struct;
1597
1598
1599typedef struct {
1600 LOCAL_PARA_HDR
1601 kal_bool is_allow;
1602} nas_sv_any_operation_allow_cnf_struct;
1603
1604typedef struct {
1605 LOCAL_PARA_HDR
1606 nas_sv_any_operation_enum operation_to_be_allowed;
1607} nas_sv_any_operation_allow_req_struct;
1608
1609typedef struct {
1610 LOCAL_PARA_HDR
1611 nas_sv_manipulate_connection_enum operation_to_be_exe;
1612 kal_bool is_local_release_later;
1613} nas_sv_any_manipulate_connection_req_struct;
1614
1615typedef struct
1616{
1617 LOCAL_PARA_HDR
1618 kal_bool is_triggered_by_sys_info;
1619 ue_capability_struct capability;
1620} nas_sv_any_mm_cap_update_req_struct;
1621
1622typedef struct
1623{
1624 LOCAL_PARA_HDR
1625 vg_option_enum vg_option_bitmap;
1626 kal_bool is_need_local_release;
1627 kal_bool is_trigger_nr_search; //used for option 2 is turned on and search SA
1628} rac_nas_sv_vg_option_update_req_struct;
1629
1630typedef rac_nas_sv_vg_option_update_req_struct nas_sv_any_vg_option_update_req_struct;
1631
1632typedef l4c_general_modem_configure_set_req_struct nas_sv_any_general_modem_configure_set_req_struct;
1633typedef l4c_general_modem_configure_set_cnf_struct nas_sv_any_general_modem_configure_set_cnf_struct;
1634
1635typedef struct {
1636 LOCAL_PARA_HDR
1637 mode_switch_cause_enum cause;
1638} nwsel_nas_sv_vgmm_global_mode_change_start_req_struct;
1639
1640typedef struct
1641{
1642 LOCAL_PARA_HDR
1643 kal_bool is_persistent_pdu_session_exist;
1644} nas_sv_vgsm_persistent_pdu_session_ind_struct;
1645
1646typedef nas_sv_vgsm_persistent_pdu_session_ind_struct nwsel_nas_sv_vgsm_persistent_pdu_session_ind_struct;
1647
1648typedef struct
1649{
1650 LOCAL_PARA_HDR
1651 kal_bool is_roaming;
1652 nwsel_capability_disabled_reason_enum disabled_reason;
1653} nwsel_nas_sv_disable_info_update_ntf_struct;
1654
1655typedef nwsel_nas_sv_disable_info_update_ntf_struct nas_sv_any_disable_info_update_ntf_struct;
1656
1657typedef struct {
1658 LOCAL_PARA_HDR
1659 kal_bool is_searching;
1660} nwsel_nas_sv_as_plmn_search_report_ind_struct;
1661
1662#if 0
1663/* under construction !*/
1664/* under construction !*/
1665/* under construction !*/
1666/* under construction !*/
1667/* under construction !*/
1668/* under construction !*/
1669/* under construction !*/
1670/* under construction !*/
1671/* under construction !*/
1672/* under construction !*/
1673/* under construction !*/
1674/* under construction !*/
1675/* under construction !*/
1676/* under construction !*/
1677/* under construction !*/
1678/* under construction !*/
1679/* under construction !*/
1680/* under construction !*/
1681/* under construction !*/
1682/* under construction !*/
1683/* under construction !*/
1684/* under construction !*/
1685/* under construction !*/
1686/* under construction !*/
1687/* under construction !*/
1688/* under construction !*/
1689/* under construction !*/
1690/* under construction !*/
1691/* under construction !*/
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#endif
1808
1809
1810
1811#endif
1812
1813