blob: ab06bfe975eaf738413a79ace4d192170d3776ed [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 * mm_ratcm_struct.h
40 *
41 * Project:
42 * --------
43 * MONZA
44 *
45 * Description:
46 * ------------
47 *
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 ******************************************************************************/
54
55#ifndef MM_RATCM_STRUCT_H
56#define MM_RATCM_STRUCT_H
57
58#include "l3_inc_enums.h"
59#include "mcd_l3_inc_struct.h"
60#include "l3_inc_local.h"
61#include "l3llc_enums.h"
62#include "mmllc_enums.h"
63#include "as2nas_struct.h"
64#include "mcd_l3_inc_gprs_struct.h"
65#include "ps_public_enum.h"
66#include "mm_ratcm_enums.h"
67#include "rsvas_enum.h"
68#include "kal_public_defs.h"
69#include "irat_common_struct.h"
70#include "irat_common_enums.h"
71#include "nas_as_inter_core_enum.h"
72#include "gmss_public.h"
73#include "nwsel_mm_struct.h"
74
75#include "nas_sv_struct.h"
76
77#include "ratcm_rrce_struct.h"
78#include "ratcm_csce_struct.h"
79#include "mmi2mm_struct.h"
80
81typedef struct {
82 LOCAL_PARA_HDR
83 rfoff_cause_enum rfoff_cause;
84} mm_ratcm_rfoff_req_struct;
85
86typedef struct {
87 LOCAL_PARA_HDR
88 rat_enum rat;
89 rat_enum reported_rat;
90 rat_enum active_rat;
91} mm_ratcm_set_rat_mode_req_struct;
92
93typedef struct {
94 LOCAL_PARA_HDR
95 kal_bool is_successful;
96 mm_cause_enum cause;
97} mm_ratcm_set_rat_mode_cnf_struct;
98
99typedef struct {
100 LOCAL_PARA_HDR
101 kal_uint8 drx_para[2]; /* for split paging cycle and non-drx timer */
102 kal_uint8 imeisv_value_digit0;
103 kal_uint8 imeisv_value_digit_byte[8];
104#ifdef __MONITOR_PAGE_DURING_TRANSFER__
105 gprs_transfer_preference_enum prefer;
106#endif
107 init_cause_enum init_cause;
108} mm_ratcm_init_req_struct;
109
110
111typedef nwsel_nas_sv_plmn_search_req_struct mm_ratcm_plmn_search_req_struct;
112
113typedef struct {
114 LOCAL_PARA_HDR
115 kal_uint8 trx_id;
116 plmn_search_result_enum result;
117 rat_enum rat;
118 plmn_id_struct selected_plmn;
119 kal_bool is_as_plmn_list_present;
120 as_plmn_list_struct as_plmn_list;
121 as_cell_type_enum selected_cell_type; //20081027
122 kal_uint8 multi_plmn_count;
123 plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
124 as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
125 scan_type_enum scan_type;
126 kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
127 fullband_result_enum is_fullband_finished;
128 kal_bool is_quick_search;
129} mm_ratcm_plmn_search_cnf_struct;
130
131typedef struct
132{
133 LOCAL_PARA_HDR
134 kal_uint8 multi_plmn_count;
135 plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
136 as_cell_type_enum multi_cell_type[MAX_NUM_MULTI_PLMN];
137 rat_enum rat;
138 /// source from cell reselection or search
139 found_ind_source_enum source;
140} mm_ratcm_plmn_found_ind_struct;
141
142typedef struct {
143 LOCAL_PARA_HDR
144 kal_uint8 plmn_id_count;
145 plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN];
146 kal_uint8 home_country_mcc[3];
147} mm_ratcm_hplmn_info_update_req_struct;
148
149typedef struct {
150 LOCAL_PARA_HDR
151 kal_uint8 la_code[2];
152 forbidden_la_type_enum forbidden_la_type; /* forbidden_la_type_enum */
153 plmn_id_struct plmn_id;
154} mm_ratcm_add_forbidden_la_req_struct;
155
156typedef struct {
157 LOCAL_PARA_HDR
158 kal_uint8 la_code[2];
159 plmn_id_struct plmn_id;
160 kal_bool delete_all;
161} mm_ratcm_del_forbidden_la_req_struct;
162
163typedef struct {
164 LOCAL_PARA_HDR
165 csg_update_type_enum csg_update_type;
166 plmn_id_struct plmn_id;
167 kal_uint32 csg_id;
168} mm_ratcm_update_allowed_csg_list_req_struct;
169
170typedef mm_sys_info_ind_struct mm_ratcm_sys_info_ind_struct;
171typedef mm_cell_global_identity_info_ind_struct mm_ratcm_cell_global_identity_info_ind_struct;
172
173typedef struct {
174 LOCAL_PARA_HDR
175 kal_bool is_as_plmn_list_present;
176 as_plmn_list_struct as_plmn_list;
177 csfb_indicator_enum csfb_ind;
178#ifdef __GEMINI__
179 as_suspend_mode_reason_enum cause; /* for RR suspend mode */
180#endif /* __GEMINI__ */
181 plmn_loss_reason_enum plmn_loss_reason;
182} mm_ratcm_plmn_loss_ind_struct;
183
184typedef nas_sv_mm_plmn_list_req_struct mm_ratcm_plmn_list_req_struct;
185
186typedef nwsel_mm_plmn_list_status_update_req_struct mm_ratcm_plmn_list_status_update_req_struct;
187
188typedef nas_sv_mm_plmn_list_cnf_struct mm_ratcm_plmn_list_cnf_struct;
189
190typedef nas_sv_mm_csg_list_req_struct mm_ratcm_csg_list_req_struct;
191
192#if 0
193/* under construction !*/
194/* under construction !*/
195/* under construction !*/
196/* under construction !*/
197/* under construction !*/
198/* under construction !*/
199/* under construction !*/
200/* under construction !*/
201/* under construction !*/
202/* under construction !*/
203/* under construction !*/
204/* under construction !*/
205#endif
206
207typedef struct {
208 LOCAL_PARA_HDR
209 RATCM_RRC_PagingCause paging_cause;
210 domain_id_enum cn_domain_id;
211 ue_id_type_enum ue_id_type;
212} mm_ratcm_page_ind_struct;
213
214typedef struct {
215 LOCAL_PARA_HDR
216 kal_uint32 old_tlli;
217 kal_uint32 new_tlli;
218 tlli_update_type_enum status_tlli;
219 rai_struct rai;
220} mm_ratcm_tlli_assign_req_struct;
221
222typedef struct {
223 LOCAL_PARA_HDR
224 kal_bool is_tmsi_lai_present;
225 kal_uint8 tmsi[4];
226 kal_bool is_lai_abnormal; /* MAUI_01959495 */
227 lai_struct reg_lai;
228 kal_bool is_ptmsi_rai_present;
229 kal_uint8 ptmsi[4];
230 kal_bool is_rai_abnormal; /* MAUI_01959495 */
231 rai_struct reg_rai;
232 kal_uint8 umts_ps_drx_clc;
233} mm_ratcm_paging_param_assign_req_struct;
234
235typedef struct {
236 LOCAL_PARA_HDR
237 domain_id_enum cn_domain_id;
238 kal_bool is_new_keys;
239 kal_uint8 cksn;
240 kal_bool gsm_cipher_key_infoP;
241 kal_uint8 gsm_cipher_key_info[KC_LEN];
242 kal_bool gsm_cipher_key128_infoP;
243 kal_uint8 gsm_cipher_key128_info[KC128_LEN];
244 kal_uint8 ps_cipher_algo;
245 kal_bool umts_keys_infoP;
246 kal_uint8 umts_cipher_key_info[CK_LEN];
247 kal_uint8 umts_integrity_key_info[IK_LEN];
248 kal_bool is_power_on; // for TS 24.008 CR1994
249} mm_ratcm_security_mode_req_struct;
250
251typedef struct {
252 LOCAL_PARA_HDR
253 sync_ind_cause_enum cause;
254 channel_type_enum channel_type; /* channel_type_enum */
255 channel_mode_enum channel_mode; /* channel_mode_enum */
256 kal_uint8 si;
257 kal_bool is_cipher_on;
258} mm_ratcm_sync_ind_struct;
259
260typedef struct {
261 LOCAL_PARA_HDR
262 domain_id_enum cn_domain_id;
263 kal_bool is_integrity_enabled;
264 Ciphering_Status umts_ciphering_status;
265 kal_uint8 service_req_mui;
266} mm_ratcm_security_mode_complete_ind_struct;
267
268typedef struct {
269 LOCAL_PARA_HDR
270 domain_id_enum cn_domain_id;
271 Ciphering_Status umts_ciphering_status; /* Ciphering_Status */
272} mm_ratcm_security_mode_change_ind_struct;
273
274typedef struct {
275 LOCAL_PARA_HDR
276 kal_uint8 mui;
277 kal_uint16 gibi_tag;
278 domain_id_enum cn_domain_id;
279 mm_ratcm_est_cause_enum estb_cause;
280 peer_msg_id_struct peer_msg_id;
281 kal_bool is_service_req;
282#if defined (__R6_DSAC__) || defined (UNIT_TEST)
283 kal_bool is_dsac_present;
284 kal_uint16 selected_dsac_info;
285#endif
286 plmn_id_struct selected_plmn;
287
288#if defined(__PPACR_SUPPORT__) || defined (UNIT_TEST)
289 ppac_checked_type_enum PPACCheckedType;
290 kal_uint16 selectedPPACInfo; //used by PPAC_LR_ALLOWED
291#endif
292
293#ifdef __LTE_RAT__
294 csfb_indicator_enum csfb_indicator;
295 csfb_service_type_enum csfb_service_type;
296#endif /* __LTE_RAT__*/
297 rat_enum current_rat; /* CELL_CHANGE_FINISH is in MM external queue and MM current rat is still source rat *
298 * RATCM should reject conn_est_req when current_rat is not match RATCM active rat */
299 kal_bool is_imsi_detach_for_power_off;
300} mm_ratcm_conn_est_req_struct;
301
302typedef struct {
303 LOCAL_PARA_HDR
304 domain_id_enum cn_domain_id;
305 as_est_cnf_cause_enum result;
306 kal_bool wait_gibi_flag;
307 kal_bool is_rrc_conn_already_existed;
308} mm_ratcm_conn_est_cnf_struct;
309
310typedef struct {
311 LOCAL_PARA_HDR
312 kal_bool is_successful;
313 domain_id_enum cn_domain_id;
314 kal_bool is_t3126_expiry;
315} mm_ratcm_conn_est_ind_struct;
316
317typedef struct {
318 LOCAL_PARA_HDR
319 domain_id_enum cn_domain_id;
320 as_rel_scope_enum scope;
321 conn_rel_cause_enum cause;
322} mm_ratcm_conn_rel_req_struct;
323
324typedef struct {
325 LOCAL_PARA_HDR
326 domain_id_enum cn_domain_id;
327 as_rel_scope_enum scope;
328 kal_bool ps_resume_flag;
329 kal_bool wait_gibi_flag;
330 kal_bool wait_rrc_connection_release_ind;
331} mm_ratcm_conn_rel_cnf_struct;
332
333typedef struct {
334 LOCAL_PARA_HDR
335 domain_id_enum cn_domain_id;
336 RATCM_RRC_ReleaseCause cause;
337 kal_bool ps_resume_flag;
338 kal_bool wait_gibi_flag;
339 kal_bool wait_rrc_connection_release_ind;
340} mm_ratcm_conn_rel_ind_struct;
341
342typedef struct {
343 LOCAL_PARA_HDR
344 regn_proc_status_enum mm_proc_status;
345 kal_uint32 t3212_or_t3302;
346 gmm_ms_state_enum ms_state;
347 mmas_regn_status_enum regn_status;
348 plmn_search_status_enum plmn_search_status;
349 plmn_search_type_enum plmn_search_type; /* new plmn search type */
350 lai_struct lai; /* for GAS bar cell */
351 kal_uint32 cell_id; /* for GAS bar cell */
352} mm_ratcm_regn_status_req_struct;
353
354typedef mm_ratcm_regn_status_req_struct mm_ratcm_regn_status_update_req_struct;
355
356typedef struct {
357 LOCAL_PARA_HDR
358 action_on_ready_timer_enum action;
359 gmm_ms_state_enum new_state;
360 kal_uint32 value;
361} mm_ratcm_ready_timer_update_req_struct; /* should be same as ratcm_gas_ready_timer_update_req_struct. */
362
363typedef struct {
364 LOCAL_PARA_HDR
365 ready_timer_status_enum status;
366} mm_ratcm_ready_timer_update_ind_struct; /* should be same as ratcm_gas_ready_timer_update_ind_struct. */
367
368typedef struct {
369 LOCAL_PARA_HDR
370 kal_bool is_gprs_required;
371} mm_ratcm_service_change_req_struct; /* Should same as ratcm_gas_service_change_req_struct. */
372
373typedef struct {
374 LOCAL_PARA_HDR
375 kal_uint8 mui;
376 kal_uint16 gibi_tag;
377 DC_Priority priority;
378 kal_bool is_service_req;
379 kal_bool is_imsi_detach_for_power_off;
380 peer_msg_id_struct peer_msg_id;
381} mm_ratcm_cs_data_req_struct;
382
383typedef struct {
384 LOCAL_PARA_HDR
385 kal_bool is_integrity_applied;
386} mm_ratcm_cs_data_ind_struct;
387typedef struct {
388 LOCAL_PARA_HDR
389 peer_msg_id_struct peer_msg_id;
390 DC_Status status;
391} mm_ratcm_cs_data_cnf_struct;
392
393typedef struct {
394 LOCAL_PARA_HDR
395 kal_uint8 mui;
396 kal_uint16 gibi_tag;
397 llc_sapi_enum sapi;
398 rp_enum radio_priority;
399 kal_uint8 cipher_ind;
400 res_req_cause msg_type;
401 kal_uint8 nsapi;
402 kal_uint32 tlli;
403 kal_uint8 pfi;
404 concise_qos_struct qos_param;
405 peer_msg_id_struct peer_msg_id;
406} mm_ratcm_ps_data_req_struct;
407
408typedef struct {
409 LOCAL_PARA_HDR
410 //kal_uint8 mui;
411 DC_Status status;
412 peer_msg_id_struct peer_msg_id;
413} mm_ratcm_ps_data_cnf_struct;
414
415typedef struct {
416 LOCAL_PARA_HDR
417 kal_bool is_integrity_applied;
418 kal_uint32 tlli;
419} mm_ratcm_ps_data_ind_struct;
420
421typedef struct {
422 LOCAL_PARA_HDR
423 kal_bool is_cs_reset_keys;
424 kal_bool is_ps_reset_keys;
425} mm_ratcm_reset_keys_ind_struct;
426
427typedef struct {
428 LOCAL_PARA_HDR
429 kal_uint32 tlli;
430} mm_ratcm_llc_resume_req_struct; /* Should be same as ratcm_llc_resume_req_struct */
431
432typedef struct {
433 LOCAL_PARA_HDR
434 kal_uint32 tlli;
435} mm_ratcm_llc_suspend_req_struct; /* Should be same as ratcm_llc_suspend_req_struct */
436
437typedef struct {
438 LOCAL_PARA_HDR
439 kal_uint32 tlli;
440 res_req_cause cause; /* res_req_cause */
441 llgmm_cell_update_type_enum cell_update_type; /* llgmm_cell_update_type_enum */
442} mm_ratcm_llc_trigger_req_struct; /* Should be same as ratcm_llc_trigger_req_struct */
443
444
445typedef struct {
446 LOCAL_PARA_HDR
447 kal_bool is_expiry; /*KAL_TRUE: T3122 expires, MM will retry LU immediately
448 KAL_FALSE: T3122 is stopped */
449} mm_ratcm_t3122_timeout_ind_struct;
450
451typedef struct {
452 LOCAL_PARA_HDR
453 kal_bool is_expiry; /*KAL_TRUE: CCO activation time expires, MM will retry LU immediately
454 KAL_FALSE: CCO activation time is stopped */
455} mm_ratcm_cco_activation_time_timeout_ind_struct;
456
457typedef struct {
458 LOCAL_PARA_HDR
459 rat_enum rat;
460} mm_ratcm_signal_appear_ind_struct;
461
462#ifdef __DYNAMIC_BAND_SEL__
463typedef struct {
464 LOCAL_PARA_HDR
465 band_selection_enum gsm_band; /* refer to band_selection_enum value*/
466 kal_bool is_gsm_band_present;
467 kal_uint8 umts_fdd_band[SIZE_OF_UMTS_BAND]; /* 3G band change */
468 kal_bool is_umts_band_present; /* 3G band change */
469}mm_ratcm_set_preferred_band_req_struct;
470#endif
471
472#ifdef __GEMINI__
473typedef struct {
474 LOCAL_PARA_HDR
475 sim_config_status_enum sim_config_status;
476 sim_insert_status_enum sim_insert_status;
477} mm_ratcm_sim_status_update_req_struct;
478
479
480typedef struct {
481 LOCAL_PARA_HDR
482} mm_ratcm_suspend_ind_struct;
483
484
485//mtk02475: local param struct is only exist in GEMINI 2.0 project
486typedef struct {
487 LOCAL_PARA_HDR
488 as_gemini_status_enum as_gemini_status;
489} mm_ratcm_resume_ind_struct;
490
491typedef struct {
492 LOCAL_PARA_HDR
493 as_gemini_status_enum as_gemini_status;
494} mm_ratcm_virtual_mode_ind_struct;
495
496typedef struct {
497 LOCAL_PARA_HDR
498 as_gemini_status_enum as_gemini_status;
499} mm_ratcm_uas_virtual_mode_ind_struct;
500
501typedef struct {
502 LOCAL_PARA_HDR
503 gprs_transfer_preference_enum prefer;
504} mm_ratcm_set_gprs_transfer_preference_req_struct;
505#endif /* __GEMINI__ */
506
507/* MAUI_02852442, __NO_PSDATA_SEND_SCRI__ */
508typedef struct {
509 LOCAL_PARA_HDR
510 kal_bool force_send_SCRI;
511 end_session_cause_enum cause;
512}mm_ratcm_end_ps_data_session_req_struct;
513
514typedef struct {
515 LOCAL_PARA_HDR
516 end_session_result_enum cause;
517}mm_ratcm_end_ps_data_session_cnf_struct;
518/* __NO_PSDATA_SEND_SCRI__ */
519
520#ifdef __TC7__CS__SUPPORT__
521typedef struct {
522 LOCAL_PARA_HDR
523 kal_bool isForceLau;
524} mm_ratcm_cell_change_start_ind_struct;
525#endif
526
527typedef struct {
528 LOCAL_PARA_HDR
529 rat_enum rat;
530 domain_id_enum connection_domain;
531 kal_bool is_gibi_tag_valid;
532 kal_uint16 gibi_tag;
533} mm_ratcm_cell_change_finish_ind_struct;
534
535/* MAUI_03101878, [Silver Clam][CV][SilverClam-94]Pre-CV-CMAS: GPRS failed due to timeout */
536typedef struct {
537 LOCAL_PARA_HDR
538 lai_struct current_lai;
539} mm_ratcm_cb_loc_update_req_struct;
540
541typedef struct{
542 LOCAL_PARA_HDR
543 nas_req_gemini_ps_high_sem_enum gemini_ps_high_sem_status;
544} mm_ratcm_uas_gemini_ps_high_sem_req_struct;
545
546typedef struct{
547 LOCAL_PARA_HDR
548 kal_bool is_sim_inserted;
549 kal_bool is_delete_pending;
550} mm_ratcm_sim_info_reset_req_struct;
551
552typedef struct{
553 LOCAL_PARA_HDR
554 RATCM_RRC_LocalReleaseType localReleaseType;
555 kal_uint16 locally_released_PS_RAB_bitmap;
556 //traffic_class_enum max_traffic_class;
557} mm_ratcm_local_release_ind_struct;
558
559//__LTE__
560typedef struct{
561 LOCAL_PARA_HDR
562 eutran_cap_enum eutran_cap;
563} mm_ratcm_eutran_cap_update_req_struct;
564
565typedef struct {
566 LOCAL_PARA_HDR
567 kal_bool is_successful;
568} mm_ratcm_eutran_cap_update_cnf_struct;
569
570typedef struct{
571 LOCAL_PARA_HDR
572 irat_type_enum irat_type; //Indicates the inter-RAT type
573 rat_type_enum source_rat; //Source RAT (GAS or UAS)
574 rat_type_enum target_rat; //Target RAT (Should be EAS)
575 void* as_info_ptr; //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
576 //The buffer will be freed by soure or target AS
577 ratcm_gas_security_mode_req_struct gas_security; //Indicates the GERAN security context if target_rat is GAS.
578 //Note that if the RAT change is failed and return to LTE, the security context should be reverted to the original one. NAS will send RATCM_GAS_SECURITY_MODE_REQ to update the original security information when NAS receives RAT_CHANGE_CNF indicated that the inter-RAT procedure is failed.
579 uas_security_context_struct uas_security[2]; //Indicates the UTRAN security context if target_rat is UAS.
580 //Note that if the RAT change is failed and return to LTE, the security information should be reverted to the original one. NAS will send RATCM_RRCE_SECURITY_MODE_REQ to update the original security information when NAS receives RAT_CHANGE_CNF indicated that the inter-RAT procedure is failed.
581 csfb_indicator_enum csfb_indicator; //Indicate that the purpose of current inter-RAT change is for CS fallback which is combined the information (MobilityFromEutra) from ERRC and the processing type of CSFB in EMM.
582 loopback_mode_status_enum loopback_mode_status; //Notify RATCM to enter test mode for LTE-LBM mode B
583 kal_bool is_lai_valid; //CSFB enhancement
584 lai_struct lai; //CSFB enhancement
585 kal_bool is_srvcc; //SRVCC support. If is_srvcc=KAL_TRUE, it means RATCM vsd_mod is 4. (is_r99_nw = KAL_TRUE)
586 kal_bool is_mapped_rai_valid; // For 4G3 HO, AS may not have valid plmn id. AS will derive plmn id from mapped rai.
587 rai_struct mapped_rai;
588} mm_ratcm_rat_change_req_struct;
589
590typedef struct{
591 LOCAL_PARA_HDR
592 irat_type_enum irat_type; //Indicates the inter-RAT type
593 rat_type_enum source_rat; //Source RAT
594 rat_type_enum target_rat; //Target RAT
595 irat_result_enum irat_result; //The result of inter-RAT change
596 void* as_info_ptr; //The pointer of AS container information
597 domain_id_enum connection_domain; //Indicates that the current connection domain for the target RAT
598 kal_bool is_gibi_tag_valid;
599 kal_uint16 gibi_tag;
600} mm_ratcm_rat_change_cnf_struct;
601
602typedef struct{
603 LOCAL_PARA_HDR
604 irat_type_enum irat_type;
605 rat_type_enum source_rat; //Source RAT (GAS or UAS)
606 rat_type_enum target_rat; //Target RAT (Should be EAS)
607 void* as_info_ptr; //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
608 //The buffer will be freed by soure or target AS
609 kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
610 //NAS security parameter (Only valid for IRHO from UAS)
611 //Byte1 ~ 4: NouceMME
612 //Byte5: Selected Algorithm (Ciphering/Integrity)
613 //Byte6: eKSI (including type of security context)
614} mm_ratcm_rat_change_ind_struct;
615
616typedef struct{
617 LOCAL_PARA_HDR
618 irat_type_enum irat_type;
619 rat_type_enum source_rat; //Source RAT (GAS or UAS)
620 rat_type_enum target_rat; //Target RAT (Should be EAS)
621 irat_result_enum irat_result; //The result of inter-RAT change
622 irat_reject_cause_enum irat_reject_cause; //Reject cause when irat_result is equal to IR_RESULT_REJECT.
623 void* as_info_ptr; //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
624 //The buffer will be freed by soure or target AS
625} mm_ratcm_rat_change_rsp_struct;
626
627typedef struct{
628 LOCAL_PARA_HDR
629 paging_type_enum paging_type;
630 csfb_service_type_enum paging_service;
631 kal_bool is_paging_retry;
632}mm_ratcm_page_req_struct;
633
634typedef struct {
635 LOCAL_PARA_HDR
636 kal_bool is_completed;
637}mm_ratcm_deactivate_cnf_struct;
638
639typedef struct
640{
641 LOCAL_PARA_HDR
642 cs_status_enum status;
643} mm_ratcm_cs_status_update_req_struct;
644
645/*For TDD call clearing optimization*/
646
647typedef struct
648{
649 LOCAL_PARA_HDR
650} mm_ratcm_force_rel_req_struct;
651
652typedef struct
653{
654 LOCAL_PARA_HDR
655 kal_uint8 imeisv_value_digit0;
656 kal_uint8 imeisv_value_digit_byte[8];
657}mm_ratcm_set_imei_req_struct;
658
659typedef struct
660{
661 LOCAL_PARA_HDR
662 kal_bool is_pch_state;
663}mm_ratcm_rrc_state_ind_struct;
664
665typedef struct
666{
667 LOCAL_PARA_HDR
668 rat_enum rat_mode;
669 kal_bool is_pgcheck_on;
670}mm_ratcm_set_pgcheck_req_struct;
671
672typedef struct
673{
674 LOCAL_PARA_HDR
675 umts_duplex_mode_type source_umts_duplex_mode;
676 umts_duplex_mode_type target_umts_duplex_mode;
677 lte_duplex_mode_type source_lte_duplex_mode;
678 lte_duplex_mode_type target_lte_duplex_mode;
679 mode_switch_cause_enum cause;
680} mm_ratcm_duplex_mode_change_req_struct;
681
682typedef struct
683{
684 LOCAL_PARA_HDR
685 kal_bool result;
686} mm_ratcm_duplex_mode_change_cnf_struct;
687
688typedef struct
689{
690 LOCAL_PARA_HDR
691 rat_enum rat;
692 plmn_id_struct plmn_id;
693 kal_uint16 arfcn;
694 kal_uint8 requested_band;
695} mm_ratcm_set_mru_req_struct;
696
697typedef struct
698{
699 LOCAL_PARA_HDR
700 set_mru_result_enum result;
701} mm_ratcm_set_mru_cnf_struct;
702
703typedef struct {
704 LOCAL_PARA_HDR
705 aral_op_enum op_code;
706 plmn_id_struct plmn;
707 rat_enum rat;
708 kal_uint8 ara_start[2];
709 kal_uint8 ara_end[2];
710} mm_ratcm_aral_update_req_struct;
711
712typedef nwsel_mm_emc_forbidden_nw_list_update_req_struct mm_ratcm_emc_forbidden_nw_list_update_req_struct;
713
714typedef struct
715{
716 LOCAL_PARA_HDR
717 call_status_enum call_status;
718 call_type_indication_enum call_type;
719} mm_ratcm_call_status_ind_struct;
720typedef nwsel_mm_rat_disable_config_req_struct mm_ratcm_rat_disable_config_req_struct;
721typedef struct {
722 LOCAL_PARA_HDR
723 kal_uint8 imeisv_value_digit0;
724 kal_uint8 imeisv_value_digit_byte[8];
725} mm_ratcm_set_imei_sv_req_struct;
726
727typedef ratcm_rrce_conn_loss_ind_struct mm_ratcm_conn_loss_ind_struct;
728
729
730typedef struct {
731 LOCAL_PARA_HDR
732 kal_bool is_auth_download_ongoing;
733} mm_ratcm_rsim_auth_download_req_struct;
734
735typedef struct
736{
737 LOCAL_PARA_HDR
738 kal_bool is_over_inactive_mode_threshold; // True: recovery counter > normal_oos_recovery_round
739} mm_ratcm_service_recovery_round_update_req_struct;
740
741typedef struct
742{
743 LOCAL_PARA_HDR
744 kal_bool normal_oos_recovery_round_present;
745 kal_uint8 normal_oos_recovery_round; // default value = 5, range [2, 10]
746 kal_bool inactive_fullband_period_present;
747 kal_uint16 inactive_fullband_period; // default = 200s, range: [90, 360]
748 kal_bool inactive_sniffer_period_present;
749 kal_uint8 inactive_sniffer_period; // default = 30s, range: [10, 60]
750 kal_bool is_inactive_mode_present;
751 kal_bool is_inactive_mode; // True: enter inactive mode, False: leave inactive mode
752} mm_ratcm_inactive_mode_configuration_req_struct;
753
754//MSG_ID_MM_RATCM_LTE_NORMAL_SERVICE_LOSS_UPDATE_REQ
755typedef gmmreg_lte_normal_service_loss_update_req_struct mm_ratcm_lte_normal_service_loss_update_req_struct ;
756
757//MSG_ID_MM_RATCM_END_PS_DATA_SESSION_IND
758typedef ratcm_csce_end_ps_data_session_ind_struct mm_ratcm_end_ps_data_session_ind_struct ;
759
760//MSG_ID_MM_RATCM_NO_CC_DATA_DETECT_IND
761typedef ratcm_rrce_no_cc_data_detect_ind_struct mm_ratcm_no_cc_data_detect_ind_struct;
762
763#ifdef __GEMINI__
764typedef struct {
765 LOCAL_PARA_HDR
766 kal_bool is_data_allowed;
767} mm_ratcm_data_allow_req_struct;
768#endif
769
770typedef struct
771{
772 LOCAL_PARA_HDR
773 rat_enum rat;
774 network_scan_23g_union nw_scan_23g_output;
775} mm_ratcm_plmn_scan_ind_struct;
776
777typedef struct
778{
779 LOCAL_PARA_HDR
780 plmn_id_struct plmn_id;
781} mm_ratcm_plmn_info_update_req_struct;
782
783#endif /* MM_RATCM_STRUCT_H */