blob: 2002b861c045a746ba57dd27138bb3d415d555e8 [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 * Filename:
38 * ---------
39 * mac_enums.h
40 *
41 * Project:
42 * --------
43 * UMOLY
44 *
45 * Description:
46 * ------------
47 *
48 * Author:
49 * -------
50 * -------
51 *
52 *=============================================================================
53 * HISTORY
54 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
55 *------------------------------------------------------------------------------
56 * removed!
57 *
58 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 *
69 * removed!
70 * removed!
71 * removed!
72 *
73 * removed!
74 * removed!
75 *
76 *------------------------------------------------------------------------------
77 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
78 *=============================================================================
79 ******************************************************************************/
80
81/********************************************************************************
82* Copyright Statement:
83* --------------------
84*
85* This product has been developed using a protocol stack
86* developed by Sasken Communication Technologies Limited.
87*
88********************************************************************************/
89
90#ifndef _MAC_ENUMS_H
91#define _MAC_ENUMS_H
92
93typedef enum
94{
95 MAC_IDLE,
96 MAC_PKT_ACCESS,
97 MAC_UL,
98 MAC_DL,
99 MAC_UL_DL,
100 MAC_NUM_STATES
101} mac_state_enum;
102
103/* Jelly Substate -bg- */
104typedef enum
105{
106 DL_NULL,
107 DL_SINGLE_BLK_IN_PROG,
108 DL_SINGLE_BLK_ACK_SENDING,
109 DL_TBF_PEND,
110 DL_TRANSFER,
111 DL_TRANSFER_REALLOC_TBF_PEND,
112 DL_TRANSFER_FINAL_ACK_PACKED,
113 DL_TRANSFER_FAI_SENT_T3192_STARTED,
114 DL_TRANSFER_TBF_PENDING_FROM_T3192,
115 DL_TRANSFER_ABNORMAL_REL_PEND,
116 DL_DISCONNECTING,
117 DL_SUBSTATE_NUM
118} mac_dl_substate_enum;
119
120typedef enum
121{
122 ACS_NULL,
123 ACS_RLC_RES_REQ_SENT,
124 ACS_ONE_PHASE_TBF_PEND,
125 ACS_ONE_PHASE_CONTENTION,
126 ACS_ONE_PHASE_CONTENTION_REALLOC_PEND,
127 ACS_TWO_PHASE_SINGLE_BLK_PEND,
128 ACS_TWO_PHASE_PRR_SENT,
129 ACS_TWO_PHASE_TBF_PEND,
130 ACS_RMPC_RES_REQ_SENT,
131 ACS_UL_SINGLE_BLK_IN_PROG,
132 ACS_UL_SINGLE_BLK_DELETE,
133 ACS_SUBSTATE_NUM
134} mac_acs_substate_enum;
135
136typedef enum
137{
138 UL_NULL,
139 UL_TRANSFER,
140 UL_TRANSFER_TBF_PEND,
141 UL_TRANSFER_REL_PEND,
142 UL_TRANSFER_ABNORMAL_REL_PEND,
143#ifdef __TBF_EST__
144 UL_TBF_EST_WAITING,
145 UL_TBF_EST_ADDED,
146 UL_TBF_EST_SENT_AB,
147 UL_TBF_EST_SENT_NB,
148 UL_TBF_EST_SENT_AB_PUAS_POLL,
149 UL_TBF_EST_PEND_AB,
150 UL_TBF_EST_PEND_NB,
151#endif /* __TBF_EST__ */
152 UL_SUBSTATE_NUM
153} mac_ul_substate_enum;
154
155typedef enum
156{
157 RES_REQ_INVALID,
158 RES_REQ_RMPC_IN_RACH_IDLE,
159 RES_REQ_RLC_IN_RACH_IDLE,
160 RES_REQ_RLC_IN_CTRL_MSG_Q_ACS,
161 RES_REQ_RLC_SENT_ACS,
162 RES_REQ_RLC_PEND_TRANSFER,
163 RES_REQ_RLC_IN_CTRL_MSG_Q_TRANSFER,
164 RES_REQ_RLC_IN_PDAN_TRANSFER,
165 RES_REQ_RLC_SENT_TRANSFER,
166 RES_REQ_RLC_TBF_EST_SENT_IDLE,
167 RES_REQ_STATUS_NUM
168} mac_res_req_status_enum;
169
170
171/* Jelly Substate -ed- */
172
173typedef enum
174{
175 INVALID_TBF, /* Suppose this value is only used by PKT TS RECONFIG */
176 DL_TBF,
177 UL_TBF
178} mac_tbf_direction_enum;
179
180typedef enum
181{
182 CELL_CHANGE_FAIL,
183 /* Lanslo 20070705: NACC */
184#ifdef __GERAN_R4__
185 NACC_PCCN,
186 NACC_SI_STATUS,
187#endif /* __GERAN_R4__ */
188 /* eo Lanslo 20070705: NACC */
189 PKT_MOBILE_TBF_STATUS,
190 MEASUREMENT_REPORT,
191 PKT_PSI_STATUS,
192 PKT_UL_DUMMY_CTRL,
193
194#ifdef __EGPRS_MODE__
195 RESOURCE_REQ,
196 EGPRS_RES_REQ,
197 EGPRS_ARAC
198#else /* __EGPRS_MODE__ */
199 RESOURCE_REQ
200#endif /* __EGPRS_MODE__ */
201} mac_prioritized_ctrl_msg_enum;
202
203typedef enum
204{
205 NORMAL_EVENT,
206 UNSPECIFIED_STATUS,
207 NON_DIST_PART_ERROR,
208 MSG_ESCAPE_ERROR,
209 NON_COMPATIBLE_MSG
210} mac_tbf_cause_enum;
211
212typedef enum
213{
214 FREQ_PARAMS_NOTVALID,
215 FREQ_PARAMS_NOTINBAND,
216 FREQ_PARAMS_MISMATCH,
217 FREQ_PARAMS_OK
218} mac_freq_params_enum;
219
220typedef enum
221{
222 BLOCKS,
223 BLOCK_PERIODS
224} mac_blk_or_blk_period_enum;
225
226typedef enum
227{
228 DL_ASSIGN_NOT_VALID,
229 PKT_DL_ASSIGN_VALID,
230 IMM_DL_ASSIGN_VALID,
231 PDCH_DL_ASSIGN_VALID,
232 MTDAS_DL_ASSIGN_VALID
233} mac_dl_assign_type_enum;
234
235/* Exce 030707: To identify which direction of TBF the incoming CON_IND is for */
236typedef enum
237{
238 CON_IND_UNMATCH,
239 CON_IND_FOR_DL,
240 CON_IND_FOR_UL,
241 CON_IND_FOR_TS_RECONFIG
242} mac_con_ind_enum;
243
244/* Exce 031128: For PKT PDCH RELEASE */
245typedef enum
246{
247 MAC_PDCH_REL_LIMIT_OLD = 0,
248 MAC_PDCH_REL_LIMIT_ALL
249} pdch_release_limit_enum;
250
251typedef enum
252{
253 MAC_PDTCH_NORMAL = 0,
254 MAC_PS_HO_START,
255 MAC_PS_HO_RECONN_ACTIVE,
256 MAC_PS_HO_RECONN_INACTIVE,
257 MAC_PDTCH_INACTIVE_AFTER_PS_HO
258} mac_pdtch_connect_cause_enum;
259
260typedef enum
261{ /* shall sync with MAC_TIMER_NUM_MSGS value */
262 MAC_T3164_TIMER_ID = 0,
263 MAC_T3166_TIMER_ID, /*1*/
264 MAC_T3168_TIMER_ID, /*2*/
265 MAC_T3180_TIMER_ID, /*3*/
266 MAC_T3188_TIMER_ID, /*4*/
267 MAC_T3190_TIMER_ID, /*5*/
268 MAC_T3192_TIMER_ID, /*6*/
269 /* Katie 20130108: for RRBP to PUAN with FAI not sent,
270 wait 5 sec for retransmitted PUAN */
271 MAC_GuardPUAN_TIMER_ID, /*7*/
272 MAC_LCE_hyst_millis_TIMER_ID, /* 12 */
273 MAC_PACCH_PROTECT_TIMER_ID, /*8*/
274#ifdef __MAC_RANDOM_PATTERN_TEST__
275 MAC_FakeMessage_TIMER_ID,
276#endif
277 MAC_T8983_TIMER_ID, /*9*/ /* Custom timer To allow RRBP TX for POLL/PCA/PDAN for GCF MM/SM control messages, before TBF disconnect */
278 MAC_TOTAL_TIMER_NUM
279} mac_timer_id_enum; /* MAC_TIMER Message Type */
280
281#ifndef __MTK_TARGET__
282typedef enum
283{
284 MAC_TIMER_START,
285 MAC_TIMER_STOP,
286 MAC_TIMER_TIMEOUT
287} mac_timer_action_enum;
288#endif
289
290
291
292/* Claire 050128 change : Implement EGPRS SRB mode */
293#ifdef __EGPRS_MODE__
294typedef enum
295{
296 MAC_EGPRS_SRB_LOOP_NONE, /* SRB mode is not active */
297 MAC_EGPRS_SRB_LOOP_UL_TBF_ESTABLISHING, /* MAC is waiting for UL assignment */
298 MAC_EGPRS_SRB_LOOP_SUBMODE_ON, /* EGPRS SRB Loopback submode ON */
299 MAC_EGPRS_SRB_LOOP_SUBMODE_OFF /* EGPRS SRB Loopback submode OFF */
300} egprs_srb_status_enum;
301#endif /* __EGPRS_MODE__ */
302
303
304/* Exce 030818: New exception handling mechanism for MAC */
305typedef enum
306{
307 MAC_MSG_EX_NO_EXCEPTION,
308
309 MAC_MSG_EX_INCOMPATIBLE_STATE, /* 1 */
310 MAC_MSG_EX_UNKNOWN_MSG, /* 2 */
311 MAC_MSG_EX_DIST_PART_ERR, /* 3 */
312 MAC_MSG_EX_ADDRESS_PART_ERR, /* 4 */
313 MAC_MSG_EX_NON_DIST_PART_ERR, /* 5 */
314 MAC_MSG_EX_MSG_ESC_ERR, /* 6 */
315 MAC_MSG_EX_IGNORE_LABEL_ERR, /* 7 */
316 MAC_MSG_EX_TRUNCATED_CONCACT_ERR, /* 8 */
317 MAC_MSG_EX_DECODE_ERR, /* 9 */
318
319 MAC_MSG_EX_MA_INVALID, /* 10 */
320 MAC_MSG_EX_SINGLE_BLOCK_GAP_TOO_SHORT, /* 11 */
321 MAC_MSG_EX_STARTING_TIME_NOT_PRESENT_FOR_FIXED_ALLOC, /* 12 */
322 MAC_MSG_EX_TFI_NOT_ASSIGNED, /* 13 */
323 MAC_MSG_EX_MULTISLOT_CAP_NOT_MEET, /* 14 */
324 MAC_MSG_EX_BEFORE_TIME_VALID_FOR_NON_DYNAMIC_ALLOC, /* 15 */
325 MAC_MSG_EX_FREQ_PARAM_NOT_PRESENT, /* 16 */
326 MAC_MSG_EX_FREQ_PARAM_INVALID, /* 17 */
327 MAC_MSG_EX_FREQ_PARAM_NOTINBAND, /* 18 */
328 MAC_MSG_EX_FREQ_PARAM_MISMATCH, /* 19 */
329 MAC_MSG_EX_MAC_MODE_MISMATCH, /* 20 */
330 MAC_MSG_EX_TBF_MODE_MISMATCH, /* 21 */
331
332 /* Exce 20040218: TLLI_MISMATCH_IN_ONE_PHASE ~ NO_UL_TS_IN_UL_ASSIGN are used by mac_pkt_access_exception_hdlr() only */
333 MAC_MSG_EX_TLLI_MISMATCH_IN_ONE_PHASE, /* 22 */
334 MAC_MSG_EX_TLLI_ABSENT_IN_ONE_PHASE, /* 23 */
335 MAC_MSG_EX_REACH_N3104_MAX_IN_ONE_PHASE, /* 24 */
336 MAC_MSG_EX_NOT_SENT_AS_T3164_TIMEOUT, /* 25 */
337 MAC_MSG_EX_SENT_NO_RESPONSE_AS_T3166_TIMEOUT, /* 26 */
338 MAC_MSG_EX_TLLI_MISMATCH_IN_TWO_PHASE, /* 27 */
339 MAC_MSG_EX_SENT_NO_RESPONSE_AS_T3168_TIMEOUT, /* 28 */
340 MAC_MSG_EX_TWO_PHASE_REQUESTED_BUT_ONE_PHASE_ASSIGNED, /* 29 */
341 MAC_MSG_EX_PKT_PDCH_REL_DURING_TWO_PHASE_CONTENTION, /* 30 */
342 MAC_MSG_EX_NO_UL_TS_IN_UL_ASSIGN, /* 31 */
343
344 MAC_MSG_EX_INCOMPATIBLE_CTRL_ACK_T3192, /* 32 */
345 MAC_MSG_EX_RLC_MODE_MISMATCH, /* 33 */
346 MAC_MSG_EX_MAC_MODE_INVALID_ASSIGNED_BY_NW, /* 34 */
347
348#ifdef __TBF_EST__
349 MAC_MSG_EX_SINGLE_BLOCK_GAP_TOO_SHORT_TBF_EST, /* 35 */
350#endif
351
352
353
354#if defined(__GERAN_RTTI__) || defined(__GERAN_FANR__)
355 MAC_MSG_EX_REL7_PART_ERROR, /* 41 */
356#endif
357 TOTAL_MAC_MSG_EX_END
358} mac_msg_exception_enum;
359
360typedef enum
361{
362 OLD_TBF_POS_INVALID = 0,
363 BACK_UP_ALLOC,
364 ACTIVE_ALLOC
365} old_tbf_para_pos_in_ps_ho_enum;
366
367typedef enum
368{
369 BSIC_SYNC_FAIL = 0,
370 T3216_TIMEOUT,
371 T3218_TIMEOUT,
372 G2U_ACTIVE_FAIL
373} mac_ps_ho_fail_cause;
374
375typedef enum
376{
377 MAC_NON_TBF_VALID = 0,
378 MAC_ACTIVE_VALID,
379 MAC_INACTIVE_VALID
380} mac_backup_tbf_status;
381
382typedef enum
383{
384 MAC_FIND_FIRST_1_FROM_MSB_TO_LSB,
385 MAC_FIND_FIRST_1_FROM_LSB_TO_MSB
386} mac_find_first_1_dir_enum;
387
388typedef enum
389{
390 MAC_RXED_BLK_BITMAP_INVALID,
391 MAC_RXED_BLK_BITMAP_ALL_NACKED,
392 MAC_RXED_BLK_BITMAP_SOME_NACKED,
393 MAC_RXED_BLK_BITMAP_ALL_ACKED
394} mac_rxed_blk_bitmap_enum;
395
396typedef enum
397{
398 MAC_TFI_NOT_MATCH,
399 MAC_TFI_NOT_MATCH_FROM_NON_PACCH,
400 MAC_TFI_MATCH
401} mac_tfi_match_status_enum;
402
403#ifdef __MODEM_EM_MODE__
404typedef enum
405{
406 MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_CHANNEL_REQUEST = 1, /*1*/
407 MAC_EM_UL_TBF_SINGLE_BLOCK_OR_TWO_PHASE_ACCESS_IN_CHANNEL_REQUEST = 2, /*2*/
408 MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_PACKET_CHANNEL_REQUEST = 11, /*11*/
409 MAC_EM_UL_TBF_TWO_PHASE_ACCESS_IN_PACKET_CHANNEL_REQUEST = 12, /*12*/
410 MAC_EM_UL_TBF_PAGE_RESPONSE_IN_PACKET_CHANNEL_REQUEST = 13, /*13*/
411 MAC_EM_UL_TBF_CELL_UPDATE_IN_PACKET_CHANNEL_REQUEST = 14, /*14*/
412 MAC_EM_UL_TBF_MM_PROCEDURE_IN_PACKET_CHANNEL_REQUEST = 15, /*15*/
413 MAC_EM_UL_TBF_SINGLE_BLOCK_WITHOUT_TBF_ESTABLISHMENT_IN_PACKET_CHANNEL_REQUEST = 16, /*16*/
414 MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_RLC_UNACK_MODE_IN_PACKET_CHANNEL_REQUEST = 17, /*17*/
415 MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_EGPRS_PACKET_CHANNEL_REQUEST = 21, /*21*/
416 MAC_EM_UL_TBF_TWO_PHASE_ACCESS_IN_EGPRS_PACKET_CHANNEL_REQUEST = 22, /*22*/
417 MAC_EM_UL_TBF_SIGNALLING_IN_EGPRS_PACKET_CHANNEL_REQUEST = 23, /*23*/
418 MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_RLC_UNACK_MODE_IN_EGPRS_PACKET_CHANNEL_REQUEST = 24, /*24*/
419 MAC_EM_UL_TBF_CHANNEL_REQUEST_IN_PACKET_DOWNLINK_ACK_NACK = 31, /*31*/
420 MAC_EM_UL_TBF_CHANNEL_REQUEST_IN_EGPRS_PACKET_DOWNLINK_ACK_NACK = 32, /*32*/
421 MAC_EM_UL_TBF_USER_DATA_IN_DTM_REQUEST = 51, /*51*/
422 MAC_EM_UL_TBF_PAGE_RESPONSE_IN_DTM_REQUEST = 52, /*52*/
423 MAC_EM_UL_TBF_CELL_UPDATE_IN_DTM_REQUEST = 53, /*53*/
424 MAC_EM_UL_TBF_MM_PROCEDURE_IN_DTM_REQUEST = 54 /*54*/
425} mac_em_ul_tbf_establishment_cause;
426
427typedef enum
428{
429 MAC_EM_UL_TBF_ONE_PHASE_ACCESS = 1, /*1*/
430 MAC_EM_UL_TBF_TWO_PHASE_ACCESS = 2, /*2*/
431 MAC_EM_UL_TBF_SINGLE_BLOCK_OR_MULTI_BLOCK_ACCESS = 3, /*3*/
432 MAC_EM_UL_TBF_GPRS_OR_EGPRS_PACKET_DOWNLINK_ACK_NACK_CHANNEL_REQUEST = 4, /*4*/
433 MAC_EM_UL_TBF_DTM_REQUEST = 5 /*5*/
434} mac_em_ul_tbf_establishment_type;
435
436typedef enum
437{
438 MAC_EM_UL_TBF_SUCCEEDED = 1, /*1*/
439 MAC_EM_UL_TBF_FAILED = 2, /*2*/
440 MAC_EM_UL_TBF_REJECTED = 3, /*3*/
441 MAC_EM_UL_TBF_ABORTED = 4 /*4*/
442} mac_em_ul_tbf_establishment_status;
443#endif /* __MODEM_EM_MODE__ */
444
445#endif /* _MAC_ENUMS_H */