blob: 95401e969e38fb185a6dbf8006a047012948a15a [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) 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 * Filename:
38 * ---------
39 * esm_ratdm_struct.h
40 *
41 * Project:
42 * --------
43 *
44 *
45 * Description:
46 * ------------
47 *
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 ******************************************************************************
54 * $Log$
55 *
56 * 07 30 2021 stun.wu
57 * [MOLY00656536] [TMO EPSFB][P210420-00364] [Carrier VOC][A326U][TMB][UCF][MQL-TX][NR/BasicFunction/Call/EPSFB]Device "S1 mode not requested" failing EPSFB calls with 503
58 *
59 * .
60 *
61 * 03 26 2019 mike.lu
62 * [MOLY00393456] [Gen97][VMOLY] 45G InterRAT & interSystem feature
63 *
64 * .
65 *
66 * 11 29 2018 mike.lu
67 * [MOLY00361576] TS24.301 R15.4 Aligment
68 * .
69 *
70 * 10 29 2018 mike.lu
71 * [MOLY00361576] TS24.301 R15.4 Aligment
72 *
73 * [MOLY00346729] VMOLY_CBr patch back to VMOLY TRUNK
74 *
75 * .
76 *
77 * 06 05 2018 yu-hsin.lin
78 * [MOLY00325101] [UMOLYE][MT6761][Merlot][O1][MP3][MTBF][HQ][4GMM][Lab][Ericsson][Fatal error(task)] err_code1:0x00000305 err_code2:0x888802DA err_code3:0xCCCCCCCC
79 * [interface] is_emergency_bearer, enum, and msg struct for esm_ratdm_ac_bar_alleviate_req;
80 *
81 * 04 26 2018 willy-wj.chen
82 * [MOLY00322460] [UMOLYE]¡i??¡j¡i¦è¦w¡j¡i?«HVOLTE¡j¥d1?«H4G¥d2?«HVOLTE ¥d2¦b?«HVOLTE B5?¬q¤UMT??¡A??¥X?MT¥¢?
83 * [UMOLYE][EL2][Common]¡i??¡j¡i¦è¦w¡j¡i?«HVOLTE¡j¥d1?«H4G¥d2?«HVOLTE ¥d2¦b?«HVOLTE B5?¬q¤UMT??¡A??¥X?MT¥¢?.
84 *
85 * 04 20 2018 willy-wj.chen
86 * [MOLY00321469] [R2.TC16.SP][COMMON]¡i??¡j¡i¦è¦w¡j¡i?«HVOLTE¡j¥d1?«H4G¥d2?«HVOLTE ¥d2¦b?«HVOLTE B5?¬q¤UMT??¡A??¥X?MT¥¢?
87 * 01 16 2018 yu-hsin.lin
88 * [MOLY00302109] [MT6763][Bianco][N1][India FT][Chennai][WW FT][RCOM][TATA DOCOMO][TC_MTK_P1_4G_Gemini_13] [MP1.5] DUT long SMS to sim2 fails (common interface part)
89 * [Interface] modify ESM cause
90 *
91 *
92 * 01 16 2018 yu-hsin.lin
93 * [MOLY00302109] [MT6763][Bianco][N1][India FT][Chennai][WW FT][RCOM][TATA DOCOMO][TC_MTK_P1_4G_Gemini_13] [MP1.5] DUT long SMS to sim2 fails (common interface part)
94 * [Interface] modify ESM cause
95 *
96 * 12 18 2017 vera.yeh
97 * [MOLY00294275] [6293 Gemini][Common Interface][Switch data to VoLTE call SIM]: Switch data service to SIM which is with ongoing VoLTE call
98 * [ESM] __FORCE_LOCAL_RELEASE__ Add new cause GEMINI_FAILURE for IDLE_LEAVE_REJ
99 *
100 * 10 25 2016 steve.kao
101 * [MOLY00209600] [UMOLYA][RATDM-LTE] M-PS related code changes
102 * [UMOLYA_TRUNK][RATDM-LTE][MPS] Modify interface for IDLE_LEAVE_IND .
103 *
104 * 07 20 2016 head.hsu
105 * [MOLY00174746] [PH1_VZW][joint-camp][Radio_Protocol][hVoLTE] TC 2.2.13 fail: step8. wait for EMM SR timeout
106 *
107 * 02 01 2016 matti.moisanen
108 * [MOLY00145827] [R12] CR2024 Introducing new QCIs for MCPTT signaling
109 *
110 * 04 16 2015 carlson.lin
111 * [MOLY00091769] [GEMINI] Trigger TAU/SR after GEMINI resume
112 * Add iterface (OA Domain)
113 *
114 *
115 ******************************************************************************/
116
117#ifndef ESM_RATDM_STRUCT_H
118#define ESM_RATDM_STRUCT_H
119
120#include "kal_general_types.h"
121#include "kal_public_defs.h"
122#include "mcd_l3_inc_gprs_struct.h"
123#include "l3_inc_local.h"
124#include "qmu_bm.h"
125
126/* the available EBI range is 5~15. The maximum number of EPS bearer is eleven. */
127#define MAX_EPSB_NUMBER 11
128
129typedef enum
130{
131 ESM_QCI_RESERVED_VALUE_0 = 0, // Reserved
132 ESM_QCI_1 = 1, // QCI_1, Conversational Vocie
133 ESM_QCI_2 = 2, // QCI_2, Conversational Video (Live Streaming)
134 ESM_QCI_3 = 3, // QCI_3, Real Time Gaming
135 ESM_QCI_4 = 4, // QCI_4, Non-Conversational Video (Buffered Streaming)
136 ESM_QCI_5 = 5, // QCI_5, IMS Signaling
137 ESM_QCI_6 = 6, // QCI_6, Video (Buffered Streaming), TCP-based (e.g., www, e-mail, chat, ftp, p2p file sharing, progressive video, etc)
138 ESM_QCI_7 = 7, // QCI_7, Voice, Video (Live Streaming), Interactive Gaming
139 ESM_QCI_8 = 8, // QCI_8, Video (Buffered Streaming), TCP-based (e.g., www, e-mail, chat, ftp, p2p file sharing, progressive video, etc)
140 ESM_QCI_9 = 9, // QCI_9, Video (Buffered Streaming), TCP-based (e.g., www, e-mail, chat, ftp, p2p file sharing, progressive video, etc)
141 ESM_QCI_SPARE_VALUE_10 = 10, // Spare (10~64)
142 ESM_QCI_SPARE_VALUE_64 = 64, // Spare (10~64)
143 ESM_QCI_65 = 65, // QCI_65, Mission Critical user plane Push To Talk Voice (e.g., MCPTT)
144 ESM_QCI_66 = 66, // QCI_66, Non-Mission-Critical user plane Push To Talk Voice
145 ESM_QCI_67 = 67, // QCI_67, Mission Critical Video service
146 ESM_QCI_SPARE_VALUE_68 = 68, // Spare (68)
147 ESM_QCI_69 = 69, // QCI_69, Mission Critical delay sensitive signalling (e.g.,MC-PTT signalling)
148 ESM_QCI_70 = 70, // QCI_70, Mission Critical Data (e.g. example services are the same as QCI 6/8/9)
149 ESM_QCI_SPARE_VALUE_71 = 71, // Spare (71~127)
150 ESM_QCI_84 = 84, // QCI_84, e.g. Ultra-reliable and Low Latency Communications
151 ESM_QCI_85 = 85, // QCI_85, e.g. Ultra-reliable and Low Latency Communications
152 ESM_QCI_SPARE_VALUE_127 = 127, // Spare (71~127)
153 ESM_QCI_OPERATOR_SPECIFIC_QCI_MIN_VALUE = 128, // Operator-specific QCIs 128~254
154 ESM_QCI_OPERATOR_SPECIFIC_QCI_MAX_VALUE = 254, // Operator-specific QCIs 128~254
155 ESM_QCI_RESERVED_VALUE_255 = 255 // Reserved
156} esm_qci_enum;
157
158
159// R12 CR2063 QCI code values "spare for future use"
160// Temporary definitions January-2016. When RATDM code is updated to use esm_qci_enum
161// values then these definitions shall be deleted
162#define ESM_QCI_RESERVED_VALUE_10 ESM_QCI_SPARE_VALUE_10
163#define ESM_QCI_RESERVED_VALUE_127 ESM_QCI_SPARE_VALUE_127
164
165
166typedef enum
167{
168 ESM_IDLE_LEAVE_REJ_UNSPEFICIFIED = 0x01,
169 ESM_IDLE_LEAVE_REJ_DETACH = 0x02,
170 ESM_IDLE_LEAVE_REJ_COVERAGE_OUT = 0x10,
171 ESM_IDLE_LEAVE_REJ_AC_BARRED = 0x11,
172 ESM_IDLE_LEAVE_REJ_NW_REJECT = 0x12,
173 ESM_IDLE_LEAVE_REJ_GEMINI_SUSPEND = 0x13, //gemini SUSPEND due to CS semaphore occupied by another protocal stack, wait for resume
174 ESM_IDLE_LEAVE_REJ_T3346_CONGESTION = 0x14,
175 ESM_IDLE_LEAVE_REJ_T3417TO = 0x15,
176 ESM_IDLE_LEAVE_REJ_GEMINI_FAILURE = 0x16, //gemini failure due to PS(or higher) semaphore occupied by another protocal stack
177 ESM_IDLE_LEAVE_REJ_AC_BARRED_EMERGENCY = 0x17,
178 ESM_IDLE_LEAVE_REJ_AC_BARRED_NORMAL = 0x18,
179 ESM_IDLE_LEAVE_REJ_OTHERS = 0x20,
180 ESM_IDLE_LEAVE_REJ_TAU_CONN_FAIL = 0x21,
181}idle_leave_rej_cause_enum;
182
183
184typedef enum
185{
186 ESM_ALLEVIATED_TYPE_EMERGENCY,
187 ESM_ALLEVIATED_TYPE_NORMAL,
188}esm_alleviated_type_enum;
189
190
191typedef struct
192{
193 kal_uint8 ebi;
194 kal_uint8 rb_idx;
195}ebi_rbidx_map_struct;
196
197typedef struct
198{
199 LOCAL_PARA_HDR
200
201 /* EPS bearer identity which ESM wants to initialize */
202 kal_uint8 ebi;
203
204 /*
205 * Default EPS bearer identity
206 * If the EPS bearer ESM wants to activate is a default EPS bearer,
207 * linked_ebi will be set to the same as ebi
208 */
209 kal_uint8 linked_ebi;
210
211 /* Hardware channel id (choose by ERRC) */
212 kal_uint8 rb_idx;
213
214 esm_qci_enum qci;
215
216 /* 23G ralated parameters */
217 kal_bool is_llc_sapi_present;
218 kal_uint8 llc_sapi;
219
220 kal_bool is_ug_qos_present;
221 qos_struct ug_qos;
222
223 kal_bool is_radio_priority_present;
224 kal_uint8 radio_priority;
225
226 kal_bool is_pfi_present;
227 kal_uint8 pfi;
228
229 /* Bearer service type */
230 kal_bool is_emergency_bearer;
231
232}esm_ratdm_epsb_init_req_struct;
233
234typedef struct
235{
236 LOCAL_PARA_HDR
237
238 /* EPS bearer identity which ESM wants to activate */
239 kal_uint8 ebi;
240}esm_ratdm_epsb_act_req_struct;
241
242
243typedef struct {
244 /* EPS bearer identity which ESM wants to initialize */
245 kal_uint8 ebi;
246
247 /*
248 * Default EPS bearer identity
249 * If the EPS bearer ESM wants to activate is a default EPS bearer,
250 * linked_ebi will be set to the same as ebi
251 */
252 kal_uint8 linked_ebi;
253
254 /* Hardware channel id (choose by ERRC) */
255 kal_uint8 rb_idx;
256
257 esm_qci_enum qci;
258
259 /* 23G ralated parameters */
260 kal_bool is_llc_sapi_present;
261 kal_uint8 llc_sapi;
262
263 kal_bool is_ug_qos_present;
264 qos_struct ug_qos;
265
266 kal_bool is_radio_priority_present;
267 kal_uint8 radio_priority;
268
269 kal_bool is_pfi_present;
270 kal_uint8 pfi;
271
272 /* Bearer service type */
273 kal_bool is_emergency_bearer;
274
275} epsb_info_struct;
276
277typedef struct {
278 kal_uint8 from_psi;
279 kal_uint64 qfi_bitmap;
280
281 epsb_info_struct epsb;
282
283} esm_ratdm_ebi_map_to_psi_info_struct;
284
285/* MSG_ID_ESM_RATDM_5G4_CONTEXT_TRANSFER_REQ */
286typedef struct {
287 LOCAL_PARA_HDR
288
289 kal_uint8 num_of_map_info;
290 esm_ratdm_ebi_map_to_psi_info_struct map_info[MAX_L4_PS_EBI_NUM];
291} esm_ratdm_5g4_context_transfer_req_struct;
292
293
294typedef struct
295{
296 LOCAL_PARA_HDR
297
298 /* EPS bearer identity which ESM wants to deactivate */
299 kal_uint8 ebi;
300}esm_ratdm_epsb_deact_req_struct;
301
302typedef struct {
303 LOCAL_PARA_HDR
304 kal_uint8 ebi;
305 /* 4G ralated parameters */
306 esm_qci_enum qci;
307 /* 23G ralated parameters */
308 kal_bool is_llc_sapi_present;
309 kal_uint8 llc_sapi;
310
311 kal_bool is_ug_qos_present;
312 qos_struct ug_qos;
313
314 kal_bool is_radio_priority_present;
315 kal_uint8 radio_priority;
316
317 kal_bool is_pfi_present;
318 kal_uint8 pfi;
319} esm_ratdm_epsb_modify_req_struct;
320
321typedef struct
322{
323 LOCAL_PARA_HDR
324
325 /* The total number of EPS bearer with DRB established after UE enter connected mode */
326 kal_uint8 epsb_num;
327
328 /* Mapping between EBI & RB index */
329 ebi_rbidx_map_struct ebi_rbidx_map[MAX_EPSB_NUMBER];
330}esm_ratdm_idle_leave_req_struct;
331
332typedef struct
333{
334 LOCAL_PARA_HDR
335
336 /* The failure cause of leave idle */
337 idle_leave_rej_cause_enum idle_leave_rej_cause;
338
339 /* Backoff timer used with ESM_IDLE_LEAVE_REJ_TAU_CONN_FAIL */
340 kal_uint32 retry_time_ms;
341}esm_ratdm_idle_leave_rej_struct;
342
343typedef struct
344{
345 LOCAL_PARA_HDR
346
347 /* Which EPS bearers has data */
348 kal_uint16 ebi_btmp;
349 /* whether the queue of ebi_btmp will be cleared upon Idle_Leave_Rej with gemini */
350 kal_bool is_drop_data_by_gemini_cause;
351}esm_ratdm_idle_leave_ind_struct;
352
353typedef struct
354{
355 LOCAL_PARA_HDR
356
357 /* Whether UL data is coming */
358 kal_bool is_ul_data_coming;
359}esm_ratdm_query_ul_data_status_cnf_struct;
360
361typedef struct
362{
363 LOCAL_PARA_HDR
364
365 /* type which is going to be alleviated due to ac bar in idle leave*/
366 esm_alleviated_type_enum alleviated_type;
367}esm_ratdm_ac_bar_alleviate_req_struct;
368
369
370/* Adaptation between ESM and LTM */
371typedef esm_ratdm_epsb_init_req_struct esm_ltm_epsb_init_req_struct;
372typedef esm_ratdm_epsb_act_req_struct esm_ltm_epsb_act_req_struct;
373typedef esm_ratdm_epsb_deact_req_struct esm_ltm_epsb_deact_req_struct;
374typedef esm_ratdm_epsb_modify_req_struct esm_ltm_epsb_modify_req_struct;
375typedef esm_ratdm_idle_leave_req_struct esm_ltm_idle_leave_req_struct;
376typedef esm_ratdm_idle_leave_rej_struct esm_ltm_idle_leave_rej_struct;
377typedef esm_ratdm_idle_leave_ind_struct esm_ltm_idle_leave_ind_struct;
378typedef esm_ratdm_query_ul_data_status_cnf_struct esm_ltm_query_ul_data_status_cnf_struct;
379typedef esm_ratdm_ac_bar_alleviate_req_struct esm_ltm_ac_bar_alleviate_req_struct;
380#endif /* ESM_RATDM_STRUCT_H */