blob: 9896f79e70e04637277c2620d79d6bd3bed3eb1f [file] [log] [blame]
/*****************************************************************************
* 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 ----- */