blob: f79a1fd59312673adf2aeb9b37831ba5610ffcd2 [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) 2007
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 * irat_common_struct.h
40 *
41 * Project:
42 * --------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 *
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * removed!
55 *
56 * removed!
57 * removed!
58 * removed!
59 * removed!
60 *
61 * removed!
62 * removed!
63 *
64 * removed!
65 * removed!
66 *
67 * removed!
68 * removed!
69 * removed!
70 *
71 * removed!
72 * removed!
73 * removed!
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 * removed!
81 * removed!
82 *
83 * removed!
84 * removed!
85 * removed!
86 *
87 * removed!
88 * removed!
89 * removed!
90 *
91 * removed!
92 * removed!
93 *
94 * removed!
95 * removed!
96 * removed!
97 *
98 * removed!
99 * removed!
100 * removed!
101 *
102 * removed!
103 * removed!
104 * removed!
105 *
106 * removed!
107 * removed!
108 * removed!
109 *
110 * removed!
111 * removed!
112 * removed!
113 *
114 * removed!
115 * removed!
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 * removed!
122 *
123 * removed!
124 * removed!
125 * removed!
126 *
127 * removed!
128 * removed!
129 * removed!
130 *
131 * removed!
132 * removed!
133 * removed!
134 *
135 * removed!
136 * removed!
137 * removed!
138 * removed!
139 * removed!
140 *
141 * removed!
142 * removed!
143 * removed!
144 *
145 * removed!
146 * removed!
147 * removed!
148 *
149 * removed!
150 * removed!
151 * removed!
152 *
153 * removed!
154 * removed!
155 * removed!
156 *
157 * removed!
158 * removed!
159 *
160 * removed!
161 * removed!
162 * removed!
163 *
164 * removed!
165 * removed!
166 * removed!
167 *
168 * removed!
169 * removed!
170 * removed!
171 *
172 * removed!
173 * removed!
174 * removed!
175 *
176 * removed!
177 * removed!
178 * removed!
179 *
180 * removed!
181 * removed!
182 * removed!
183 *
184 * removed!
185 * removed!
186 * removed!
187 *
188 * removed!
189 * removed!
190 * removed!
191 *
192 * removed!
193 * removed!
194 * removed!
195 *
196 * removed!
197 * removed!
198 * removed!
199 *
200 * removed!
201 * removed!
202 *
203 * removed!
204 * removed!
205 * removed!
206 *
207 * removed!
208 * removed!
209 * removed!
210 *
211 * removed!
212 * removed!
213 * removed!
214 *
215 * removed!
216 * removed!
217 *
218 * removed!
219 * removed!
220 * removed!
221 *
222 * removed!
223 * removed!
224 * removed!
225 *
226 * removed!
227 * removed!
228 * removed!
229 *
230 * removed!
231 * removed!
232 * removed!
233 *
234 * removed!
235 * removed!
236 * removed!
237 *
238 * removed!
239 * removed!
240 *
241 * removed!
242 * removed!
243 * removed!
244 *
245 * removed!
246 * removed!
247 *
248 * removed!
249 * removed!
250 * removed!
251 * removed!
252 * removed!
253 * removed!
254 *
255 * removed!
256 * removed!
257 *
258 * removed!
259 * removed!
260 * removed!
261 * removed!
262 * removed!
263 * removed!
264 *
265 * removed!
266 * removed!
267 * removed!
268 *
269 * removed!
270 * removed!
271 * removed!
272 *
273 * removed!
274 * removed!
275 *
276 * removed!
277 * removed!
278 *
279 * removed!
280 * removed!
281 *
282 * removed!
283 * removed!
284 * removed!
285 *
286 * removed!
287 * removed!
288 * removed!
289 *
290 * removed!
291 * removed!
292 * removed!
293 *
294 * removed!
295 * removed!
296 * removed!
297 *
298 * removed!
299 * removed!
300 * removed!
301 *
302 * removed!
303 * removed!
304 * removed!
305 *
306 * removed!
307 * removed!
308 * removed!
309 *
310 * removed!
311 * removed!
312 * removed!
313 *
314 * removed!
315 * removed!
316 * removed!
317 *
318 * removed!
319 * removed!
320 * removed!
321 *
322 * removed!
323 * removed!
324 * removed!
325 *
326 * removed!
327 * removed!
328 * removed!
329 *
330 * removed!
331 * removed!
332 * removed!
333 *
334 * removed!
335 * removed!
336 * removed!
337 * removed!
338 * removed!
339 * removed!
340 * removed!
341 *
342 ****************************************************************************/
343
344#ifndef _IRAT_COMMON_STRUCT_H
345#define _IRAT_COMMON_STRUCT_H
346
347#include "kal_general_types.h"
348#include "mmi_l3_enums.h"
349#include "mcd_l3_inc_gprs_struct.h"
350#include "ps_public_enum.h"
351#include "stack_config.h"
352#include "l3_inc_enums.h"
353#include "l3_inc_local.h"
354#include "irat_common_enums.h"
355#include "mcd_l3_inc_struct.h"
356#include "as_inter_core_struct.h"
357#include "global_type.h"
358#include "general_qos_struct.h"
359
360#define MAX_VAL(VAL_A, VAL_B) (((VAL_A) > (VAL_B)) ? (VAL_A):(VAL_B))
361
362#if defined(GPRS_MAX_PDP_SUPPORT) && defined(LTE_MAX_EPSB_SUPPORT)
363 #define MAX_TRANSFERRED_BEARER_NUM MAX_VAL(GPRS_MAX_PDP_SUPPORT, LTE_MAX_EPSB_SUPPORT)
364#elif defined(LTE_MAX_EPSB_SUPPORT)
365 #define MAX_TRANSFERRED_BEARER_NUM LTE_MAX_EPSB_SUPPORT // fail safe, this line has no meaning. just prevent compile error
366#else
367 #define MAX_TRANSFERRED_BEARER_NUM GPRS_MAX_PDP_SUPPORT // fail safe, this line has no meaning. just prevent compile error
368#endif
369
370//#define MAX_BEARER_CTXT_NUM MAX_TRANSFERRED_BEARER_NUM
371
372#define MAX_BEARER_CTXT_NUM 11
373#define MAX_BEARER_ID 16
374
375typedef struct {
376 kal_uint8 ti_len;
377 kal_uint8 ti[UGSM_TI_IE_LEN];
378}irat_ti_struct;
379
380typedef struct {
381 kal_bool cause_present;
382 ps_cause_enum cause_value;
383}irat_addr_type_limitation_cause_struct;
384
385typedef struct
386{
387 kal_uint8 qci;
388} simple_eps_qos_struct;
389
390typedef struct {
391 // if iRAT, source SM need to fill the following fields
392 irat_transfer_bearer_type_enum bearer_type;
393
394 // NSAPI / EBI (range is 5~15)
395 kal_uint8 bearer_id;
396
397 // NSAPI / EBI (range is 5~15)
398 kal_uint8 linked_bearer_id;
399
400
401 // secondary bearer set ip_addr_type = NULL_TYPE
402 ip_addr_struct ip_addr;
403
404 // secondary bearer doesn't need to set this field
405 apn_struct apn;
406
407 // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
408 kal_bool is_ug_qos_present;
409 // negotiated qos parameter used in 23G
410 qos_struct ug_qos;
411
412 kal_bool is_eps_qos_present;
413 // When ESM transfer more than GPRS_MAX_PDP_SUPPORT contexts to SM,
414 // SM need to use eps_qos to decide which contexts need to be mapped failed and inform ESM to local release it.
415 eps_qos_struct eps_qos;
416
417 // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
418 kal_bool is_llc_sapi_present;
419 kal_uint8 llc_sapi;
420
421 // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
422 kal_bool is_radio_priority_present;
423 kal_uint8 radio_priority;
424
425 // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
426 kal_bool is_pfi_present;
427 kal_uint8 pfi;
428
429 // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
430 kal_bool is_ti_present;
431 irat_ti_struct ti;
432
433 irat_addr_type_limitation_cause_struct addr_type_limitation_cause;
434
435 bearer_service_type_enum bearer_service_type;
436
437 /* only used in 23G4 inter-RAT, when tcm_requested_deact==KAL_TRUE, this PDP must map fail, used to perform local deact */
438 kal_bool tcm_requested_deact;
439
440 //BCM and ETFT parameters to maintain sync between SM and ESM
441 bcm_enum bcm_info;
442 etft_enum etft_info;
443}bearer_ctxt_struct;
444
445
446typedef struct {
447 kal_uint8 total_number; // Total number of PDP context/EPS bearer which will transfer to target RAT
448 bearer_ctxt_struct context[MAX_TRANSFERRED_BEARER_NUM]; // bearer context which will transfer to target RAT
449}bearer_ctxt_transfer_struct;
450
451typedef struct {
452 // NSAPI / EBI (range is 5~15)
453 kal_uint8 bearer_id;
454
455 // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
456 kal_bool is_ug_qos_present;
457 // negotiated qos parameter used in 23G
458 qos_struct ug_qos;
459
460 // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
461 kal_bool is_llc_sapi_present;
462 kal_uint8 llc_sapi;
463
464 // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
465 kal_bool is_radio_priority_present;
466 kal_uint8 radio_priority;
467
468 // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
469 kal_bool is_pfi_present;
470 kal_uint8 pfi;
471
472 // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
473 kal_bool is_ti_present;
474 irat_ti_struct ti;
475
476}bearer_legacy_rat_para_struct;
477
478
479typedef struct
480{
481 sec_ctxt_domain_id_enum domain_id;
482 kal_uint8 umts_ciphering_key[CK_LEN];
483 kal_uint8 umts_integrity_key[IK_LEN];
484 kal_uint8 gsm_ciphering_key[KC_LEN];
485 kal_uint8 gsm_ciphering_key128[KC128_LEN];
486}security_context_struct;
487
488
489/* Merged from GSM / UMTS Multimode development branch **********/
490/* Common structure */
491/* Measurement request/confirm related: GAS/UAS to EAS */
492
493typedef struct
494{
495 kal_uint16 physical_cell_id;
496 kal_int16 cpich_rscp;
497 kal_int16 cpich_ec_n0;
498} ir_reported_fdd_cells_csg_meas_info;
499
500typedef struct
501{
502 kal_uint16 uarfcn;
503 kal_int16 uarfcn_rssi;
504 kal_uint8 num_reported_cells;
505 ir_reported_fdd_cells_csg_meas_info ir_reported_fdd_cells_csg_meas_info_list[MAX_NR_OF_CSG_CELLS_IN_CELL_LIST];
506} ir_umts_carrier_csg_meas_result_struct;
507
508typedef struct FDD_meas_UmtsCellList
509{
510 kal_uint8 numElements;
511
512 meas_UmtsCellListPerCarrier element[FDD_MAX_NUM_MEASURED_UMTS_CARRIERS];
513}
514FDD_meas_UmtsCellList;
515
516typedef struct TDD_meas_UmtsCellList
517{
518 kal_uint8 numElements;
519
520 meas_UmtsCellListPerCarrier element[TDD_MAX_NUM_MEASURED_UMTS_CARRIERS];
521}
522TDD_meas_UmtsCellList;
523
524typedef struct
525{
526 kal_bool is_valid;
527 EARFCN earfcn;
528 kal_uint16 pci;
529 kal_uint32 cell_id;
530 kal_bool sib2_hs_flg;
531 kal_bool el1_hst_md_flg;
532 kal_uint32 valid_duration;
533} ir_lte_scell_struct;
534
535/* This structure represents the redirection info from GSM or UMTS to LTE */
536typedef struct
537{
538 EARFCN earfcn;
539 kal_bool target_cell_valid_flag;
540 kal_uint16 target_cell;
541 kal_bool not_allowed_exist_flag;
542 /* It is a LTE PCI bit map (0-503), least significant bit of not_allowed_cells [0]
543 * represents PCI-0, and the most significant bit of not_allowed_cells [0]
544 * represents PCI-7.
545 * The cell IDs (PCI) of not allowed cells are set to "1" and the cell IDs
546 * (PCI) of those other than not allowed cells are set to "0".
547 */
548 kal_uint8 not_allowed_cell[PCI_BITMAP_MAX_NUM];
549} lte_redirect_info;
550#ifdef __UMTS_FDD_MODE__
551typedef struct
552{
553 kal_uint16 uarfcn;
554 kal_uint16 scrambling_code;
555 kal_bool tx_diversity;
556} ts_umts_fdd_cell;
557#endif
558
559#ifdef __UMTS_TDD128_MODE__
560typedef struct
561{
562 kal_uint16 uarfcn;
563 kal_uint16 cell_parameter;
564 kal_bool tstd;
565 kal_bool sctd;
566} ts_umts_tdd_cell;
567#endif
568
569typedef union
570{
571 ts_umts_fdd_cell fdd_cell;
572#ifdef __UMTS_TDD128_MODE__
573 ts_umts_tdd_cell tdd_cell;
574#endif
575} ts_umts_target_cell_union;
576
577typedef struct
578{
579 kal_bool is_best_cell_suitable_allowed_CSG;
580 kal_bool is_best_cell_allowed_hybrid;
581 ir_umts_carrier_csg_meas_result_struct ir_umts_carrier_csg_meas_result;
582} ts_3G_csg_ucell_evluation_result;
583
584typedef struct
585{
586 kal_bool bsic_present; /* if TRUE bsic is present */
587 kal_uint8 bsic; /* Optional, present if bsic_present is TRUE */
588 te_gsm_band_indicator gsm_band_indicator;
589 kal_uint16 bcch_arfcn;
590} GSM_TargetCellInfo;
591
592#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
593typedef struct
594{
595 kal_uint8 numElements;
596 GSM_TargetCellInfo target_gcell_info[MAX_TARGET_GSM_CELLS_NUM];
597} uas_gas_redirectInfo;
598#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
599
600typedef struct
601{
602 te_gsm_band_indicator gsm_band_indicator;
603 kal_uint8 *ARFCN_bitmap;
604} eas_gas_redirectInfo;
605
606#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
607typedef union
608{
609 uas_gas_redirectInfo uas_redirectInfo;
610 eas_gas_redirectInfo eas_redirectInfo;
611} redirect_info_union;
612#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
613
614#if (defined(__UMTS_R5__) && defined(__GERAN_R5__))
615typedef struct
616{
617 kal_uint8 numOctets;
618 kal_uint8 stringData[23]; /* Only the first numOctets elements are valid */
619} GERAN_SystemInfoBlock;
620
621typedef struct
622{
623 kal_uint8 numElements;
624 GERAN_SystemInfoBlock element[MAX_GSM_SYS_INFO_BLOCKS_NUM]; /* Only the first numElements are valid */
625} GERAN_SystemInformation;
626#endif
627
628#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
629typedef struct GSM_Redirect_Info
630{
631 te_ir_redirection_type redirection_type;
632 redirect_info_union redirection_info;
633} GSM_Redirect_Info;
634#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
635
636#if (defined(__UMTS_R5__) && defined(__GERAN_R5__)) // BJM
637typedef struct
638{
639 GERAN_SysInfoType sys_info_type;
640 GERAN_SystemInformation sys_info;
641} te_ir_geran_sys_info;
642
643typedef struct
644{
645 kal_uint8 bsic;
646 te_gsm_band_indicator gsm_band_indicator;
647 kal_uint16 bcch_arfcn;
648 te_ir_geran_sys_info gsm_sys_info;
649} GSM_TargetCell_SI_Info;
650#endif /* (defined(__UMTS_R5__) && defined(__GERAN_R5__)) */
651
652#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
653typedef union
654{
655 GSM_TargetCellInfo target_gcell_reselect_info;
656 GSM_Redirect_Info target_gcell_redirect_list;
657} GSM_TargetCell_Info_union;
658
659typedef struct
660{
661 kal_uint8 numElements;
662 GSM_TargetCell_SI_Info target_gcell_SI_info[MAX_TARGET_GSM_CELLS_NUM];
663} GSM_TargetCell_SI_Info_List;
664
665typedef union
666{
667 te_ir_geran_sys_info target_gcell_reselect_SI_info;
668 GSM_TargetCell_SI_Info_List target_gcell_redirect_SI_list;
669} GSM_TargetCell_SI_Info_union;
670#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
671
672typedef struct
673{
674 te_cn_domain_cipher_status cipher_status;
675 /* The following flag is only used when 2G -> 3G HO and ciphering is on.
676 * Normally, this flag should be set to KAL_FALSE. If GAS got a new
677 * ciphering key, but this hasn't been activated yet (GAS hasn't received
678 * CIPHER COMMAND), and then 2G -> 3G HO happens, 3G NW will use OLD key
679 * for the folllowing ciphering. Thus, at this case, GAS should set this
680 * flag to TRUE. RRCE will use OLD key instead of NEW key for ciphering.
681 * Please refer to 25.331 CR 2567
682 */
683 kal_bool is_new_cipher_key_received;
684} ts_ciphering_info;
685
686typedef struct
687{
688 kal_uint16 pci;
689 kal_int16 rsrp;
690 kal_int16 rsrq;
691} ecell_meas_result_struct;
692
693typedef struct
694{
695 EARFCN earfcn;
696 kal_bool is_best_cell_suitable_allowed_CSG;
697 kal_bool is_best_cell_allowed_hybrid;
698 ecell_meas_result_struct ecell_meas_result;
699} csg_freq_search_result_struct;
700
701// RAT change from 23G to 4G, NAS context transfer(MM->EMM)
702typedef struct
703{
704 // UAS -> EMM
705 kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
706
707 // MM -> EMM
708 kal_bool is_gmm_ready_connected;
709 tau_required_enum tau_required;
710 kal_uint8 cksn;
711 security_context_struct security_context;
712 kal_bool is_ptmsi_valid;
713 kal_uint8 ptmsi[PTMSI_LEN];
714 kal_bool is_ptmsi_sig_valid;
715 kal_uint8 ptmsi_sig[PTMSI_SIG_LEN];
716 kal_bool is_rai_valid;
717 rai_struct rai;
718 kal_bool is_lai_valid;
719 lai_struct lai;
720 kal_bool is_tmsi_valid;
721 kal_uint8 tmsi[TMSI_LEN];
722 gsm_update_status_enum mm_update_status;
723 kal_bool is_ecc_list_valid;
724 plmn_id_struct ecc_list_plmn;
725 gsm_state_enum gsm_attach_state;
726 kal_bool is_ps_suspended;
727 kal_bool is_prev_rau_suspended; // [2->4 only] To notify EMM whether there is a suspended/unfinished RAU
728#ifdef __NG_ECALL_SUPPORT__
729 kal_bool is_t3242_running;
730 kal_uint32 t3242_remaining_time;
731 kal_bool is_t3243_running;
732 kal_uint32 t3243_remaining_time;
733#endif
734} mm2emm_irat_info_struct;
735
736// RAT change from 4G to 23G, NAS context transfer(EMM->MM)
737typedef struct
738{
739 // ERRC -> RATCM (GAS/UAS?)
740 ho_from_lte_type_enum ir_ho_type;
741 kal_bool gsm_cipher_key_infoP;
742 kal_bool gsm_cipher_key128_infoP;
743 csfb_indicator_enum csfb_indicator;
744
745 // EMM -> RATCM
746 loopback_mode_status_enum loopback_mode_status;
747
748 // EMM to MM
749 kal_bool rau_required;
750 kal_uint8 nas_ksi;
751 security_context_struct security_context[2];
752 kal_bool is_mapped_ptmsi_valid;
753 kal_uint8 mapped_ptmsi[PTMSI_LEN];
754 kal_bool is_mapped_ptmsi_sig_valid;
755 kal_uint8 mapped_ptmsi_sig[PTMSI_SIG_LEN];
756 kal_bool is_mapped_rai_valid;
757 rai_struct mapped_rai;
758 mt_csfb_type_enum mt_csfb_type;
759 kal_bool is_ecc_list_valid;
760 plmn_id_struct ecc_list_plmn;
761 kal_bool is_eia0_used;
762 conn_rel_ind_cause_enum redir_cause;
763 kal_bool is_lte_rrc_conn_failure;
764#ifdef __NG_ECALL_SUPPORT__
765 kal_bool is_t3444_running;
766 kal_uint32 t3444_remaining_time;
767 kal_bool is_t3445_running;
768 kal_uint32 t3445_remaining_time;
769#endif
770} emm2mm_irat_info_struct;
771
772
773typedef struct
774{
775 // SM -> ESM
776 kal_bool sm_deactivate_isr;
777
778} sm2esm_irat_info_struct;
779
780typedef struct {
781 kal_uint8 total_number; // Total number of active EPS bearer on ESM
782 bearer_legacy_rat_para_struct parameters[MAX_TRANSFERRED_BEARER_NUM];
783}sm_esm_bearer_legacy_para_struct;
784
785typedef struct
786{
787 // ESM -> MM
788 kal_bool esm_deactivate_isr;
789
790 // ESM -> SM
791 kal_uint16 nsapi_status;
792
793 // ESM -> SM
794 sm_esm_bearer_legacy_para_struct bearer_legacy_para;
795
796} esm2sm_irat_info_struct;
797
798/* __4G_BACKGROUND_SEARCH__ begin*/
799typedef struct
800{
801 EARFCN earfcn;
802 kal_uint16 pci;
803 kal_int16 rsrp;
804 kal_int16 rsrq;
805 kal_int16 sinr;
806 kal_int16 rs_sinr;
807 kal_bool rsrq_on_all_symbols;
808 kal_bool rsrq_wideband;
809} eas_cell_info;
810
811/* 3G4 background search */
812typedef struct
813{
814 kal_uint16 uarfcn;
815 kal_uint16 pci;
816 kal_int16 rscp;
817/*FDD:in qdBm.Range:-480~-100 means (-120 ~-25)dBm in 0.25 dB Step.*/
818/*TDD:in qdBm.Range:-500~-100 means (-125 ~-25)dBm in 0.25 dB Step.*/
819//#ifdef __UMTS_FDD_MODE__
820 kal_int16 ec_n0; /*Ec/N0, in qdB. Range: -100~0 means -25~0 dB in 0.25 dB setp.*/
821//#endif //__UMTS_FDD_MODE__
822} uas_cell_info;
823
824
825/*2G4 background search */
826typedef struct
827{
828 kal_uint16 garfcn;
829 kal_uint16 bsic;
830 te_gsm_band_indicator gsm_band_ind;
831 kal_int32 rssi;
832} gas_cell_info;
833/* __4G_BACKGROUND_SEARCH__ end*/
834
835
836typedef struct {
837 kal_uint8 epsbearer_id;
838 kal_uint8 rb_index;
839}enasas_epsbearer_mapping_struct;
840
841#define ENASAS_MAX_DRB 11
842
843typedef struct {
844 kal_uint8 num_of_bearer;
845 enasas_epsbearer_mapping_struct bearer[ENASAS_MAX_DRB];
846}enasas_add_epsbearer_list_struct;
847
848/* TS 24.501, 9.11.2.9 S1 mode to N1 mode NAS transparent container, the size of the value part */
849#define ENASAS_MAX_SIZE_IRAT_4G5_NAS_CONTAINER (10)
850
851typedef struct
852{
853 kal_uint16 data_len;
854 kal_uint8 data[ENASAS_MAX_SIZE_IRAT_4G5_NAS_CONTAINER];
855} irat_nas_container_octet_string_struct, errc_nrrc_nas_container_octet_string_struct;
856
857#define NRRC_NAS_SECURITY_PARAM_FROM_NR_LENGTH (1)
858
859/* 5G4 */
860typedef struct {
861 kal_uint8 nas_security_param_from_nr[
862 NRRC_NAS_SECURITY_PARAM_FROM_NR_LENGTH];
863} irat_container_nrrc_to_vgmm_struct;
864
865typedef struct {
866 kal_bool is_kasme_valid; // is_kasme_valid shall be KAL_TRUE when in IRAT HO case
867 kal_uint8 kasme[KASME_NUM];
868} irat_container_emm_info_struct, irat_container_emm_to_errc_struct;
869
870/* 4G5 */
871typedef struct {
872 kal_bool is_nas_container_valid; // is_nas_container_valid and is_nh_valid will be KAL_TRUE when in IRAT HO case
873 irat_nas_container_octet_string_struct nas_container;
874 kal_bool is_nh_valid;
875 kal_uint8 NH[NH_NUM];
876} irat_container_errc_to_emm_struct;
877
878typedef struct {
879 nrrc_kamf_struct kamf;
880 kal_uint32 ul_nas_count;
881} irat_container_vgmm_to_nrrc_struct;
882
883
884#endif /* _IRAT_COMMON_STRUCT_H */