blob: f6675b883fd9db4557476a6bf356be03240e68df [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
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) 2005
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 *
38 * Filename:
39 * ---------
40 * SM2TCM_STRUCT.H
41 *
42 * Project:
43 * --------
44 * MAUI
45 *
46 * Description:
47 * ------------
48 * This file describes the common enums of TCM and SM.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 *
60 * removed!
61 * removed!
62 *
63 * removed!
64 * removed!
65 * removed!
66 *
67 * removed!
68 * removed!
69 * removed!
70 *
71 * removed!
72 * removed!
73 * removed!
74 * removed!
75 * removed!
76 *
77 * removed!
78 * removed!
79 * removed!
80 *
81 * removed!
82 * removed!
83 *
84 * removed!
85 * removed!
86 * removed!
87 *
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 *
118 * removed!
119 * removed!
120 * removed!
121 *
122 * removed!
123 * removed!
124 * removed!
125 *
126 * removed!
127 * removed!
128 * removed!
129 *
130 * removed!
131 * removed!
132 * removed!
133 *
134 * removed!
135 * removed!
136 * removed!
137 *
138 *------------------------------------------------------------------------------
139 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
140 *============================================================================
141 ****************************************************************************/
142
143/********************************************************************************
144* Copyright Statement:
145* --------------------
146*
147* This product has been developed using a protocol stack
148* developed by Sasken Communication Technologies Limited.
149*
150********************************************************************************/
151
152#ifndef _SM2TCM_STRUCT_H
153#define _SM2TCM_STRUCT_H
154
155#include "mmi_l3_enums.h"
156#include "mcd_l3_inc_gprs_struct.h"
157#include "ps_public_enum.h"
158#include "ps_public_struct.h"
159#include "kal_general_types.h"
160#include "kal_public_defs.h"
161#include "irat_common_struct.h"
162#include "sm_esm_struct.h"
163#include "l3_inc_local.h"
164#include "tftlib_common_struct.h"
165#include "mm2cm_struct.h"
166
167typedef struct {
168 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
169 qos_struct qos_negotiated; /* QoS negotiated with the NW*/
170 pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, Can be IPV4, IPV6, PPP, IPV4V6*/
171 kal_uint8 pdp_addr_len; /* Length of PDP Address Contents*/
172 // If the pdp_addr_type == IPV4, this field contains IPV4 address,
173 // If the pdp_addr_type == IPV6, this field contains IPV6 address,
174 // If the pdp_addr_type == IPV4v6, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3],
175 // IPV6 address in pdp_addr[4]~pdp_addr[19]
176 kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
177 kal_bool cause_2_present; // if network has cause_2 value in ACTIVATE_PDP_CONTEXT_ACCEPT
178 ps_cause_enum cause_2; // the previous PDP accept cause_2 value, ex: PDP_TYPE_IPV4_ONLY_ALLOWED,
179 // PDP_TYPE_IPV6_ONLY_ALLOWED, SINGLE_ADDR_BEARERS_ONLY_ALLOWED
180 kal_uint8 config_protocol;
181 kal_uint8 config_option_len; /* config option length*/
182 config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
183} smreg_pdp_activate_cnf_struct;
184
185typedef struct {
186 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
187 kal_bool is_rejected_by_nw; // if this PDP is rejected by NW using SM peer msg, KAL_TRUE, else, KAL_FALSE
188 ps_cause_enum cause; // Cause of rejection (also used for cause_2,
189 // if cause_2 violation, reject immediately without trying to send ACTIVATE_PDP_CONTEXT_REQUEST)
190 kal_uint8 config_protocol;
191 kal_uint8 config_option_len; /* config option length*/
192 config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
193 kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
194 kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
195 rat_enum current_rat; /* __MTC_SUPPORT__ */
196 kal_bool is_re_attempt_indicator_present; //R12 CR2171
197 kal_uint8 re_attempt_indicator; //R12 CR2171
198} smreg_pdp_activate_rej_struct;
199
200typedef struct {
201 LOCAL_PARA_HDR
202 pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, Can be IPV4, IPV6, PPP, IPV4V6*/
203 kal_uint8 pdp_addr_len; /* Length of PDP Address Contents*/
204 kal_uint8 token_id; /* NW Initiated Context Identifier*/
205 kal_uint8 apn_len; /* Length of Access Point Name Parameter*/
206 kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
207 // If the pdp_addr_type == IPV4, pdp_addr_len == 4, this field contains IPV4 address,
208 // If the pdp_addr_type == IPV6, pdp_addr_len == 16, this field contains IPV6 address,
209 // If the pdp_addr_type == IPV4v6,
210 // 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]
211 // pdp_addr_len == 4, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3]
212 // pdp_addr_len == 16, this field contains IPV6 address in pdp_addr[0]~pdp_addr[15]
213 kal_uint8 access_name[100];
214} smreg_pdp_activate_ind_struct;
215
216typedef struct {
217 //23.060 9.2.2.3 Network Requested Secondary PDP Context Activation Procedure using Gn
218 //The MS sends an Activate Secondary PDP Context Request:
219 //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
220 LOCAL_PARA_HDR
221 kal_uint8 token_id; /* NW Initiated Context Identifier*/
222 qos_struct qos_required; /* Mandatory IE, QoS IE in 24.008 Table 9.5.15a REQUEST SECONDARY PDP CONTEXT ACTIVATION */
223 kal_uint8 linked_nsapi; /* Mandatory IE, The nsapi value of the associated primary context*/
224 kal_bool tft_present;
225 tft_info_struct tft; /* Optional IE */
226 kal_uint8 config_protocol; /* Optional IE, TFT IE in 24.008 Table 9.5.15a REQUEST SECONDARY PDP CONTEXT ACTIVATION */
227 kal_uint8 config_option_len;
228 config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
229} smreg_pdp_activate_sec_ind_struct;
230
231
232typedef struct {
233 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
234 qos_struct qos_negotiated; /* QoS Negotaited with the NW*/
235 kal_uint8 config_protocol;
236 kal_uint8 config_option_len; /* config option length*/
237 config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
238} smreg_pdp_activate_sec_cnf_struct;
239
240typedef struct {
241 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
242 ps_cause_enum cause; /* Cause of rejection*/
243 kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
244 kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
245 rat_enum current_rat; /* __MTC_SUPPORT__ */
246 kal_bool is_re_attempt_indicator_present; //R12 CR2171
247 kal_uint8 re_attempt_indicator; //R12 CR2171
248} smreg_pdp_activate_sec_rej_struct;
249
250typedef struct {
251 LOCAL_PARA_HDR
252 ps_cause_enum cause[11]; // Cause of Deactivation, if deact_fail == KAL_TRUE, the cause == RAT_TCM_RETRY_NEEDED_AFTER_IRAT
253 kal_uint8 tot_valid_nsapi; /* Total number of nsapi that are valid in the nsapi_list*/
254 kal_uint8 nsapi_list[11];
255 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
256 kal_bool is_T3396_present[11]; /* __MTC_SUPPORT__ */
257 kal_uint32 T3396_value_in_sec[11]; /* __MTC_SUPPORT__ */
258 rat_enum current_rat; /* __MTC_SUPPORT__ */
259} smreg_pdp_deactivate_cnf_struct;
260
261typedef struct {
262 LOCAL_PARA_HDR
263 ps_cause_enum cause[11]; /* Cause of Deactivation*/
264 kal_uint8 tear_ind;
265 kal_uint8 tot_valid_nsapi; /* Total number of nsapi that are valid in the nsapi_list*/
266 kal_uint8 nsapi_list[11];
267 kal_bool is_T3396_present[11]; /* __MTC_SUPPORT__ */
268 kal_uint32 T3396_value_in_sec[11]; /* __MTC_SUPPORT__ */
269 rat_enum current_rat; /* __MTC_SUPPORT__ */
270} smreg_pdp_deactivate_ind_struct;
271
272typedef struct {
273 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
274 kal_bool qos_mod_neg_present; // this is an optional IE in MODIFY PDP CONTEXT ACCEPT (Network to MS direction)
275 qos_struct qos_mod_neg; /* The QoS negotiated with the NW after the modification*/
276 //context_mod_type_enum mod_type; /* Note: TCM should not store this into session_info_block_struct.mod_type. */
277 kal_bool tft_present; // if TCM send MOD_REQ with tft_present==TRUE, SM will send MOD_CNF with tft_present==TRUE
278 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
279 kal_uint8 config_protocol; // new, need to consider BCM mode
280 kal_uint8 config_option_len; /* config option length*/
281 config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
282} smreg_pdp_modify_cnf_struct;
283
284typedef struct {
285 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
286 ps_cause_enum cause; /* Cause of rejection*/
287 kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
288 kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
289 rat_enum current_rat; /* __MTC_SUPPORT__ */
290 kal_bool is_re_attempt_indicator_present; //R12 CR2171
291 kal_uint8 re_attempt_indicator; //R12 CR2171
292} smreg_pdp_modify_rej_struct;
293
294typedef struct {
295 NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
296 kal_bool qos_negotiated_present; // this is an mandatory IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
297 qos_struct qos_negotiated; // this is an mandatory IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
298 //context_mod_type_enum mod_type; /* Note: TCM should not store this into session_info_block_struct.mod_type. */
299 kal_bool pdp_addr_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
300 kal_uint8 pdp_addr_len; /* Length of PDP Address contents*/
301 kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
302 kal_bool tft_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
303 tft_info_struct tft; /* This field gives the TFT parameters*/
304 kal_uint8 config_protocol;
305 kal_uint8 config_option_len; /* config option length*/
306 config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
307} smreg_pdp_modify_ind_struct;
308
309typedef struct {
310 LOCAL_PARA_HDR
311 kal_uint8 no_of_nsapis;
312 kal_uint8 nsapi_list[11];
313} smreg_pdp_preserve_ind_struct;
314
315typedef struct {
316 LOCAL_PARA_HDR
317 kal_uint8 no_of_nsapis;
318 kal_uint8 nsapi_list[11];
319} smreg_pdp_reestablish_ind_struct;
320
321typedef struct {
322 LOCAL_PARA_HDR
323 irat_type_enum irat_type;
324 rat_type_enum source_rat;
325 rat_type_enum target_rat;
326 irat_result_enum irat_result;
327 //sm_esm_context_status_struct pdp_transfer_result;
328} smreg_rat_change_complete_ind_struct;
329
330
331/** Structure used to indicate dual priority config, used if __MTC_SUPPORT__. */
332typedef struct
333{
334 /** ILM specific header. */
335 LOCAL_PARA_HDR
336
337 /** used to indicate nas priority config, used if __MTC_SUPPORT__ */
338 nas_priority_config_enum nas_priority_config ;
339
340 /** used to indicate eab override, used if __MTC_SUPPORT__ */
341 eab_override_config_enum eab_override_config ;
342} smreg_dual_priority_config_req_struct;
343
344#endif
345
346