blob: 9896f79e70e04637277c2620d79d6bd3bed3eb1f [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
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) 2012
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 * Filename:
38 * ---------
39 * tcm_eval_struct.h
40 *
41 * Project:
42 * --------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 * message and common structure definition between TCM and EVAL module
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * $Log$
55 *
56 * 07 25 2019 poying.chuang
57 * [MOLY00423200] [VMOLY] L4 PS Gen93/Gen95 CR sync to Gen97
58 *
59 * - [MPD] L4 code .
60 *
61 * 06 27 2019 mike.lu
62 * [MOLY00399993] [Gen97][VMOLY] interworking withN26 features
63 *
64 * [5G iRAT potential bug fix]
65 * 1. Do not update APN-AMBR if NW doesn't assign it.
66 * 2. Remove un-used WLAN Offload Ind. from interface of updating EPSBCs after 5G4.
67 * 3. Fix Coding Defect: when 5G4, ESM updates wrong R99 QoS Value to TCM.
68 * .
69 *
70 * 04 19 2019 mike.lu
71 * [MOLY00399993] [Gen97][VMOLY] interworking withN26 features (non-ESM folder)
72 *
73 * 03 26 2019 mike.lu
74 * [MOLY00393456] [Gen97][VMOLY] 45G InterRAT & interSystem feature
75 *
76 * .
77 *
78 * 11 29 2018 mike.lu
79 * [MOLY00361576] TS24.301 R15.4 Aligment
80 * .
81 *
82 * 10 29 2018 mike.lu
83 * [MOLY00361576] TS24.301 R15.4 Aligment
84 *
85 * [MOLY00346729] VMOLY_CBr patch back to VMOLY TRUNK
86 *
87 * .
88 *
89 * 02 06 2017 parthasarathy.nagarajan
90 * [MOLY00227856] [6293][MTBF][TMOUS ePDG->LTE IMS handover] Response Time Guaranteed PDN Command
91 * Guaranteed PDN response time, Interface changes
92 *
93 * 11 09 2016 danny.kuo
94 * [MOLY00184907] [MOLY00142123][call for patch][KOR MNO][EMM][LGU+]attach reject handling if OTA PDN
95 * .
96 *
97 * 09 26 2016 vera.yeh
98 * [MOLY00205116] [6293][ESM][TFTLIB] new feature/re-arch item porting to UMOLYA trunk
99 * [ESM][OA] PS.DEV proting to UMOLYA.Trunk.
100 * 1. wlan offload IEI/interface/enum/structure
101 * 2. iLM rename for GEMINI_suspend/resume
102 * 3. LTE QCI default value
103 *
104 * 06 27 2016 sj.syue
105 * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA
106 * [PAM] Common.
107 *
108 * 03 16 2016 mika.kaikkonen
109 * [MOLY00145562] [R12] CR2088 UE retry behavior for ESM cause codes - SM-ESM-EVAL interface
110 *
111 * 08 31 2015 bo-kai.huang
112 * [MOLY00109918] [eTCM] Interface change for IMS PDP flag
113 * Merge for ATT.
114 *
115 * 08 31 2015 bo-kai.huang
116 * [MOLY00109918] [eTCM] Interface change for IMS PDP flag
117 * Merge for ATT.
118 *
119 * 06 18 2015 panu.peisa
120 * [MOLY00122487] EMM, ESM & PAM module VzW feature porting from 6290 to 6291
121 * SWRD part, change have dependency to LTE_SEC parts.
122 *
123 * 06 16 2015 mika.kaikkonen
124 * [VZ_REQ_LTEDATARETRY_7735] PAM Spesific parts configuration changes.
125 *
126 * 06 13 2015 mika.kaikkonen
127 * [VZ_REQ_LTEDATARETRY_7785] Preparation: VzW specifc utility functions and interface updates
128 *
129 * 02 13 2015 carlson.lin
130 * [MOLY00091822] RATDM reorganization
131 * RATDM merge LTM, SM and ESM related interface checkin
132 *
133 * 11 24 2014 carlson.lin
134 * [MOLY00084165] [UMOLY][R10][R11] NAS check-in from 6291_DEV to UMOLY Trunk
135 * sync interface comment (MTC_CBr CL 877656 and 881743).
136 *
137 * 11 17 2014 jeffery.chen
138 * [MOLY00084634] [UMOLY][R10][R11] NAS check-in from 6291_DEV to UMOLY
139 * [R10][R11] NAS check-in from 6291_DEV to UMOLY
140 *
141 * 03 06 2014 nick.wang
142 * [MOLY00058412] [MOLY] TFT validate revision
143 * ESM trigger bearer deactivate
144 *
145 * 01 21 2014 wcpuser_integrator
146 * [MOLY00054475] SGLTE option rename
147 * .
148 *
149 * 10 18 2013 xiaona.chen
150 * [MOLY00041595] [MT6290E1][MMDS_DC] MMDC feature patch back to MOLY trunk
151 * .
152 *
153 * 01 22 2013 roy.lin
154 * [MOLY00009163] LTE Multimode merge back to MOLY
155 * Multimode interface re-architecture.
156 *
157 * 11 06 2012 yu.huang
158 * [MOLY00005322] TATAKA merge to MOLY
159 * [EVAL] Add EVAL related interfaces and common strust
160 ****************************************************************************/
161
162
163#ifndef _TCM_EVAL_STRUCT_INC
164#define _TCM_EVAL_STRUCT_INC
165
166
167#include "tcm_eval_enums.h"
168#include "ps_public_enum.h"
169#include "ps_public_struct.h"
170#include "tcm2sm_struct.h"
171#include "tftlib_common_struct.h"
172#include "tcm_context_public.h"
173
174/* Multimode */
175#include "irat_common_struct.h"
176#include "mcd_l3_inc_gprs_struct.h"
177#include "l3_inc_enums.h"
178
179#include "mcd_l3_inc_struct.h"
180
181#include "general_qos_struct.h"
182
183#define MAX_CONCATE_DEDEBC_NUM 10
184//#define MAX_BEARER_CTXT_NUM 11
185
186
187/***** common structure definition *****/
188typedef struct
189{
190 kal_uint8 length; // TODO: Roy: rename to "protocol_id_num"
191 config_option_struct pco_list[MAX_NUM_CONFIG_OPTION_PACKETS];
192} tcmesm_pco_struct;
193
194//__WLAN_OL__
195typedef struct
196{
197 kal_bool valid;
198 wlan_offload_ind_enum value;
199} wlan_offload_ind_struct;
200
201
202typedef struct
203{
204 kal_bool ext_present;
205 kal_bool ext2_present;
206 kal_uint8 dl_apn_ambr;
207 kal_uint8 dl_apn_ambr_ext;
208 kal_uint8 dl_apn_ambr_ext2;
209 kal_uint8 ul_apn_ambr;
210 kal_uint8 ul_apn_ambr_ext;
211 kal_uint8 ul_apn_ambr_ext2;
212
213 // __R15.4__
214 kal_bool is_use_ext_apn_ambr_for_dl;
215 kal_bool is_use_ext_apn_ambr_for_ul;
216 kal_uint64 ext_apn_ambr_for_dl;
217 kal_uint64 ext_apn_ambr_for_ul;
218
219} eps_apn_ambr_struct;
220
221
222typedef struct
223{
224 kal_uint8 ebi;
225 tcmesm_epsb_act_enum epsb_action;
226 bcm_enum bcm_info;
227 kal_bool eps_qos_present;
228 eps_qos_struct eps_qos;
229 kal_bool r99_qos_present;
230 qos_struct r99_qos;
231 kal_bool apn_ambr_present;
232 eps_apn_ambr_struct apn_ambr;
233 kal_bool tft_present;
234 tft_info_struct *tft;
235 tcmesm_pco_struct *pco;
236 wlan_offload_ind_struct wlan_offload_ind; //__WLAN_OL__
237} tcmesm_updated_epsb_info_struct;
238
239typedef struct
240{
241 kal_uint8 from_psi;
242 kal_uint8 to_ebi;
243 kal_uint8 linked_ebi;
244 kal_bool eps_qos_present;
245 eps_qos_struct eps_qos;
246 kal_bool r99_qos_present;
247 qos_struct r99_qos;
248 kal_bool apn_ambr_present;
249 eps_apn_ambr_struct apn_ambr;
250} tcm_esm_5g4_context_transfer_epsb_info_struct;
251
252/***** message structure definition *****/
253typedef struct
254{
255 LOCAL_PARA_HDR
256 kal_uint8 pti;
257 kal_uint8 cid;
258 tcmesm_req_reason_enum req_reason;
259 eps_req_type_enum req_type;
260 eps_pdn_type_enum pdn_type;
261 kal_bool pco_cipher_needed;
262 apn_struct apn;
263 tcmesm_pco_struct *pco;
264 nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
265 eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
266 tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
267 kal_bool is_vzw_apn; // For ESM handling PCO
268 req_processing_info_struct req_processing_info;
269 kal_bool is_ota_pdn;
270 kal_uint8 psi;
271} esmreg_pdn_conn_est_req_struct;
272
273
274typedef struct
275{
276 LOCAL_PARA_HDR
277 kal_uint8 pti;
278 kal_uint8 linked_ebi;
279 kal_uint8 cid;
280 eps_qos_struct eps_qos;
281 tft_info_struct *tft;
282 tcmesm_pco_struct *pco;
283 nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
284 eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
285 tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
286 req_processing_info_struct req_processing_info;
287} esmreg_bearer_rsc_alloc_req_struct;
288
289
290typedef struct
291{
292 LOCAL_PARA_HDR
293 kal_uint8 pti;
294 kal_uint8 ebi;
295 kal_bool eps_qos_present;
296 eps_qos_struct eps_qos;
297 tft_info_struct *tft;
298 tcmesm_pco_struct *pco;
299 nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
300 eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
301 req_processing_info_struct req_processing_info;
302} esmreg_bearer_rsc_mod_req_struct;
303
304
305typedef struct
306{
307 LOCAL_PARA_HDR
308 kal_uint8 pti;
309 kal_uint8 ebi;
310 kal_uint8 cid;
311 tcmesm_req_reason_enum req_reason;
312 tcm_pdp_deact_reason_enum deact_reason;
313 tft_info_struct *tft;
314 tcmesm_pco_struct *pco;
315 nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
316 eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
317 // __VZW__ __VZW_7__
318 /* Notify ESM to tell EMM to start T3402 for VZW class 3 APN */
319 kal_bool start_t3402_for_class3;
320
321 /* Indicate if "plmn_id_upon_pdn_est" exists */
322 kal_bool is_plmn_id_exist; // VzW: Support ESM trigger detach with T3402
323
324 /* For the case which needs to start T3402 due to last PDN deactivation,
325 * T3402 should be started with respect to the PDN's PLMN ID upon establishment.
326 * (NOTE: Current PLMN ID is not accurate, since it might be changed from time to time)
327 */
328 plmn_id_struct plmn_id_upon_pdn_est; // VzW: Support ESM trigger detach with T3402
329
330 req_processing_info_struct req_processing_info;
331} esmreg_epsb_deact_req_struct;
332
333
334typedef struct
335{
336 LOCAL_PARA_HDR
337 kal_uint16 seq_id;
338
339} esmreg_pdn_conn_est_rsp_struct;
340
341
342typedef struct
343{
344 LOCAL_PARA_HDR
345 kal_uint16 seq_id;
346
347} esmreg_pdn_conn_update_rsp_struct;
348
349
350typedef struct
351{
352 LOCAL_PARA_HDR
353 kal_uint8 pti;
354 ps_cause_enum failure_cause;
355 tcmesm_pco_struct *pco;
356 kal_bool is_T3396_present; // R12 CR2088: Back-off timer value present
357 kal_uint32 T3396_value_in_sec; // R12 CR2088: Back-off timer value in sec
358 kal_bool is_re_attempt_indicator_present; //R12 CR2088
359 kal_uint8 re_attempt_indicator; //R12 CR 2088
360
361 /** Indicates the below current_plmn_id should be used or not.
362 * - TRUE, if PDN-CONN-REQ is sent with ATTACH-request procedure,
363 * the ATTACH is rejected by the Network, and the EMM use
364 * the ESM_EMM_GET_ESM_CAUSE_IND to carry PDN_CONNECTIVITY_REJECT
365 * to ESM
366 * - FALSE, other cases (ex: ESM local reject PDN-CONN-REQ for ATTACH because
367 * APN is this_is_an_invalid_apn,
368 * or standalone PDN activation reject, ... etc)
369 * - The current-plmn-id would be updated by
370 * nwsel_pam_eq_plmn_list_update_ind_struct .
371 */
372 kal_bool is_valid_current_plmn_id ;
373
374 /** Originally sent by EMM to indicate the current-plmn-id for the ATTACH-reject.
375 * - For 4G attach-reject case, there is no eq-plmn so only
376 * current-plmn-id is needed for PAM's arbitration .
377 */
378 plmn_id_struct current_plmn_id ;
379
380 // Indicate whether to additionally wait for available_apn_info
381 kal_bool wait_available_apn_info; // __VZW__ __VZW_2__
382 kal_bool is_change_to_apn_class_valid; //__VZW__
383 kal_uint8 change_to_apn_class; //__VZW__
384} esmreg_pdn_conn_est_rej_struct;
385
386
387typedef struct
388{
389 LOCAL_PARA_HDR
390 kal_uint8 pti;
391 ps_cause_enum failure_cause;
392 tcmesm_pco_struct *pco;
393 kal_bool is_T3396_present; // R12 CR2088: Back-off timer value present
394 kal_uint32 T3396_value_in_sec; // R12 CR2088: Back-off timer value in sec
395 kal_bool is_re_attempt_indicator_present; //R12 CR2088
396 kal_uint8 re_attempt_indicator; //R12 CR2088
397 // __R10_FEATURE_MTC__ __VZW__
398 // Indicates the below current_plmn_id should be used or not.
399 kal_bool is_valid_current_plmn_id;
400 // current_plmn_id for bearer rsc allocation reject
401 plmn_id_struct current_plmn_id;
402} esmreg_bearer_rsc_alloc_rej_struct;
403
404
405typedef struct
406{
407 LOCAL_PARA_HDR
408 kal_uint8 pti;
409 ps_cause_enum failure_cause;
410 tcmesm_pco_struct *pco;
411 kal_bool is_T3396_present; // R12 CR2088: Back-off timer value present
412 kal_uint32 T3396_value_in_sec; // R12 CR2088: Back-off timer value in sec
413 kal_bool is_re_attempt_indicator_present; //R12 CR2088
414 kal_uint8 re_attempt_indicator; //R12 CR2088
415 // __R10_FEATURE_MTC__ __VZW__
416 // Indicates the below current_plmn_id should be used or not.
417 kal_bool is_valid_current_plmn_id;
418 // current_plmn_id for bearer rsc modification reject
419 plmn_id_struct current_plmn_id;
420} esmreg_bearer_rsc_mod_rej_struct;
421
422
423typedef struct
424{
425 LOCAL_PARA_HDR
426 kal_uint8 pti;
427 ps_cause_enum failure_cause;
428 tcmesm_pco_struct *pco;
429
430} esmreg_epsb_deact_rej_struct;
431
432
433typedef struct
434{
435 LOCAL_PARA_HDR
436 kal_uint8 pti;
437 kal_uint8 linked_ebi;
438 kal_uint16 seq_id;
439 apn_struct apn;
440 ip_addr_struct ip_addr;
441 kal_bool r99_qos_present;
442 qos_struct r99_qos;
443 eps_qos_struct eps_qos;
444 kal_bool apn_ambr_present;
445 eps_apn_ambr_struct apn_ambr;
446 kal_bool addr_type_limit_cause_present;
447 ps_cause_enum addr_type_limit_cause;
448 tcmesm_pco_struct *pco;
449 kal_uint8 act_ded_epsb_num;
450 tcmesm_updated_epsb_info_struct act_ded_epsb_info[MAX_CONCATE_DEDEBC_NUM];
451 bcm_enum bcm_info;
452 // __R10_FEATURE_MTC__ __VZW__
453 /* Indicates the below pdn_est_plmn_id should be used or not. */
454 kal_bool is_valid_pdn_est_plmn_id;
455 /* The PLMN ID where PDN is established */
456 plmn_id_struct pdn_est_plmn_id;
457 wlan_offload_ind_struct wlan_offload_ind; // __WLAN_OL__
458 kal_bool arrearage_flag;
459} esmreg_pdn_conn_est_ind_struct;
460
461
462typedef struct
463{
464 LOCAL_PARA_HDR
465 kal_uint8 pti;
466 kal_uint8 linked_ebi;
467 kal_uint16 seq_id;
468 tcmesm_proc_result_enum proc_result;
469 tcmesm_updated_epsb_info_struct nw_res_epsb_info;
470 kal_uint8 nw_req_epsb_num;
471 tcmesm_updated_epsb_info_struct nw_req_epsb_info[MAX_BEARER_CTXT_NUM];
472 // __R10_FEATURE_MTC__ __VZW__
473 // Indicates the below pdn_update_plmn_id should be used or not.
474 kal_bool is_valid_pdn_update_plmn_id;
475 // The PLMN ID where PDN is updated
476 plmn_id_struct pdn_update_plmn_id;
477} esmreg_pdn_conn_update_ind_struct;
478
479
480typedef struct
481{
482 LOCAL_PARA_HDR
483 kal_uint8 pti;
484 kal_uint8 ebi;
485 ps_cause_enum deact_cause;
486 tcmesm_pco_struct *pco;
487 kal_bool is_T3396_present;
488 kal_uint32 T3396_value_in_sec;
489 // __R10_FEATURE_MTC__ __VZW__
490 // Indicates the below deact_plmn_id should be used or not.
491 kal_bool is_valid_deact_plmn_id;
492 // The PLMN ID where bearer is deactivated
493 plmn_id_struct deact_plmn_id;
494 wlan_offload_ind_struct wlan_offload_ind; // __WLAN_OL__
495} esmreg_epsb_deact_ind_struct;
496
497
498/***** interRAT message structure *****/
499typedef struct
500{
501 LOCAL_PARA_HDR
502 irat_type_enum irat_type;
503 rat_type_enum source_rat;
504 rat_type_enum target_rat;
505 irat_result_enum irat_result;
506
507} esmreg_rat_change_complete_ind_struct;
508
509
510typedef struct
511{
512 LOCAL_PARA_HDR
513 kal_uint8 ebi;
514 tcm_pdp_deact_reason_enum deact_reason;
515} esmreg_ps_init_bearer_deact_ind_struct;
516
517typedef struct
518{
519 LOCAL_PARA_HDR
520 nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
521 eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
522} esmreg_dual_priority_config_req_struct;
523
524typedef struct {
525 LOCAL_PARA_HDR
526 kal_uint8 num_of_epsb_info;
527 tcm_esm_5g4_context_transfer_epsb_info_struct epsb_info[MAX_L4_PS_EBI_NUM];
528} esmreg_5g4_context_transfer_ind_struct;
529
530typedef ia_apn_change_req_struct pam_esm_ia_apn_change_req_struct;
531
532#if 0 /*(!defined(__EVAL_ENABLE__)) && (!defined(__ESM_ENABLE__))*/
533/* under construction !*/
534/* under construction !*/
535/* under construction !*/
536/* under construction !*/
537/* under construction !*/
538/* under construction !*/
539/* under construction !*/
540/* under construction !*/
541/* under construction !*/
542/* under construction !*/
543/* under construction !*/
544/* under construction !*/
545/* under construction !*/
546/* under construction !*/
547/* under construction !*/
548/* under construction !*/
549#endif /* no __EVAL_ENABLE__ */
550
551#endif /* ----- #ifndef _TCM_EVAL_STRUCT_INC ----- */
552