[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/lte/tcm_eval_struct.h b/mcu/protocol/interface/lte/tcm_eval_struct.h
new file mode 100644
index 0000000..9896f79
--- /dev/null
+++ b/mcu/protocol/interface/lte/tcm_eval_struct.h
@@ -0,0 +1,552 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * tcm_eval_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * message and common structure definition between TCM and EVAL module
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 07 25 2019 poying.chuang
+ * [MOLY00423200] [VMOLY] L4 PS Gen93/Gen95 CR sync to Gen97
+ *
+ * - [MPD] L4 code .
+ *
+ * 06 27 2019 mike.lu
+ * [MOLY00399993] [Gen97][VMOLY] interworking withN26 features
+ *
+ * [5G iRAT potential bug fix]
+ * 1. Do not update APN-AMBR if NW doesn't assign it.
+ * 2. Remove un-used WLAN Offload Ind. from interface of updating EPSBCs after 5G4.
+ * 3. Fix Coding Defect: when 5G4, ESM updates wrong R99 QoS Value to TCM.
+ * .
+ *
+ * 04 19 2019 mike.lu
+ * [MOLY00399993] [Gen97][VMOLY] interworking withN26 features (non-ESM folder)
+ *
+ * 03 26 2019 mike.lu
+ * [MOLY00393456] [Gen97][VMOLY] 45G InterRAT & interSystem feature
+ *
+ * .
+ *
+ * 11 29 2018 mike.lu
+ * [MOLY00361576] TS24.301 R15.4 Aligment
+ * .
+ *
+ * 10 29 2018 mike.lu
+ * [MOLY00361576] TS24.301 R15.4 Aligment
+ *
+ * [MOLY00346729] VMOLY_CBr patch back to VMOLY TRUNK
+ *
+ * .
+ *
+ * 02 06 2017 parthasarathy.nagarajan
+ * [MOLY00227856] [6293][MTBF][TMOUS ePDG->LTE IMS handover] Response Time Guaranteed PDN Command
+ * Guaranteed PDN response time, Interface changes
+ *
+ * 11 09 2016 danny.kuo
+ * [MOLY00184907] [MOLY00142123][call for patch][KOR MNO][EMM][LGU+]attach reject handling if OTA PDN
+ * .
+ *
+ * 09 26 2016 vera.yeh
+ * [MOLY00205116] [6293][ESM][TFTLIB] new feature/re-arch item porting to UMOLYA trunk
+ * [ESM][OA] PS.DEV proting to UMOLYA.Trunk.
+ * 1. wlan offload IEI/interface/enum/structure
+ * 2. iLM rename for GEMINI_suspend/resume
+ * 3. LTE QCI default value
+ *
+ * 06 27 2016 sj.syue
+ * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA
+ * [PAM] Common.
+ *
+ * 03 16 2016 mika.kaikkonen
+ * [MOLY00145562] [R12] CR2088 UE retry behavior for ESM cause codes - SM-ESM-EVAL interface
+ *
+ * 08 31 2015 bo-kai.huang
+ * [MOLY00109918] [eTCM] Interface change for IMS PDP flag
+ * Merge for ATT.
+ *
+ * 08 31 2015 bo-kai.huang
+ * [MOLY00109918] [eTCM] Interface change for IMS PDP flag
+ * Merge for ATT.
+ *
+ * 06 18 2015 panu.peisa
+ * [MOLY00122487] EMM, ESM & PAM module VzW feature porting from 6290 to 6291
+ * SWRD part, change have dependency to LTE_SEC parts.
+ *
+ * 06 16 2015 mika.kaikkonen
+ * [VZ_REQ_LTEDATARETRY_7735] PAM Spesific parts configuration changes.
+ *
+ * 06 13 2015 mika.kaikkonen
+ * [VZ_REQ_LTEDATARETRY_7785] Preparation: VzW specifc utility functions and interface updates
+ *
+ * 02 13 2015 carlson.lin
+ * [MOLY00091822] RATDM reorganization
+ * RATDM merge LTM, SM and ESM related interface checkin
+ *
+ * 11 24 2014 carlson.lin
+ * [MOLY00084165] [UMOLY][R10][R11] NAS check-in from 6291_DEV to UMOLY Trunk
+ * sync interface comment (MTC_CBr CL 877656 and 881743).
+ *
+ * 11 17 2014 jeffery.chen
+ * [MOLY00084634] [UMOLY][R10][R11] NAS check-in from 6291_DEV to UMOLY
+ * [R10][R11] NAS check-in from 6291_DEV to UMOLY
+ *
+ * 03 06 2014 nick.wang
+ * [MOLY00058412] [MOLY] TFT validate revision
+ * ESM trigger bearer deactivate
+ *
+ * 01 21 2014 wcpuser_integrator
+ * [MOLY00054475] SGLTE option rename
+ * .
+ *
+ * 10 18 2013 xiaona.chen
+ * [MOLY00041595] [MT6290E1][MMDS_DC] MMDC feature patch back to MOLY trunk
+ * .
+ *
+ * 01 22 2013 roy.lin
+ * [MOLY00009163] LTE Multimode merge back to MOLY
+ * Multimode interface re-architecture.
+ *
+ * 11 06 2012 yu.huang
+ * [MOLY00005322] TATAKA merge to MOLY
+ * [EVAL] Add EVAL related interfaces and common strust
+ ****************************************************************************/
+
+
+#ifndef _TCM_EVAL_STRUCT_INC
+#define _TCM_EVAL_STRUCT_INC
+
+
+#include "tcm_eval_enums.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "tcm2sm_struct.h"
+#include "tftlib_common_struct.h"
+#include "tcm_context_public.h"
+
+/* Multimode */
+#include "irat_common_struct.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "l3_inc_enums.h"
+
+#include "mcd_l3_inc_struct.h"
+
+#include "general_qos_struct.h"
+
+#define MAX_CONCATE_DEDEBC_NUM 10
+//#define MAX_BEARER_CTXT_NUM 11
+
+
+/***** common structure definition *****/
+typedef struct
+{
+ kal_uint8 length; // TODO: Roy: rename to "protocol_id_num"
+ config_option_struct pco_list[MAX_NUM_CONFIG_OPTION_PACKETS];
+} tcmesm_pco_struct;
+
+//__WLAN_OL__
+typedef struct
+{
+ kal_bool valid;
+ wlan_offload_ind_enum value;
+} wlan_offload_ind_struct;
+
+
+typedef struct
+{
+ kal_bool ext_present;
+ kal_bool ext2_present;
+ kal_uint8 dl_apn_ambr;
+ kal_uint8 dl_apn_ambr_ext;
+ kal_uint8 dl_apn_ambr_ext2;
+ kal_uint8 ul_apn_ambr;
+ kal_uint8 ul_apn_ambr_ext;
+ kal_uint8 ul_apn_ambr_ext2;
+
+ // __R15.4__
+ kal_bool is_use_ext_apn_ambr_for_dl;
+ kal_bool is_use_ext_apn_ambr_for_ul;
+ kal_uint64 ext_apn_ambr_for_dl;
+ kal_uint64 ext_apn_ambr_for_ul;
+
+} eps_apn_ambr_struct;
+
+
+typedef struct
+{
+ kal_uint8 ebi;
+ tcmesm_epsb_act_enum epsb_action;
+ bcm_enum bcm_info;
+ kal_bool eps_qos_present;
+ eps_qos_struct eps_qos;
+ kal_bool r99_qos_present;
+ qos_struct r99_qos;
+ kal_bool apn_ambr_present;
+ eps_apn_ambr_struct apn_ambr;
+ kal_bool tft_present;
+ tft_info_struct *tft;
+ tcmesm_pco_struct *pco;
+ wlan_offload_ind_struct wlan_offload_ind; //__WLAN_OL__
+} tcmesm_updated_epsb_info_struct;
+
+typedef struct
+{
+ kal_uint8 from_psi;
+ kal_uint8 to_ebi;
+ kal_uint8 linked_ebi;
+ kal_bool eps_qos_present;
+ eps_qos_struct eps_qos;
+ kal_bool r99_qos_present;
+ qos_struct r99_qos;
+ kal_bool apn_ambr_present;
+ eps_apn_ambr_struct apn_ambr;
+} tcm_esm_5g4_context_transfer_epsb_info_struct;
+
+/***** message structure definition *****/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 cid;
+ tcmesm_req_reason_enum req_reason;
+ eps_req_type_enum req_type;
+ eps_pdn_type_enum pdn_type;
+ kal_bool pco_cipher_needed;
+ apn_struct apn;
+ tcmesm_pco_struct *pco;
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+ tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
+ kal_bool is_vzw_apn; // For ESM handling PCO
+ req_processing_info_struct req_processing_info;
+ kal_bool is_ota_pdn;
+ kal_uint8 psi;
+} esmreg_pdn_conn_est_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 linked_ebi;
+ kal_uint8 cid;
+ eps_qos_struct eps_qos;
+ tft_info_struct *tft;
+ tcmesm_pco_struct *pco;
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+ tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
+ req_processing_info_struct req_processing_info;
+} esmreg_bearer_rsc_alloc_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 ebi;
+ kal_bool eps_qos_present;
+ eps_qos_struct eps_qos;
+ tft_info_struct *tft;
+ tcmesm_pco_struct *pco;
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+ req_processing_info_struct req_processing_info;
+} esmreg_bearer_rsc_mod_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 ebi;
+ kal_uint8 cid;
+ tcmesm_req_reason_enum req_reason;
+ tcm_pdp_deact_reason_enum deact_reason;
+ tft_info_struct *tft;
+ tcmesm_pco_struct *pco;
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+ // __VZW__ __VZW_7__
+ /* Notify ESM to tell EMM to start T3402 for VZW class 3 APN */
+ kal_bool start_t3402_for_class3;
+
+ /* Indicate if "plmn_id_upon_pdn_est" exists */
+ kal_bool is_plmn_id_exist; // VzW: Support ESM trigger detach with T3402
+
+ /* For the case which needs to start T3402 due to last PDN deactivation,
+ * T3402 should be started with respect to the PDN's PLMN ID upon establishment.
+ * (NOTE: Current PLMN ID is not accurate, since it might be changed from time to time)
+ */
+ plmn_id_struct plmn_id_upon_pdn_est; // VzW: Support ESM trigger detach with T3402
+
+ req_processing_info_struct req_processing_info;
+} esmreg_epsb_deact_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 seq_id;
+
+} esmreg_pdn_conn_est_rsp_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 seq_id;
+
+} esmreg_pdn_conn_update_rsp_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ ps_cause_enum failure_cause;
+ tcmesm_pco_struct *pco;
+ kal_bool is_T3396_present; // R12 CR2088: Back-off timer value present
+ kal_uint32 T3396_value_in_sec; // R12 CR2088: Back-off timer value in sec
+ kal_bool is_re_attempt_indicator_present; //R12 CR2088
+ kal_uint8 re_attempt_indicator; //R12 CR 2088
+
+ /** Indicates the below current_plmn_id should be used or not.
+ * - TRUE, if PDN-CONN-REQ is sent with ATTACH-request procedure,
+ * the ATTACH is rejected by the Network, and the EMM use
+ * the ESM_EMM_GET_ESM_CAUSE_IND to carry PDN_CONNECTIVITY_REJECT
+ * to ESM
+ * - FALSE, other cases (ex: ESM local reject PDN-CONN-REQ for ATTACH because
+ * APN is this_is_an_invalid_apn,
+ * or standalone PDN activation reject, ... etc)
+ * - The current-plmn-id would be updated by
+ * nwsel_pam_eq_plmn_list_update_ind_struct .
+ */
+ kal_bool is_valid_current_plmn_id ;
+
+ /** Originally sent by EMM to indicate the current-plmn-id for the ATTACH-reject.
+ * - For 4G attach-reject case, there is no eq-plmn so only
+ * current-plmn-id is needed for PAM's arbitration .
+ */
+ plmn_id_struct current_plmn_id ;
+
+ // Indicate whether to additionally wait for available_apn_info
+ kal_bool wait_available_apn_info; // __VZW__ __VZW_2__
+ kal_bool is_change_to_apn_class_valid; //__VZW__
+ kal_uint8 change_to_apn_class; //__VZW__
+} esmreg_pdn_conn_est_rej_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ ps_cause_enum failure_cause;
+ tcmesm_pco_struct *pco;
+ kal_bool is_T3396_present; // R12 CR2088: Back-off timer value present
+ kal_uint32 T3396_value_in_sec; // R12 CR2088: Back-off timer value in sec
+ kal_bool is_re_attempt_indicator_present; //R12 CR2088
+ kal_uint8 re_attempt_indicator; //R12 CR2088
+ // __R10_FEATURE_MTC__ __VZW__
+ // Indicates the below current_plmn_id should be used or not.
+ kal_bool is_valid_current_plmn_id;
+ // current_plmn_id for bearer rsc allocation reject
+ plmn_id_struct current_plmn_id;
+} esmreg_bearer_rsc_alloc_rej_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ ps_cause_enum failure_cause;
+ tcmesm_pco_struct *pco;
+ kal_bool is_T3396_present; // R12 CR2088: Back-off timer value present
+ kal_uint32 T3396_value_in_sec; // R12 CR2088: Back-off timer value in sec
+ kal_bool is_re_attempt_indicator_present; //R12 CR2088
+ kal_uint8 re_attempt_indicator; //R12 CR2088
+ // __R10_FEATURE_MTC__ __VZW__
+ // Indicates the below current_plmn_id should be used or not.
+ kal_bool is_valid_current_plmn_id;
+ // current_plmn_id for bearer rsc modification reject
+ plmn_id_struct current_plmn_id;
+} esmreg_bearer_rsc_mod_rej_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ ps_cause_enum failure_cause;
+ tcmesm_pco_struct *pco;
+
+} esmreg_epsb_deact_rej_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 linked_ebi;
+ kal_uint16 seq_id;
+ apn_struct apn;
+ ip_addr_struct ip_addr;
+ kal_bool r99_qos_present;
+ qos_struct r99_qos;
+ eps_qos_struct eps_qos;
+ kal_bool apn_ambr_present;
+ eps_apn_ambr_struct apn_ambr;
+ kal_bool addr_type_limit_cause_present;
+ ps_cause_enum addr_type_limit_cause;
+ tcmesm_pco_struct *pco;
+ kal_uint8 act_ded_epsb_num;
+ tcmesm_updated_epsb_info_struct act_ded_epsb_info[MAX_CONCATE_DEDEBC_NUM];
+ bcm_enum bcm_info;
+ // __R10_FEATURE_MTC__ __VZW__
+ /* Indicates the below pdn_est_plmn_id should be used or not. */
+ kal_bool is_valid_pdn_est_plmn_id;
+ /* The PLMN ID where PDN is established */
+ plmn_id_struct pdn_est_plmn_id;
+ wlan_offload_ind_struct wlan_offload_ind; // __WLAN_OL__
+ kal_bool arrearage_flag;
+} esmreg_pdn_conn_est_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 linked_ebi;
+ kal_uint16 seq_id;
+ tcmesm_proc_result_enum proc_result;
+ tcmesm_updated_epsb_info_struct nw_res_epsb_info;
+ kal_uint8 nw_req_epsb_num;
+ tcmesm_updated_epsb_info_struct nw_req_epsb_info[MAX_BEARER_CTXT_NUM];
+ // __R10_FEATURE_MTC__ __VZW__
+ // Indicates the below pdn_update_plmn_id should be used or not.
+ kal_bool is_valid_pdn_update_plmn_id;
+ // The PLMN ID where PDN is updated
+ plmn_id_struct pdn_update_plmn_id;
+} esmreg_pdn_conn_update_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pti;
+ kal_uint8 ebi;
+ ps_cause_enum deact_cause;
+ tcmesm_pco_struct *pco;
+ kal_bool is_T3396_present;
+ kal_uint32 T3396_value_in_sec;
+ // __R10_FEATURE_MTC__ __VZW__
+ // Indicates the below deact_plmn_id should be used or not.
+ kal_bool is_valid_deact_plmn_id;
+ // The PLMN ID where bearer is deactivated
+ plmn_id_struct deact_plmn_id;
+ wlan_offload_ind_struct wlan_offload_ind; // __WLAN_OL__
+} esmreg_epsb_deact_ind_struct;
+
+
+/***** interRAT message structure *****/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+
+} esmreg_rat_change_complete_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 ebi;
+ tcm_pdp_deact_reason_enum deact_reason;
+} esmreg_ps_init_bearer_deact_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+} esmreg_dual_priority_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 num_of_epsb_info;
+ tcm_esm_5g4_context_transfer_epsb_info_struct epsb_info[MAX_L4_PS_EBI_NUM];
+} esmreg_5g4_context_transfer_ind_struct;
+
+typedef ia_apn_change_req_struct pam_esm_ia_apn_change_req_struct;
+
+#if 0 /*(!defined(__EVAL_ENABLE__)) && (!defined(__ESM_ENABLE__))*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif /* no __EVAL_ENABLE__ */
+
+#endif /* ----- #ifndef _TCM_EVAL_STRUCT_INC ----- */
+