blob: 128d82da05b9b6e2008fb8f841efd30b92e33323 [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 * epdcp_enum.h
40 *
41 * Project:
42 * --------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 *
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *
54 * ==========================================================================
55 * $Log$
56 *
57 * 11 25 2019 jia-shi.lin
58 * [MOLY00460829] [MT6885][Petrus][MP1][SQC][CT][NSIOT][HQ][KS][N78][SA][CTC_DP_6.2.3][TC-MF_NR_DT-02003]SA UL256QAM Tput not as expected
59 * 1. new sit_update msg from nl1
60 * 2. sit update profile
61 *
62 * 10 14 2019 yiting.cheng
63 * [MOLY00442846] [Gen97] Modem´¼¯à«ÝÉófeature - NSA part (implementation)
64 * .
65 *
66 * 04 25 2019 ken.li
67 * [MOLY00383711] [MT6297][Apollo][PreSQC][MP0.5][NVIOT][Nokia][Oulu][4G]: Assert Fail: dpcopro_hisr.c 713 - (LISR)mml2_excep_lisr
68 *
69 * EPDCP DL OOB and HFN desync handling
70 *
71 * 04 22 2019 ken.li
72 * [MOLY00383711] [MT6297][Apollo][PreSQC][MP0.5][NVIOT][Nokia][Oulu][4G]: Assert Fail: dpcopro_hisr.c 713 - (LISR)mml2_excep_lisr
73 *
74 * EPDCP DL OOB and HFN desync handling
75 *
76 * 08 17 2018 yk.liu
77 * [MOLY00327926] [GEN97][ENPDCP] base development check-in
78 * merge EMOLY CLs to VMOLY
79 *
80 * 07 05 2018 head.hsu
81 * [MOLY00327926] [GEN97][ENPDCP] base development check-in
82 * restructure:
83 * 1.fix some warning
84 * 2.remove legacy file
85 * 3.remove some phase-out context
86 * 4.rename internal term from epdcp to enpdcp
87 * 5.add trace
88 *
89 * [Protocol build tag]
90 * [Is CL self testable: YES]
91 * [Group CL list: NO]
92 *
93 * 05 18 2018 head.hsu
94 * [MOLY00326691] [MT6297] GEN97.DEV ENL2 Patch back
95 * port latest interface and code on Gen97.DEV (PDCP UL dummy)
96 *
97 * 07 13 2017 steve.kao
98 * [MOLY00264004] [6293] EPDCP R-SIM code changes and UT with bugfixes
99 *
100 * [UMOLYA][TRUNK] EPDCP changes for L+L, R-SIM, UT, and bugfixes.
101 *
102 * 05 04 2017 steve.kao
103 * [MOLY00246810] [BIANCO][MT6763][RDIT][FT][CMCC][BJ][TDL Case][1.3.1][ASSERT] file:mcu/pcore/modem/el2/el2/epdcp/src/epdcp_dl.c line:4692
104 * [UMOLYA][TRUNK][EPDCP] Handling flag V in LHIF mode handlers, and modify logs.
105 *
106 * 04 07 2017 steve.kao
107 * [MOLY00230062] [UMOLYA] M-PS related interface changes for UPCM, RATDM, and EPDCP
108 *
109 * [UMOLYA][TRUNK]
110 *
111 * [UPCM][M-PS] Code changes
112 * 1. Duplicating UPCM contexts,
113 * 2. Use protocol_idx in UL/DL callback/ILM interfaces,
114 * 3. Check protocol_idx in LHIF PIT entries,
115 * 4. Fix test mode UL data processing flow,
116 * 5. Allowing test mode on protocol 2/3/4,
117 * 6. Wrap interfaces with RATDM with __MULTIPLE_PS__,
118 *
119 * [EPDCP][L+L] Code changes
120 *
121 * [RATDM][L+L] Code changes
122 *
123 * 02 21 2017 steve.kao
124 * [MOLY00230998] [6293][EL2][EPDCP] Simplified DL mode switching.
125 * [UMOLYA][TRUNK][EPDCP] Simplified DL mode switch for NETIF binding.
126 *
127 * 11 01 2016 steve.kao
128 * [MOLY00195563] [6293][EL2][UPCM][RATDM][EPDCP] Initial feature integrations
129 * [UMOLYA_TRUNK][EPDCP] Add DL traces & fix c-model bugs.
130 *
131 * 01 21 2016 mingtsung.sun
132 * [MOLY00160421] [MT6292] ePDCP CE RAM Optimization
133 * [EPDCP] CE RAM OPT.
134 *
135 * 06 15 2015 mingtsung.sun
136 * [MOLY00121332] [TK6291] 4G EAS low power check in
137 * eL2 low power and ePDCP code sync: mcu\common\modem\lte_sec\...
138 *
139 * 07 04 2013 timothy.yao
140 * [MOLY00028092] [MT6290E1][EL2 IT] fix the log statement
141 * 1. fix variable order in log statement.
142 * 2. apply heximal & enum usage.
143 ****************************************************************************/
144#ifndef ENPDCP_ENUM_INC
145#define ENPDCP_ENUM_INC
146
147#include "enl2_def.h"
148
149/**
150* @brief RB state (SRB/DRB)
151*/
152typedef enum
153{
154 /* for RB entity/record common use */
155 RB_ST_NONE = 0,
156 RB_ST_ACTIVE,
157 RB_ST_SUSPENDED,
158 RB_ST_HANDOVER,
159
160 /* for RB record specific use */
161 RB_ST_HO_N_SUSP,
162 RB_ST_HO_N_ACTV,
163
164#if ENPDCP_REMOTE_SIM
165 /* for virtual connectivity */
166 RB_ST_VIRT_CONN_N_SUSP,
167 RB_ST_VIRT_CONN_N_ACTV,
168#endif
169
170} enpdcp_rb_st_e;
171
172typedef enum
173{
174 DETN_TMR3_MONTR_LV_OFF = 0,
175 DETN_TMR3_MONTR_LV_DRB,
176 DETN_TMR3_MONTR_LV_ALL_RB,
177} detnTmr3_montr_lv_e;
178
179typedef enum
180{
181 DETN_TMR3_PHASE_RRC = 0,
182 DETN_TMR3_PHASE_NAS,
183} detnTmr3_phase_e;
184
185typedef enum
186{
187 TMR_ST_STOPPED = 0,
188 TMR_ST_RUNNING,
189 TMR_ST_TIMEOUT
190} tmr_st_e;
191
192typedef enum
193{
194 ENPDCP_EC_OK = 0,
195
196 /* common */
197 ENPDCP_EC_INV_RB_NUM,
198 ENPDCP_EC_INV_RB_ID,
199 ENPDCP_EC_INV_RB_IDX,
200 ENPDCP_EC_UNEXP_RB_STATE,
201
202 /* Loopback TEST-REQ */
203 ENPDCP_EC_DRB_LB_ENABLED,
204
205 /* CONFIG-REQ */
206 ENPDCP_EC_SEC_CFG_WO_SRB1,
207 ENPDCP_EC_ADD_SRB2_DRB_WO_FULL_SEC,
208 ENPDCP_EC_INV_ADD_RB_ID,
209 ENPDCP_EC_INV_ADD_RB_IDX,
210 ENPDCP_EC_INV_ADD_RB_CMD,
211 ENPDCP_EC_INV_ADD_UM_DIR,
212 ENPDCP_EC_INV_MOD_RB_ID,
213 ENPDCP_EC_INV_MOD_RB_IDX,
214 ENPDCP_EC_INV_MOD_RB_CMD,
215 ENPDCP_EC_INV_MOD_UM_DIR,
216 ENPDCP_EC_INV_DEL_RB_ID,
217 ENPDCP_EC_INV_DEL_RB_IDX,
218 ENPDCP_EC_INV_DEL_RB_CMD,
219
220 /* DCCH_DATA_REQ */
221 ENPDCP_EC_INV_TGPD,
222 ENPDCP_EC_INV_PEER_BUF_PTR,
223
224 /* LTM_DATA_REQ */
225 ENPDCP_EC_INV_PRI_DATA_LIST,
226 ENPDCP_EC_INV_NML_DATA_LIST,
227 ENPDCP_EC_RB_UL_DIR_DISABLED,
228 ENPDCP_EC_RB_UL_FLOW_CTRL,
229
230 ENPDCP_EC_MAX
231} enpdcp_errcode_e;
232
233/////// ENPDCP DL related ///////
234/**
235 * @brief RB DL config stages (DRB)
236 */
237typedef enum
238{
239 DRB_DL_CFG_STG_NORMAL = 0,
240
241 // When the DL CFG STG is not NORMAL, then the DL mode of the DRB might be
242 // in the midst of being changed from VRB-mode to LHIF-mode .
243
244 /* REEST: AM DRB should be with VRB-RO */
245 DRB_DL_CFG_STG_REEST_FLUSHING,
246 DRB_DL_CFG_STG_REEST_REORDERING,
247 DRB_DL_CFG_STG_REEST_WAIT_FOR_HFN_SYNC,
248 DRB_DL_CFG_STG_REEST_DCIP_SUSPENDING,
249 DRB_DL_CFG_STG_REEST_WAIT_FOR_DELIVERY,
250 /* REEST: AM DRB should be with VRB-RO */
251
252 /* HFN Resync when not in reest stage: AM DRB should be with VRB-RO */
253 DRB_DL_CFG_STG_HFN_RESYNC_WAIT_FOR_HFN_SYNC,
254 DRB_DL_CFG_STG_HFN_RESYNC_DCIP_SUSPENDING,
255 DRB_DL_CFG_STG_HFN_RESYNC_WAIT_FOR_DELIVERY,
256 /* HFN Resync when not in reest stage: AM DRB should be with VRB-RO */
257
258 /* LWA */
259 DRB_DL_CFG_STG_EN_LWA_DCIP_SUSPENDING, // suspend DCIP for APRO enabling // TODO: REMOVE
260 DRB_DL_CFG_STG_EN_LWA_WAIT_APRO_CNF// TODO: REMOVE
261 /* LWA */
262} enpdcp_drb_dl_cfg_stg_e;
263
264typedef enum
265{
266 RB_DL_MODE_BIT_RO_ON = 0x1, // o.w. RO_OFF
267 RB_DL_MODE_BIT_DEST_VRB = 0x2, // o.w. DEST_LHIF
268} enpdcp_rb_dl_mode_bit_e;
269
270typedef enum
271{
272 RB_DL_MODE_LHIF_NRO = 0,
273 RB_DL_MODE_LHIF_RO = RB_DL_MODE_BIT_RO_ON,
274 RB_DL_MODE_VRB_NRO = RB_DL_MODE_BIT_DEST_VRB,
275 RB_DL_MODE_VRB_RO = RB_DL_MODE_BIT_DEST_VRB | RB_DL_MODE_BIT_RO_ON
276} enpdcp_rb_dl_mode_e;
277
278typedef enum{
279 ENPDCP_ILM_INVALID,
280 ENPDCP_ILM_ACCEPT,
281 ENPDCP_ILM_IGNORE
282} enpdcp_ilm_check_enum;
283
284typedef enum
285{
286 DL_MODE_SWITCH_CAUSE_BECOME_LHIF_MODE_CAPABLE = 0,
287 DL_MODE_SWITCH_CAUSE_DIS_TESTMODE,
288 DL_MODE_SWITCH_CAUSE_WAIT_FOR_DELIVERY_DONE,
289 DL_MODE_SWITCH_CAUSE_DIS_FORCED_INDIRECT_PATH,
290} dl_mode_switch_cause_e;
291
292typedef enum
293{
294 EPDCP_DL_LOG_LEVEL_RAW = 0,
295 EPDCP_DL_LOG_LEVEL_REFINED,
296} epdcp_dl_log_level_e;
297
298typedef enum
299{
300 EPDCP_UL_LOG_LEVEL_RAW = 0,
301 EPDCP_UL_LOG_LEVEL_REFINED,
302} epdcp_ul_log_level_e;
303
304typedef enum
305{
306 DRB_DL_HFN_SYNC = 0,
307 DRB_DL_HFN_RESYNC_DONE,
308 DRB_DL_HFN_DESYNC_TRY_CUR_HFN,
309 DRB_DL_HFN_DESYNC_DCIP_RESUME_TRYING,
310 DRB_DL_HFN_DESYNC_DCIP_SUSPEND,
311 DRB_DL_HFN_DESYNC_DCIP_SUSPEND_RESET_HFN,
312} epdcp_drb_dl_hfn_sync_stg_e;
313
314typedef enum
315{
316 ENPDCP_FUNC_SIT_UPDATE,
317 ENPDCP_FUNC_NRLC_PREGEN
318} enpdcp_func_profile_e;
319
320
321#endif // ~ #ifndef ENPDCP_ENUM_INC