blob: ec09637da35517d8fd6f010b3b3005c83efc8742 [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) 2016
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* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 2002-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44/*****************************************************************************
45*
46* FILE NAME : FTAPF.h
47*
48* DESCRIPTION : Varaibles and API definition for FTAP module.
49*
50* HISTORY :
51*****************************************************************************/
52#ifndef _FTAPF_H_
53#define _FTAPF_H_
54
55#include "do_dsaapi.h"
56#include "do_fcpapi.h"
57#include "fcpdefs.h"
58
59#define FTAP_OTA_MESSAGEID_LEN 8
60#define FTAP_OTA_TRANSID_LEN 8
61#define FETAP_PARAASSIGNMSG_RECORD_NUM 5
62#define FTAP_PARAASSIGNMSG_RECORD_NUM 4
63#define FTAP_PARAM_ASSIGN_ATTR_LEN 8
64#define FTAP_PARAM_ASSIGN_ATTR_ID_LEN 8
65#define FTAP_PARAM_ASSIGN_ATTR_VAL_LEN 8
66#define FTAP_STATISTICREQ_RECORD_NUM 3
67#define FTAP_STATUS_ATTR_LEN 8
68#define FTAP_STATUS_ATTR_ID_LEN 8
69#define FTAP_STATUS_ATTR_PARAM1_OVERFLOW_LEN 1
70#define FTAP_STATUS_ATTR_PARAM1_VALUE_LEN 15
71#define FTAP_STATUS_ATTR_PARAM2_OVERFLOW_LEN 1
72#define FTAP_STATUS_ATTR_PARAM2_VALUE1_LEN 23
73#define FTAP_STATUS_ATTR_PARAM2_VALUE2_LEN 15 /*Only for CCTime*/
74#define FTAP_LOOPBACK_PRO_LEN 2
75#define FTAP_LOOPBACK_PKTTYPE_LEN 4
76#define FTAP_LOOPBACK_SEQ_LEN 14
77#define FTAP_LOOPBACK_RES_LEN 2
78
79#define PENDING_TRAFFICCMP 0x01
80#define PENDING_STATUSGETRSP 0x02
81#define PENDING_STATUSCLRRSP 0x04
82
83#define CONFIGTIMER_INTERVAL 4000
84#define CONFIGSTAT_INTERVAL 2000
85
86typedef enum
87{
88 FCP_FTAP_INIT_SUBTYPE_ERR,
89 FCP_FTAP_STATE_ERR,
90 FCP_FTAP_OTA_PARAMASSIGN_MSG_ID_ERR,
91 FCP_FTAP_DECODE_OTA_PARAMASSIGN_MSG_ID_ERR,
92 FCP_FTAP_OTA_PARAMASSIGN_ERR,
93 FCP_FTAP_OTA_STATUS_CLR_GET_MSG_ID_ERR,
94 FCP_FTAP_OTA_STATUS_GET_MSG_ID_ERR,
95 FCP_FTAP_OTA_STATUS_GET_MSG_ERR,
96 FCP_FTAP_MSG_ID_ERR,
97 FCP_FTAP_INIT_ERR,
98 FCP_FTAP_TIME_EXP_ERR,
99 FCP_FTAP_FORWARD_LINK_ERR,
100 FCP_FTAP_DSAR_TX_STATUS_ERR,
101}FtapfErrT;
102
103/*keep order with ALMP*/
104typedef enum
105{
106 FTAP_INIT_STATE,
107 FTAP_IDLE_STATE,
108 FTAP_CONN_SETUP_STATE,
109 FTAP_CONNECTED_STATE
110} FtapStateT;
111
112typedef enum
113{
114 FTAP_PARAM_ASSIGN_MESSAGE = 0x00,
115 FTAP_PARAM_ASSIGN_CMP_MESSAGE = 0x01,
116 FTAP_STATS_CLR_REQ_MESSAGE = 0x02,
117 FTAP_STATS_CLR_RSP_MESSAGE = 0x03,
118 FTAP_STATS_GET_REQ_MESSAGE = 0x04,
119 FTAP_STATS_GET_RSP_MESSAGE = 0x05,
120 NUM_MSG
121}FtapMsgTypeT;
122
123typedef enum
124{
125 DRCValueFixedModeAttrID = 0x00,
126 DRCCoverFixedModeAttrID = 0x01,
127 ACKChanBitFixedModeAttrID = 0x02,
128 LoopBackModeAttrID = 0x03,
129 AckChannelModulationType = 0x04,
130 NUM_TYPE
131}FtapParamRecAttriIDType;
132
133typedef enum
134{
135 FTAP_CONFIG_ID,
136 FTAP_STAT_GET_ID,
137 FTAP_STAT_CLR_ID,
138 NUM_MSG_ID
139}FtapTimerIdType;
140
141typedef enum
142{
143 FTAP_PARAM_ASSIGN_CMP_MSG_TRANSID = 0x10,
144 FTAP_STAT_GET_RSP_TRANSID,
145 FTAP_STAT_CLR_RSP_TRANSID,
146 NUM_TRANSID
147} FtapTransIdType;
148
149typedef enum
150{
151 IdleASPStatesAttrID = 0x04,
152 ConnectedSSStatesAttrID = 0x05,
153 FirstSyncCCPktStatesAttrID = 0x06
154}FtapStatisticsRecAttriIDType;
155
156typedef struct
157{
158 kal_uint16 ConnectionSSChange;
159 kal_uint32 ConnectedTime;
160 kal_uint32 ConnectedTimeStarted;
161 kal_uint16 FirstSyncCCPkt;
162 kal_uint16 CCTime;
163 kal_uint32 CCTimeStarted;
164 kal_uint32 IdleASPChange;
165 kal_uint32 IdleTime;
166 kal_uint32 IdleTimeStarted;
167}FtapStatisticsT;
168
169typedef struct
170{
171 kal_timerid TimerId;
172 kal_bool bTimeCreated;
173}FtapTimeT;
174
175typedef struct
176{
177 kal_bool bAckChannelBitFixedMode;
178 kal_uint8 AckChannelBit;
179 kal_bool bDRCCoverFixedMode;
180 kal_uint8 DRCCover;
181 kal_bool bDRCValueFixedMode;
182 kal_uint8 DRCValue;
183 kal_bool bAckChannelModulationMode;
184 kal_uint8 ACKChannelModulationType;
185 kal_bool bLoopBackEnable;
186 kal_uint8 LoopBackPersistence;
187 FtapTimeT timer[NUM_MSG_ID];
188 kal_uint8 MsgTransId[NUM_MSG_ID];
189 kal_uint8 TCAMsgSeq;
190 FtapStateT state;
191 kal_bool bInit;
192 kal_uint16 SubApp;
193 kal_uint8 ProtocolType;
194}FtapMode;
195
196typedef struct
197{
198 kal_uint8 len;
199 kal_uint8 AttrID;
200 kal_uint8 RecValue;
201}FtapAttriRecT;
202
203typedef struct
204{
205 kal_uint8 TransId;
206 kal_uint8 AttriNum;
207 FtapAttriRecT AttriRec[FETAP_PARAASSIGNMSG_RECORD_NUM];
208}FtapParaAssignMsgT;
209
210typedef struct
211{
212 kal_uint8 TransId;
213 kal_uint8 AttrNum;
214 FtapStatisticsRecAttriIDType AttrId[FTAP_STATISTICREQ_RECORD_NUM];
215}FtapStatsReqMsgT;
216
217typedef PACKED_PREFIX struct
218{
219 kal_uint8 IdleASPStats;
220 kal_uint8 ConnectedSSStats;
221 kal_uint8 FirstSyncCCPktStats;
222} PACKED_POSTFIX FtapEtsStatClrGetReqMsgT;
223
224typedef struct
225{
226 kal_uint8 FtapClrReqTransId;
227 kal_uint8 FtapGetReqTransId;
228}FtapEtsClrGetReqMsgInfoT;
229
230typedef PACKED_PREFIX struct
231{
232 kal_uint32 IdleASPChange;
233 kal_uint32 IdleTime;
234 kal_uint32 ConnectedSSChange;
235 kal_uint32 ConnectedTime;
236 kal_uint32 FirstSyncCCPkt;
237 kal_uint32 CCTime;
238} PACKED_POSTFIX FtapStatSpyT;
239
240void RunFtapfStateMachine(ilm_struct *current_ilm);
241void ProcessFtapDsaFwdMsg(DsaFwdMsgT *MsgDataP);
242kal_bool FtapProcessDsarTxStatusMsg(DsarTxStatusMsgT *StatusMsgP);
243
244extern FtapMode _ftapMode;
245
246#endif
247