[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/l2_c2k/evdo/rtap.h b/mcu/interface/protocol/l2_c2k/evdo/rtap.h
new file mode 100644
index 0000000..ea9187f
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/evdo/rtap.h
@@ -0,0 +1,354 @@
+/*****************************************************************************
+* 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) 2006-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _RTAP_H_
+#define _RTAP_H_
+/*****************************************************************************
+*
+* FILE NAME : rtap.h
+*
+* DESCRIPTION : This file contains function prototypes and other definitions
+* for the Reverse TAP application
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+* Include Files
+----------------------------------------------------------------------------*/
+#include "sysdefs.h"
+#include "do_dsaapi.h"
+/*----------------------------------------------------------------------------
+Defines And Macros
+----------------------------------------------------------------------------*/
+#define RTAP_MAX_PACKET_NUM 16
+#define RTAP_MAX_RATE_INDEX 5
+#define RTAP_MAX_PAYLOAD_INDEX 12
+#define MAX_SUB_STREAM_NUM 4
+
+extern kal_uint8 RtapTestMode;
+/*----------------------------------------------------------------------------
+ structure definitions
+----------------------------------------------------------------------------*/
+typedef enum
+{
+ RTAP_START_TIMERID,
+ RTAP_CFG_TIMERID = RTAP_START_TIMERID,
+ RTAP_STAT_TIMERID,
+ RTAP_MAX_TIMERID
+} RtapTimerEnumT;
+
+typedef enum
+{
+ RCP_RTAP_INIT_SUBTYPE_ERR,
+ RCP_RTAP_GRANT_ERR,
+ RCP_RTAP_RATEINDEX_ERR,
+ RCP_RTAP_PAYLOADINDEX_ERR,
+ RCP_RTAP_OTAMSG_DEC_ERR,
+ RCP_RTAP_LINKFLOWNUM_ERR,
+ RCP_RTAP_CBBUF_ERR
+} RtapErrEnumT;
+
+typedef enum
+{
+ RTAP_INACTIVE,
+ RTAP_IDLE,
+ RTAP_CONNECTED,
+} RtapStatEnumT;
+
+typedef enum
+{
+ PARAMETER_ASSIGNMENT_MSG_ID=0x80,
+ PARAMETER_COMPLETE_MSG_ID,
+ STATS_CLEAR_REQ_MSG_ID,
+ STATS_CLEAR_RSP_MSG_ID,
+ STATS_GET_REQ_MSG_ID,
+ STATS_GET_RSP_MSG_ID
+} RtapMsgIdEnumT;
+
+typedef enum
+{
+ TEST_PKT_ENABLE_ID,
+ PKT_RATE_MODE_ID,
+ PKT_PAYLOAD_SIZE_MODE_ID,
+ EN_ACCESS_CHAN_RATE_MODE_ID,
+ BURST_PERIOD_MODE_ID,
+ BURST_SIZE_MODE_ID
+} RtapRecIdEnumT;
+
+typedef struct RtapPkt
+{
+ kal_bool bSent;
+ CpBufferT *pPktBuf; /*The payload buffer*/
+ struct RtapPkt *pNext;
+} RtapPktT;
+
+typedef struct
+{
+ kal_uint8 num; /*number of records*/
+ RtapPktT* pHead;
+ RtapPktT* pCurrent;
+ RtapPktT* pTail;
+} RtapPktListT;
+
+
+/*--- Test Parameters Structures---*/
+typedef struct
+{
+ kal_uint8 Upper7;
+ kal_uint32 Lower32;
+} SysSubFrameTimeT;/*in unit of subframes*/
+
+typedef struct
+{
+ kal_uint8 LinkFlowID;
+ kal_uint8 revMacId;
+ kal_uint8 PayLoadIndex;
+ kal_uint32 Sequence[RTAP_MAX_PAYLOAD_INDEX+1];
+ SysSubFrameTimeT RevSysTime;
+} RtapPL_2InfoT;
+
+typedef union
+{
+ kal_uint16 Seq_Num[RTAP_MAX_RATE_INDEX+1]; /*12 bits*/
+ RtapPL_2InfoT PL_2Info[MAX_SUB_STREAM_NUM];/*There are 2^8 substream_number at most*/
+} RtapTestInfoT;
+
+typedef struct
+{
+ RtapTestInfoT TestParm;
+ kal_uint8 LinkNum;
+ kal_uint16 SubType;
+ kal_uint8 RevMacId;
+ kal_uint16 ProtocolType; /*Store stream type for sending Rev OTA message*/
+ kal_uint8 ConnFlag; /*used to record open connection reason(ParameterAssignment,StatClearRequest,StatGetRequest)*/
+ kal_uint8 Index; /*RateIndex*/
+ kal_uint8 TestPktOverflowBit;
+ kal_uint32 BurstSize; /*used to record remained BurstSize*/
+ CpBufferT* pPktBuf; /*used to put Fill Packet or PL_2 Packet*/
+ kal_uint16 PktOffset;
+ kal_uint16 PktLen;
+} RtapTestParmT;
+
+/*---- Configuration Parameters Structures ----*/
+typedef struct
+{
+ kal_uint8 LinkNum;
+ kal_uint8 LinkFlowId[MAX_SUB_STREAM_NUM];
+ kal_uint16 BurstPeriod[MAX_SUB_STREAM_NUM];
+ kal_uint16 BurstSize[MAX_SUB_STREAM_NUM];
+} BurstInfoRec;
+
+/* RTAP Cfg Parameters*/
+typedef struct
+{
+ kal_bool bInCfg;
+ kal_uint16 SubType;
+ kal_bool bTestPktMode;
+ kal_uint8 TestPktPersistence;
+ kal_bool bCfgPktRateMode;
+ kal_bool bCfgPktPayloadSizeMode;
+ kal_bool bCfgEnACRateMode;
+ kal_bool bCfgBurstMode;
+ BurstInfoRec BurstInfo;
+ kal_uint8 ParmAssigTranId; /*mod 256, 0xff means NULL*/
+ kal_uint8 StatsClearTranId; /*mod 256, 0xff means NULL*/
+ kal_uint8 StatsReqTranId; /*mod 256, 0xff means NULL*/
+} RtapParmsT;
+
+typedef struct
+{
+ kal_uint8 MacFlowId;
+ kal_uint8 LinkFlowId;
+} LinkFlowInfoT;
+
+/*RETAPParameterAssignment message info*/
+typedef struct
+{
+ kal_uint8 TransID;
+ kal_bool TestPktEnableInc;
+ kal_uint8 TestPktPersistence;
+ kal_bool PktRateModeInc;
+ kal_uint8 MinRateIndex;
+ kal_uint8 MaxRateIndex;
+ kal_bool PktPayloadSizeModeInc;
+ kal_uint8 MinPayloadSizeIndex;
+ kal_uint8 MaxPayloadSizeIndex;
+ kal_bool EnACRateModeInc;
+ kal_uint8 EnACRateIndex;
+ kal_bool BurstPeriodModeInc;
+ kal_uint8 LinkFlowID;
+ kal_uint16 BurstPeriod;
+ kal_bool BurstSizeModeInc;
+ kal_uint8 BurstSize;
+} REtapParamAssignMsgT;
+
+/*RTAPParameterAssignment message info*/
+typedef struct
+{
+ kal_uint8 TransID;
+ kal_bool TestPktEnableInc;
+ kal_uint8 TestPktPersistence;
+ kal_bool PktRateModeInc;
+ kal_uint8 MinRateIndex;
+ kal_uint8 MaxRateIndex;
+} RtapParamAssignMsgT;
+
+/* RTAP_TIMER_EXPIRED_MSG */
+typedef struct
+{
+ kal_uint32 TimerId;
+} RtapTimerExpiredMsgT;
+
+typedef struct
+{
+#if defined (RCP_RI_HRT_DEV)
+ kal_uint32 TimerCb;
+#else
+ kal_timerid TimerCb;
+#endif
+ kal_bool Active;
+} RtapExeTimerT;
+
+/* RTAP OTA message structure*/
+typedef struct /*TestPktEnable Parameter Record*/
+{
+ kal_uint8 TestPktPersistence;
+} TstPktEnaRec;
+
+typedef struct
+{
+ kal_uint8 MinRateIndex;
+ kal_uint8 MaxRateIndex;
+} PktRateModeRec;
+
+typedef struct
+{
+ kal_uint8 MinPayloadSizeIndex;
+ kal_uint8 MaxPayloadSizeIndex;
+} PktPLSizeModeRec;
+
+typedef struct
+{
+ kal_uint8 EnACRateIndex; /*0-9.6kbps,1-19.2kbps,2-38.4kbps*/
+} EnACRateModeRec;
+
+typedef struct
+{
+ kal_uint8 LinkFlowID;
+ kal_uint16 BurstPeriod; /*in units of 600 slots, 0xffff=infinite*/
+} BurstPeriodModeRec;
+
+typedef struct
+{
+ kal_uint8 LinkFlowID;
+ kal_uint16 BurstSize; /*in units of 1000 octets,0xffff=full buffer*/
+} BurstSizeModeRec;
+
+/* RTAPParameterAssignment */
+typedef struct
+{
+ kal_bool TstPktEnaInc;
+ TstPktEnaRec TstPktEnableParm;
+ kal_bool PktRateModeInc;
+ PktRateModeRec PktRateModeParm;
+} RtapParmAssignMsgT;
+
+/* RETAPParameterAssignment */
+typedef struct
+{
+ kal_bool TstPktEnaInc;
+ TstPktEnaRec TstPktEnableParm;
+ kal_bool PktRateModeInc;
+ PktRateModeRec PktRateModeParm;
+ kal_bool PktPayloadSizeModeInc;
+ PktPLSizeModeRec PktPLSizeModeParm;
+ kal_bool EnACRateModeInc;
+ EnACRateModeRec EnACRateModeParm;
+ kal_uint8 LinkNum;
+ kal_bool BurstPeriodModeInc;
+ BurstPeriodModeRec BurstPeriodModeParm[MAX_SUB_STREAM_NUM];
+ kal_bool BurstSizeModeInc;
+ BurstSizeModeRec BurstSizeModeParm[MAX_SUB_STREAM_NUM];
+} RetapParmAssignMsgT;
+
+typedef struct
+{
+ RtapStatEnumT RtapState;
+ kal_uint16 AppType;
+ kal_uint8 bTestPktMode;
+ kal_uint8 TestPktPersistence;
+ kal_uint8 bCfgPktRateMode;
+ kal_uint8 bCfgPktPayloadSizeMode;
+ kal_uint8 bCfgEnACRateMode;
+ kal_uint8 bCfgBurstMode;
+ kal_uint8 bTstPktOverWrite;
+ kal_uint8 PktBufNum;
+} RtapSpyStatesT;
+/*----------------------------------------------------------------------------
+API Functions
+----------------------------------------------------------------------------*/
+void RtapInitStructure(kal_uint16 SubType, kal_bool InUse);
+void RtapCommit (MacFlow2StrFlowMappingT *RtapMacFlowTable, kal_uint8 StreamNum);
+void RtapProcessRcpSig( kal_bool anyGrant);
+void RtapHandleConnCloseMsg( void);
+void RtapHandleConnOpenMsg( void);
+void RtapInit( void );
+void RtapHandleFwdOtaMsg( DsaFwdMsgT* pMsg );
+void RtapHandleEvtTmExpireMsg (kal_uint32 TimerId);
+void RtapHandleEvtBurstTmExpireMsg (kal_uint32 TimerId);
+void RtapHandleTxStatusMsg(DsarTxStatusMsgT* pMsg);
+kal_bool RtapGetMaxPriority(BestPktInfoT* pBestPkt,kal_uint8 subStreamNum);
+void RtapPktSent (kal_uint8 revMacId,kal_uint8 subStreamNum);
+void RtapPktNotSent (kal_uint8 revMacId,kal_uint8 subStreamNum);
+kal_uint16 RtapGrant (DatapktlistGT* pPktList, kal_uint16 grantSize, kal_uint8 revMacId,kal_uint8 subStreamNum);
+kal_uint32 RtapGetQueSz(kal_uint8 macFlowId, kal_uint8 subStreamNum);
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
+