blob: f6675b883fd9db4557476a6bf356be03240e68df [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) 2005
*
* 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:
* ---------
* SM2TCM_STRUCT.H
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* This file describes the common enums of TCM and SM.
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* 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!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
/********************************************************************************
* Copyright Statement:
* --------------------
*
* This product has been developed using a protocol stack
* developed by Sasken Communication Technologies Limited.
*
********************************************************************************/
#ifndef _SM2TCM_STRUCT_H
#define _SM2TCM_STRUCT_H
#include "mmi_l3_enums.h"
#include "mcd_l3_inc_gprs_struct.h"
#include "ps_public_enum.h"
#include "ps_public_struct.h"
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "irat_common_struct.h"
#include "sm_esm_struct.h"
#include "l3_inc_local.h"
#include "tftlib_common_struct.h"
#include "mm2cm_struct.h"
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
qos_struct qos_negotiated; /* QoS negotiated with the NW*/
pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, Can be IPV4, IPV6, PPP, IPV4V6*/
kal_uint8 pdp_addr_len; /* Length of PDP Address Contents*/
// If the pdp_addr_type == IPV4, this field contains IPV4 address,
// If the pdp_addr_type == IPV6, this field contains IPV6 address,
// If the pdp_addr_type == IPV4v6, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3],
// IPV6 address in pdp_addr[4]~pdp_addr[19]
kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
kal_bool cause_2_present; // if network has cause_2 value in ACTIVATE_PDP_CONTEXT_ACCEPT
ps_cause_enum cause_2; // the previous PDP accept cause_2 value, ex: PDP_TYPE_IPV4_ONLY_ALLOWED,
// PDP_TYPE_IPV6_ONLY_ALLOWED, SINGLE_ADDR_BEARERS_ONLY_ALLOWED
kal_uint8 config_protocol;
kal_uint8 config_option_len; /* config option length*/
config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
} smreg_pdp_activate_cnf_struct;
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
kal_bool is_rejected_by_nw; // if this PDP is rejected by NW using SM peer msg, KAL_TRUE, else, KAL_FALSE
ps_cause_enum cause; // Cause of rejection (also used for cause_2,
// if cause_2 violation, reject immediately without trying to send ACTIVATE_PDP_CONTEXT_REQUEST)
kal_uint8 config_protocol;
kal_uint8 config_option_len; /* config option length*/
config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
rat_enum current_rat; /* __MTC_SUPPORT__ */
kal_bool is_re_attempt_indicator_present; //R12 CR2171
kal_uint8 re_attempt_indicator; //R12 CR2171
} smreg_pdp_activate_rej_struct;
typedef struct {
LOCAL_PARA_HDR
pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, Can be IPV4, IPV6, PPP, IPV4V6*/
kal_uint8 pdp_addr_len; /* Length of PDP Address Contents*/
kal_uint8 token_id; /* NW Initiated Context Identifier*/
kal_uint8 apn_len; /* Length of Access Point Name Parameter*/
kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
// If the pdp_addr_type == IPV4, pdp_addr_len == 4, this field contains IPV4 address,
// If the pdp_addr_type == IPV6, pdp_addr_len == 16, this field contains IPV6 address,
// If the pdp_addr_type == IPV4v6,
// pdp_addr_len == 20, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3], IPV6 address in pdp_addr[4]~pdp_addr[19]
// pdp_addr_len == 4, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3]
// pdp_addr_len == 16, this field contains IPV6 address in pdp_addr[0]~pdp_addr[15]
kal_uint8 access_name[100];
} smreg_pdp_activate_ind_struct;
typedef struct {
//23.060 9.2.2.3 Network Requested Secondary PDP Context Activation Procedure using Gn
//The MS sends an Activate Secondary PDP Context Request:
//The Linked TI, TI, QoS Requested, and Protocol Configuration Options sent in the Activate secondary PDP Context Request shall be the same as previously received
LOCAL_PARA_HDR
kal_uint8 token_id; /* NW Initiated Context Identifier*/
qos_struct qos_required; /* Mandatory IE, QoS IE in 24.008 Table 9.5.15a REQUEST SECONDARY PDP CONTEXT ACTIVATION */
kal_uint8 linked_nsapi; /* Mandatory IE, The nsapi value of the associated primary context*/
kal_bool tft_present;
tft_info_struct tft; /* Optional IE */
kal_uint8 config_protocol; /* Optional IE, TFT IE in 24.008 Table 9.5.15a REQUEST SECONDARY PDP CONTEXT ACTIVATION */
kal_uint8 config_option_len;
config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
} smreg_pdp_activate_sec_ind_struct;
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
qos_struct qos_negotiated; /* QoS Negotaited with the NW*/
kal_uint8 config_protocol;
kal_uint8 config_option_len; /* config option length*/
config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
} smreg_pdp_activate_sec_cnf_struct;
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
ps_cause_enum cause; /* Cause of rejection*/
kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
rat_enum current_rat; /* __MTC_SUPPORT__ */
kal_bool is_re_attempt_indicator_present; //R12 CR2171
kal_uint8 re_attempt_indicator; //R12 CR2171
} smreg_pdp_activate_sec_rej_struct;
typedef struct {
LOCAL_PARA_HDR
ps_cause_enum cause[11]; // Cause of Deactivation, if deact_fail == KAL_TRUE, the cause == RAT_TCM_RETRY_NEEDED_AFTER_IRAT
kal_uint8 tot_valid_nsapi; /* Total number of nsapi that are valid in the nsapi_list*/
kal_uint8 nsapi_list[11];
kal_bool deact_fail; // most scenario, deact_fail == KAL_FALSE. but when iRAT success and there is pending deact_req, then the deact_fail == TRUE
kal_bool is_T3396_present[11]; /* __MTC_SUPPORT__ */
kal_uint32 T3396_value_in_sec[11]; /* __MTC_SUPPORT__ */
rat_enum current_rat; /* __MTC_SUPPORT__ */
} smreg_pdp_deactivate_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
ps_cause_enum cause[11]; /* Cause of Deactivation*/
kal_uint8 tear_ind;
kal_uint8 tot_valid_nsapi; /* Total number of nsapi that are valid in the nsapi_list*/
kal_uint8 nsapi_list[11];
kal_bool is_T3396_present[11]; /* __MTC_SUPPORT__ */
kal_uint32 T3396_value_in_sec[11]; /* __MTC_SUPPORT__ */
rat_enum current_rat; /* __MTC_SUPPORT__ */
} smreg_pdp_deactivate_ind_struct;
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
kal_bool qos_mod_neg_present; // this is an optional IE in MODIFY PDP CONTEXT ACCEPT (Network to MS direction)
qos_struct qos_mod_neg; /* The QoS negotiated with the NW after the modification*/
//context_mod_type_enum mod_type; /* Note: TCM should not store this into session_info_block_struct.mod_type. */
kal_bool tft_present; // if TCM send MOD_REQ with tft_present==TRUE, SM will send MOD_CNF with tft_present==TRUE
kal_bool qos_min_present; // if TCM send MOD_REQ with qos_min_present==TRUE, SM will send MOD_CNF with qos_min_present==TRUE
kal_uint8 config_protocol; // new, need to consider BCM mode
kal_uint8 config_option_len; /* config option length*/
config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
} smreg_pdp_modify_cnf_struct;
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
ps_cause_enum cause; /* Cause of rejection*/
kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
rat_enum current_rat; /* __MTC_SUPPORT__ */
kal_bool is_re_attempt_indicator_present; //R12 CR2171
kal_uint8 re_attempt_indicator; //R12 CR2171
} smreg_pdp_modify_rej_struct;
typedef struct {
NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
kal_bool qos_negotiated_present; // this is an mandatory IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
qos_struct qos_negotiated; // this is an mandatory IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
//context_mod_type_enum mod_type; /* Note: TCM should not store this into session_info_block_struct.mod_type. */
kal_bool pdp_addr_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
kal_uint8 pdp_addr_len; /* Length of PDP Address contents*/
kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
kal_bool tft_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
tft_info_struct tft; /* This field gives the TFT parameters*/
kal_uint8 config_protocol;
kal_uint8 config_option_len; /* config option length*/
config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
} smreg_pdp_modify_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 no_of_nsapis;
kal_uint8 nsapi_list[11];
} smreg_pdp_preserve_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 no_of_nsapis;
kal_uint8 nsapi_list[11];
} smreg_pdp_reestablish_ind_struct;
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;
//sm_esm_context_status_struct pdp_transfer_result;
} smreg_rat_change_complete_ind_struct;
/** Structure used to indicate dual priority config, used if __MTC_SUPPORT__. */
typedef struct
{
/** ILM specific header. */
LOCAL_PARA_HDR
/** used to indicate nas priority config, used if __MTC_SUPPORT__ */
nas_priority_config_enum nas_priority_config ;
/** used to indicate eab override, used if __MTC_SUPPORT__ */
eab_override_config_enum eab_override_config ;
} smreg_dual_priority_config_req_struct;
#endif