blob: b77a0effb019f8c729bd3c03ec273129e86b21f7 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 * Filename:
38 * ---------
39 * gmss_nwsel_struct.h
40 *
41 * Project:
42 * --------
43 * MAUI
44 *
45 * Description:
46 * ------------
47 * This file is intends for struct definition between NWSEL and GMSS.
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *==============================================================================
54 * HISTORY
55 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
56 *------------------------------------------------------------------------------
57 * removed!
58 *
59 * removed!
60 * removed!
61 * removed!
62 * removed!
63 *
64 * removed!
65 * removed!
66 * removed!
67 * removed!
68 *
69 * removed!
70 * removed!
rjw8e44aab2022-11-30 16:42:16 +080071 * removed!
72 * removed!
73 *
74 * removed!
75 * removed!
rjw6c1fd8f2022-11-30 14:33:01 +080076 *
77 * removed!
78 *
79 * removed!
80 * removed!
81 *
82 * removed!
83 *
84 * removed!
85 * removed!
86 * removed!
87 *
88 * removed!
89 * removed!
90 *
91 * removed!
92 *
93 * removed!
94 * removed!
95 * removed!
96 *
97 * removed!
98 * removed!
99 *
100 * removed!
101 *
102 * removed!
103 * removed!
104 *
105 * removed!
106 *
107 * removed!
108 * removed!
109 *
110 * removed!
111 *
112 * removed!
113 * removed!
114 * removed!
115 *
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 *
122 * removed!
123 * removed!
124 * removed!
125 *
126 * removed!
127 * removed!
128 *
129 * removed!
130 *
131 * removed!
132 * removed!
133 * removed!
134 *
135 * removed!
136 * removed!
137 * removed!
138 *
139 * removed!
140 * removed!
141 *
142 * removed!
143 *
144 * removed!
145 * removed!
146 * removed!
147 * removed!
148 * removed!
149 *
150 * removed!
151 * removed!
152 *
153 * removed!
154 * removed!
155 * removed!
156 * removed!
157 * removed!
158 * removed!
159 *
160 * removed!
161 * removed!
162 * removed!
163 *
164 * removed!
165 * removed!
166 * removed!
167 *
168 * removed!
169 * removed!
170 *
171 * removed!
172 *
173 * removed!
174 * removed!
175 * removed!
176 *
177 * removed!
178 * removed!
179 * removed!
180 *
181 * removed!
182 * removed!
183 * removed!
184 *
185 * removed!
186 * removed!
187 * removed!
188 *
189 * removed!
190 * removed!
191 * removed!
192 *
193 * removed!
194 * removed!
195 * removed!
196 *
197 * removed!
198 * removed!
199 *
200 * removed!
201 * removed!
202 * removed!
203 * removed!
204 * removed!
205 * removed!
206 * removed!
207 * removed!
208 * removed!
209 * removed!
210 * removed!
211 * removed!
212 * removed!
213 * removed!
214 * removed!
215 * removed!
216 * removed!
217 *
218 * removed!
219 * removed!
220 *
221 * removed!
222 * removed!
223 * removed!
224 *
225 * removed!
226 * removed!
227 *
228 * removed!
229 * removed!
230 * removed!
231 *
232 * removed!
233 * removed!
234 * removed!
235 *
236 * removed!
237 * removed!
238 * removed!
239 *
240 * removed!
241 * removed!
242 * removed!
243 * removed!
244 * removed!
245 *
246 * removed!
247 * removed!
248 * removed!
249 * removed!
250 * removed!
251 * removed!
252 * removed!
253 * removed!
254 * removed!
255 *
256 * removed!
257 * removed!
258 * removed!
259 *
260 * removed!
261 * removed!
262 * removed!
263 *
264 * removed!
265 * removed!
266 * removed!
267 *
268 * removed!
269 * removed!
270 *
271 * removed!
272 *
273 * removed!
274 * removed!
275 * removed!
276 *
277 * removed!
278 * removed!
279 * removed!
280 *
281 * removed!
282 * removed!
283 * removed!
284 *
285 * removed!
286 * removed!
287 * removed!
288 *
289 * removed!
290 * removed!
291 *
292 * removed!
293 *
294 * removed!
295 * removed!
296 *
297 * removed!
298 * removed!
299 * removed!
300 *
301 * removed!
302 * removed!
303 *
304 * removed!
305 *
306 * removed!
307 * removed!
308 *
309 * removed!
310 *
311 * removed!
312 * removed!
313 *
314 * removed!
315 * removed!
316 * removed!
317 *
318 * removed!
319 * removed!
320 *
321 * removed!
322 * removed!
323 * removed!
324 *
325 * removed!
326 * removed!
327 * removed!
328 *
329 * removed!
330 * removed!
331 * removed!
332 *
333 * removed!
334 * removed!
335 * removed!
336 *
337 * removed!
338 * removed!
339 * removed!
340 *
341 * removed!
342 * removed!
343 * removed!
344 *
345 * removed!
346 * removed!
347 * removed!
348 *
349 *
350 * removed!
351 * removed!
352 * removed!
353 *
354 * removed!
355 * removed!
356 * removed!
357 *
358 * removed!
359 * removed!
360 * removed!
361 *
362 * removed!
363 * removed!
364 *
365 * removed!
366 *
367 * removed!
368 * removed!
369 * removed!
370 *
371 * removed!
372 * removed!
373 * removed!
374 *
375 * removed!
376 * removed!
377 * removed!
378 *
379 * removed!
380 * removed!
381 * removed!
382 *
383 * removed!
384 * removed!
385 * removed!
386 *
387 * removed!
388 * removed!
389 * removed!
390 *
391 * removed!
392 * removed!
393 *
394 * removed!
395 * removed!
396 *
397 * removed!
398 * removed!
399 * removed!
400 *
401 * removed!
402 * removed!
403 * removed!
404 *
405 * removed!
406 * removed!
407 * removed!
408 *
409 * removed!
410 * removed!
411 * removed!
412 *
413 * removed!
414 * removed!
415 * removed!
416 *
417 * removed!
418 * removed!
419 * removed!
420 *
421 * removed!
422 * removed!
423 * removed!
424 *
425 * removed!
426 * removed!
427 * removed!
428 *
429 * removed!
430 * removed!
431 * removed!
432 *
433 * removed!
434 * removed!
435 * removed!
436 *
437 * removed!
438 * removed!
439 * removed!
440 *
441 * removed!
442 * removed!
443 * removed!
444 *
445 * removed!
446 * removed!
447 * removed!
448 *
449 * removed!
450 * removed!
451 *
452 * removed!
453 * removed!
454 *
455 * removed!
456 * removed!
457 * removed!
458 *
459 * removed!
460 * removed!
461 * removed!
462 *
463 * removed!
464 * removed!
465 * removed!
466 *
467 * removed!
468 * removed!
469 * removed!
470 *
471 * removed!
472 * removed!
473 *
474 * removed!
475 * removed!
476 * removed!
477 *
478 * removed!
479 * removed!
480 * removed!
481 *
482 * removed!
483 * removed!
484 * removed!
485 *
486 * removed!
487 * removed!
488 * removed!
489 *
490 * removed!
491 * removed!
492 * removed!
493 *
494 * removed!
495 * removed!
496 * removed!
497 *
498 * removed!
499 * removed!
500 * removed!
501 *
502 * removed!
503 * removed!
504 * removed!
505 *
506 * removed!
507 * removed!
508 * removed!
509 *
510 * removed!
511 * removed!
512 * removed!
513 *
514 * removed!
515 * removed!
516 * removed!
517 *
518 * removed!
519 * removed!
520 * removed!
521 *
522 * removed!
523 * removed!
524 * removed!
525 *
526 * removed!
527 * removed!
528 * removed!
529 *
530 * removed!
531 * removed!
532 * removed!
533 *
534 *------------------------------------------------------------------------------
535 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
536 *==============================================================================
537 *******************************************************************************/
538
539/********************************************************************************
540* Copyright Statement:
541* --------------------
542*
543* This product has been developed using a protocol stack
544* developed by Sasken Communication Technologies Limited.
545*
546********************************************************************************/
547#ifndef _GMSS_NWSEL_STRUCT_H
548#define _GMSS_NWSEL_STRUCT_H
549
550#include "kal_general_types.h"
551#include "l3_inc_enums_public.h"
552#include "l3_inc_enums.h"
553#include "mcd_l3_inc_struct.h"
554#include "ps_public_enum.h"
555#include "l3_inc_local.h"
556#include "mm_mmi_enums.h"
557
558#ifdef __LTE_RAT__
559#include "nvram_data_items.h"
560#include "nvram_editor_data_item.h"
561#endif
562
563#ifdef __IMS_SUPPORT__
564#include "ims_common_def.h"
565#include "ims_interface_md.h"
566#endif /* __IMS_SUPPORT__ */
567
568#include "rsvas_enum.h"
569#include "gmss_public.h"
570#include "rac_gmss_struct.h"
571#include "nwsel_eval_struct.h"
572#include "gmss_cval_struct.h"
573#include "nas_sv_css_struct.h"
574
575#include "nvram_editor_data_item.h"
576#include "nas_nvram_editor.h"
577#include "sim_ps_struct.h"
578#include "sim_public_enum_public.h"
579#include "mmss_def.h"
580#include "nvram_struct.h"
581#include "rac2l4c_struct.h"
582#include "l3_inc_enums.h"
583#include "nas_sv_struct.h"
584
585#include "l4c2rac_struct.h"
586#include "rac2l4c_struct.h"
587
588/* GMSS -> NWSEL */
589typedef rac_gmss_init_req_struct gmss_nwsel_init_req_struct;
590typedef rac_gmss_custom_plmn_list_update_req_struct gmss_nwsel_custom_plmn_list_update_req_struct;
591typedef rac_gmss_get_custom_plmn_list_req_struct gmss_nwsel_get_custom_plmn_list_req_struct;
592typedef rac_gmss_get_custom_plmn_list_cnf_struct gmss_nwsel_get_custom_plmn_list_cnf_struct;
593typedef rac_gmss_uemode_param_update_req_struct gmss_nwsel_uemode_param_update_req_struct;
594typedef rac_gmss_volte_status_update_req_struct gmss_nwsel_volte_status_update_req_struct;
595typedef rac_gmss_call_status_req_struct gmss_nwsel_call_status_ind_struct;
596
597typedef rac_gmss_set_plmn_barring_timer_req_struct gmss_nwsel_set_plmn_barring_timer_req_struct;
598typedef rac_gmss_set_plmn_barring_timer_cnf_struct gmss_nwsel_set_plmn_barring_timer_cnf_struct;
599typedef rac_gmss_get_plmn_barring_timer_req_struct gmss_nwsel_get_plmn_barring_timer_req_struct;
600typedef rac_gmss_get_plmn_barring_timer_cnf_struct gmss_nwsel_get_plmn_barring_timer_cnf_struct;
601typedef rac_gmss_ims_timer_status_update_req_struct gmss_nwsel_ims_timer_status_update_req_struct;
602typedef rac_gmss_abort_enwsel_search_req_struct gmss_nwsel_abort_enwsel_search_req_struct;
603typedef rac_gmss_ims_call_end_status_ind_struct gmss_nwsel_ims_call_end_status_ind_struct;
604typedef rac_gmss_set_ims_roaming_config_req_struct gmss_nwsel_set_ims_roaming_config_req_struct;
605typedef rac_gmss_set_prefer_rat_req_struct gmss_nwsel_set_prefer_rat_req_struct;
606typedef rac_gmss_get_prefer_rat_req_struct gmss_nwsel_get_prefer_rat_req_struct;
607typedef rac_gmss_get_prefer_rat_cnf_struct gmss_nwsel_get_prefer_rat_cnf_struct;
608typedef rac_gmss_camp_ui_ind_struct gmss_nwsel_camp_ui_ind_struct;
609#ifdef __MBIM_MS_NETWORK_BLACKLIST__
610typedef rac_gmss_fplmn_action_cnf_struct gmss_nwsel_fplmn_action_cnf_struct;
611typedef rac_gmss_nw_black_list_state_ind_struct gmss_nwsel_nw_black_list_state_ind_struct;
612#endif
613
614typedef struct {
615 LOCAL_PARA_HDR
616 plmn_selection_mode_enum plmn_sel_mode;
617} gmss_nwsel_sel_mode_req_struct;
618
619typedef nas_sv_any_attach_req_struct gmss_nwsel_attach_req_struct;
620
621typedef nas_sv_any_detach_req_struct gmss_nwsel_detach_req_struct;
622
623
624typedef struct {
625 LOCAL_PARA_HDR
626 plmn_reselection_enum plmn_search_mode; /* plmn_reselection_enum */
627 plmn_id_rat_struct selected_plmn; /* Selected PLMN */
628 kal_bool is_manual_csg_sel;
629 kal_uint32 csg_id;
630 rat_enum prefer_rat; // 0:default , 1:GSM , 2:UMTS
631 kal_bool from_l4c;
632 kal_uint32 factory_mode_arfcn; //0xFFFF means invalid arfcn, /* 20081110 mtk00714, for fast camp on test machine */
633 endc_search_enum endc_search; /* Search ENDC cell or not for LTE cell. */
634} gmss_nwsel_rac_plmn_search_req_struct;
635
636typedef struct {
637 LOCAL_PARA_HDR
638 plmn_id_rat_struct plmn_id_rat;
639} gmss_nwsel_rac_csg_list_req_struct;
640
641typedef nas_sv_gmss_set_rat_mode_req_struct gmss_nwsel_set_rat_mode_req_struct;
642
643typedef nas_sv_any_rfoff_req_struct gmss_nwsel_rfoff_req_struct;
644
645typedef struct {
646 LOCAL_PARA_HDR
647 kal_bool is_supporting_roaming;
648 kal_bool disable_international_roaming_support;
649 kal_bool disable_national_roaming_support;
650 kal_bool disable_hhplmn_search_support;
651} gmss_nwsel_set_roaming_mode_req_struct;
652
653typedef struct {
654 LOCAL_PARA_HDR
655 elevator_mode_enum elevator_mode;
656}gmss_nwsel_elevator_mode_req_struct;
657
658/* NWSEL -> GMSS */
659
660typedef nwsel_eval_c2k_csfb_start_ind_struct gmss_nwsel_c2k_csfb_start_ind_struct;
661typedef nwsel_eval_c2k_csfb_est_ind_struct gmss_nwsel_c2k_csfb_est_ind_struct;
662typedef nwsel_eval_c2k_csfb_stop_ind_struct gmss_nwsel_c2k_csfb_stop_ind_struct;
663
664typedef struct {
665 LOCAL_PARA_HDR
666 proc_status_enum status; /* proc_status_enum */
667 mm_cause_enum cause; /* mm_cause_enum */
668 kal_bool is_on_hplmn;
669 cell_info_and_rat_struct cell_info;
670} gmss_nwsel_rac_plmn_search_cnf_struct;
671
672typedef struct {
673 LOCAL_PARA_HDR
674 proc_status_enum status; /* proc_status_enum */
675 mm_cause_enum cause; /* mm_cause_enum */
676 kal_uint8 num_of_hplmn;
677 rac_plmn_list_struct plmn_list;
678 list_ind_source_enum source;
679 prio_class_enum gmss_class_list[RAC_MAX_NUM_LISTED_PLMNS];
680 kal_bool is_C2K_sib_scheduled;
681} gmss_nwsel_rac_plmn_list_cnf_struct;
682
683typedef gmss_nwsel_rac_plmn_list_cnf_struct gmss_nwsel_plmn_list_ind_struct;
684
685typedef struct {
686 LOCAL_PARA_HDR
687 kal_uint8 susp_id;
688 susp_resu_source_enum target;
689} gmss_nwsel_suspend_status_ind_struct;
690
691typedef struct {
692 LOCAL_PARA_HDR
693 proc_status_enum status;
694 mm_cause_enum cause;
695 rac_csg_list_struct csg_list;
696} gmss_nwsel_rac_csg_list_cnf_struct;
697
698typedef nas_sv_gmss_set_rat_mode_cnf_struct gmss_nwsel_set_rat_mode_cnf_struct;
699
700
701typedef struct {
702 LOCAL_PARA_HDR
703 kal_bool is_not_suspend; /* indicate if is_searching = TRUE is due to Gemini suspend */
704 kal_bool is_update_is_searching; /* if TRUE, RAC can check is_searching flag */
705 kal_bool is_searching;
706 kal_bool is_camp_on_cell; /* if is_searching = FALSE && is_camp_on_cell = FALSE, then RAC update to L4C;
707 else, ignore the is_searching flag. */
708 kal_bool is_on_hplmn;
709 kal_bool is_update_active_rat;
710 rat_enum active_rat;
711//#ifdef __KOR_CUSTOMIZATION__
712 plmn_id_struct rplmn; /* Get RPLMN */
713//#endif
714} gmss_nwsel_plmn_status_ind_struct;
715
716typedef struct {
717 LOCAL_PARA_HDR
718 nwsel_ims_service_enum service_type;
719 kal_bool is_t311_expire; /* RRC connection release due to RRC T311 timer expire */
720} gmss_nwsel_ims_service_ind_struct;
721
722typedef struct {
723 LOCAL_PARA_HDR
724 kal_bool enter_cause18_plmn;
725} gmss_nwsel_cs_domain_availability_ind_struct;
726
727
728typedef struct {
729 LOCAL_PARA_HDR
730 susp_resu_action_enum action;
731 susp_resu_result_enum result;
732 susp_resu_source_enum target;
733} gmss_nwsel_susp_resu_update_cnf_struct;
734
735typedef struct {
736 LOCAL_PARA_HDR
737 susp_resu_mode_enum mode;
738 susp_resu_action_enum action;
739 kal_uint8 susp_id;
740 susp_resu_source_enum source;
741} gmss_nwsel_susp_resu_update_req_struct;
742
743typedef struct {
744 LOCAL_PARA_HDR
745 kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
746} gmss_nwsel_set_recovery_search_timer_req_struct;
747
748typedef struct {
749 LOCAL_PARA_HDR
750 kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
751} gmss_nwsel_get_recovery_search_timer_cnf_struct;
752
753typedef struct {
754 LOCAL_PARA_HDR
755 kal_bool result;
756} gmss_nwsel_set_recovery_search_timer_cnf_struct;
757
758typedef struct {
759 LOCAL_PARA_HDR
760 plmn_id_struct plmn;
761 rat_enum rat;
762 kal_uint8 ara_start[2];
763 kal_uint8 ara_end[2];
764}gmss_nwsel_aral_update_req_struct;
765
766typedef struct {
767 LOCAL_PARA_HDR
768 voice_domain_preference_enum utran_voice_domain_preference;
769} gmss_nwsel_set_utran_voice_domain_preference_req_struct;
770
771typedef rac_gmss_data_service_status_update_req_struct gmss_nwsel_data_service_status_update_req_struct;
772
773typedef struct {
774 LOCAL_PARA_HDR
775 kal_uint8 trx_id;
776
777 /* The MMSS search type.
778 */
779 mmss_search_type_enum mmss_search_type;
780
781 /* The search RAT, only valid for MMSS_SEARCH_NORMAL.
782 */
783 rat_enum rat;
784
785 /* The search prio_class, only valid for MMSS_SEARCH_NORMAL.
786 */
787 prio_class_enum gmss_class;
788
789 /* The search duplex type.
790 */
791 lte_duplex_type_enum duplex_type;
792
793 /* The search target's MCC. NWSEL will ignore PLMNs not in this MCC.
794 ** Only mcc1, mcc2, mcc3 fields are valid.
795 ** If the value are all 0x0F, it means no MCC restriction.
796 ** Note: This field only valid for MMSS_SEARCH_NORMAL.
797 */
798 plmn_id_struct mcc;
799
800 /* scan type for fast roaming.
801 */
802 scan_type_enum scan_type;
803
804 /* ims emergency cell required controlled by GMSS
805 */
806 kal_bool is_ims_emergency_required;
807
808 /* The MMSS search list(ie. MRU, RAL).
809 */
810 mmss_3gpp_list_struct mmss_list;
811
812 /* Search type, e.g stored ,quick or normal.
813 */
814 gmss_search_type_enum gmss_search_type;
815
816 kal_bool is_srlte;
817
818 kal_bool is_to_deactivate_c2k_cs_service;
819
820 // is first search after power-on
821 kal_bool is_power_on;
822
823 /* notify NWSEL if this is for better system reselection, replace MMSS_SEARCH_BETTER_SYSTEM_RESELECTION*/
824 kal_bool is_bsr;
825
826 /* notify NWSEL which camping cell VDM is used now. only for emergency call */
827 kal_uint16 camping_info_id;
828} gmss_nwsel_plmn_search_req_struct;
829
830typedef struct {
831 LOCAL_PARA_HDR
832 kal_uint8 trx_id;
833 proc_status_enum proc_status;
834 rat_enum rat;
835 prio_class_enum gmss_class;
836 mm_cause_enum proc_cause;
837 mm_cause_enum nw_mm_cause;
838 esm_cause_enum esm_cause;
839} gmss_nwsel_plmn_search_cnf_struct;
840
841typedef struct {
842 LOCAL_PARA_HDR
843 rat_enum rat;
844 lte_duplex_type_enum duplex_type;
845 plmn_id_struct mcc; /* only mcc1, mcc2, mcc3 are valid, for NWSEL to ignore PLMNs not in this MCC */
846 prio_class_enum quick_list_class; /* Home or PREF: quick list; others: normal list*/
847 scan_type_enum scan_type;
848 kal_bool is_elevator_mode;
849} gmss_nwsel_plmn_list_req_struct;
850
851typedef struct
852{
853 LOCAL_PARA_HDR
854 kal_bool is_user_plmn_list_ongoing;
855} gmss_nwsel_plmn_list_status_update_req_struct;
856
857typedef rac_gmss_plmn_list_req_struct gmss_nwsel_rac_plmn_list_req_struct;
858
859typedef struct {
860 LOCAL_PARA_HDR
861 plmn_id_struct mcc; /* only mcc1, mcc2, mcc3 are valid, for NWSEL to ignore PLMNs not in this MCC */
862 prio_class_enum quick_list_class; /* Home or PREF: quick list; others: normal list*/
863 gmss_rat_enum c2k_ps_rat; /* 1xRTT or HRPD */
864} gmss_nwsel_c2k_normal_service_req_struct;
865
866typedef struct {
867 LOCAL_PARA_HDR
868 proc_status_enum proc_status;
869 prio_class_enum gmss_class; // Only count plmn with suitable cell.
870 mm_cause_enum cause;
871 rac_plmn_list_struct plmn_list; // All available plmn including forbidden and may_suitable_cell_exist=FALSE.
872 prio_class_enum gmss_class_list[RAC_MAX_NUM_LISTED_PLMNS]; //mapping to plmn_list.plmn_id_rat[RAC_MAX_NUM_LISTED_PLMNS]
873} gmss_nwsel_plmn_list_cnf_struct;
874
875#ifdef __GEMINI__
876typedef struct {
877 LOCAL_PARA_HDR
878 as_suspend_mode_reason_enum cause;
879} gmss_nwsel_suspend_ind_struct;
880
881typedef struct {
882 LOCAL_PARA_HDR
883 kal_bool is_virtual_idle_mode;
884} gmss_nwsel_resume_ind_struct;
885
886typedef struct {
887 LOCAL_PARA_HDR
888 kal_bool is_virtual_idle_mode;
889} gmss_nwsel_virtual_mode_ind_struct;
890
891typedef struct {
892 LOCAL_PARA_HDR
893 kal_bool is_limited_virtual_idle;
894} gmss_nwsel_limited_virtual_idle_ind_struct;
895
896#endif /* __GEMINI__ */
897
898typedef struct {
899 LOCAL_PARA_HDR
900 mm_cause_enum cause; /* FORBIDDEN_PLMN for limited service; NO_COVERAGE for no coverage */
901 plmn_id_rat_struct plmn_id;
902 kal_bool immediate_duplex_mode_change;
903} gmss_nwsel_out_of_service_ind_struct;
904
905typedef struct {
906 LOCAL_PARA_HDR
907 prio_class_enum gmss_class;
908 rat_enum rat;
909} gmss_nwsel_class_rat_ind_struct;
910
911typedef struct {
912 LOCAL_PARA_HDR
913 nwsel_event_type_enum event;
914} gmss_nwsel_event_ind_struct;
915
916typedef struct {
917 LOCAL_PARA_HDR
918 kal_bool is_controlled_by_gmss;
919} gmss_nwsel_gmss_status_update_req_struct;
920
921typedef struct {
922 LOCAL_PARA_HDR
923 kal_bool reset_bar_list;
924} gmss_nwsel_reset_search_result_req_struct;
925
926typedef struct
927{
928 LOCAL_PARA_HDR
929 irat_type_enum irat_type;
930 c2k_irat_attach_result_enum result;
931} gmss_nwsel_c2k_irat_complete_req_struct;
932
933typedef struct
934{
935 LOCAL_PARA_HDR
936 rat_enum rat;
937 as_sniffer_req_service_enum sniffer_service_type;
938} gmss_nwsel_sniffer_start_req_struct;
939
940typedef struct
941{
942 LOCAL_PARA_HDR
943 rat_enum rat;
944} gmss_nwsel_sniffer_stop_req_struct;
945
946typedef struct
947{
948 LOCAL_PARA_HDR
949 rat_enum rat;
950} gmss_nwsel_signal_appear_ind_struct;
951
952typedef struct
953{
954 LOCAL_PARA_HDR
955 nvram_gmss_data_struct gmss_data;
956 //Use access_id = 0 to ignore NVRAM_WRITE_CNF
957 // access_id = 0x10~0x1f to wait NVRAM_WRITE_CNF of NVRAM_EF_NWSEL_DATA_LID
958 kal_uint8 access_id;
959} gmss_nwsel_nvram_write_req_struct;
960
961typedef nvram_write_cnf_struct gmss_nwsel_nvram_write_cnf_struct;
962
963typedef struct
964{
965 LOCAL_PARA_HDR
966 prio_class_enum prio_class;
967 rat_enum rat; /* used to notify nwsel mspl rat when suspend/resume */
968} gmss_nwsel_prio_class_update_req_struct;
969
970typedef sim_gmss_ready_ind_struct gmss_nwsel_sim_ready_req_struct;
971
972typedef sim_error_ind_struct gmss_nwsel_sim_error_req_struct;
973
974typedef struct {
975 LOCAL_PARA_HDR
976 act_sim_enum active_sim;
977} gmss_nwsel_active_sim_info_req_struct;
978
979typedef struct {
980 LOCAL_PARA_HDR
981 kal_uint8 trx_id;
982 kal_uint8 rat_num;
983 rat_enum rat[MAX_MCC_SEARCH_RAT_NUM];
984 gmss_search_type_enum gmss_search_type;
985 kal_bool is_power_on; // is first search after power-on
986} gmss_nwsel_mcc_search_req_struct;
987
988typedef struct {
989 LOCAL_PARA_HDR
990 kal_uint8 trx_id;
991 proc_status_enum proc_status;
992 kal_uint8 plmn_count;
993 plmn_id_rat_struct plmn_id_rat[RAC_MAX_NUM_LISTED_PLMNS];
994} gmss_nwsel_mcc_search_cnf_struct;
995
996typedef struct {
997 LOCAL_PARA_HDR
998 plmn_id_struct plmn_id;
999} gmss_nwsel_disable_eutran_req_struct;
1000
1001typedef l4crac_nw_reg_status_ind_struct gmss_nwsel_reg_status_ind_struct;
1002
1003typedef struct {
1004 LOCAL_PARA_HDR
1005 kal_bool data_enabled_setting;
1006 kal_bool data_roaming_setting;
1007} gmss_nwsel_roaming_data_config_req_struct;
1008
1009typedef struct {
1010 LOCAL_PARA_HDR
1011
1012 kal_bool is_sim_ready;
1013 kal_uint8 trx_id;
1014
1015 // HOME+EHOME PLMN
1016 // If num_of_ehplmn > 4(MAX_NUM_HPLMN), fill MAX_NUM_HPLMN at most
1017 // num_of_ehplmn will be the number in this message
1018 // is_remaining_ehplmn indicates the last ehplmn or not
1019 kal_bool is_remaining_ehplmn;
1020 kal_uint16 num_of_ehplmn;
1021 plmn_id_rat_struct ehplmn[PLMN_INFO_MAX_NUM_HPLMN];
1022
1023 // PREFER PLMN
1024 // If num_of_uplmn > 32(NWSEL_MAX_NUM_PLMNS), fill NWSEL_MAX_NUM_PLMNS PLMN at most.
1025 // num_of_uplmn will be the number in this message
1026 // is_remaining_uplmn indicates the last uplmn or not
1027 kal_bool is_remaining_uplmn;
1028 kal_uint16 num_of_uplmn;
1029 plmn_id_rat_struct uplmn[NWSEL_MAX_NUM_PLMNS];
1030
1031 // If num_of_oplmn > 32(NWSEL_MAX_NUM_PLMNS), fill NWSEL_MAX_NUM_PLMNS PLMN at most.
1032 // num_of_oplmn will be the number in this message
1033 // is_remaining_oplmn indicates the last oplmn or not
1034 kal_bool is_remaining_oplmn;
1035 kal_uint16 num_of_oplmn;
1036 plmn_id_rat_struct oplmn[NWSEL_MAX_NUM_PLMNS];
1037} gmss_nwsel_plmn_info_ind_struct;
1038
1039typedef struct {
1040 LOCAL_PARA_HDR
1041 umts_duplex_mode_type source_umts_duplex_mode;
1042 umts_duplex_mode_type target_umts_duplex_mode;
1043 lte_duplex_mode_type source_lte_duplex_mode;
1044 lte_duplex_mode_type target_lte_duplex_mode;
1045 mode_switch_cause_enum cause;
1046 plmn_id_rat_struct plmn_id_rat; // only valid when mode_switch_cause == MODE_SWITCH_PLMN_CHANGE
1047 // if rat is C2K, only MCC part is valid
1048 kal_bool need_cnf;
1049} gmss_nwsel_duplex_mode_change_req_struct;
1050
1051typedef struct {
1052 LOCAL_PARA_HDR
1053 mode_switch_cause_enum cause;
1054} gmss_nwsel_global_mode_change_start_req_struct;
1055
1056typedef struct
1057{
1058 LOCAL_PARA_HDR
1059 kal_bool voice_over_ims_ongoing;
1060} gmss_nwsel_ims_call_info_req_struct;
1061
1062typedef struct {
1063 LOCAL_PARA_HDR
1064 rat_enum rat;
1065 plmn_id_struct plmn_id;
1066} gmss_nwsel_set_aux_plmn_req_struct;
1067
1068typedef struct {
1069 LOCAL_PARA_HDR
1070 set_aux_plmn_result_enum result;
1071} gmss_nwsel_set_aux_plmn_cnf_struct;
1072
1073typedef struct {
1074 LOCAL_PARA_HDR
1075 rat_enum rat;
1076 plmn_id_struct plmn_id;
1077 kal_uint16 arfcn;
1078 kal_uint8 requested_band;
1079} gmss_nwsel_set_mru_req_struct;
1080
1081typedef struct {
1082 LOCAL_PARA_HDR
1083 set_mru_result_enum result;
1084} gmss_nwsel_set_mru_cnf_struct;
1085
1086typedef struct {
1087 LOCAL_PARA_HDR
1088 kal_bool is_attach_needed;
1089} gmss_nwsel_rat_change_success_notify_req_struct;
1090
1091/* NOTE: this primitive need to report in LWCG mode and even GWL only mode */
1092typedef struct {
1093 LOCAL_PARA_HDR
1094
1095 /**< the latest camping record */
1096 mmss_3gpp_rec_type new_rec;
1097
1098 /**< indicate if the record is registered or not */
1099 kal_bool is_registered;
1100
1101 /**< indicate if the cell support ims emergency call, only applicable when LTE cell */
1102 kal_bool is_ims_emergency_support;
1103
1104 /**< indicate the current cell info trx id, used by VDM/GMSS/NWSEL to distinguish the emergency call cell used */
1105 kal_uint16 camping_info_id;
1106
1107} gmss_nwsel_camping_info_ind_struct;
1108
1109// new primitive for AS IRAT stage 1 success
1110typedef struct {
1111 LOCAL_PARA_HDR
1112 kal_bool is_attach_needed;
1113} gmss_nwsel_irat_c2l_success_notify_ind_struct;
1114
1115typedef struct {
1116 LOCAL_PARA_HDR
1117 plmn_based_timer_enum timer_type;
1118 timer_status_enum timer_status;
1119 plmn_id_struct target_plmn;
1120 plmn_restrict_additional_information_enum event;
1121} gmss_nwsel_plmn_restriction_change_ind_struct;
1122
1123typedef struct {
1124 LOCAL_PARA_HDR
1125 kal_uint8 trx_id;
1126 kal_uint16 last_idx_of_ehplmn;
1127 kal_uint16 last_idx_of_oplmn;
1128 kal_uint16 last_idx_of_uplmn;
1129} gmss_nwsel_plmn_info_rsp_struct;
1130
1131typedef struct {
1132 LOCAL_PARA_HDR
1133 rat_enum rat;
1134} gmss_nwsel_set_first_camp_on_prefer_rat_req_struct;
1135
1136typedef struct
1137{
1138 LOCAL_PARA_HDR
1139 kal_bool bEvdoEnterConnection; /* TRUE, means EVDO has been in PS connection state; else, EVDO has been in idle state. */
1140} gmss_nwsel_evdo_ps_connection_status_ind_struct;
1141
1142typedef struct
1143{
1144 LOCAL_PARA_HDR
1145 kal_bool b1xRttEnterConnection; /* TRUE, means 1xRTT has been in PS connection state; else, 1xRTT has been in idle state. */
1146} gmss_nwsel_1xrtt_ps_connection_status_ind_struct;
1147
1148typedef struct
1149{
1150 LOCAL_PARA_HDR
1151 hvolte_mode_enum source_hvolte_mode; /** indicate original hvolte mode */ // enum defined in ims_common_def.h
1152 hvolte_mode_enum target_hvolte_mode; /** indicate source hvolte mode */ // enum defined in ims_common_def.h
1153 kal_bool is_silent_redial_and_call_ongoing;
1154} gmss_nwsel_hvolte_mode_change_req_struct;
1155
1156#ifdef __NWSEL_QUICK_SEARCH_FOR_ROAMING__
1157typedef l4crac_high_prio_search_timer_config_req_struct gmss_nwsel_high_prio_search_timer_config_req_struct;
1158#endif
1159
1160typedef struct {
1161 LOCAL_PARA_HDR
1162 rat_enum rat; /* only valid when emc_bar_type != EMC_BAR_TYPE_NONE */
1163 plmn_id_struct plmn_id; /* only valid when emc_bar_type != EMC_BAR_TYPE_NONE */
1164 kal_uint16 band; /* only valid when emc_bar_type != EMC_BAR_TYPE_NONE */
1165} gmss_nwsel_emc_bar_network_req_struct;
1166
1167//#ifdef __KOR_CUSTOMIZATION__
1168typedef struct {
1169 LOCAL_PARA_HDR
1170 plmn_id_struct rplmn; /* Get RPLMN */
1171} gmss_nwsel_rplmn_ind_struct;
1172//#endif
1173
1174typedef l4crac_fplmn_action_req_struct gmss_nwsel_fplmn_action_req_struct;
1175
1176typedef l4crac_nw_reg_rej_ind_struct gmss_nwsel_nw_reg_rej_ind_struct;
1177
1178typedef l4crac_plmn_found_ind_struct gmss_nwsel_rac_plmn_found_ind_struct;
1179
1180typedef l4crac_set_allowed_mcc_list_req_struct gmss_nwsel_set_allowed_mcc_list_req_struct;
1181typedef l4crac_set_allowed_mcc_list_cnf_struct gmss_nwsel_set_allowed_mcc_list_cnf_struct;
1182
1183typedef struct
1184{
1185 LOCAL_PARA_HDR
1186 recover_cause_enum cause;
1187} gmss_nwsel_rac_invalid_sim_recover_ind_struct;
1188
1189typedef struct {
1190 LOCAL_PARA_HDR
1191 rat_type_enum source_rat;
1192 rat_type_enum target_rat;
1193} gmss_nwsel_gmss_irat_start_ind_struct;
1194
1195typedef struct {
1196 LOCAL_PARA_HDR
1197 rat_type_enum source_rat;
1198 rat_type_enum target_rat;
1199} gmss_nwsel_gmss_irat_finish_ind_struct;
1200
1201typedef nas_sv_css_mcc_search_req_struct gmss_nwsel_css_mcc_search_req_struct;
1202typedef nas_sv_css_mcc_search_cnf_struct gmss_nwsel_css_mcc_search_cnf_struct;
1203typedef nas_sv_css_ps_reg_req_struct gmss_nwsel_css_ps_reg_req_struct;
1204typedef nas_sv_css_ps_reg_cnf_struct gmss_nwsel_css_ps_reg_cnf_struct;
1205typedef nas_sv_css_cs_reg_req_struct gmss_nwsel_css_cs_reg_req_struct;
1206typedef nas_sv_css_cs_reg_cnf_struct gmss_nwsel_css_cs_reg_cnf_struct;
1207
1208typedef struct {
1209 LOCAL_PARA_HDR
1210 kal_bool is_ims_support;
1211} gmss_nwsel_ims_vops_support_status_ind_struct;
1212
1213typedef struct
1214{
1215 LOCAL_PARA_HDR
1216 ims_special_event_enum ims_event;
1217 kal_uint16 sip_cause;
1218} gmss_nwsel_ims_reg_status_update_req_struct;
1219
1220typedef struct
1221{
1222 LOCAL_PARA_HDR
1223 rat_enum disable_rat;
1224} gmss_nwsel_rat_disable_config_req_struct;
1225
1226typedef rac_gmss_data_allow_req_struct gmss_nwsel_data_allow_req_struct;
1227
1228typedef gmss_cval_send_dan_sms_ind_struct gmss_nwsel_send_dan_sms_ind_struct;
1229
1230typedef struct
1231{
1232 LOCAL_PARA_HDR
1233 kal_bool is_invalid;
1234 plmn_id_struct plmn_id;
1235} gmss_nwsel_illegal_me_ind_struct;
1236
1237#if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__))
1238typedef nwsel_eval_power_on_protection_req_struct gmss_nwsel_power_on_protection_req_struct;
1239#endif
1240
1241typedef struct
1242{
1243 LOCAL_PARA_HDR
rjw8e44aab2022-11-30 16:42:16 +08001244 kal_uint32 trx_id; /* Transaction ID */
1245 rat_enum available_rat; /* rat need to be searched */
1246 rat_enum prefer_rat; /* subset of available rat, search those RAT first. RATN_NONE if no preference */
1247 module_type source; /* The source module of this service scan */
1248 kal_bool is_preempt_needed; /* Whether NWSEL need to abort current search action and do service scan first */
rjw6c1fd8f2022-11-30 14:33:01 +08001249} gmss_nwsel_service_scan_req_struct;
1250
1251typedef struct
1252{
1253 LOCAL_PARA_HDR
1254 kal_uint32 trx_id; /* Transaction ID */
1255 proc_status_enum status; /* PROC_SUCCESS, PROC_FAILED or PROC_REJECTED */
1256 module_type source; /* The source module of this service scan */
1257} gmss_nwsel_service_scan_cnf_struct;
1258
1259typedef struct
1260{
1261 LOCAL_PARA_HDR
1262 kal_bool normal_oos_recovery_round_present;
1263 kal_uint8 normal_oos_recovery_round; /* default value =5, range [2,10] */
1264 kal_bool inactive_fullband_period_present;
1265 kal_uint16 inactive_fullband_period; /* default value =200s, range [90,360] */
1266 kal_bool inactive_sniffer_period_present;
1267 kal_uint8 inactive_sniffer_period; /* default value =30s, range [10,60] */
1268 kal_bool is_inactive_mode_present;
1269 kal_bool is_inactive_mode; /* TRUE: Enter inactive mode, FALSE: Leave inactive mode*/
1270} gmss_nwsel_inactive_mode_configuration_req_struct;
1271
1272typedef rac_gmss_screen_on_req_struct gmss_nwsel_screen_on_req_struct;
1273typedef rac_gmss_try_switch_rat_result_ind_struct gmss_nwsel_try_switch_rat_result_ind_struct;
1274
1275typedef nwsel_nas_sv_sys_info_update_ind_struct gmss_nwsel_sys_info_update_ind_struct;
1276typedef nwsel_nas_sv_plmn_found_ind_struct gmss_nwsel_plmn_found_ind_struct;
1277
1278typedef struct
1279{
1280 LOCAL_PARA_HDR
1281 plmn_search_status_enum plmn_search_status;
1282 regn_proc_status_enum regn_proc_stastus;
1283} gmss_nwsel_regn_status_update_req_struct;
1284
1285typedef struct
1286{
1287 LOCAL_PARA_HDR
1288 kal_bool is_over_inactive_mode_threshold; // True: first scan and sleep is done
1289} gmss_nwsel_service_recovery_round_update_req_struct;
1290
1291typedef struct
1292{
1293 LOCAL_PARA_HDR
1294 rat_enum rat;
1295 network_scan_rat_union_type nw_scan_rat_output;
1296 nwsel_plmn_list_status_enum status;
1297} gmss_nwsel_rac_plmn_scan_ind_struct;
1298
1299#endif