blob: ec09637da35517d8fd6f010b3b3005c83efc8742 [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) 2016
*
* 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).
*
*****************************************************************************/
/*************************************************************
*
* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
*
* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
*
* Copyright (c) 2002-2010 VIA Telecom, Inc. All rights reserved.
*
*************************************************************/
/*****************************************************************************
*
* FILE NAME : FTAPF.h
*
* DESCRIPTION : Varaibles and API definition for FTAP module.
*
* HISTORY :
*****************************************************************************/
#ifndef _FTAPF_H_
#define _FTAPF_H_
#include "do_dsaapi.h"
#include "do_fcpapi.h"
#include "fcpdefs.h"
#define FTAP_OTA_MESSAGEID_LEN 8
#define FTAP_OTA_TRANSID_LEN 8
#define FETAP_PARAASSIGNMSG_RECORD_NUM 5
#define FTAP_PARAASSIGNMSG_RECORD_NUM 4
#define FTAP_PARAM_ASSIGN_ATTR_LEN 8
#define FTAP_PARAM_ASSIGN_ATTR_ID_LEN 8
#define FTAP_PARAM_ASSIGN_ATTR_VAL_LEN 8
#define FTAP_STATISTICREQ_RECORD_NUM 3
#define FTAP_STATUS_ATTR_LEN 8
#define FTAP_STATUS_ATTR_ID_LEN 8
#define FTAP_STATUS_ATTR_PARAM1_OVERFLOW_LEN 1
#define FTAP_STATUS_ATTR_PARAM1_VALUE_LEN 15
#define FTAP_STATUS_ATTR_PARAM2_OVERFLOW_LEN 1
#define FTAP_STATUS_ATTR_PARAM2_VALUE1_LEN 23
#define FTAP_STATUS_ATTR_PARAM2_VALUE2_LEN 15 /*Only for CCTime*/
#define FTAP_LOOPBACK_PRO_LEN 2
#define FTAP_LOOPBACK_PKTTYPE_LEN 4
#define FTAP_LOOPBACK_SEQ_LEN 14
#define FTAP_LOOPBACK_RES_LEN 2
#define PENDING_TRAFFICCMP 0x01
#define PENDING_STATUSGETRSP 0x02
#define PENDING_STATUSCLRRSP 0x04
#define CONFIGTIMER_INTERVAL 4000
#define CONFIGSTAT_INTERVAL 2000
typedef enum
{
FCP_FTAP_INIT_SUBTYPE_ERR,
FCP_FTAP_STATE_ERR,
FCP_FTAP_OTA_PARAMASSIGN_MSG_ID_ERR,
FCP_FTAP_DECODE_OTA_PARAMASSIGN_MSG_ID_ERR,
FCP_FTAP_OTA_PARAMASSIGN_ERR,
FCP_FTAP_OTA_STATUS_CLR_GET_MSG_ID_ERR,
FCP_FTAP_OTA_STATUS_GET_MSG_ID_ERR,
FCP_FTAP_OTA_STATUS_GET_MSG_ERR,
FCP_FTAP_MSG_ID_ERR,
FCP_FTAP_INIT_ERR,
FCP_FTAP_TIME_EXP_ERR,
FCP_FTAP_FORWARD_LINK_ERR,
FCP_FTAP_DSAR_TX_STATUS_ERR,
}FtapfErrT;
/*keep order with ALMP*/
typedef enum
{
FTAP_INIT_STATE,
FTAP_IDLE_STATE,
FTAP_CONN_SETUP_STATE,
FTAP_CONNECTED_STATE
} FtapStateT;
typedef enum
{
FTAP_PARAM_ASSIGN_MESSAGE = 0x00,
FTAP_PARAM_ASSIGN_CMP_MESSAGE = 0x01,
FTAP_STATS_CLR_REQ_MESSAGE = 0x02,
FTAP_STATS_CLR_RSP_MESSAGE = 0x03,
FTAP_STATS_GET_REQ_MESSAGE = 0x04,
FTAP_STATS_GET_RSP_MESSAGE = 0x05,
NUM_MSG
}FtapMsgTypeT;
typedef enum
{
DRCValueFixedModeAttrID = 0x00,
DRCCoverFixedModeAttrID = 0x01,
ACKChanBitFixedModeAttrID = 0x02,
LoopBackModeAttrID = 0x03,
AckChannelModulationType = 0x04,
NUM_TYPE
}FtapParamRecAttriIDType;
typedef enum
{
FTAP_CONFIG_ID,
FTAP_STAT_GET_ID,
FTAP_STAT_CLR_ID,
NUM_MSG_ID
}FtapTimerIdType;
typedef enum
{
FTAP_PARAM_ASSIGN_CMP_MSG_TRANSID = 0x10,
FTAP_STAT_GET_RSP_TRANSID,
FTAP_STAT_CLR_RSP_TRANSID,
NUM_TRANSID
} FtapTransIdType;
typedef enum
{
IdleASPStatesAttrID = 0x04,
ConnectedSSStatesAttrID = 0x05,
FirstSyncCCPktStatesAttrID = 0x06
}FtapStatisticsRecAttriIDType;
typedef struct
{
kal_uint16 ConnectionSSChange;
kal_uint32 ConnectedTime;
kal_uint32 ConnectedTimeStarted;
kal_uint16 FirstSyncCCPkt;
kal_uint16 CCTime;
kal_uint32 CCTimeStarted;
kal_uint32 IdleASPChange;
kal_uint32 IdleTime;
kal_uint32 IdleTimeStarted;
}FtapStatisticsT;
typedef struct
{
kal_timerid TimerId;
kal_bool bTimeCreated;
}FtapTimeT;
typedef struct
{
kal_bool bAckChannelBitFixedMode;
kal_uint8 AckChannelBit;
kal_bool bDRCCoverFixedMode;
kal_uint8 DRCCover;
kal_bool bDRCValueFixedMode;
kal_uint8 DRCValue;
kal_bool bAckChannelModulationMode;
kal_uint8 ACKChannelModulationType;
kal_bool bLoopBackEnable;
kal_uint8 LoopBackPersistence;
FtapTimeT timer[NUM_MSG_ID];
kal_uint8 MsgTransId[NUM_MSG_ID];
kal_uint8 TCAMsgSeq;
FtapStateT state;
kal_bool bInit;
kal_uint16 SubApp;
kal_uint8 ProtocolType;
}FtapMode;
typedef struct
{
kal_uint8 len;
kal_uint8 AttrID;
kal_uint8 RecValue;
}FtapAttriRecT;
typedef struct
{
kal_uint8 TransId;
kal_uint8 AttriNum;
FtapAttriRecT AttriRec[FETAP_PARAASSIGNMSG_RECORD_NUM];
}FtapParaAssignMsgT;
typedef struct
{
kal_uint8 TransId;
kal_uint8 AttrNum;
FtapStatisticsRecAttriIDType AttrId[FTAP_STATISTICREQ_RECORD_NUM];
}FtapStatsReqMsgT;
typedef PACKED_PREFIX struct
{
kal_uint8 IdleASPStats;
kal_uint8 ConnectedSSStats;
kal_uint8 FirstSyncCCPktStats;
} PACKED_POSTFIX FtapEtsStatClrGetReqMsgT;
typedef struct
{
kal_uint8 FtapClrReqTransId;
kal_uint8 FtapGetReqTransId;
}FtapEtsClrGetReqMsgInfoT;
typedef PACKED_PREFIX struct
{
kal_uint32 IdleASPChange;
kal_uint32 IdleTime;
kal_uint32 ConnectedSSChange;
kal_uint32 ConnectedTime;
kal_uint32 FirstSyncCCPkt;
kal_uint32 CCTime;
} PACKED_POSTFIX FtapStatSpyT;
void RunFtapfStateMachine(ilm_struct *current_ilm);
void ProcessFtapDsaFwdMsg(DsaFwdMsgT *MsgDataP);
kal_bool FtapProcessDsarTxStatusMsg(DsarTxStatusMsgT *StatusMsgP);
extern FtapMode _ftapMode;
#endif