blob: 2002b861c045a746ba57dd27138bb3d415d555e8 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/******************************************************************************
* Filename:
* ---------
* mac_enums.h
*
* Project:
* --------
* UMOLY
*
* Description:
* ------------
*
* Author:
* -------
* -------
*
*=============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*=============================================================================
******************************************************************************/
/********************************************************************************
* Copyright Statement:
* --------------------
*
* This product has been developed using a protocol stack
* developed by Sasken Communication Technologies Limited.
*
********************************************************************************/
#ifndef _MAC_ENUMS_H
#define _MAC_ENUMS_H
typedef enum
{
MAC_IDLE,
MAC_PKT_ACCESS,
MAC_UL,
MAC_DL,
MAC_UL_DL,
MAC_NUM_STATES
} mac_state_enum;
/* Jelly Substate -bg- */
typedef enum
{
DL_NULL,
DL_SINGLE_BLK_IN_PROG,
DL_SINGLE_BLK_ACK_SENDING,
DL_TBF_PEND,
DL_TRANSFER,
DL_TRANSFER_REALLOC_TBF_PEND,
DL_TRANSFER_FINAL_ACK_PACKED,
DL_TRANSFER_FAI_SENT_T3192_STARTED,
DL_TRANSFER_TBF_PENDING_FROM_T3192,
DL_TRANSFER_ABNORMAL_REL_PEND,
DL_DISCONNECTING,
DL_SUBSTATE_NUM
} mac_dl_substate_enum;
typedef enum
{
ACS_NULL,
ACS_RLC_RES_REQ_SENT,
ACS_ONE_PHASE_TBF_PEND,
ACS_ONE_PHASE_CONTENTION,
ACS_ONE_PHASE_CONTENTION_REALLOC_PEND,
ACS_TWO_PHASE_SINGLE_BLK_PEND,
ACS_TWO_PHASE_PRR_SENT,
ACS_TWO_PHASE_TBF_PEND,
ACS_RMPC_RES_REQ_SENT,
ACS_UL_SINGLE_BLK_IN_PROG,
ACS_UL_SINGLE_BLK_DELETE,
ACS_SUBSTATE_NUM
} mac_acs_substate_enum;
typedef enum
{
UL_NULL,
UL_TRANSFER,
UL_TRANSFER_TBF_PEND,
UL_TRANSFER_REL_PEND,
UL_TRANSFER_ABNORMAL_REL_PEND,
#ifdef __TBF_EST__
UL_TBF_EST_WAITING,
UL_TBF_EST_ADDED,
UL_TBF_EST_SENT_AB,
UL_TBF_EST_SENT_NB,
UL_TBF_EST_SENT_AB_PUAS_POLL,
UL_TBF_EST_PEND_AB,
UL_TBF_EST_PEND_NB,
#endif /* __TBF_EST__ */
UL_SUBSTATE_NUM
} mac_ul_substate_enum;
typedef enum
{
RES_REQ_INVALID,
RES_REQ_RMPC_IN_RACH_IDLE,
RES_REQ_RLC_IN_RACH_IDLE,
RES_REQ_RLC_IN_CTRL_MSG_Q_ACS,
RES_REQ_RLC_SENT_ACS,
RES_REQ_RLC_PEND_TRANSFER,
RES_REQ_RLC_IN_CTRL_MSG_Q_TRANSFER,
RES_REQ_RLC_IN_PDAN_TRANSFER,
RES_REQ_RLC_SENT_TRANSFER,
RES_REQ_RLC_TBF_EST_SENT_IDLE,
RES_REQ_STATUS_NUM
} mac_res_req_status_enum;
/* Jelly Substate -ed- */
typedef enum
{
INVALID_TBF, /* Suppose this value is only used by PKT TS RECONFIG */
DL_TBF,
UL_TBF
} mac_tbf_direction_enum;
typedef enum
{
CELL_CHANGE_FAIL,
/* Lanslo 20070705: NACC */
#ifdef __GERAN_R4__
NACC_PCCN,
NACC_SI_STATUS,
#endif /* __GERAN_R4__ */
/* eo Lanslo 20070705: NACC */
PKT_MOBILE_TBF_STATUS,
MEASUREMENT_REPORT,
PKT_PSI_STATUS,
PKT_UL_DUMMY_CTRL,
#ifdef __EGPRS_MODE__
RESOURCE_REQ,
EGPRS_RES_REQ,
EGPRS_ARAC
#else /* __EGPRS_MODE__ */
RESOURCE_REQ
#endif /* __EGPRS_MODE__ */
} mac_prioritized_ctrl_msg_enum;
typedef enum
{
NORMAL_EVENT,
UNSPECIFIED_STATUS,
NON_DIST_PART_ERROR,
MSG_ESCAPE_ERROR,
NON_COMPATIBLE_MSG
} mac_tbf_cause_enum;
typedef enum
{
FREQ_PARAMS_NOTVALID,
FREQ_PARAMS_NOTINBAND,
FREQ_PARAMS_MISMATCH,
FREQ_PARAMS_OK
} mac_freq_params_enum;
typedef enum
{
BLOCKS,
BLOCK_PERIODS
} mac_blk_or_blk_period_enum;
typedef enum
{
DL_ASSIGN_NOT_VALID,
PKT_DL_ASSIGN_VALID,
IMM_DL_ASSIGN_VALID,
PDCH_DL_ASSIGN_VALID,
MTDAS_DL_ASSIGN_VALID
} mac_dl_assign_type_enum;
/* Exce 030707: To identify which direction of TBF the incoming CON_IND is for */
typedef enum
{
CON_IND_UNMATCH,
CON_IND_FOR_DL,
CON_IND_FOR_UL,
CON_IND_FOR_TS_RECONFIG
} mac_con_ind_enum;
/* Exce 031128: For PKT PDCH RELEASE */
typedef enum
{
MAC_PDCH_REL_LIMIT_OLD = 0,
MAC_PDCH_REL_LIMIT_ALL
} pdch_release_limit_enum;
typedef enum
{
MAC_PDTCH_NORMAL = 0,
MAC_PS_HO_START,
MAC_PS_HO_RECONN_ACTIVE,
MAC_PS_HO_RECONN_INACTIVE,
MAC_PDTCH_INACTIVE_AFTER_PS_HO
} mac_pdtch_connect_cause_enum;
typedef enum
{ /* shall sync with MAC_TIMER_NUM_MSGS value */
MAC_T3164_TIMER_ID = 0,
MAC_T3166_TIMER_ID, /*1*/
MAC_T3168_TIMER_ID, /*2*/
MAC_T3180_TIMER_ID, /*3*/
MAC_T3188_TIMER_ID, /*4*/
MAC_T3190_TIMER_ID, /*5*/
MAC_T3192_TIMER_ID, /*6*/
/* Katie 20130108: for RRBP to PUAN with FAI not sent,
wait 5 sec for retransmitted PUAN */
MAC_GuardPUAN_TIMER_ID, /*7*/
MAC_LCE_hyst_millis_TIMER_ID, /* 12 */
MAC_PACCH_PROTECT_TIMER_ID, /*8*/
#ifdef __MAC_RANDOM_PATTERN_TEST__
MAC_FakeMessage_TIMER_ID,
#endif
MAC_T8983_TIMER_ID, /*9*/ /* Custom timer To allow RRBP TX for POLL/PCA/PDAN for GCF MM/SM control messages, before TBF disconnect */
MAC_TOTAL_TIMER_NUM
} mac_timer_id_enum; /* MAC_TIMER Message Type */
#ifndef __MTK_TARGET__
typedef enum
{
MAC_TIMER_START,
MAC_TIMER_STOP,
MAC_TIMER_TIMEOUT
} mac_timer_action_enum;
#endif
/* Claire 050128 change : Implement EGPRS SRB mode */
#ifdef __EGPRS_MODE__
typedef enum
{
MAC_EGPRS_SRB_LOOP_NONE, /* SRB mode is not active */
MAC_EGPRS_SRB_LOOP_UL_TBF_ESTABLISHING, /* MAC is waiting for UL assignment */
MAC_EGPRS_SRB_LOOP_SUBMODE_ON, /* EGPRS SRB Loopback submode ON */
MAC_EGPRS_SRB_LOOP_SUBMODE_OFF /* EGPRS SRB Loopback submode OFF */
} egprs_srb_status_enum;
#endif /* __EGPRS_MODE__ */
/* Exce 030818: New exception handling mechanism for MAC */
typedef enum
{
MAC_MSG_EX_NO_EXCEPTION,
MAC_MSG_EX_INCOMPATIBLE_STATE, /* 1 */
MAC_MSG_EX_UNKNOWN_MSG, /* 2 */
MAC_MSG_EX_DIST_PART_ERR, /* 3 */
MAC_MSG_EX_ADDRESS_PART_ERR, /* 4 */
MAC_MSG_EX_NON_DIST_PART_ERR, /* 5 */
MAC_MSG_EX_MSG_ESC_ERR, /* 6 */
MAC_MSG_EX_IGNORE_LABEL_ERR, /* 7 */
MAC_MSG_EX_TRUNCATED_CONCACT_ERR, /* 8 */
MAC_MSG_EX_DECODE_ERR, /* 9 */
MAC_MSG_EX_MA_INVALID, /* 10 */
MAC_MSG_EX_SINGLE_BLOCK_GAP_TOO_SHORT, /* 11 */
MAC_MSG_EX_STARTING_TIME_NOT_PRESENT_FOR_FIXED_ALLOC, /* 12 */
MAC_MSG_EX_TFI_NOT_ASSIGNED, /* 13 */
MAC_MSG_EX_MULTISLOT_CAP_NOT_MEET, /* 14 */
MAC_MSG_EX_BEFORE_TIME_VALID_FOR_NON_DYNAMIC_ALLOC, /* 15 */
MAC_MSG_EX_FREQ_PARAM_NOT_PRESENT, /* 16 */
MAC_MSG_EX_FREQ_PARAM_INVALID, /* 17 */
MAC_MSG_EX_FREQ_PARAM_NOTINBAND, /* 18 */
MAC_MSG_EX_FREQ_PARAM_MISMATCH, /* 19 */
MAC_MSG_EX_MAC_MODE_MISMATCH, /* 20 */
MAC_MSG_EX_TBF_MODE_MISMATCH, /* 21 */
/* Exce 20040218: TLLI_MISMATCH_IN_ONE_PHASE ~ NO_UL_TS_IN_UL_ASSIGN are used by mac_pkt_access_exception_hdlr() only */
MAC_MSG_EX_TLLI_MISMATCH_IN_ONE_PHASE, /* 22 */
MAC_MSG_EX_TLLI_ABSENT_IN_ONE_PHASE, /* 23 */
MAC_MSG_EX_REACH_N3104_MAX_IN_ONE_PHASE, /* 24 */
MAC_MSG_EX_NOT_SENT_AS_T3164_TIMEOUT, /* 25 */
MAC_MSG_EX_SENT_NO_RESPONSE_AS_T3166_TIMEOUT, /* 26 */
MAC_MSG_EX_TLLI_MISMATCH_IN_TWO_PHASE, /* 27 */
MAC_MSG_EX_SENT_NO_RESPONSE_AS_T3168_TIMEOUT, /* 28 */
MAC_MSG_EX_TWO_PHASE_REQUESTED_BUT_ONE_PHASE_ASSIGNED, /* 29 */
MAC_MSG_EX_PKT_PDCH_REL_DURING_TWO_PHASE_CONTENTION, /* 30 */
MAC_MSG_EX_NO_UL_TS_IN_UL_ASSIGN, /* 31 */
MAC_MSG_EX_INCOMPATIBLE_CTRL_ACK_T3192, /* 32 */
MAC_MSG_EX_RLC_MODE_MISMATCH, /* 33 */
MAC_MSG_EX_MAC_MODE_INVALID_ASSIGNED_BY_NW, /* 34 */
#ifdef __TBF_EST__
MAC_MSG_EX_SINGLE_BLOCK_GAP_TOO_SHORT_TBF_EST, /* 35 */
#endif
#if defined(__GERAN_RTTI__) || defined(__GERAN_FANR__)
MAC_MSG_EX_REL7_PART_ERROR, /* 41 */
#endif
TOTAL_MAC_MSG_EX_END
} mac_msg_exception_enum;
typedef enum
{
OLD_TBF_POS_INVALID = 0,
BACK_UP_ALLOC,
ACTIVE_ALLOC
} old_tbf_para_pos_in_ps_ho_enum;
typedef enum
{
BSIC_SYNC_FAIL = 0,
T3216_TIMEOUT,
T3218_TIMEOUT,
G2U_ACTIVE_FAIL
} mac_ps_ho_fail_cause;
typedef enum
{
MAC_NON_TBF_VALID = 0,
MAC_ACTIVE_VALID,
MAC_INACTIVE_VALID
} mac_backup_tbf_status;
typedef enum
{
MAC_FIND_FIRST_1_FROM_MSB_TO_LSB,
MAC_FIND_FIRST_1_FROM_LSB_TO_MSB
} mac_find_first_1_dir_enum;
typedef enum
{
MAC_RXED_BLK_BITMAP_INVALID,
MAC_RXED_BLK_BITMAP_ALL_NACKED,
MAC_RXED_BLK_BITMAP_SOME_NACKED,
MAC_RXED_BLK_BITMAP_ALL_ACKED
} mac_rxed_blk_bitmap_enum;
typedef enum
{
MAC_TFI_NOT_MATCH,
MAC_TFI_NOT_MATCH_FROM_NON_PACCH,
MAC_TFI_MATCH
} mac_tfi_match_status_enum;
#ifdef __MODEM_EM_MODE__
typedef enum
{
MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_CHANNEL_REQUEST = 1, /*1*/
MAC_EM_UL_TBF_SINGLE_BLOCK_OR_TWO_PHASE_ACCESS_IN_CHANNEL_REQUEST = 2, /*2*/
MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_PACKET_CHANNEL_REQUEST = 11, /*11*/
MAC_EM_UL_TBF_TWO_PHASE_ACCESS_IN_PACKET_CHANNEL_REQUEST = 12, /*12*/
MAC_EM_UL_TBF_PAGE_RESPONSE_IN_PACKET_CHANNEL_REQUEST = 13, /*13*/
MAC_EM_UL_TBF_CELL_UPDATE_IN_PACKET_CHANNEL_REQUEST = 14, /*14*/
MAC_EM_UL_TBF_MM_PROCEDURE_IN_PACKET_CHANNEL_REQUEST = 15, /*15*/
MAC_EM_UL_TBF_SINGLE_BLOCK_WITHOUT_TBF_ESTABLISHMENT_IN_PACKET_CHANNEL_REQUEST = 16, /*16*/
MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_RLC_UNACK_MODE_IN_PACKET_CHANNEL_REQUEST = 17, /*17*/
MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_EGPRS_PACKET_CHANNEL_REQUEST = 21, /*21*/
MAC_EM_UL_TBF_TWO_PHASE_ACCESS_IN_EGPRS_PACKET_CHANNEL_REQUEST = 22, /*22*/
MAC_EM_UL_TBF_SIGNALLING_IN_EGPRS_PACKET_CHANNEL_REQUEST = 23, /*23*/
MAC_EM_UL_TBF_ONE_PHASE_ACCESS_IN_RLC_UNACK_MODE_IN_EGPRS_PACKET_CHANNEL_REQUEST = 24, /*24*/
MAC_EM_UL_TBF_CHANNEL_REQUEST_IN_PACKET_DOWNLINK_ACK_NACK = 31, /*31*/
MAC_EM_UL_TBF_CHANNEL_REQUEST_IN_EGPRS_PACKET_DOWNLINK_ACK_NACK = 32, /*32*/
MAC_EM_UL_TBF_USER_DATA_IN_DTM_REQUEST = 51, /*51*/
MAC_EM_UL_TBF_PAGE_RESPONSE_IN_DTM_REQUEST = 52, /*52*/
MAC_EM_UL_TBF_CELL_UPDATE_IN_DTM_REQUEST = 53, /*53*/
MAC_EM_UL_TBF_MM_PROCEDURE_IN_DTM_REQUEST = 54 /*54*/
} mac_em_ul_tbf_establishment_cause;
typedef enum
{
MAC_EM_UL_TBF_ONE_PHASE_ACCESS = 1, /*1*/
MAC_EM_UL_TBF_TWO_PHASE_ACCESS = 2, /*2*/
MAC_EM_UL_TBF_SINGLE_BLOCK_OR_MULTI_BLOCK_ACCESS = 3, /*3*/
MAC_EM_UL_TBF_GPRS_OR_EGPRS_PACKET_DOWNLINK_ACK_NACK_CHANNEL_REQUEST = 4, /*4*/
MAC_EM_UL_TBF_DTM_REQUEST = 5 /*5*/
} mac_em_ul_tbf_establishment_type;
typedef enum
{
MAC_EM_UL_TBF_SUCCEEDED = 1, /*1*/
MAC_EM_UL_TBF_FAILED = 2, /*2*/
MAC_EM_UL_TBF_REJECTED = 3, /*3*/
MAC_EM_UL_TBF_ABORTED = 4 /*4*/
} mac_em_ul_tbf_establishment_status;
#endif /* __MODEM_EM_MODE__ */
#endif /* _MAC_ENUMS_H */