[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/irat_common_struct.h b/mcu/protocol/interface/general/irat_common_struct.h
new file mode 100644
index 0000000..f79a1fd
--- /dev/null
+++ b/mcu/protocol/interface/general/irat_common_struct.h
@@ -0,0 +1,884 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2007
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * irat_common_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ ****************************************************************************/
+
+#ifndef _IRAT_COMMON_STRUCT_H
+#define _IRAT_COMMON_STRUCT_H
+
+#include "kal_general_types.h"
+#include "mmi_l3_enums.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "ps_public_enum.h"
+#include "stack_config.h"
+#include "l3_inc_enums.h"
+#include "l3_inc_local.h"
+#include "irat_common_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "as_inter_core_struct.h"
+#include "global_type.h"
+#include "general_qos_struct.h"
+
+#define MAX_VAL(VAL_A, VAL_B) (((VAL_A) > (VAL_B)) ? (VAL_A):(VAL_B))
+
+#if defined(GPRS_MAX_PDP_SUPPORT) && defined(LTE_MAX_EPSB_SUPPORT)
+ #define MAX_TRANSFERRED_BEARER_NUM MAX_VAL(GPRS_MAX_PDP_SUPPORT, LTE_MAX_EPSB_SUPPORT)
+#elif defined(LTE_MAX_EPSB_SUPPORT)
+ #define MAX_TRANSFERRED_BEARER_NUM LTE_MAX_EPSB_SUPPORT // fail safe, this line has no meaning. just prevent compile error
+#else
+ #define MAX_TRANSFERRED_BEARER_NUM GPRS_MAX_PDP_SUPPORT // fail safe, this line has no meaning. just prevent compile error
+#endif
+
+//#define MAX_BEARER_CTXT_NUM MAX_TRANSFERRED_BEARER_NUM
+
+#define MAX_BEARER_CTXT_NUM 11
+#define MAX_BEARER_ID 16
+
+typedef struct {
+ kal_uint8 ti_len;
+ kal_uint8 ti[UGSM_TI_IE_LEN];
+}irat_ti_struct;
+
+typedef struct {
+ kal_bool cause_present;
+ ps_cause_enum cause_value;
+}irat_addr_type_limitation_cause_struct;
+
+typedef struct
+{
+ kal_uint8 qci;
+} simple_eps_qos_struct;
+
+typedef struct {
+ // if iRAT, source SM need to fill the following fields
+ irat_transfer_bearer_type_enum bearer_type;
+
+ // NSAPI / EBI (range is 5~15)
+ kal_uint8 bearer_id;
+
+ // NSAPI / EBI (range is 5~15)
+ kal_uint8 linked_bearer_id;
+
+
+ // secondary bearer set ip_addr_type = NULL_TYPE
+ ip_addr_struct ip_addr;
+
+ // secondary bearer doesn't need to set this field
+ apn_struct apn;
+
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ug_qos_present;
+ // negotiated qos parameter used in 23G
+ qos_struct ug_qos;
+
+ kal_bool is_eps_qos_present;
+ // When ESM transfer more than GPRS_MAX_PDP_SUPPORT contexts to SM,
+ // SM need to use eps_qos to decide which contexts need to be mapped failed and inform ESM to local release it.
+ eps_qos_struct eps_qos;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_llc_sapi_present;
+ kal_uint8 llc_sapi;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_radio_priority_present;
+ kal_uint8 radio_priority;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_pfi_present;
+ kal_uint8 pfi;
+
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ti_present;
+ irat_ti_struct ti;
+
+ irat_addr_type_limitation_cause_struct addr_type_limitation_cause;
+
+ bearer_service_type_enum bearer_service_type;
+
+ /* only used in 23G4 inter-RAT, when tcm_requested_deact==KAL_TRUE, this PDP must map fail, used to perform local deact */
+ kal_bool tcm_requested_deact;
+
+ //BCM and ETFT parameters to maintain sync between SM and ESM
+ bcm_enum bcm_info;
+ etft_enum etft_info;
+}bearer_ctxt_struct;
+
+
+typedef struct {
+ kal_uint8 total_number; // Total number of PDP context/EPS bearer which will transfer to target RAT
+ bearer_ctxt_struct context[MAX_TRANSFERRED_BEARER_NUM]; // bearer context which will transfer to target RAT
+}bearer_ctxt_transfer_struct;
+
+typedef struct {
+ // NSAPI / EBI (range is 5~15)
+ kal_uint8 bearer_id;
+
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ug_qos_present;
+ // negotiated qos parameter used in 23G
+ qos_struct ug_qos;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_llc_sapi_present;
+ kal_uint8 llc_sapi;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_radio_priority_present;
+ kal_uint8 radio_priority;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_pfi_present;
+ kal_uint8 pfi;
+
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ti_present;
+ irat_ti_struct ti;
+
+}bearer_legacy_rat_para_struct;
+
+
+typedef struct
+{
+ sec_ctxt_domain_id_enum domain_id;
+ kal_uint8 umts_ciphering_key[CK_LEN];
+ kal_uint8 umts_integrity_key[IK_LEN];
+ kal_uint8 gsm_ciphering_key[KC_LEN];
+ kal_uint8 gsm_ciphering_key128[KC128_LEN];
+}security_context_struct;
+
+
+/* Merged from GSM / UMTS Multimode development branch **********/
+/* Common structure */
+/* Measurement request/confirm related: GAS/UAS to EAS */
+
+typedef struct
+{
+ kal_uint16 physical_cell_id;
+ kal_int16 cpich_rscp;
+ kal_int16 cpich_ec_n0;
+} ir_reported_fdd_cells_csg_meas_info;
+
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_int16 uarfcn_rssi;
+ kal_uint8 num_reported_cells;
+ ir_reported_fdd_cells_csg_meas_info ir_reported_fdd_cells_csg_meas_info_list[MAX_NR_OF_CSG_CELLS_IN_CELL_LIST];
+} ir_umts_carrier_csg_meas_result_struct;
+
+typedef struct FDD_meas_UmtsCellList
+{
+ kal_uint8 numElements;
+
+ meas_UmtsCellListPerCarrier element[FDD_MAX_NUM_MEASURED_UMTS_CARRIERS];
+}
+FDD_meas_UmtsCellList;
+
+typedef struct TDD_meas_UmtsCellList
+{
+ kal_uint8 numElements;
+
+ meas_UmtsCellListPerCarrier element[TDD_MAX_NUM_MEASURED_UMTS_CARRIERS];
+}
+TDD_meas_UmtsCellList;
+
+typedef struct
+{
+ kal_bool is_valid;
+ EARFCN earfcn;
+ kal_uint16 pci;
+ kal_uint32 cell_id;
+ kal_bool sib2_hs_flg;
+ kal_bool el1_hst_md_flg;
+ kal_uint32 valid_duration;
+} ir_lte_scell_struct;
+
+/* This structure represents the redirection info from GSM or UMTS to LTE */
+typedef struct
+{
+ EARFCN earfcn;
+ kal_bool target_cell_valid_flag;
+ kal_uint16 target_cell;
+ kal_bool not_allowed_exist_flag;
+ /* It is a LTE PCI bit map (0-503), least significant bit of not_allowed_cells [0]
+ * represents PCI-0, and the most significant bit of not_allowed_cells [0]
+ * represents PCI-7.
+ * The cell IDs (PCI) of not allowed cells are set to "1" and the cell IDs
+ * (PCI) of those other than not allowed cells are set to "0".
+ */
+ kal_uint8 not_allowed_cell[PCI_BITMAP_MAX_NUM];
+} lte_redirect_info;
+#ifdef __UMTS_FDD_MODE__
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_uint16 scrambling_code;
+ kal_bool tx_diversity;
+} ts_umts_fdd_cell;
+#endif
+
+#ifdef __UMTS_TDD128_MODE__
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_uint16 cell_parameter;
+ kal_bool tstd;
+ kal_bool sctd;
+} ts_umts_tdd_cell;
+#endif
+
+typedef union
+{
+ ts_umts_fdd_cell fdd_cell;
+#ifdef __UMTS_TDD128_MODE__
+ ts_umts_tdd_cell tdd_cell;
+#endif
+} ts_umts_target_cell_union;
+
+typedef struct
+{
+ kal_bool is_best_cell_suitable_allowed_CSG;
+ kal_bool is_best_cell_allowed_hybrid;
+ ir_umts_carrier_csg_meas_result_struct ir_umts_carrier_csg_meas_result;
+} ts_3G_csg_ucell_evluation_result;
+
+typedef struct
+{
+ kal_bool bsic_present; /* if TRUE bsic is present */
+ kal_uint8 bsic; /* Optional, present if bsic_present is TRUE */
+ te_gsm_band_indicator gsm_band_indicator;
+ kal_uint16 bcch_arfcn;
+} GSM_TargetCellInfo;
+
+#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
+typedef struct
+{
+ kal_uint8 numElements;
+ GSM_TargetCellInfo target_gcell_info[MAX_TARGET_GSM_CELLS_NUM];
+} uas_gas_redirectInfo;
+#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
+
+typedef struct
+{
+ te_gsm_band_indicator gsm_band_indicator;
+ kal_uint8 *ARFCN_bitmap;
+} eas_gas_redirectInfo;
+
+#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
+typedef union
+{
+ uas_gas_redirectInfo uas_redirectInfo;
+ eas_gas_redirectInfo eas_redirectInfo;
+} redirect_info_union;
+#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
+
+#if (defined(__UMTS_R5__) && defined(__GERAN_R5__))
+typedef struct
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[23]; /* Only the first numOctets elements are valid */
+} GERAN_SystemInfoBlock;
+
+typedef struct
+{
+ kal_uint8 numElements;
+ GERAN_SystemInfoBlock element[MAX_GSM_SYS_INFO_BLOCKS_NUM]; /* Only the first numElements are valid */
+} GERAN_SystemInformation;
+#endif
+
+#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
+typedef struct GSM_Redirect_Info
+{
+ te_ir_redirection_type redirection_type;
+ redirect_info_union redirection_info;
+} GSM_Redirect_Info;
+#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
+
+#if (defined(__UMTS_R5__) && defined(__GERAN_R5__)) // BJM
+typedef struct
+{
+ GERAN_SysInfoType sys_info_type;
+ GERAN_SystemInformation sys_info;
+} te_ir_geran_sys_info;
+
+typedef struct
+{
+ kal_uint8 bsic;
+ te_gsm_band_indicator gsm_band_indicator;
+ kal_uint16 bcch_arfcn;
+ te_ir_geran_sys_info gsm_sys_info;
+} GSM_TargetCell_SI_Info;
+#endif /* (defined(__UMTS_R5__) && defined(__GERAN_R5__)) */
+
+#if defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) // BJM
+typedef union
+{
+ GSM_TargetCellInfo target_gcell_reselect_info;
+ GSM_Redirect_Info target_gcell_redirect_list;
+} GSM_TargetCell_Info_union;
+
+typedef struct
+{
+ kal_uint8 numElements;
+ GSM_TargetCell_SI_Info target_gcell_SI_info[MAX_TARGET_GSM_CELLS_NUM];
+} GSM_TargetCell_SI_Info_List;
+
+typedef union
+{
+ te_ir_geran_sys_info target_gcell_reselect_SI_info;
+ GSM_TargetCell_SI_Info_List target_gcell_redirect_SI_list;
+} GSM_TargetCell_SI_Info_union;
+#endif /* defined(__UMTS_FDD_MODE__) || defined(__UMTS_TDD128_MODE__) */
+
+typedef struct
+{
+ te_cn_domain_cipher_status cipher_status;
+ /* The following flag is only used when 2G -> 3G HO and ciphering is on.
+ * Normally, this flag should be set to KAL_FALSE. If GAS got a new
+ * ciphering key, but this hasn't been activated yet (GAS hasn't received
+ * CIPHER COMMAND), and then 2G -> 3G HO happens, 3G NW will use OLD key
+ * for the folllowing ciphering. Thus, at this case, GAS should set this
+ * flag to TRUE. RRCE will use OLD key instead of NEW key for ciphering.
+ * Please refer to 25.331 CR 2567
+ */
+ kal_bool is_new_cipher_key_received;
+} ts_ciphering_info;
+
+typedef struct
+{
+ kal_uint16 pci;
+ kal_int16 rsrp;
+ kal_int16 rsrq;
+} ecell_meas_result_struct;
+
+typedef struct
+{
+ EARFCN earfcn;
+ kal_bool is_best_cell_suitable_allowed_CSG;
+ kal_bool is_best_cell_allowed_hybrid;
+ ecell_meas_result_struct ecell_meas_result;
+} csg_freq_search_result_struct;
+
+// RAT change from 23G to 4G, NAS context transfer(MM->EMM)
+typedef struct
+{
+ // UAS -> EMM
+ kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
+
+ // MM -> EMM
+ kal_bool is_gmm_ready_connected;
+ tau_required_enum tau_required;
+ kal_uint8 cksn;
+ security_context_struct security_context;
+ kal_bool is_ptmsi_valid;
+ kal_uint8 ptmsi[PTMSI_LEN];
+ kal_bool is_ptmsi_sig_valid;
+ kal_uint8 ptmsi_sig[PTMSI_SIG_LEN];
+ kal_bool is_rai_valid;
+ rai_struct rai;
+ kal_bool is_lai_valid;
+ lai_struct lai;
+ kal_bool is_tmsi_valid;
+ kal_uint8 tmsi[TMSI_LEN];
+ gsm_update_status_enum mm_update_status;
+ kal_bool is_ecc_list_valid;
+ plmn_id_struct ecc_list_plmn;
+ gsm_state_enum gsm_attach_state;
+ kal_bool is_ps_suspended;
+ kal_bool is_prev_rau_suspended; // [2->4 only] To notify EMM whether there is a suspended/unfinished RAU
+#ifdef __NG_ECALL_SUPPORT__
+ kal_bool is_t3242_running;
+ kal_uint32 t3242_remaining_time;
+ kal_bool is_t3243_running;
+ kal_uint32 t3243_remaining_time;
+#endif
+} mm2emm_irat_info_struct;
+
+// RAT change from 4G to 23G, NAS context transfer(EMM->MM)
+typedef struct
+{
+ // ERRC -> RATCM (GAS/UAS?)
+ ho_from_lte_type_enum ir_ho_type;
+ kal_bool gsm_cipher_key_infoP;
+ kal_bool gsm_cipher_key128_infoP;
+ csfb_indicator_enum csfb_indicator;
+
+ // EMM -> RATCM
+ loopback_mode_status_enum loopback_mode_status;
+
+ // EMM to MM
+ kal_bool rau_required;
+ kal_uint8 nas_ksi;
+ security_context_struct security_context[2];
+ kal_bool is_mapped_ptmsi_valid;
+ kal_uint8 mapped_ptmsi[PTMSI_LEN];
+ kal_bool is_mapped_ptmsi_sig_valid;
+ kal_uint8 mapped_ptmsi_sig[PTMSI_SIG_LEN];
+ kal_bool is_mapped_rai_valid;
+ rai_struct mapped_rai;
+ mt_csfb_type_enum mt_csfb_type;
+ kal_bool is_ecc_list_valid;
+ plmn_id_struct ecc_list_plmn;
+ kal_bool is_eia0_used;
+ conn_rel_ind_cause_enum redir_cause;
+ kal_bool is_lte_rrc_conn_failure;
+#ifdef __NG_ECALL_SUPPORT__
+ kal_bool is_t3444_running;
+ kal_uint32 t3444_remaining_time;
+ kal_bool is_t3445_running;
+ kal_uint32 t3445_remaining_time;
+#endif
+} emm2mm_irat_info_struct;
+
+
+typedef struct
+{
+ // SM -> ESM
+ kal_bool sm_deactivate_isr;
+
+} sm2esm_irat_info_struct;
+
+typedef struct {
+ kal_uint8 total_number; // Total number of active EPS bearer on ESM
+ bearer_legacy_rat_para_struct parameters[MAX_TRANSFERRED_BEARER_NUM];
+}sm_esm_bearer_legacy_para_struct;
+
+typedef struct
+{
+ // ESM -> MM
+ kal_bool esm_deactivate_isr;
+
+ // ESM -> SM
+ kal_uint16 nsapi_status;
+
+ // ESM -> SM
+ sm_esm_bearer_legacy_para_struct bearer_legacy_para;
+
+} esm2sm_irat_info_struct;
+
+/* __4G_BACKGROUND_SEARCH__ begin*/
+typedef struct
+{
+ EARFCN earfcn;
+ kal_uint16 pci;
+ kal_int16 rsrp;
+ kal_int16 rsrq;
+ kal_int16 sinr;
+ kal_int16 rs_sinr;
+ kal_bool rsrq_on_all_symbols;
+ kal_bool rsrq_wideband;
+} eas_cell_info;
+
+/* 3G4 background search */
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_uint16 pci;
+ kal_int16 rscp;
+/*FDD:in qdBm.Range:-480~-100 means (-120 ~-25)dBm in 0.25 dB Step.*/
+/*TDD:in qdBm.Range:-500~-100 means (-125 ~-25)dBm in 0.25 dB Step.*/
+//#ifdef __UMTS_FDD_MODE__
+ kal_int16 ec_n0; /*Ec/N0, in qdB. Range: -100~0 means -25~0 dB in 0.25 dB setp.*/
+//#endif //__UMTS_FDD_MODE__
+} uas_cell_info;
+
+
+/*2G4 background search */
+typedef struct
+{
+ kal_uint16 garfcn;
+ kal_uint16 bsic;
+ te_gsm_band_indicator gsm_band_ind;
+ kal_int32 rssi;
+} gas_cell_info;
+/* __4G_BACKGROUND_SEARCH__ end*/
+
+
+typedef struct {
+ kal_uint8 epsbearer_id;
+ kal_uint8 rb_index;
+}enasas_epsbearer_mapping_struct;
+
+#define ENASAS_MAX_DRB 11
+
+typedef struct {
+ kal_uint8 num_of_bearer;
+ enasas_epsbearer_mapping_struct bearer[ENASAS_MAX_DRB];
+}enasas_add_epsbearer_list_struct;
+
+/* TS 24.501, 9.11.2.9 S1 mode to N1 mode NAS transparent container, the size of the value part */
+#define ENASAS_MAX_SIZE_IRAT_4G5_NAS_CONTAINER (10)
+
+typedef struct
+{
+ kal_uint16 data_len;
+ kal_uint8 data[ENASAS_MAX_SIZE_IRAT_4G5_NAS_CONTAINER];
+} irat_nas_container_octet_string_struct, errc_nrrc_nas_container_octet_string_struct;
+
+#define NRRC_NAS_SECURITY_PARAM_FROM_NR_LENGTH (1)
+
+/* 5G4 */
+typedef struct {
+ kal_uint8 nas_security_param_from_nr[
+ NRRC_NAS_SECURITY_PARAM_FROM_NR_LENGTH];
+} irat_container_nrrc_to_vgmm_struct;
+
+typedef struct {
+ kal_bool is_kasme_valid; // is_kasme_valid shall be KAL_TRUE when in IRAT HO case
+ kal_uint8 kasme[KASME_NUM];
+} irat_container_emm_info_struct, irat_container_emm_to_errc_struct;
+
+/* 4G5 */
+typedef struct {
+ kal_bool is_nas_container_valid; // is_nas_container_valid and is_nh_valid will be KAL_TRUE when in IRAT HO case
+ irat_nas_container_octet_string_struct nas_container;
+ kal_bool is_nh_valid;
+ kal_uint8 NH[NH_NUM];
+} irat_container_errc_to_emm_struct;
+
+typedef struct {
+ nrrc_kamf_struct kamf;
+ kal_uint32 ul_nas_count;
+} irat_container_vgmm_to_nrrc_struct;
+
+
+#endif /* _IRAT_COMMON_STRUCT_H */