[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/l2_c2k/common/7074API.H b/mcu/interface/protocol/l2_c2k/common/7074API.H
new file mode 100644
index 0000000..761a1df
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/7074API.H
@@ -0,0 +1,199 @@
+/*************************************************************
+*
+* 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: 7074api.h
+ * Project: NSPE stack
+ *
+ * Original Author: Steve Pye
+ * Creation Date: July 10, 1998
+ *
+ * Description: Header file for 7074api.c
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ ************************************************************************/
+
+#ifndef _7074API_H_
+#define _7074API_H_ 1
+
+#include "USER_API.H"
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+
+/* Connect Status/Disconnect Reasons */
+#define IS707_CONNECT_SUCCESS 0
+#define IS707_CONNECT_FAIL_TCP 1
+#define IS707_CONNECT_FAIL_PPP 2
+#define IS707_CONNECT_FAIL_RLP 3
+#define IS707_CONNECT_FAIL_UART 4
+#define IS707_DISCONNECT_NORMAL 5
+#define IS707_CONNECTING_MIP 20
+#define IS707_DISCONNECTING_MIP 21
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+ CONN_FAIL_UNUSED = 0,
+ CONN_FAIL_PPP_AUTH_FAIL = 6,
+ CONN_FAIL_MIP_PPP_LCP_TMO,
+ CONN_FAIL_MIP_PPP_NCP_TMO,
+ CONN_FAIL_SIP_PPP_LCP_TMO,
+ CONN_FAIL_SIP_PPP_NCP_TMO,
+ CONN_FAIL_MIP_PPP_OPT_MISMATCH,
+ CONN_FAIL_SIP_PPP_OPT_MISMATCH,
+ CONN_FAIL_MIP_SOL_TMO,
+ CONN_FAIL_MIP_RRQ_TMO,
+ CONN_FAIL_MIP_RRP_ERR,
+ CONN_FAIL_MIP_LCP_FAIL,
+ CONN_FAIL_SIP_LCP_FAIL,
+ CONN_FAIL_MIP_NCP_FAIL,
+ CONN_FAIL_SIP_NCP_FAIL,
+ CONN_FAIL_PPP_A12_AUTH_FAIL,
+ CONN_FAIL_PPP_EAP_AKA_AUTH_FAIL,
+ CONN_FAIL_MIP_ADMIN_PROHIB_FAIL,
+ CONN_FAIL_MULTI_TCH_FAIL,
+ CONN_FAIL_PPP_A12_LCP_TMO,
+
+ /*the code from 64 to 144 have been token as MIP Error codes*/
+ /*GTR-DATA-SPEC*/
+ CONN_FAIL_MIP_UNSPECIFIED = 64,
+ CONN_FAIL_MIP_ADMIN_PROHIBITED = 65,
+ CONN_FAIL_MIP_INSUFF_RESOURCES_1 = 66,
+ CONN_FAIL_MIP_MN_FAILED_AUTH = 67,
+ CONN_FAIL_MIP_HA_FAILED_AUTH = 68,
+ CONN_FAIL_MIP_LIFETIME_TOO_LONG = 69,
+ CONN_FAIL_MIP_POORLY_FORMED_REQ = 70,
+ CONN_FAIL_MIP_POORLY_FORMED_REPLY = 71,
+ CONN_FAIL_MIP_ENCAP_UNAVAIL = 72,
+ CONN_FAIL_MIP_RESERVED_UNAVAIL = 73,
+ CONN_FAIL_MIP_REV_TUN_UNAVAIL = 74,
+ CONN_FAIL_MIP_RT_N_T_NOT_SET = 75,
+ CONN_FAIL_MIP_MN_TOO_DISTANT = 76,
+ CONN_FAIL_MIP_INVALID_CARE_OF_ADDR = 77,
+ CONN_FAIL_MIP_REG_TIMEOUT = 78,
+ CONN_FAIL_MIP_DS_NOT_SUPPORT = 79,
+ CONN_FAIL_MIP_HN_UNREACHABLE = 80,
+ CONN_FAIL_MIP_HA_HOST_UNREACHABLE = 81,
+ CONN_FAIL_MIP_HA_PORT_UNREACHABLE = 82,
+ CONN_FAIL_MIP_HA_UNREACHABLE = 88,
+ CONN_FAIL_MIP_VENDOR_SPECIFIC = 89,
+ CONN_FAIL_MIP_NONZERO_HA_ADDR = 90,
+ CONN_FAIL_MIP_NONZERO_HOME_ADDR = 96,
+ CONN_FAIL_MIP_MISSING_NAI = 97,
+ CONN_FAIL_MIP_MISSING_HA = 98,
+ CONN_FAIL_MIP_MISSING_HOME_ADDR = 99,
+ CONN_FAIL_MIP_UNKNOWN_CHALL = 104,
+ CONN_FAIL_MIP_MISSING_CHALL = 105,
+ CONN_FAIL_MIP_STALE_CHALL = 106,
+ CONN_FAIL_MIP_MISSING_MN_FA = 107,
+ CONN_FAIL_MIP_REASON_UNSPEC = 128,
+ CONN_FAIL_MIP_ADMIN_PROHIB = 129,
+ CONN_FAIL_MIP_INSUFF_RESOURCES_2 = 130,
+ CONN_FAIL_MIP_MN_FAILED_AUTH_2 = 131,
+ CONN_FAIL_MIP_FA_FAILED_AUTH = 132,
+ CONN_FAIL_MIP_IDENT_MISMATCH = 133,
+ CONN_FAIL_MIP_POORLY_FORMED_REQ_2 = 134,
+ CONN_FAIL_MIP_TOO_MANY_BINDINGS = 135,
+ CONN_FAIL_MIP_UNKNOWN_HA_ADDR = 136,
+ CONN_FAIL_MIP_REV_TUNNEL_UNAVAIL = 137,
+ CONN_FAIL_MIP_RT_N_T_NOT_SET_2 = 138,
+ CONN_FAIL_MIP_ENCAPSULATION_UNAVAIL = 139,
+ CONN_FAIL_MIP_REG_WITH_REDIRECTED = 143,
+ CONN_FAIL_MIP_ERR_CODE_FROM_HOME = 144
+}ConnFailReasonT;
+
+/* Async App -> Browser Control/Bottom of PPP functions for Browser Mode */
+void is7074HDLCPacketRxd( kal_uint8 *data, kal_uint16 size );
+void is7074AppIntEndConnection( kal_bool graceful );
+void is7074AppIntTxReq( kal_uint8 *data, kal_uint16 size, kal_bool push, kal_uint8 sap );
+void is7074AppIntRxRsp( kal_uint8 sap );
+void is7074BrowserSendDatagram( kal_uint8 sap, SendToRequest *s );
+void is7074BrowserRxRsp(kal_uint8 sap);
+
+/* RLP -> Bottom of PPP functions in all modes */
+void is7074RlpTxComplete( kal_bool rlp_channel );
+void is7074RlpHDLCPacketRxd( kal_uint8 app, kal_uint8 *data, kal_uint16 size );
+
+/* UART -> Bottom of PPP via the UART during Packet mode */
+void is7074UartHDLCPacketRxd( kal_uint8 *data, kal_uint16 size );
+
+/* 'IP or CLNP' -> Top of PPP (and then UART) functions for Packet Mode */
+void is7074RmPppConnect( kal_uint32 local_ip, kal_uint32 remote_ip );
+void is7074RmConnectStatus(kal_uint8 status);
+
+#ifdef PPP_RECONNECT
+void is7074RmPppReConnect( void );
+void is7074UmPppReConnect( kal_uint16 port);
+#endif
+
+/* TCP browser -> top of TCP/IP/PPP stack */
+void is7074TcpbEndConnection( kal_bool graceful );
+void is7074TcpbSendDataReq( kal_uint8 *data, kal_uint16 size, kal_bool push, kal_uint8 sap );
+void is7074TcpbRecvDataRsp( kal_uint8 sapRsp );
+
+kal_int16 is7074SocketCreate(kal_bool TcpType, kal_uint8 *sap);
+kal_int16 is7074SocketClose(kal_uint8 sap, kal_bool graceful);
+kal_int16 is7074SocketBind(kal_uint8 sap, kal_uint32 ipAddr, kal_uint16 port, kal_bool FromApp);
+void is7074SocketConnect(kal_uint8 sap, kal_bool passive, kal_uint32 ipAddr, kal_uint16 port);
+kal_int16 is7074SocketListen(kal_uint8 sap, kal_uint8 listenSap);
+kal_int16 is7074SocketOptionSet(kal_uint8 sap, kal_uint8 opt_type, kal_uint16 size);
+kal_int16 is7074SocketShutDown(kal_uint8 sap, kal_uint8 shutdown);
+kal_int16 is7074SocketSetLinger(kal_uint8 sap, kal_bool lingerOnoff, kal_uint32 lingerTime);
+
+/* Mobile IP */
+void is7074MipRrpRsp( kal_uint8 MipState, kal_bool deRegPassed );
+void is7074MipAgentAdvRsp( void );
+kal_bool is7074MipRrq(kal_uint32 srcIp, kal_uint32 dstIp, kal_uint16 srcPort, kal_uint16 dstPort, kal_uint16 len, kal_uint8* data);
+void is7074MipAgentSol(kal_uint32 srcIp, kal_uint32 dstIp, kal_uint16 len, kal_uint8* data );
+void is7074MipIpAddr(kal_uint32 LocalIp, kal_uint32 RemoteIp);
+void is7074MipIpInitAddr(kal_uint32 LocalIp, kal_uint32 RemoteIp);
+void is7074MipUmPppStatus( kal_uint8 status,kal_uint32 local_ip, kal_uint32 remote_ip );
+void is7074Md5(kal_uint8 *data, kal_uint16 dataLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *digest);
+void is7074Md5MIPCHAP(kal_uint8 *data, kal_uint16 dataLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *chal, kal_uint16 chalLen, kal_uint8 *digest);
+void is7074Md5SIPCHAP(kal_uint8 *id, kal_uint16 idLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *chal, kal_uint16 chalLen, kal_uint8 *digest);
+void is7074MipDMUVersionSet(kal_uint8 nDMUV);
+kal_uint8 is7074MipDMUVersionGet(void);
+void is7074MipPreferModeSet(kal_uint8 nMipPreferMode);
+kal_uint8 is7074MipPreferModeGet(void);
+void is7074MipConnFail (void);
+kal_bool HlpCheckAgpsData(kal_uint8 *IpData,kal_bool bMip);
+kal_uint8 HlpGetInternetPdnId(void);
+kal_bool is7074AppSendUdpPkt(kal_uint32 srcIp, kal_uint32 dstIp,
+ kal_uint16 srcPort, kal_uint16 dstPort,
+ kal_uint16 len, kal_uint8* data,kal_uint8 UdpSap);
+#ifdef CBP7_EHRPD
+kal_int16 is7074AppSendUdp4PppPkt(kal_uint32 srcIp, kal_uint32 dstIp,
+ kal_uint16 srcPort, kal_uint16 dstPort,
+ kal_uint16 len, kal_uint8* data,kal_uint8 UdpSap, kal_uint8 PdnId);
+#endif
+
+void is707_connect_lcp( kal_uint8 app );
+void is707_set_ppp_addr( kal_uint8 app, kal_uint32 local_ip, kal_uint32 remote_ip );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _7074API_H_ */
diff --git a/mcu/interface/protocol/l2_c2k/common/7074BIOS.H b/mcu/interface/protocol/l2_c2k/common/7074BIOS.H
new file mode 100644
index 0000000..0663f61
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/7074BIOS.H
@@ -0,0 +1,102 @@
+/*************************************************************
+*
+* 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: 7074bios.h
+ * Project: NSPE stack
+ *
+ * Original Author: Steve Pye
+ * Creation Date: July 10, 1998
+ *
+ * Description: Header file containing the TCP/UDP/IP/PPP
+ * Engine BIOS prototypes.
+ * Restrictions:
+ * Dependencies:
+ *
+ ************************************************************************/
+
+#ifndef _7074BIOS_H_
+#define _7074BIOS_H_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+
+#include "USER_API.H"
+#include "cpbuf.h"
+#include "do_rcpapi.h"
+#include "hlpdef.h"
+
+ /* 'Bottom' of App Int indications */
+void bios7074AppIntTCPConnectStatus( kal_uint8 connect_status,
+ kal_uint32 mobile_ip,
+ kal_uint32 iwf_ip );
+void bios7074AppIntRxInd ( kal_uint8 sap, kal_uint8 *data, kal_uint16 size );
+void bios7074AppIntTxRsp ( kal_uint8 sap, kal_int16 status );
+
+ /* Browser notifications */
+void bios7074BrowserRxDatagramInd( kal_uint8 sap, ReceiveFromRequest *r );
+void bios7074BrowserSendDatagramRsp(kal_uint8 sap, kal_int8 status);
+
+ /* PPP -> RLP commands/indications */
+void bios7074RlpSendData(CpBufferT* dataToSend, kal_uint16 Len, kal_uint16 offset, kal_uint8 RLPFlow, AppSubTypeT SvcStream, socketInfoT *dstSocket);
+
+ /* Top of PPP (and UART) -> 'IP or CLNP' functions for Packet Mode (Rm) */
+void bios7074RmPppConnectStatus( kal_uint8 status );
+
+ /* Top of PPP (and RLP) -> Network Layer functions for Packet Mode (Um) */
+void bios7074UmDormantReconnectReq(void);
+ /*
+ void bios7074UmLcpConnectStatus( kal_uint8 status );
+ void bios7074UmIpcpConnectStatus( kal_uint8 status,
+ kal_uint32 local_ip,
+ kal_uint32 remote_ip );
+ */
+void bios7074UmPppConnectStatus(kal_uint8 status,
+ kal_uint32 local_ip,
+ kal_uint32 remote_ip,
+ kal_uint32 priDNSaddr,
+ kal_uint32 secDNSaddr,
+ kal_bool IsAccessStream);
+void bios7074SocketConnStatus(kal_uint8 sap, kal_int16 status, kal_uint32 srcIP, kal_uint32 destIP, kal_uint16 srcPort, kal_uint16 dstPort);
+
+/* Configuration */
+void bios7074CfgGetUserInfo(kal_uint8 app, char** userName, char** password, kal_uint8 *lenPassword);
+#ifdef MTK_DEV_HLP_PPP_MNRP
+void bios7074CfgSetMNRPRegCounter(kal_uint8 regCounter);
+kal_uint8 bios7074CfgGetMNRPRegCounter(void);
+#endif
+kal_uint16 bios7074ReadTimer(kal_uint16 timer_id);
+
+/* Mobile IP */
+void bios7074MipAgentAdv (kal_uint32 srcIP, kal_uint32 destIP, kal_uint16 len, kal_uint8* data);
+void bios7074MipRrp (kal_uint32 srcIP, kal_uint32 destIP, kal_uint16 srcPort, kal_uint16 dstPort, kal_uint16 len, kal_uint8* data);
+void bios7074MipUmPppStatus( kal_uint8 status, kal_uint32 local_ip, kal_uint32 remote_ip );
+void HlpSendValA12AuthStatus(kal_bool success);
+kal_bool SetConnErrorCode(kal_uint8 PdnIdTmp, DataConnErrCodeT ErrorCodeTmp);
+void ResetConnErrorCode(kal_uint8 PdnIdTmp);
+kal_bool ForceSetConnErrorCode(kal_uint8 PdnIdTmp, DataConnErrCodeT ErrorCode);
+DataConnErrCodeT GetConnErrorCode(kal_uint8 PdnIdTmp);
+kal_bool CheckConnErrorCodeExsitWithPdnId(kal_uint8 PdnIdTmp);
+kal_bool A12FailureFlagGet(void);
+void A12FailureFlagSet(kal_bool flag);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _7074BIOS_H_ */
+
+/**Log information: \main\Trophy\Trophy_wzhou_href22163\1 2013-04-25 03:06:41 GMT wzhou
+** HREF#22163: add A12 auth status message in VAL**/
+/**Log information: \main\Trophy\1 2013-04-25 03:06:22 GMT jzwang
+** href#22163**/
diff --git a/mcu/interface/protocol/l2_c2k/common/7074CUST.H b/mcu/interface/protocol/l2_c2k/common/7074CUST.H
new file mode 100644
index 0000000..33468bd
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/7074CUST.H
@@ -0,0 +1,95 @@
+/*************************************************************
+*
+* 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: 7074cust.h
+ * Project: NSPE stack
+ *
+ * Original Author: Steve Pye
+ * Creation Date: July 13, 1998
+ *
+ * Description:
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ ************************************************************************/
+
+#ifndef _7074CUST_H_
+#define _7074CUST_H_ 1
+
+
+/* this size is the number of bytes in the mbuf pool */
+#ifdef SYS_OPTION_DATA_RAM_INUSE
+#define IS707_MBUF_POOL_SIZE 30000
+#else
+#define IS707_MBUF_POOL_SIZE 1
+#endif
+
+/* Currently this parameter does not affect the code.
+ The parameter of interest is M_HIGHPERCENT,
+ defined in ip_mbuf.h. */
+#define IS707_MBUF_HPERCENT 50
+
+/* Currently this parameter does not affect the code.
+ The parameter of interest is M_LOWPERCENT,
+ defined in ip_mbuf.h. */
+#define IS707_MBUF_LPERCENT 25
+
+/* this is the buffer that is filled on a bios7074AppIntRxInd call */
+#ifdef SYS_OPTION_DATA_RAM_INUSE
+#define IS707_APPINT_RX_BUFFERSIZE 1536
+#define IS707_BROSWER_RX_BUFFERSIZE 1600
+#else
+#define IS707_APPINT_RX_BUFFERSIZE 1
+#define IS707_BROSWER_RX_BUFFERSIZE 1
+#endif
+
+/* These are in the IS-707 spec. but we put them here anyway */
+#define IS707_MODEM_CLIENT_PORT 379
+#define IS707_MODEM_SERVER_PORT 380
+
+/* time-to-live value as defined in IS-707.4 */
+#define IS707_IP_TTL_DEFAULT (0xfe)
+
+
+/* For TCP/IP data transfers, this is the number of
+ retransmission attempts before a connection is abandoned.
+ This value is valid only during connection initialization. */
+#define IS707_TCP_INIT_RETRANSMIT_ATTEMPTS 25
+
+/* The maximum size that client can request TCP to send
+ received data across. */
+#define IS_707_TCP_MAX_RECV_SIZE 1500
+/* For TCP/IP data transfers, this is the number of
+ retransmission attempts before a current connection
+ is abandoned. This value is valid only after a
+ connection is established */
+#define IS707_TCP_RETRANSMIT_ATTEMPTS 10
+/* receive buffer size for UDP*/
+
+#define Max_Browser_RxInd_Length 500
+
+#ifdef SYS_OPTION_NTWKRMPKT_RAM_INUSE
+#define USE_NAT 1 /* To use Network Rm Packet */
+#endif
+
+
+#endif /* _7074CUST_H_ */
diff --git a/mcu/interface/protocol/l2_c2k/common/7074STAT.H b/mcu/interface/protocol/l2_c2k/common/7074STAT.H
new file mode 100644
index 0000000..c9988bd
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/7074STAT.H
@@ -0,0 +1,296 @@
+/*************************************************************
+*
+* 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: 7074stat.h
+ * Project: NSPE stack
+ *
+ * Original Author: Steve Pye
+ * Creation Date: July 13, 1998
+ *
+ * Description:
+ * Restrictions:
+ * Dependencies:
+ *
+ ************************************************************************/
+
+#ifndef _7074STAT_H_
+#define _7074STAT_H_ 1
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+
+#include "7074CUST.H"
+#include "PPPAPI.H"
+#include "PP_FRAME.H"
+#include "IP_CUSTM.H"
+#include "USER_API.H"
+#include "hlpapi.h"
+
+/* IS-707 Applications */
+#define IS707_APP_ASYNC_TCP 0
+#define IS707_APP_PACKET_RLP 1
+#define IS707_APP_BROWSER_UDP 2
+#define IS707_APP_PACKET_UART 3
+#define IS707_APP_BROWSER_ON_ASYNC 4
+#define IS707_APP_BROWSER_CKT_TCP 5
+#define IS707_APP_BROWSER_PKT_TCP 6
+#define IS707_APP_PPP_ONLY 7
+#define IS707_APP_ACS_STREAM 8
+#define IS707_APP_MAIN_CONN 9
+#define IS707_APP_NULL 10 /* Adding any new type should be before this */
+#define IS707_NUM_APPS 11
+
+/*add for Trace, keep in the same order as IS707_APP...#defines above*/
+typedef enum
+{
+ NSPE_ASYNC_TCP,
+ NSPE_PACKET_RLP,
+ NSPE_BROWSER_UDP,
+ NSPE_PACKET_UART,
+ NSPE_BROWSER_ON_ASYNC,
+ NSPE_BROWSER_CKT_TCP,
+ NSPE_BROWSER_PKT_TCP,
+ NSPE_PPP_ONLY,
+ NSPE_ACS_STREAM,
+ NSPE_MAIN_CONN,
+ NSPE_NULL,
+ NSPE_APP_MAX_NUM
+} NspeAppsT;
+
+/* IS-707 Task states */
+#define IS707_S_IDLE 0
+#define IS707_S_RLP_CONNECTING 1
+#define IS707_S_NET_CONNECTING 2
+#define IS707_S_TCP_CONNECTING 3
+#define IS707_S_PPP_CONNECTING 4
+#define IS707_S_LCP_CONNECTED 5
+#define IS707_S_PPP_CONNECTED 6
+#define IS707_S_NET_CONNECTED 7
+#define IS707_S_ABORTING 8
+#define IS707_S_CLOSING 9
+#define IS707_S_UM_RENEGOTIATION 10
+#define IS707_S_DEREGISTERING 11
+
+/*add for Trace, keep in the same order as IS707_S...#defines above*/
+typedef enum
+{
+ NSPE_IDLE,
+ NSPE_RLP_CONNECTING ,
+ NSPE_NET_CONNECTING,
+ NSPE_TCP_CONNECTING,
+ NSPE_PPP_CONNECTING,
+ NSPE_LCP_CONNECTED,
+ NSPE_PPP_CONNECTED,
+ NSPE_NET_CONNECTED,
+ NSPE_ABORTING,
+ NSPE_CLOSING,
+ NSPE_UM_RENEGO,
+ NSPE_DEREGISTERING,
+ NSPE_STATE_MAX_NUM
+} NspeStatesT;
+
+/* Mobile IP states */
+#define MIP_NULL_STATE 0
+#define MIP_INIT_STATE 1
+#define MIP_AGENT_DIS_STATE 2
+#define MIP_REGISTRATION_STATE 3
+#define MIP_ACTIVE_STATE 4
+#define MIP_TERMINATE_STATE 5
+
+/*add for Trace, keep in the same order as MIP_..._STATE#defines above*/
+typedef enum
+{
+ MIP_NULL_ST,
+ MIP_INIT_ST ,
+ MIP_AGENT_DIS_ST,
+ MIP_REGISTRATION_ST,
+ MIP_ACTIVE_ST,
+ MIP_TERMINATE_ST,
+ MIP_ST_MAX_NUM
+} MipStatesT;
+
+struct nspeBufferType
+{
+ kal_uint8 pppIpScratch[ PPP_BUFFERSIZE*2 ];
+ kal_uint8 mbufPool[ IS707_MBUF_POOL_SIZE ];
+};
+
+struct scb
+{
+ kal_uint8 SocketRxBuf[ IS707_APPINT_RX_BUFFERSIZE ];
+ kal_bool tcpPassive;
+ kal_bool tcpPeerClosing;
+ kal_bool tcpWereClosing;
+
+ kal_uint8 sap;
+ kal_uint8 ipProtocol;
+ kal_uint16 nDataToRead;
+ kal_bool bCloseWaitDefer;
+
+ /* Application Interface variables */
+ kal_bool appIntRecvReady;
+ kal_bool appIntSendPending;
+ kal_bool bDataPending;
+ SendRequest appIntSendRqst;
+ ReceiveRequest appIntRecvRqst;
+ SendToRequest appIntSendToRqst;
+ ReceiveFromRequest appIntRecvFromRqst;
+ /* variables for pending */
+ kal_bool bTCPOrUDPDataReqPending;
+ kal_bool bSocketConnectReqPending;
+ kal_bool bSocketCloseReqPending;
+ kal_bool bSocketShutdownReqPending;
+ HlpTcpbDataSendReqMsgT PendingTCPDataRqstToSend;
+ HlpUpbSendDataMsgT PendingUDPDataRqstToSend;
+ HlpSocketConnectMsgT PendingSktConnMsg;
+ HlpSocketCloseMsgT PendingSktCloseMsg;
+ HlpSocketShutDownMsgT PendingSktShutDownMsg;
+};
+
+struct nspeGlobalsType
+{
+ /* RLP variables */
+ kal_uint8 rlpApp;
+ kal_uint8 uartApp;
+ kal_uint8 rlpAppAccess;
+ kal_bool rlpFlushPending;
+ kal_bool rlpTransparent;
+
+ /* Packet variables */
+ kal_uint8 packetUdpSap;
+ kal_bool packetBrowserMode;
+
+ /* PPP variables */
+ kal_uint8 *pppRxData;
+ kal_uint16 pppRxDataSize;
+ kal_uint16 pppSendMTU;
+
+ /* PPP variables for RM interface to Uart */
+ kal_uint8 *pppUartRxData;
+ kal_uint16 pppUartRxDataSize;
+
+
+ /* TCP variables */
+ kal_bool tcpPassive;
+ kal_bool tcpPeerClosing;
+ kal_bool tcpWereClosing;
+
+ kal_bool tcpFlowOn;
+ kal_uint8 tcpSap;
+
+ /* Application Interface variables */
+ kal_bool appIntRxReady;
+ kal_bool appIntTxPending;
+ SendRequest appIntTxRqst;
+/* ReceiveRequest appIntRxRqst; */
+
+ /* Browser UDP variables */
+ kal_bool DoubleStackUpperLayerDown;
+ /* variable handle rlpresetInd */
+ kal_bool RlpReset; /* set after rlpReset, */
+ kal_bool RlpOpenRspRcvd; /* set after receive rlpOpenRsp which caused by rlpReset */
+ kal_bool Um_Rm_Connected; /*set after UM and RM interface are both connected */
+ kal_bool Um_DataPending; /* set to KAL_TRUE is there is data pending which is ready to be sent to Rm */
+ kal_bool Rm_DataPending; /* set to KAL_TRUE is there is data pending which is ready to be sent to Um */
+ kal_bool Um_Renegotiating;
+#ifdef TEST
+ /* these variablee can be removed */
+ kal_bool enableIpFlowControlIteMessages;
+ kal_bool enableTcpRxDataIteMessages;
+#endif
+};
+
+struct Pending_Data
+{
+ kal_bool canBeSent;
+ kal_bool dormant_flag; /* Remember the current Mode*/
+ kal_bool Data_Pending; /* Set the flag if we saved any data.*/
+ kal_bool Tx_Pending; /* pending flag cuased by UDP busy */
+ SendToRequest saved; /* save the data */
+};
+
+struct Um_Dormant
+{
+ kal_bool dataPending;
+ kal_bool dormant;
+};
+
+void nspeUmDormantReconnect(void);
+void UmProcessPendingData(void);
+
+struct Interface_Busy
+{
+ kal_bool rx_busy;
+ kal_bool tx_busy;
+};
+
+extern struct Interface_Busy um_rlp;
+extern struct Interface_Busy rm_uart;
+
+extern struct nspeGlobalsType nspe;
+extern struct nspeBufferType nspeBuffers;
+extern struct scb nspeSCB[IP_NTCBS];
+extern kal_uint8 pppAccStrmScratch[PPP_BUFFERSIZE*2];
+
+/* Prototypes */
+void Shut_TCP_Quietly( void );
+void nspeTxReq( void );
+void udpTxReq( void );
+void nspeSetState( kal_uint8 app, kal_uint8 state );
+kal_uint8 nspeGetState( kal_uint8 app );
+void nspeSetRlpAppAccess(kal_uint8 rlpAppAcs);
+kal_uint8 nspeGetRlpAppAccess(void);
+void nspeSetIpAddr( kal_uint8 app, kal_uint32 ip_address );
+kal_uint32 nspeGetIpAddr( kal_uint8 app );
+void nspeSetPppPort( kal_uint8 app, kal_uint16 ppp_port );
+kal_uint16 nspeGetPppPort( kal_uint8 app );
+void nspeSetPppSending( kal_uint8 app, kal_bool sending );
+kal_bool nspeGetPppSending( kal_uint8 app );
+kal_uint32 nspeGetApp( kal_uint16 ppp_port );
+void nspeInit( kal_uint8 app );
+void nspeInitApps(void);
+void nspeCleanPort( kal_uint8 app );
+void nspePassIpDataToPpp( kal_uint8 app );
+void nspePurgeIPDataQueue( kal_uint8 app );
+
+kal_uint8 nspeGetAppByPDNId(kal_uint8 PDNId);
+void nspeSetPdnId( kal_uint8 app, kal_uint8 PdnId );
+kal_uint8 nspeGetPdnId( kal_uint8 app);
+void nspeIpData2Ppp(kal_uint8 app);
+#ifdef WeDoPacketMode
+
+kal_bool nspeGetBufferfromTxQueue( kal_uint8 *buffer, kal_uint16 *size, kal_uint8 app );
+void nspePacketBufferRxd( kal_uint8 app, kal_uint8 *data, kal_uint16 len, kal_uint16 prot );
+void nspePassPacketDataToHost( kal_uint8 app );
+void nspePerformMqueueFlowCtl( void );
+void nspeQueuePacket( kal_uint8 app, kal_uint8 *data, kal_uint16 len, kal_uint16 prot );
+void nspeDequeuePacket( kal_uint8 app, kal_uint8 *data, kal_uint16 *len, kal_uint16 *prot );
+void nspePassIpDataToPacket( void );
+void nspePacketInit( void );
+
+#else
+
+#define nspePacketBufferRxd( a,b,c,d )
+#define nspeQueuePacket( a,b,c,d )
+#define nspeDequeuePacket( a,b,c,d )
+#define nspePassIpDataToPacket()
+
+#endif /* WeDoPacketMode */
+
+/* functions support network layer */
+void umReConnected(void);
+
+struct scb* nspeAllocScb(void);
+struct scb* nspeGetScbBySap(kal_uint8 sap);
+
+
+#endif /* _7074STAT_H_ */
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/HlpQos.h b/mcu/interface/protocol/l2_c2k/common/HlpQos.h
new file mode 100644
index 0000000..7263d60
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/HlpQos.h
@@ -0,0 +1,328 @@
+/*****************************************************************************
+* 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) 2007-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _HLP_QOS_H_
+#define _HLP_QOS_H_
+/*****************************************************************************
+*
+* FILE NAME : hlpqos.h
+*
+* DESCRIPTION : This file contains function prototypes and other definitions
+* for the QOS
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+* Include Files
+----------------------------------------------------------------------------*/
+#include "do_Qos.h"
+/*----------------------------------------------------------------------------
+Defines And Macros
+----------------------------------------------------------------------------*/
+typedef enum
+{
+ QosFileDirCreateErr,
+ FlowRequestErr,
+ FlowReleaseErr,
+ QosNegoFail,
+ ReservationOpFail,
+ RsvpCommonHdrDecErr,
+ RsvpCheckSumCalErr,
+ RsvpErrSpecNotReceived,
+ Rsvp3GPPObjNotReceived,
+ TFTIpAddrNotMatch,
+ RsvpMsgEncodeErr,
+ RsvpMsgDecodeErr,
+ RsvpDstPortErr,
+ ResvMsgBufFull,
+ RsvpInvalidMsgId,
+ RsvpInvalidTransId,
+ RsvpMsgLengthErr,
+ QoSCheckFail,
+}QOMErrCodeT;
+
+typedef enum
+{
+ TftNull,
+ TftToBeSent,
+ TftSent,
+ TftConfirmed
+}ResvTftStatusT;
+
+typedef enum
+{
+ QOS_INACTIVE,
+ QOS_IDLE,
+ QOS_WFR_CHECK_CONFIRM,
+ QOS_WFR_GRANT,
+ QOS_WFR_TFT_CONFIRM,
+ QOS_WFR_TFT_CONFIRM_NTWK_INIT,
+ QOS_WFR_TFT_REL_CONFIRM,
+ QOS_WFR_TFT_REL_CONFIRM_NTWK_INIT,
+}QoMStateT;
+
+typedef enum
+{
+ QOS_NOT_CHECKED,
+ QOS_CONFIRMED,
+ QOS_CHECKING
+}QoMCheckStateT;
+
+typedef struct
+{
+ QosSubBlobT QosSetInfo;
+/* kal_uint8 MacFlowId;
+ kal_uint8 RlpState;
+ kal_uint8 RlpFlowNum; */
+ kal_bool bReserved;
+}QosTabelT;
+
+typedef struct
+{
+ kal_uint8 Num;
+ kal_uint8 PdnId;
+ kal_uint8 Label[16];
+}QosPdnInfoT;
+
+typedef struct
+{
+ kal_uint8 RlpFlowNum;
+ kal_uint8 cid;
+ ResvTftStatusT Status;
+} ResvInfoT;
+
+typedef struct
+{
+ kal_uint16 len;/* The length of this data*/
+ kal_uint16 offset;/* The starting location for the data */
+ CpBufferT *buffer;/* The buffer which makes up this data. This is a ptr */
+} RsvpDatapktT;
+
+typedef enum
+{
+ PATH_MSG=1,
+ RESV_MSG,
+ PATHERR_MSG,
+ RESVERR_MSG,
+ PATHTEAR_MSG,
+ RESVTEAR_MSG,
+ RESVCONF_MSG
+}RsvpMsgTypeT;
+
+typedef enum
+{
+ TFTIPv4,
+ TFTIPv4Err,
+ TFTIPv6,
+ TFTIPv6Err,
+ HeaderRemoval,
+ HeaderRemovalErr,
+ ChannelTreatment,
+ ChannelTreatmentErr
+}RsvpIETypeT;
+
+
+
+typedef enum
+{
+ IP4SrcAdr_SubnetMask = 16,
+ IP4DstAdr_SubnetMask,
+ IP6SrcAdr_SubnetMask = 32,
+ IP6DstAdr_SubnetMask,
+ Protocol_NextHdr = 48,
+ Single_DstPort = 64,
+ DstPortRange,
+ Single_SrcPort = 80,
+ SrcPortRange,
+ SecurityParmInd = 96,
+ Tos_TrafficClass = 112,
+ Flow_Label = 128,
+ Type2RoutingHdr_PreLen,
+ HomeAdrOpt_PreLen
+}TftPktFilterComponentIdT;
+
+typedef enum
+{
+ ErrReserved,
+ PktFilterAddFailure,
+ PktFilterUnavailable,
+ UnsuccessfulTFTProcessing,
+ ChannelNotAvailable,
+ EvaluationPrecedenceContention,
+ TreatmentNotSupported,
+ PacketFilterReplaceFailure,
+ PersistencyLimitReached,
+ PersistencyNotAllowed,
+ UnauthorizedTFT,
+ MaxNumPktFilters,
+ AddToNonExistTFT,
+ UEUnsuccessfulTftProcess = 0x80,
+ InvalidIPAddress,
+ NotSupportProfileID,
+ InvalidPdnID,
+}TftErrCodeT;
+
+typedef enum
+{
+ QoSCheckSuccessfull,
+ QoSIsNotAuthorized,
+}QoSCheckResultCodeT;
+
+typedef struct
+{
+ kal_uint32 RsvpSnTransId;
+ kal_uint32 RsvpRvTransId;
+ kal_bool bTftCreated;
+ kal_bool bIpV4;
+ kal_uint32 SrcIpAddr[4];
+ kal_uint32 DstIpAddr[4];
+}RsvpInfoT;
+
+typedef struct
+{
+ RsvpDatapktT MsgPkt;
+ kal_uint8 NumOfPktList;
+ RlpFlowDirection Direction[MAX_TFT_NUM]; /*0 Forward, 1 Reverse*/
+ kal_uint8 ResvLabel[MAX_TFT_NUM];
+ kal_uint8 FilterIndex[MAX_TFT_NUM];
+ kal_uint32 TransId;
+ kal_uint8 NumOfSend;
+}RsvpResvMsgT;
+
+typedef struct
+{
+ //ExeTimerT TimerCb;
+ kal_timerid TimerId;
+ kal_bool bActive;
+}RsvpResvTimerT;
+
+typedef struct
+{
+ TftOperationCodeT OpCode;
+ kal_uint8 Num;
+ RlpFlowDirection Direction[MAX_TFT_NUM];
+ kal_uint8 Label[MAX_TFT_NUM];
+ kal_uint8 FilterIndex[MAX_TFT_NUM];
+}ResvTftReqT;
+
+typedef struct
+{
+ kal_uint8 PFType;
+ kal_uint8 length;
+ kal_uint8 PktComponent[200];
+ kal_bool bTreatmentInc;
+ kal_uint8 PFT; /*Packet Filter Treatment*/
+ kal_uint32 Hint; /*RFC3006 hint*/
+}QoMPktContentT;
+
+typedef struct
+{
+ kal_uint8 FlowId;
+ kal_uint8 PrecedenceIndex;/*evaluation precedence index*/
+ QoMPktContentT PktContent;
+}QoMRsvpPktFilterT;
+
+typedef struct
+{
+ kal_uint8 ReservationLabel;
+ kal_uint8 Priority;
+ kal_uint8 QoSSetNum;
+ kal_uint8 QosAttrSetId[MAX_SUPPORTED_QOS_BLOB_NUM];/*7 bits,should not be zero*/
+ kal_uint16 FlowProfileId[MAX_SUPPORTED_QOS_BLOB_NUM];
+} QosRsvpSubBlobT;
+
+typedef struct
+{
+ kal_uint8 PktFlterNum;
+ kal_uint8 bIPv4;
+ QoMRsvpPktFilterT PktFilter[MAX_TFT_NUM];
+ kal_uint8 FlowNum;
+ QosRsvpSubBlobT QosBlob[MAX_TFT_NUM];
+}EhrpdResvMsgIEDataT;
+
+typedef struct
+{
+ kal_uint8 num;
+ RlpFlowDirection Direction[2];
+ TftOperationCodeT OpCode[2];
+ EhrpdResvMsgIEDataT IEData[2];
+}ResvMsgIEListT;
+
+typedef struct
+{
+ kal_uint8 num;
+ kal_uint8 Direction[MAX_CLIENT_NUM*2];
+ kal_uint8 Label[MAX_CLIENT_NUM*2];
+ kal_uint8 RsvpTimerId;
+}ResvLabelInfoT;
+/****************************************************************************/
+kal_bool QOMSetFwdQoSSubscribProfile(QosSubScriberProfileT* pSubProfile);
+kal_bool QOMSetRevQoSSubscribProfile(QosSubScriberProfileT* pSubProfile);
+void QOMInit(void);
+void QOMSetRlpFlowProfile(void);
+kal_bool QOMActivateQoSFlow(kal_uint8 Label, kal_uint8 Direction);
+kal_bool QOMSendTFT(ResvTftReqT* pReq, kal_uint32 TransId);
+kal_bool QOMGetRevSubscribQoSBlob(kal_uint8 Label,QosSubBlobT* pSubProfile);
+kal_bool QOMGetFwdSubscribQoSBlob(kal_uint8 Label,QosSubBlobT* pSubProfile);
+kal_uint8 QOMEncKKQoSRequest(RlpFlowDirection direction,kal_uint8 Label,kal_uint8* pData,QosSubBlobT* pSubBlob);
+kal_uint8 QOMEncNullKKQoSRequest(RlpFlowDirection direction,kal_uint8 Label,kal_uint8* pData);
+void HlpQoMSetSubscribQoSProfile(kal_bool eHRPD,kal_uint8 FlowNum, kal_uint8 PdnId, HlpQoSFlowInfoT* pFlow, kal_uint8 *pFlowId);
+
+kal_bool HlpQoMIsActive(void);
+void QOMSetUpUDPConnection(void);
+void QOMSetUpUDP6Connection(kal_uint8 PdnId);
+void QOMSetMainConnAddr(kal_bool bIPv4, kal_uint32 *pSrcAddr, kal_uint32 *pDstAddr);
+kal_bool HlpQOMReleaseTft(kal_uint8* pLabel, kal_uint8* pDirection, kal_uint8 Num);
+kal_bool HlpQOMFlowRelease(kal_uint8* pLabel, kal_uint8* pDirection, kal_uint8 Num);
+kal_bool HlpQoMFlowRenego(kal_uint8 Num, kal_uint8 *pLabel, kal_uint8* pDirec);
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/IP.H b/mcu/interface/protocol/l2_c2k/common/IP.H
new file mode 100644
index 0000000..4065fb8
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/IP.H
@@ -0,0 +1,226 @@
+/*************************************************************
+*
+* 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: ip.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.1 (15 Apr 1998)
+ *
+ * Description: IP Data Structures
+ * Restrictions:
+ * Dependencies:
+ *
+ ************************************************************************/
+
+#ifndef _IP_H_
+#define _IP_H_ 1
+
+#include "IP_TYPE.H"
+
+
+/* IP Protocol Types */
+
+#define IP_ICMP 1 /* IP control message protocol */
+#define IP_ICMPv6 58
+#define IP_TCP 6 /* transmission control protocol */
+#define IP_UDP 17 /* user datagram protocol */
+
+/*
+ * Address families.
+ */
+#define AF_UNSPEC 0 /* unspecified */
+#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
+#define AF_INET6 28 /* IPv6 */
+
+/* Note that ip_len and ip_off are declared to be signed integers rather
+ than unsigned since unsigned comparisons can result during arithmetic
+ operations of unsigned and signed integers. Such comparisons can fail
+ in subtle ways. */
+
+
+/* IP datagram identifier field fragmentation bit flags. Note that these
+ bit masks can be applied only after the field has been converted to
+ HOST-ENDIAN format. */
+
+#define IP_DF 0x4000 /* dont fragment bit flag */
+#define IP_MF 0x2000 /* more fragments bit flag */
+
+
+/* IP constant sizes */
+
+#define IP_ADDRSIZE 4 /* IP dotted 4-tuple host address */
+#define IP_HEADERSIZE 20 /* default IP header size */
+#define IP_MAXHDRSIZE 60 /* max header + options size */
+#define IP_MAXDGMSIZE 576 /* default max header+options+data */
+#define IP_MAXPKTSIZE 65535 /* max header+options+data size */
+#define IP_EXTHDRSIZE 12 /* TCP/UDP extended header size */
+#define IP_EXTHDROFF 8 /* offset from start of IP header */
+
+
+/* IP addresses and masks. The masks are applied to IP addresses in
+ NET-endian format, yielding results also in NET-endian format. */
+
+#define IP_ANYADDR 0x00000000
+#define IP_ANYPORT 0x0000
+
+#if HOST_ENDIAN == NET_ENDIAN
+
+#define IP_BROADCAST_ADDR 0xFFFFFFFFUL
+#define IP_OLD_BROADCAST 0x00000000UL
+#define IP_LOOPBACK_ADDR 0x7F000001UL
+#define IP_CLASSA_MASK 0x80000000UL
+#define IP_CLASSB_MASK 0xC0000000UL
+#define IP_CLASSC_MASK 0xE0000000UL
+#define IP_CLASSA_BITS 0x00000000UL
+#define IP_CLASSB_BITS 0x80000000UL
+#define IP_CLASSC_BITS 0xC0000000UL
+#define IP_CLASSA_NET 0xFF000000UL
+#define IP_CLASSB_NET 0xFFFF0000UL
+#define IP_CLASSC_NET 0xFFFFFF00UL
+#define IP_CLASSA_HOST 0x00FFFFFFUL
+#define IP_CLASSB_HOST 0x0000FFFFUL
+#define IP_CLASSC_HOST 0x000000FFUL
+
+#else /* HOST_ENDIAN == LITTLE_ENDIAN */
+
+#define IP_BROADCAST_ADDR 0xFFFFFFFFUL
+#define IP_OLD_BROADCAST 0x00000000UL
+#define IP_LOOPBACK_ADDR 0x0100007FUL
+#define IP_CLASSA_MASK 0x00000080UL
+#define IP_CLASSB_MASK 0x000000C0UL
+#define IP_CLASSC_MASK 0x000000E0UL
+#define IP_CLASSA_BITS 0x00000000UL
+#define IP_CLASSB_BITS 0x00000080UL
+#define IP_CLASSC_BITS 0x000000C0UL
+#define IP_CLASSA_NET 0x000000FFUL
+#define IP_CLASSB_NET 0x0000FFFFUL
+#define IP_CLASSC_NET 0x00FFFFFFUL
+#define IP_CLASSA_HOST 0xFFFFFF00UL
+#define IP_CLASSB_HOST 0xFFFF0000UL
+#define IP_CLASSC_HOST 0xFF000000UL
+#endif
+
+
+/* IP address class macros */
+
+#define IP_CLASSA_ADDR( a ) \
+((((kal_uint32)(a))&IP_CLASSA_MASK)==IP_CLASSA_BITS)
+
+#define IP_CLASSB_ADDR( a ) \
+((((kal_uint32)(a))&IP_CLASSB_MASK)==IP_CLASSB_BITS)
+
+#define IP_CLASSC_ADDR( a ) \
+((((kal_uint32)(a))&IP_CLASSC_MASK)==IP_CLASSC_BITS)
+
+
+/* IP Version Number */
+
+#define IP_VERSION 4
+
+
+/* IP Type-of-Service */
+
+#define IPTOS_LOWDELAY 0x10
+#define IPTOS_THROUGHPUT 0x08
+#define IPTOS_RELIABILITY 0x04
+
+
+/* IP Type-of-Service Precedence Fields (usually unused)*/
+
+#define IPTOS_NETCONTROL 0xE0
+#define IPTOS_INETCONTROL 0xC0
+#define IPTOS_CRITIC_ECP 0xA0
+#define IPTOS_FLASHOVERRIDE 0x80
+#define IPTOS_FLASH 0x60
+#define IPTOS_IMMEDIATE 0x40
+#define IPTOS_PRIORITY 0x20
+#define IPTOS_ROUTINE 0x10
+
+
+/* IP Option Types */
+
+#define IPOPT_EOL 0 /* end of option list */
+#define IPOPT_NOP 1 /* no operation */
+#define IPOPT_RR 7 /* record packet route */
+#define IPOPT_TS 68 /* timestamp */
+#define IPOPT_SECURITY 130 /* provide s,c,h,tcc */
+#define IPOPT_LSRR 131 /* loose source route */
+#define IPOPT_SATID 136 /* satnet id */
+#define IPOPT_SSRR 137 /* strict source route */
+
+
+/* IP Multi-Byte Option Format */
+
+#define IPOPT_HEADERSIZE 3 /* option header size */
+#define IPOPT_TYPE 0 /* option type field offset */
+#define IPOPT_LEN 1 /* option length field offset */
+#define IPOPT_OFF 2 /* option pointer field offset */
+
+#define IPOPT_MINOFF 4 /* pointer field is offset from */
+ /* start of option + 1 */
+
+#define IP_MAXOPTSIZE 40 /* max IP header options */
+#define IPOPT_MAXROUTEHOPS ((IP_MAXOPTSIZE-IPOPT_HEADERSIZE)/IP_ADDRSIZE)
+
+
+/* IP Implementation Parameters */
+
+#define IP_MAXTTL 255 /* maximum time-to-live (seconds) */
+#define IP_FRAGTTL 60 /* time-to-live for fragments */
+
+
+/* IP Source Port Selection Boundaries */
+#define IP_MINSPORT 0x1000
+#define IP_MAXSPORT 0xffff
+
+
+/* IP Checksum Structure */
+
+union ip_checksum
+ {
+ kal_uint32 u;
+ kal_uint16 w[2];
+ };
+
+
+/* IP Header */
+
+struct ip_header
+ {
+ kal_uint8 hlen; /* [7:3] version [3:0] header len */
+ kal_uint8 tos; /* type-of-service */
+ kal_uint16 len; /* total length */
+ kal_uint16 id; /* datagram identifier */
+ kal_uint16 off; /* fragment offset */
+ kal_uint8 ttl; /* time-to-live */
+ kal_uint8 pro; /* higher-level protocol id */
+ kal_uint16 chk; /* header checksum */
+ kal_uint32 src; /* source host address */
+ kal_uint32 dst; /* destination host address */
+ };
+
+
+/* IP source route descriptor */
+
+struct ip_srcroute
+ {
+ kal_uint32 addr;
+ kal_uint32 nhops;
+ kal_uint8 nop;
+ kal_uint8 opt[ IPOPT_HEADERSIZE ];
+ kal_uint32 list[ IPOPT_MAXROUTEHOPS ];
+ };
+
+
+#endif /* _IP_H_ */
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/IP_CUSTM.H b/mcu/interface/protocol/l2_c2k/common/IP_CUSTM.H
new file mode 100644
index 0000000..e7587d4
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/IP_CUSTM.H
@@ -0,0 +1,119 @@
+/*************************************************************
+*
+* 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: ip_custm.h
+ * Project: NSPE stack
+ *
+ * Original Author: Steve Pye
+ * Creation Date: July 13, 1998
+ *
+ * Description: Code-build options
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.3 $
+ *
+ * $Log: IP_CUSTM.H $
+ *
+ * 11 29 2017 sue.zhong
+ * [MOLY00292266] [MT6295] Modification of coexisting for GCCv4 and GCCv6
+ * .
+ * Revision 1.3 2005/03/18 13:49:03 blee
+ * 4.05 Merge
+ * Revision 1.2 2004/03/24 16:41:22 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.3 2004/02/10 11:31:10 cmastro
+ * merge with 4.0 8.050.0
+ * Revision 1.4 2004/01/21 10:47:58 hhong
+ * Added mechanism to support PPP open only and multi-sockets operations.
+ * Revision 1.3 2003/08/19 18:57:17 hhong
+ * Added mechanism to trigger Um/Rm PPP-reopen in the case of packet zone ID change after re-connection.
+ * Revision 1.2 2002/06/06 11:44:02 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.1 2001/04/26 11:42:17 fpeng
+ * Initial revision
+ * Revision 1.5 2001/02/05 10:55:04 hhong
+ * Change NET_MTU from 1500 to 296 bytes.
+ * Revision 1.4 2000/08/23 17:59:09 hhong
+ * To update to engine release 1.6.0.1
+ * Revision 1.3 2000/03/13 18:39:15 pjiang
+ * changed IP_NLOCALS to 4 from 2
+ *
+ * Revision 1.2 1999/03/29 16:29:11 pjiang
+ * change define IP_NTCBS and IP_NLOCALS to 2 from 1
+ *
+ * Revision 1.1 1998/08/13 22:17:44 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+
+#ifndef _IP_CUSTM_H_
+#define _IP_CUSTM_H_ 1
+
+#include "hlpapi.h"
+#define WeDoUDP
+#define WeDoICMP
+#define WeDoStats
+#define WeDoTCP
+/* #define WeDoRAW */
+
+#define PPP_RECONNECT
+
+/* Processor Memory Architecture Types */
+#ifdef __has_include
+#if __has_include("mips/endian.h")
+#include <mips/endian.h>
+#else
+#define BIG_ENDIAN 4321
+#define LITTLE_ENDIAN 1234
+#define NET_ENDIAN BIG_ENDIAN
+#endif
+#else
+#define BIG_ENDIAN 4321
+#define LITTLE_ENDIAN 1234
+#define NET_ENDIAN BIG_ENDIAN
+#endif
+
+/* Host Processor Architecture Type */
+#define HOST_ENDIAN LITTLE_ENDIAN
+
+
+/* IP Default Values */
+#define IP_TOSDFLT 0
+#define IP_TTLDFLT 60
+
+/* Network Maximum Transmission Unit */
+#define IP_NTCBS HLP_MAX_SOCKET /* 10 */ /* number of connections (it was two) */
+#define IP_NLOCALS 4 /* number of local IP addresses */
+#define TCP_NROUTES 4 /* number of route cache entries */
+
+#endif /* _IP_CUSTM_H_ */
+
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/IP_MBUF.H b/mcu/interface/protocol/l2_c2k/common/IP_MBUF.H
new file mode 100644
index 0000000..0b93a4f
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/IP_MBUF.H
@@ -0,0 +1,402 @@
+/*************************************************************
+*
+* 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: ip_mbuf.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.1 (15 Apr 1998)
+ *
+ * Description: IP Memory Management Buffer Definitions
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: IP_MBUF.H $
+ *
+ * 01 18 2017 anson.feng
+ * [MOLY00221557] [Gen93] L4 Integration M1 check in
+ * EM head file conflict
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Fix c2k build error
+ * Revision 1.2 2004/03/24 16:41:23 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.3 2004/02/10 11:31:11 cmastro
+ * merge with 4.0 8.050.0
+ * Revision 1.7 2004/01/21 10:47:59 hhong
+ * Added mechanism to support PPP open only and multi-sockets operations.
+ * Revision 1.6 2003/11/21 20:11:48 hhong
+ * Refdefined M_SIZE to be 300 so that 1500 bytes IP datagrams in most of the case in Network Model can be handled effciciently.
+ * Revision 1.5 2003/06/26 18:43:23 hhong
+ * To seperate rlpTxQueue and uartTxQueue and create two sets of hi/lo water mark threshold to handle them seperately.
+ * Revision 1.4 2003/06/10 10:56:05 hhong
+ * Added mechanism to support bug fixes for Mobile IP and Network Layer Rm Interface.
+ * Revision 1.3 2002/06/06 11:44:04 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.2 2002/03/19 16:10:44 hhong
+ * Added 7074cust.h in the included file list.
+ * Added compiler flag SYS_OPTION_DATA_RAM_INUSE.
+ * Revision 1.1 2001/04/26 11:42:18 fpeng
+ * Initial revision
+ * Revision 1.4 2001/02/05 14:14:59 hhong
+ * To move IP_Control_Flow to be out of the criterion called by lowalert in order top prevent time out.
+ * Revision 1.3 2000/08/28 14:57:51 hhong
+ * Moving up to rev 1.3 by schecking out 1.1 but locking 1.2. It's a
+ * duplicated version of 1.1
+ * Revision 1.1 1999/11/30 23:01:17Z cdma
+ * Initial revision
+ * Revision 1.5 1999/07/01 16:44:21 hhong
+ * Incorporate new protocol engine.
+ * Revision 1.2 1999/01/27 22:39:54 bcassidy
+ * 1. Change LOWDELTA to FAILSENDPERCENT so that the
+ * threshold cannot go negative.
+ *
+ * Revision 1.1 1998/06/10 15:32:21 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _IP_MBUF_H_
+#define _IP_MBUF_H_ 1
+
+#include "7074CUST.H"
+#include "IP_TYPE.H"
+#include "IP.H"
+#include "TCP.H"
+/* #SHARKER add udp_head.h */
+#include "UDP_HEAD.H"
+/* #include "udp.h" */
+#include "ICMP.H"
+#include "IP_USER.H"
+
+
+/* System constants */
+
+#ifdef SYS_OPTION_DATA_RAM_INUSE
+#define M_SIZE 300 /* mbuf data buffer size */
+#else
+#define M_SIZE 1 /* mbuf data buffer size */
+#endif
+#define M_FLOWCONTROL 35 /* free mbuf to set off flowcontrol*/
+/* #define M_LOWPERCENT 20 */ /* free mbuf lo-water mark (was 25)*/
+/* #define M_HIGHPERCENT 50 */ /* free mbuf hi-water mark */
+#define M_LOWPERCENT 35 /* 30 */ /* free mbuf lo-water mark (was 25)*/
+#define M_HIGHPERCENT 50 /* free mbuf hi-water mark */
+#define M_LOWALERT 1 /* free mbuf low alert indication */
+#define M_FAILSENDPERCENT 15 /* free mbuf fail send requests */
+
+/* Header flags field bit masks */
+
+#define M_INUSE 0x01 /* mbuf has been allocated */
+#define M_DROP 0x10 /* don't pass to IP layer */
+#define M_BCAST 0x20 /* incoming datagram is broadcast */
+#define M_MCAST 0x40 /* incoming datagram is multicast */
+#define M_IP6 0x02 /* whether it's an ipv6 mbuf */
+#define M_DONTFREE 0x80 /* do not free mbuf chain */
+
+
+/* Standard mbuf header */
+
+#define IP_MBUFHDRSIZE (sizeof( struct mbuf_header ))
+
+/* IP datagram */
+
+struct ip_datagram
+ {
+ struct ip_header ip;
+ union
+ {
+ char opt[ IP_MAXOPTSIZE ];
+ struct tcp_header tcp;
+ struct udp_header udp;
+ struct icmp_header icmp;
+ }data;
+ };
+
+struct mbuf_header
+ {
+ struct mbuf *next;
+ struct mbuf *link;
+ kal_uint16 len;
+ kal_uint16 size;
+ kal_uint16 data;
+ kal_uint16 flags;
+ kal_uint8 ipoff;
+ kal_uint8 tcpoff;
+ kal_uint8 pdnindex;
+ };
+
+
+/* IP data structure mbuf */
+
+struct mbuf
+ {
+ struct mbuf_header mbuf_hdr;
+
+ union
+ {
+ kal_uint8 buff[ M_SIZE ];
+ struct ip_datagram dgm;
+ struct ip_srcroute route;
+ CpBufferT *cpbufp;
+ }data;
+
+ kal_uint32 m_check;
+ };
+
+#define FREE 0x99999999UL /* m_check word for free mbufs */
+#define INUSE 0xAAAAAAAAUL /* m_check word for used mbufs */
+
+/*-
+ * Macros for type conversion:
+ * mtod(m, t) -- Convert mbuf pointer to data pointer of correct type.
+ */
+#define mtod(m, t) (((m)->m_flags & M_CPBUF) ? (t)((kal_uint8 *)((m)->m_cpbufp->dataPtr) + (m)->m_data) : (t)(&(m)->m_mbuf[(m)->m_data]))
+
+#define mtod_off(m, t, off) (((m)->m_flags & M_CPBUF) ? (t)((kal_uint8 *)((m)->m_cpbufp->dataPtr) + off) : (t)(&(m)->m_mbuf[off]))
+/*
+ * Set the m_data pointer of a newly-allocated mbuf (m_get/MGET) to place
+ * an object of the specified size at the end of the mbuf, longword aligned.
+ */
+#define M_ALIGN(m, len) do { \
+ (m)->m_data = (M_SIZE - (len)) & ~(sizeof(int) - 1); \
+} while (0)
+
+/* Standard mbuf header fields */
+
+#define m_next mbuf_hdr.next
+#define m_link mbuf_hdr.link
+#define m_hlen mbuf_hdr.len
+#define m_size mbuf_hdr.size
+#define m_data mbuf_hdr.data
+#define m_flags mbuf_hdr.flags
+#define m_mbuf data.buff
+
+#define m_ipoff mbuf_hdr.ipoff
+#define m_tcpoff mbuf_hdr.tcpoff
+#define m_udpoff mbuf_hdr.tcpoff
+#define m_pdnindex mbuf_hdr.pdnindex
+#define m_cpbufp data.cpbufp
+
+
+/* Singly-linked mbuf queue listhead. The mbufs on a queue are linked by
+ their m_next fields. */
+
+struct mqueue
+ {
+ struct mbuf *m_head; /* when queue is empty m_head is 0 */
+ struct mbuf *m_tail; /* and m_tail points to m_head */
+ kal_bool full_flag; /* this is set when the ip_pktcount reaches highmark */
+ kal_uint8 ip_pktcount; /* number of IP pkts in the mqueue */
+ };
+
+/* Singly-linked mbuf data buffer listhead. The mbufs of a data buffer
+ are linked by their m_link fields. */
+
+struct mbuffer
+ {
+ struct mbuf *m_tail; /* when buffer is empty m_head is */
+ struct mbuf *m_head; /* 0 and m_tail points to m_tail */
+ };
+
+
+/* State vector for mbuf management */
+
+struct mstate
+ {
+ kal_uint8 *m_pooladdr; /* mbuf pool address */
+ kal_uint16 m_poolsize; /* number of bytes in mbuf pool */
+ kal_uint16 m_mbufsize; /* mbuf header+buffer size */
+ kal_uint16 m_datasize; /* mbuf data buffer size */
+ kal_uint16 m_totalcount; /* total mbuf count */
+ kal_uint16 m_freecount; /* free mbuf count */
+ kal_uint16 m_freecounted; /* counted when m_status called */
+ kal_uint16 m_freemin; /* lowest free mbuf count */
+ kal_uint16 m_lowmark; /* number of mbufs at low mark */
+ kal_uint16 m_failsendmark; /* number of mbufs when sends fail */
+ kal_uint16 m_highmark; /* number of mbufs at high mark */
+ kal_bool m_lowalert; /* in alert state if free < low */
+ kal_uint16 m_xoffcount; /* number of xoff notifications */
+ kal_uint16 m_xoncount; /* number of xon notifications */
+ kal_uint16 m_flowcontrolmark; /* lowest of mbuf before flow off */
+ };
+
+
+/* Function prototypes for mbuf management operations */
+
+void m_init( kal_uint8 *buffer, kal_uint16 size );
+void m_status( struct mstate *p );
+void m_free( struct mbuf *m );
+struct mbuf *m_get( void );
+
+
+/* Function prototypes for mbuf chain operations */
+
+void m_freem( struct mbuf *m );
+void m_freed( struct mbuf *m );
+void m_compact( struct mbuf *m );
+void m_join( struct mbuf *m, struct mbuf *n );
+void m_keep( struct mbuf *m, kal_uint16 size );
+kal_uint16 m_freeCount ( void );
+kal_uint16 m_unchain( struct mbuf *m, kal_uint8 *data, kal_uint16 size );
+kal_uint16 m_length ( struct mbuf *m );
+struct mbuf *m_chain( kal_uint8 *data, kal_uint16 size );
+struct mbuf *m_drop( struct mbuf *m, kal_uint16 size );
+struct mbuf *m_split( struct mbuf *m, kal_uint16 size );
+struct mbuf *m_copy( struct mbuf *m, kal_uint16 size );
+struct mbuf *m_ecopy( struct mbuf *m, kal_int16 off0, kal_uint16 size );
+struct mbuf * m_prepend(struct mbuf *m, int len );
+struct mbuf *m_get_cpbuf( CpBufferT *cpbufp);
+
+/* Function prototypes for mbuf queue operations */
+
+void m_initq( struct mqueue *q );
+void m_freeq( struct mqueue *q );
+void m_enq( struct mbuf *m, struct mqueue *q );
+void m_pushq( struct mbuf *m, struct mqueue *q );
+void m_insertq( struct mqueue *q, struct mbuf *n, struct mbuf *p );
+void m_removeq( struct mqueue *q, struct mbuf *n, struct mbuf *p );
+struct mbuf *m_deq( struct mqueue *q );
+
+
+/* Function prototypes for mbuf data buffer operations */
+
+void m_initb( struct mbuffer *q );
+void m_freeb( struct mbuffer *q );
+void m_buffer( struct mbuffer *q, struct mbuf *m );
+struct mbuf *m_unbuffer( struct mbuffer *q, kal_uint16 size );
+
+
+#ifdef M_DEBUG
+/* Function prototypes for mbuf debug operations */
+
+int_16 m_chkq( struct mqueue *q );
+void m_freemx( struct mbuf *m, char *file, int_16 line );
+#endif
+
+
+/* When inserting or removing the mbuf (chain) at the head of a queue
+ identify the previous mbuf as HEADQ( q ). */
+
+#define HEADQ( q ) (struct mbuf *)(q)
+
+
+/* IP Header */
+
+#define ip_dgm data.buff /* char[ M_SIZE ] */
+#define ip_hdr data.dgm.ip /* struct ip_header */
+#define ip_hlen data.dgm.ip.hlen
+#define ip_ver data.dgm.ip.ver
+#define ip_tos data.dgm.ip.tos
+#define ip_len data.dgm.ip.len
+#define ip_id data.dgm.ip.id
+#define ip_off data.dgm.ip.off
+#define ip_ttl data.dgm.ip.ttl
+#define ip_pro data.dgm.ip.pro
+#define ip_chk data.dgm.ip.chk
+#define ip_src data.dgm.ip.src
+#define ip_dst data.dgm.ip.dst
+#define ip_opt data.dgm.data.opt /* char[ IP_MAXOPTSIZE ] */
+#define ip_tcp data.dgm.data.opt
+#define ip_udp data.dgm.data.opt
+
+#define ip_fragq data.dgm.data.opt[0]
+#define ip_mff data.dgm.ip.tos
+
+
+/* TCP Header */
+
+#define tcp_hdr data.dgm.data.tcp
+#define tcp_src data.dgm.data.tcp.src
+#define tcp_dst data.dgm.data.tcp.dst
+#define tcp_seq data.dgm.data.tcp.seq
+#define tcp_ack data.dgm.data.tcp.ack
+#define tcp_hlen data.dgm.data.tcp.hlen
+#define tcp_ctl data.dgm.data.tcp.ctl
+#define tcp_win data.dgm.data.tcp.win
+#define tcp_chk data.dgm.data.tcp.chk
+#define tcp_urg data.dgm.data.tcp.urg
+
+
+/* TCP and UDP Extended Header */
+
+#define tcp_seg data.dgm.ip.ttl /* TCP extended header */
+#define tcp_len data.dgm.ip.chk /* TCP header+data len */
+
+#define ext_zer data.dgm.ip.ttl /* must be zero */
+#define ext_pro data.dgm.ip.pro /* IP_TCP or IP_UDP */
+#define ext_len data.dgm.ip.chk /* TCP/UDP header+data */
+#define ext_saddr data.dgm.ip.src /* IP source address */
+#define ext_daddr data.dgm.ip.dst /* IP destin address */
+
+
+/* UDP Header */
+
+#define udp_hdr data.dgm.data.udp
+#define udp_src data.dgm.data.udp.src
+#define udp_dst data.dgm.data.udp.dst
+#define udp_len data.dgm.data.udp.len
+#define udp_chk data.dgm.data.udp.chk
+
+
+/* ICMP Header and Message */
+
+#define icmp_hdr data.dgm.data.icmp
+#define icmp_type data.dgm.data.icmp.type
+#define icmp_code data.dgm.data.icmp.code
+#define icmp_chk data.dgm.data.icmp.chk
+#define icmp_void data.dgm.data.icmp.data.advice.type.u
+#define icmp_prob data.dgm.data.icmp.data.advice.type.prob
+#define icmp_redir data.dgm.data.icmp.data.advice.type.redirect
+#define icmp_unreach data.dgm.data.icmp.data.advice.type.unreach
+#define icmp_expired data.dgm.data.icmp.data.advice.type.expired
+#define icmp_quench data.dgm.data.icmp.data.advice.type.quench
+#define icmp_echo data.dgm.data.icmp.data.echo
+#define icmp_time data.dgm.data.icmp.data.time
+
+
+/* IP Source Route Fields */
+
+#define sr_addr data.route.addr
+#define sr_nhops data.route.nhops
+#define sr_opt data.route.opt
+#define sr_list data.route.list
+
+
+/* Global References */
+
+extern struct mstate mstate;
+extern struct mstate *pool;
+extern struct mqueue mfreeq;
+
+#endif /* _IP_MBUF_H_ */
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/IP_PROC.H b/mcu/interface/protocol/l2_c2k/common/IP_PROC.H
new file mode 100644
index 0000000..7360090
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/IP_PROC.H
@@ -0,0 +1,109 @@
+/*************************************************************
+*
+* 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: ip_proc.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.1 (15 Apr 1998)
+ *
+ * Description: Processor Architecture Dependencies
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: IP_PROC.H $
+ * Revision 1.2 2004/03/24 16:41:24 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1 2003/05/12 15:24:07 fpeng
+ * Initial revision
+ * Revision 1.2 2002/06/06 11:44:05 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.1 2001/04/26 11:42:19 fpeng
+ * Initial revision
+ * Revision 1.3 2000/08/28 14:57:53 hhong
+ * Moving up to rev 1.3 by schecking out 1.1 but locking 1.2. It's a
+ * duplicated version of 1.1
+ * Revision 1.1 1999/11/30 23:01:22Z cdma
+ * Initial revision
+ * Revision 1.5 1999/07/01 16:44:25 hhong
+ * Incorporate new protocol engine.
+ * Revision 1.3 1999/01/25 19:02:15 bcassidy
+ * 1. Fix NTOH and HTON macros for little-Endian machines.
+ *
+ * Revision 1.2 1999/01/05 18:37:26 dcc
+ * move HTON macros to function calls to remove compiler warnings
+ *
+ * Revision 1.1 1998/06/10 15:32:21 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _IP_PROC_H_
+#define _IP_PROC_H_ 1
+
+#include "IP_CUSTM.H"
+
+
+/* HOST-to-NET and NET-to-HOST Endian Conversion Macros */
+
+#if HOST_ENDIAN == NET_ENDIAN
+
+/* In-Place Endian Exchange Conversions */
+
+#define HTON16X(i)
+#define NTOH16X(i)
+#define HTON32X(i)
+#define NTOH32X(i)
+
+/* Assignment Endian Conversions */
+
+#define NTOH16(i) (i)
+#define NTOH32(i) (i)
+#define HTON16(i) (i)
+#define HTON32(i) (i)
+
+#else /* HOST_ENDIAN != NET_ENDIAN */
+
+/* Assignment Endian Conversions */
+kal_uint16 Swap_Endian_16 (kal_uint16 val);
+kal_uint32 Swap_Endian_32 (kal_uint32 val);
+
+#define NTOH16(i) Swap_Endian_16(i)
+#define NTOH32(i) Swap_Endian_32(i)
+#define HTON16(i) Swap_Endian_16(i)
+#define HTON32(i) Swap_Endian_32(i)
+
+#define NTOH16X(i) (i) = Swap_Endian_16(i)
+#define NTOH32X(i) (i) = Swap_Endian_32(i)
+#define HTON16X(i) (i) = Swap_Endian_16(i)
+#define HTON32X(i) (i) = Swap_Endian_32(i)
+
+#endif /* ENDIAN_H */
+
+#endif /* _IP_PROC_H_ */
diff --git a/mcu/interface/protocol/l2_c2k/common/IP_TYPE.H b/mcu/interface/protocol/l2_c2k/common/IP_TYPE.H
new file mode 100644
index 0000000..db77acf
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/IP_TYPE.H
@@ -0,0 +1,87 @@
+/*************************************************************
+*
+* 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: ip_type.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.1 (15 Apr 1998)
+ *
+ * Description: IP Portable Type Definitions
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: IP_TYPE.H $
+ * Revision 1.2 2004/03/24 16:41:26 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1 2003/05/12 15:24:10 fpeng
+ * Initial revision
+ * Revision 1.2 2002/06/06 11:44:07 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.1 2001/04/26 11:42:20 fpeng
+ * Initial revision
+ * Revision 1.3 2000/08/28 14:57:56 hhong
+ * Moving up to rev 1.3 by schecking out 1.1 but locking 1.2. It's a
+ * duplicated version of 1.1
+ * Revision 1.1 1999/11/30 23:01:32Z cdma
+ * Initial revision
+ * Revision 1.5 1999/07/01 16:44:37 hhong
+ * Incorporate new protocol engine.
+ * Revision 1.2 1998/08/13 21:02:57 sharker
+ * Removed stype include from the header file.
+ *
+ * Revision 1.1 1998/06/10 15:32:21 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _IP_TYPE_H_
+#define _IP_TYPE_H_ 1
+
+#include "IP_CUSTM.H"
+
+#endif /* _IP_TYPE_H_ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/NSP_OFST.H b/mcu/interface/protocol/l2_c2k/common/NSP_OFST.H
new file mode 100644
index 0000000..942ddde
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/NSP_OFST.H
@@ -0,0 +1,31 @@
+/*************************************************************
+*
+* 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.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module: NSP_Ofst.h
+ *
+ * Purpose: Defines module id offsets to add with token value
+ * to create contiguous tokens.
+ *
+ ***************************************************************/
+
+
+const kal_uint16 TokenOffsetsNspe[9] =
+{
+ 0,
+ 14,
+ 27,
+ 48,
+ 51,
+ 55,
+ 58,
+ 62,
+ 62
+};
diff --git a/mcu/interface/protocol/l2_c2k/common/PPPAPI.H b/mcu/interface/protocol/l2_c2k/common/PPPAPI.H
new file mode 100644
index 0000000..09c40b4
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/PPPAPI.H
@@ -0,0 +1,472 @@
+/*************************************************************
+*
+* 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: pppapi.h
+ * Project: PPP
+ *
+ * Original Author: Steve Pye
+ * Creation Date:
+ *
+ * Description: Header File for the PPP Application Programming Interface
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _PPPAPI_H_
+#define _PPPAPI_H_ 1
+
+/* Standard type definitions */
+#include "7074CUST.H"
+#include "IP_PROC.H"
+
+#ifdef SYS_OPTION_DATA_RAM_INUSE
+#define PPP_NPORTS 4
+#else
+#define PPP_NPORTS 1
+#endif
+
+
+#ifdef SYS_OPTION_DATA_RAM_INUSE
+#define PPP_DATASIZE 1500
+#else
+#define PPP_DATASIZE 1
+#endif
+
+/* Macros to store a 16-bit integer LS byte first */
+#if ( HOST_ENDIAN == BIG_ENDIAN )
+#define LSBYTE_FIRST(i) (kal_uint16)( (((kal_uint16)(i) << 8) & 0xff00)| \
+ (((kal_uint16)(i) >> 8) & 0x00ff) \
+ )
+
+#define LSBYTE_FIRST_32(i) (kal_uint32)( (((kal_uint32)(i) << 24) & 0xff000000)| \
+ (((kal_uint32)(i) << 8) & 0x00ff0000)| \
+ (((kal_uint32)(i) >> 8) & 0x0000ff00)| \
+ (((kal_uint32)(i) >> 24) & 0x000000ff) \
+ )
+#else /* HOST_ENDIAN = LITTLE_ENDIAN */
+#define LSBYTE_FIRST(i) (kal_uint16)(i)
+#define LSBYTE_FIRST_32(i) (kal_uint32)(i)
+#endif /* HOST_ENDIAN */
+
+/* IE_xxx Status Codes -- others may be already defined elsewhere! */
+/* #define IE_SUCCESS 0 */ /* Let user_api.h define it. */
+
+#define IE_NOMOREPORTS 100
+#define IE_OPENPORTFAIL 101
+#define IE_INVALIDPPPPORT 102
+#define IE_PORTNOTOPEN 103
+#define IE_INVALIDEVENT 104
+#define IE_INVALIDTIMER 105
+#define IE_INVALID_AUTHPROT 106
+
+#define IE_RESTARTTIMER 110
+#define IE_MAXTERMINATE 111
+#define IE_MAXCONFIGURE 112
+#define IE_MAXFAILURE 113
+#define IE_BUFFERSIZE 114
+#define IE_NUMSLOTS 115
+#define IE_AUTHRETRYTIMER 116
+#define IE_AUTHMAXTRIES 117
+
+#define IE_NORXBUFFER 120
+#define IE_RXBUFFERFULL 121
+#define IE_NORXDATA 122
+#define IE_SENDINPROGRESS 123
+
+/* PPP/LCP Protocol Numbers */
+#define PRO_IP 0x0021 /* Internet Protocol */
+#define PRO_IPV6 0x0057 /* Internet Protocol Version 6 */
+#define PRO_TCPIP_VJ 0x002d /* Van Jacobson Compressed TCP/IP */
+#define PRO_TCPIP_UC 0x002f /* Uncompressed TCP/IP */
+
+#define PRO_IPCP 0x8021 /* NCP: IP Control Protocol */
+#define PRO_IPV6CP 0x8057 /* NCP: IPV6 Control Protocol */
+#define PRO_CCP 0x80fd /* Compression Control Protocol */
+
+#define PRO_LCP 0xc021 /* Link Control Protocol */
+#define PRO_PAP 0xc023 /* Password Authentication */
+#define PRO_LQR 0xc025 /* Link Quality Report */
+#define PRO_CHAP 0xc223 /* Challenge Handshake Authentication */
+#ifdef CBP7_EHRPD
+#define PRO_EAP 0xc227 /* Extensible Authentication Protocol */
+#endif
+
+#define PRO_MNRP 0x4003 /* MNRP CDPD registration protocol */
+#define PRO_VSNCP 0x805b /* Vendor-Specific Net Ctrl Protocol */
+#define PRO_VSNP 0x005b /* Vendor-Specific Network Protocol */
+#define PRO_IPV6 0x0057 /* IPv6 over PPP */
+#define PRO_CDP 0x8207 /* Cisco Discovery Protocol Control */
+
+
+/* PPP Configuration Vector */
+typedef struct config
+{
+ /* PPP-LCP Parameters */
+ kal_uint16 restart; /* restart timer */
+ kal_uint16 mconfigs; /* max LCP Configure-REQ */
+ kal_uint16 mterms; /* max LCP Terminate-REQ */
+ kal_uint16 mfails; /* max LCP Configure-NAK */
+ kal_uint16 termRestart; /* termination timer */
+
+ /* PPP-NCP Parameters */
+ kal_uint16 ncpRestart; /* restart timer */
+ kal_uint16 ncpMconfigs; /* max NCP Configure-REQ */
+ kal_uint16 ncpMterms; /* max NCP Terminate-REQ */
+ kal_uint16 ncpMfails; /* max NCP Configure-NAK */
+ kal_uint16 ncpTermRestart; /* termination timer */
+
+ /* LCP Options */
+ kal_uint32 accm; /* Async Control-Character Map */
+ kal_bool UseQual; /* Use Link Quality Reporting? */
+ kal_bool UseMagic; /* Use Magic-Number? */
+ kal_bool UsePcomp; /* Use Protocol Compression? */
+ kal_bool UseAcomp; /* Use Address/Control Compression? */
+
+ /* Authentication Options */
+ char* userName; /* User Name */
+ char* password; /* PAP:password, CHAP:secret */
+ kal_uint8 lenPassword;
+ kal_uint16 authRetryTimer; /* Auth-Rqst/Challenge retry timer */
+ kal_uint16 authMaxTries; /* Auth-Rqst/Challenge max tries */
+
+ /* LQR Options */
+ kal_uint16 LqrPeriod; /* LQR Reporting Period (sec) */
+
+ /* NCP (IPCP) Options */
+ kal_uint32 LocIPAddr; /* IP Address: Local */
+ kal_uint32 RmtIPAddr; /* IP Address: Remote (peer) */
+ kal_uint32 PriDNSAddr; /* IP Address: Primary DNS Server */
+ kal_uint32 SecDNSAddr; /* IP Address: Secondary DNS Server */
+ kal_bool txUseVJC; /* Van Jacobson Compression (peer) */
+ kal_bool rxUseVJC; /* Van Jacobson Compression */
+ kal_uint8 NumSlots; /* Number of Slots */
+ kal_bool UseScomp; /* Use Slot ID Compression? */
+ kal_bool UseDNSPri; /* Use DNS Primary? */
+ kal_bool UseDNSSec; /* Use DNS Secondary? */
+
+ /* Peer's options available to Network App */
+ kal_uint16 PeerMRU; /* The peer's Maximum Receive Unit */
+} CONFIG;
+
+/* Defaults for Configuration Vector */
+#define DEFL_LOCAL_RM_IP 0x0a000001
+#define DEFL_REMOTE_RM_IP 0x0a000070
+
+
+#ifdef CBP7_EHRPD
+#define DFLT_RESTART_EHRPD 2000
+#endif
+
+#define DFLT_RESTART 3000
+#define DFLT_MCONFIGS 10
+#define DFLT_MFAILS 10
+#define DFLT_MTERMS 2
+#define DFLT_TERM_TMO 3000
+#define DFLT_NCP_RESTART 3000
+#define DFLT_NCP_MCONFIGS 10
+#define DFLT_NCP_MFAILS 10
+#define DFLT_NCP_MTERMS 2
+#define DFLT_NCP_TERM_TMO 3000
+#define DFLT_MCONFIGS_SHORT 3
+
+#define DFLT_ACCM 0xffffffffL
+#define DFLT_USELQR KAL_FALSE
+#define DFLT_LQRPERIOD 120
+#ifdef MTK_PLT_ON_PC_UT
+#define DFLT_USEMAGIC KAL_FALSE
+#else
+#define DFLT_USEMAGIC KAL_TRUE /* for India */
+#endif
+#define DFLT_PCOMP KAL_FALSE
+#define DFLT_ACOMP KAL_FALSE
+
+#define DFLT_AUTH_TIMER 3000
+#define DFLT_AUTH_MAXTRIES 5
+
+#define DFLT_IPADDRESS 0x00000000L
+#define DFLT_NUMSLOTS 16
+#define DFLT_COMPSLOTID KAL_FALSE
+#define DFLT_DNSPRI KAL_TRUE
+#define DFLT_DNSSEC KAL_TRUE
+
+/* Maximum values for Configuration Vector */
+#define MAX_RESTART 10000
+#define MAX_MCONFIGS 20
+#define MAX_MTERMS 5
+#define MAX_MFAILS 20
+
+/* Max/Min values for Configuration Vector */
+#define MAX_NUMSLOTS DFLT_NUMSLOTS
+#define MIN_NUMSLOTS 2
+#if (MAX_NUMSLOTS < MIN_NUMSLOTS)
+#error [pppapi.h] MAX_NUMSLOTS < MIN_NUMSLOTS
+#endif
+
+/* Counter structure used for Link Quality Reporting (LQR) */
+typedef struct lqr_counts
+{
+ kal_uint32 LastOutLQRs;
+ kal_uint32 LastOutPackets;
+ kal_uint32 LastOutOctets;
+ kal_uint32 PeerInLQRs;
+ kal_uint32 PeerInPackets;
+ kal_uint32 PeerInDiscards;
+ kal_uint32 PeerInErrors;
+ kal_uint32 PeerInOctets;
+ kal_uint32 PeerOutLQRs;
+ kal_uint32 PeerOutPackets;
+ kal_uint32 PeerOutOctets;
+
+} LQR_COUNTS;
+
+#define NUM_LQR_COUNTS ( sizeof(LQR_COUNTS) / sizeof(kal_uint32) )
+
+/* LQR counters "logically appended" by PPP to a received LQR packet */
+typedef struct lqr_appends
+{
+ kal_uint32 SaveInLQRs;
+ kal_uint32 SaveInPackets;
+ kal_uint32 SaveInDiscards;
+ kal_uint32 SaveInErrors;
+ kal_uint32 SaveInOctets;
+
+} LQR_APPENDS;
+
+#define NUM_LQR_APPENDS ( sizeof(LQR_APPENDS) / sizeof(kal_uint32) )
+
+/* LQR Rx Packet data format (as delivered by PPP) */
+typedef struct lqr_rxdata
+{
+ /* LQR fields received from the peer */
+ LQR_COUNTS counts;
+
+ /* LQR fields "logically appended" by PPP to received LQR data */
+ LQR_APPENDS appends;
+
+} LQR_RXDATA;
+
+/* PPP Connection Communication Statistics */
+typedef struct ppp_stats
+{
+ kal_uint32 packets_sent;
+ kal_uint32 bytes_sent;
+ kal_uint32 packets_rcvd;
+ kal_uint32 bytes_rcvd;
+ kal_uint32 packets_dropped;
+ kal_uint32 overrun_errors;
+ kal_uint32 recvfcs_errors;
+ kal_uint32 lqrpackets_sent;
+
+} PPP_STATS;
+
+/* LCP Statistics */
+typedef struct lcp_stats
+{
+ kal_uint32 illegal_ups;
+ kal_uint32 illegal_downs;
+
+} LCP_STATS;
+
+/* PPP Event types -> NET */
+enum netEvents
+{
+ PPE_ILLEGAL = 0, /* Illegal Event occurred */
+ PPE_LOOPBACK, /* Connection is looped back to itself */
+
+ PPE_CONNECT_LCP, /* Connect -> Can carry traffic */
+ PPE_CONNECT_IPCP, /* Connect -> Can carry IP traffic */
+ PPE_DISCONNECT, /* Disconnect -> Link Dead */
+
+ PPE_RXDATA, /* Datagram Received */
+ PPE_SENDCOMPLETE, /* Datagram Send Completed */
+
+ /* This one must always be last! */
+ netNUMEVENTS
+};
+
+/* PPP Internal Event types -> Link Manager */
+enum pEvents
+{
+ pNONE = 0, /* Switch-Kicker */
+
+ pUP, /* Up */
+ pDOWN, /* Down */
+ pOPEN, /* Open */
+ pCLOSE, /* Close */
+ pTIMEOUT, /* TO+, TO- */
+
+ pSENDDATA, /* Send Data */
+
+ /* COM Layer -> Link Manager */
+ pCOMUP, /* COM Layer Up */
+ pCOMDOWN, /* COM Layer Down */
+ pRXPACKET, /* Received Raw HDLC Packet */
+ pTXDONE, /* Transmit Complete */
+
+ /* LCP -> Link Manager */
+ pTLU, /* This Layer Up */
+ pTLD, /* This Layer Down */
+
+ /* SYS -> AUTH */
+ pREMOTE_AUTH_TMO, /* Peer: PAP Auth-Request retry or
+ * CHAP Response-Retry timeout */
+ pLOCAL_AUTH_TMO, /* Auth: CHAP Challenge retry timeout */
+
+ /* AUTH -> Link Manager */
+ pAUTH_DONE, /* All Authentication complete */
+
+ /* SYS -> MNRP */
+ pMNRP_TMO, /* MNRP timeout of configuration timer */
+ pMNRP_DONE, /* MNRP finished registration */
+
+#ifdef PPP_RECONNECT
+ pREOPEN, /* ppp Re-Open */
+#endif
+
+ pDORMANT_RECONNECT,
+ /* This one must be last! */
+ pNUMEVENTS
+};
+
+/* NET-to-PPP Function Prototypes */
+kal_uint16 PPP_Initialize(void);
+kal_uint16 PPP_Open (kal_uint8 appType, kal_uint8 *buffer, kal_uint16 buflen, kal_uint16 *port, kal_uint16 authProt, kal_bool mnrp);
+kal_uint16 PPP_GetConfig(kal_uint16 port, CONFIG *r);
+kal_uint16 PPP_SetConfig(kal_uint16 port, CONFIG *r);
+kal_uint16 PPP_Connect(kal_uint16 port);
+kal_uint16 PPP_Send(kal_uint16 port, kal_uint16 prot, kal_uint8 *data, kal_uint16 len, kal_uint8 PdnId);
+kal_uint16 PPP_Receive(kal_uint16 port, kal_uint16 *prot, kal_uint8 **data, kal_uint16 *len,
+ kal_bool copy);
+kal_uint16 PPP_Disconnect(kal_uint16 port);
+kal_uint16 PPP_Close(kal_uint16 port);
+kal_uint16 PPP_Init(kal_uint16 port);
+kal_uint16 PPP_GetStatus(kal_uint16 port, PPP_STATS *status);
+
+#ifdef PPP_RECONNECT
+kal_uint16 PPP_ReConnect(kal_uint16 port);
+#endif
+
+/* PPP-to-PPP Function Prototypes */
+void PPP_Timeout(hlp_timer_enum timer_id);
+kal_uint16 PPP_PostEvent(kal_uint16 port, kal_uint8 type);
+void PPP_SetState(kal_uint16 port, kal_uint8 state);
+
+/* PPP-to-NET Function Prototypes */
+void PPP_SendNetEvent(kal_uint16 port, kal_uint8 type);
+
+/* Interface between Browser and Async for supporting Browser_on_Async mode */
+void Browser_Close_Async(kal_bool graceful);
+
+#endif /* _PPPAPI_H_ */
+
diff --git a/mcu/interface/protocol/l2_c2k/common/PPP_OFST.H b/mcu/interface/protocol/l2_c2k/common/PPP_OFST.H
new file mode 100644
index 0000000..28d4a54
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/PPP_OFST.H
@@ -0,0 +1,35 @@
+/*************************************************************
+*
+* 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.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module: PPP_Ofst.h
+ *
+ * Purpose: Defines module id offsets to add with token value
+ * to create contiguous tokens.
+ *
+ ***************************************************************/
+
+
+kal_uint16 TokenOffsetsPpp[13] =
+{
+ 0,
+ 0,
+ 101,
+ 135,
+ 166,
+ 174,
+ 182,
+ 195,
+ 214,
+ 217,
+ 220,
+ 230,
+ 240
+};
diff --git a/mcu/interface/protocol/l2_c2k/common/PP_FRAME.H b/mcu/interface/protocol/l2_c2k/common/PP_FRAME.H
new file mode 100644
index 0000000..e61c690
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/PP_FRAME.H
@@ -0,0 +1,129 @@
+/*************************************************************
+*
+* 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: pp_frame.h
+ * Project: PPP
+ *
+ * Original Author: Steve Pye
+ * Creation Date:
+ *
+ * Description: PPP in HDLC Framing
+ * See: RFC 1549
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: PP_FRAME.H $
+ * Revision 1.2 2004/03/24 16:41:40 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1 2003/05/12 15:24:18 fpeng
+ * Initial revision
+ * Revision 1.2 2002/06/06 11:44:18 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.1 2001/04/26 11:42:24 fpeng
+ * Initial revision
+ * Revision 1.3 2000/08/28 15:06:46 hhong
+ * Moving up to Rev 1.3 by checking out 1.1.2.1 and locking 1.2.
+ * It's a duplicate version of 1.1.2.1
+ * Revision 1.1.2.1 2000/08/24 00:58:52Z hhong
+ * To update to engine release 1.6.0.1
+ * Revision 1.7 2000/03/24 00:09:13 pjiang
+ * added structure define for Ethernet support
+ *
+ * Revision 1.6 2000/02/25 00:35:14 ddoucett
+ * *** empty log message ***
+ *
+ * Revision 1.5 1998/09/10 20:30:12 sharker
+ * Increased PPP_BUFFERSIZE to handle 32-bit boundary alignment.
+ *
+ * Revision 1.4 1998/08/13 21:02:02 sharker
+ * Removed stype.h include from header file.
+ *
+ * Revision 1.3 1998/07/23 15:58:50 sharker
+ * Changed uchar,ushort, and ulong to kal_uint8, kal_uint16 and kal_uint32.
+ *
+ * Revision 1.2 1998/06/30 15:44:07 sharker
+ * Added #define for inplace tcp/ip header decompression handling.
+ *
+ * Revision 1.1 1998/06/10 15:39:11 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _PP_FRAME_H_
+#define _PP_FRAME_H_ 1
+
+ /* Standard definitions */
+#include "PPPAPI.H"
+
+/* HDLC Frame Header structure */
+typedef struct ppp_header
+{
+ kal_uint8 flag; /* Flag Field */
+ kal_uint8 addr; /* Address Field */
+ kal_uint8 ctrl; /* Control Field */
+ kal_uint8 prot[2]; /* Protocol Field */
+} PPP_HEADER;
+
+/* HDLC Frame Trailer structure */
+typedef struct ppp_trailer
+{
+ kal_uint8 fcs[2]; /* Frame Check Sequence (FCS) */
+ kal_uint8 flag; /* Flag Field */
+} PPP_TRAILER;
+
+/* HDLC Frame sizes */
+#define PPP_HEADERSIZE 5
+#define PPP_TRAILERSIZE 3
+#define PPP_HEADER_OFFSET 8
+
+
+
+
+/* HDLC Frame constants defined by RFC 1549 */
+#define HDLC_FLAG 0x7e /* HDLC Flag: 01111110 */
+#define HDLC_ALL_ADDR 0xff /* HDLC All-Station Address */
+#define HDLC_UI 0x03 /* HDLC Unnumbered Information */
+#define PP_ESC 0x7d /* Control Escape: 01111101 */
+#define PP_ESC_MASK 0x20 /* XOR Mask for escaped character */
+
+/* PPP Implementation Constants */
+/* the extra space at the beginning of the buffer
+ is for 32-bit address alignments, that may be required */
+#define PPP_BUFFERSIZE (2*PPP_HEADERSIZE+PPP_DATASIZE+PPP_TRAILERSIZE)
+
+/* This offset allows for tcp/ip header decompression in place.
+ The maximum allowable tcp/ip header size is 128 bytes */
+#define TCPIP_INPLACE_COMPRESS_SIZE 128
+
+#endif /* _PP_FRAME_H_ */
+
+
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/TCP.H b/mcu/interface/protocol/l2_c2k/common/TCP.H
new file mode 100644
index 0000000..eafc6e5
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/TCP.H
@@ -0,0 +1,243 @@
+/*************************************************************
+*
+* 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: tcp.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.1 (15 Apr 1998)
+ *
+ * Description: TCP Data Structures
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ************************************************************************/
+
+#ifndef _TCP_H_
+#define _TCP_H_ 1
+
+#include "IP_TYPE.H"
+#include "IP.H"
+
+
+/* TCP Header */
+
+struct tcp_header
+ {
+ kal_uint16 src; /* source port number */
+ kal_uint16 dst; /* destination port number */
+ kal_uint32 seq; /* sequence number */
+ kal_uint32 ack; /* acknowledgement sequence number */
+ kal_uint8 hlen; /* [7:3] header 32-bit word length */
+ kal_uint8 ctl; /* TCP control bit flags */
+ kal_uint16 win; /* offered window */
+ kal_uint16 chk; /* checksum over TCP header+data */
+ kal_uint16 urg; /* offset from seq of last byte of */
+ }; /* urgent data */
+
+
+/* TCP Header Control Field Bit Flags */
+
+#define TCP_FIN 0x01
+#define TCP_SYN 0x02
+#define TCP_RST 0x04
+#define TCP_PSH 0x08
+#define TCP_ACK 0x10
+#define TCP_URG 0x20
+
+
+/* TCP/IP Header */
+
+struct tcpip_header
+ {
+ struct ip_header ip; /* IP header without options */
+ struct tcp_header tcp; /* TCP header without options */
+ };
+
+
+/* TCP Constant Sizes */
+
+#define TCP_HEADERSIZE 20 /* default TCP header size */
+#define TCP_MAXHDRSIZE 40 /* should really be 24 but nops ok */
+#define TCP_MAXSEGSIZE 536 /* IP_MAXDGMSIZE-TCPIP_HEADERSIZE */
+#define TCP_MSSOPTSIZE 4 /* max seg size option length */
+#define TCP_MSS_BACKOFF 80 /* in the case of VSNP type packets */
+
+
+/* TCP Maximum Segment Size Option */
+
+struct tcp_mssopt
+ {
+ kal_uint8 type; /* TCPOPT_MAXSEG */
+ kal_uint8 len; /* TCP_MSSOPTSIZE */
+ kal_uint16 mss; /* maximum segment size */
+ };
+
+#define TCPOPT_TYPE 0 /* option type field offset */
+#define TCPOPT_LEN 1 /* option length field offset */
+#define TCPOPT_MSS 2 /* option mss field offset */
+
+
+/* TCP Option Types */
+
+#define TCPOPT_EOL 0 /* end-of-list option */
+#define TCPOPT_NOP 1 /* no-operation option (padding) */
+#define TCPOPT_MAXSEG 2 /* maximum segment size option */
+
+
+/* TCP Protocol States */
+
+#define TCPS_CLOSED 0 /* closed */
+#define TCPS_LISTEN 1 /* passive: listening for SYN */
+#define TCPS_SYNSENT 2 /* active: have sent SYN */
+#define TCPS_SYNRCVD 3 /* have sent and received SYN */
+#define TCPS_ESTABLISHED 4 /* established */
+#define TCPS_CLOSEWAIT 5 /* rcvd FIN, awaiting user close */
+#define TCPS_FINWAIT1 6 /* user closed, sent FIN */
+#define TCPS_CLOSING 7 /* closed xchd FIN; await FIN ACK */
+#define TCPS_LASTACK 8 /* had FIN and close await FIN ACK */
+#define TCPS_FINWAIT2 9 /* have closed, FIN is acked */
+#define TCPS_TIMEWAIT 10 /* in 2*MSL quiet wait after close */
+
+#define TCP_NSTATES 11
+
+/*set for trace, copy from TCP Protocol States above*/
+enum TraceTcpStates
+{
+ TCP_CLOSED,
+ TCP_LISTEN,
+ TCP_SYNSENT,
+ TCP_SYNRCVD,
+ TCP_ESTABLISHED,
+ TCP_CLOSEWAIT,
+ TCP_FINWAIT1,
+ TCP_CLOSING,
+ TCP_LASTACK,
+ TCP_FINWAIT2,
+ TCP_TIMEWAIT,
+ TCP_STATE_NUM
+};
+
+#define TCP_HAVERCVDSYN(s) ((s) >= TCPS_SYNRCVD)
+#define TCP_HAVERCVDFIN(s) ((s) >= TCPS_TIMEWAIT)
+#define TCP_HAVESENTSYN(s) ((s) >= TCPS_SYNSENT)
+#define TCP_HAVESENTFIN(s) ((s) >= TCPS_FINWAIT1)
+
+
+/* TCP Sequence Number Ordinality Macros. Note that if two sequence numbers
+ differ by more than half the sequence space, then their ordinality is
+ reversed and wraparound is assumed to have occurred. */
+
+#define SEQ_LT(a,b) ( (kal_int32)((a)-(b)) < 0 )
+#define SEQ_LE(a,b) ( (kal_int32)((a)-(b)) <= 0 )
+#define SEQ_GT(a,b) ( (kal_int32)((a)-(b)) > 0 )
+#define SEQ_GE(a,b) ( (kal_int32)((a)-(b)) >= 0 )
+
+
+/* TCP Send and Receive Sequence Number Initialization Macros */
+
+#define TCP_RECVSEQINIT(tp) \
+(tp)->rcv_adv = (tp)->rcv_nxt = (tp)->rcv_irs + 1
+
+#define TCP_SENDSEQINIT(tp) \
+(tp)->snd_una = (tp)->snd_nxt = (tp)->snd_max = (tp)->snd_iss
+
+#define TCP_PUSHURGINIT(tp) \
+(tp)->snd_psh = (tp)->snd_urg = (tp)->snd_una-1
+
+
+/* TCP Set Time Value Within a Defined Range Macro */
+
+#define TCPT_RANGESET( tv, value, tvmin, tvmax ) \
+ { \
+ (tv) = (value); \
+ if( (tv) < (tvmin) ) \
+ (tv) = (tvmin); \
+ else if( (tv) > (tvmax) ) \
+ (tv) = (tvmax); \
+ }
+
+
+/* TCP Initial Sequence Number Assignment Increment. RFC793 suggests that
+ the TCP connection snd_iss should be assigned from a counter that is
+ incremented by 1 every 4 usecs. Then TCP_ISSINCR =
+
+ 1 (incr) 1 (secs) 10^6 (incr)
+ ------------------ x ------------------ = --------------------
+ 4 x 10^(-6) (secs) IP_CLOCKHZ (ticks) 4 x IP_CLOCKHZ (tick)
+
+ For an IP clock tick of 250 msecs (i.e. IP_CLOCKHZ = 4 ticks/sec)
+ TCP_ISSINCR = 1/16 x 10^6 = 62500 incr/tick. */
+
+#define TCP_ISSINCR (62500UL) /* tcp_iss increment on each tick */
+
+
+/* Round-Trip Time and Variance Scaling Factors. The smoothed round-trip
+ time and estimated variance are stored in the tcb as fixed point
+ values scaled-up by the multipliers below. */
+
+#define TCP_RTT_SCALE 8 /* multiplier for SRTT */
+#define TCP_RTT_SHIFT 3 /* log2 of SRTT multiplier */
+#define TCP_RTTVAR_SCALE 4 /* multiplier for RTTVAR */
+#define TCP_RTTVAR_SHIFT 2 /* log2 of RTTVAR multiplier */
+
+#define REAL_RTTUNIT 1000000UL /* route cache rtt values recorded */
+ /* in units of microseconds */
+
+/* TCP Retransmit Timeout Macro */
+
+#define TCP_REXMTVAL(tp) ((((kal_int32)(tp)->t_srtt)>>TCP_RTT_SHIFT)+((kal_int32)(tp)->t_rttvar))
+
+#endif /* _TCP_H_ */
diff --git a/mcu/interface/protocol/l2_c2k/common/TCP_OFST.H b/mcu/interface/protocol/l2_c2k/common/TCP_OFST.H
new file mode 100644
index 0000000..a279622
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/TCP_OFST.H
@@ -0,0 +1,38 @@
+/*************************************************************
+*
+* 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.
+*
+*************************************************************/
+/****************************************************************
+ *
+ * Module: TCP_Ofst.h
+ *
+ * Purpose: Defines module id offsets to add with token value
+ * to create contiguous tokens.
+ *
+ ***************************************************************/
+
+
+kal_uint16 TokenOffsetsTcpip[16] =
+{
+ 0,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 9,
+ 12,
+ 12,
+ 13,
+ 14
+};
diff --git a/mcu/interface/protocol/l2_c2k/common/UDP_HEAD.H b/mcu/interface/protocol/l2_c2k/common/UDP_HEAD.H
new file mode 100644
index 0000000..2476f67
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/UDP_HEAD.H
@@ -0,0 +1,100 @@
+/*************************************************************
+*
+* 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: udp_head.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.1 (15 Apr 1998)
+ *
+ * Description: User Datagram Protocol Definitions
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: UDP_HEAD.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - hlp
+ * Revision 1.2 2004/03/24 16:41:45 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1 2003/05/12 15:24:26 fpeng
+ * Initial revision
+ * Revision 1.2 2002/06/06 11:44:22 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.1 2001/04/26 11:42:31 fpeng
+ * Initial revision
+ * Revision 1.3 2000/08/28 14:58:11 hhong
+ * Moving up to rev 1.3 by schecking out 1.1 but locking 1.2. It's a
+ * duplicated version of 1.1
+ * Revision 1.1 1999/11/30 23:02:44Z cdma
+ * Initial revision
+ * Revision 1.5 1999/07/01 16:45:57 hhong
+ * Incorporate new protocol engine.
+ * Revision 1.1 1998/06/10 15:32:21 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _UDP_HEAD_H_
+#define _UDP_HEAD_H_ 1
+
+#ifdef WeDoUDP
+/* UDP Header */
+struct udp_header
+{
+ kal_uint16 src; /* UDP source port number */
+ kal_uint16 dst; /* UDP destination port number */
+ kal_uint16 len; /* UDP header + data length */
+ kal_uint16 chk; /* UDP header + data checksum */
+};
+
+
+/* UDP/IP Header */
+struct udpip_header
+{
+ struct ip_header ip; /* IP header without options */
+ struct udp_header udp; /* UDP header without options */
+};
+
+
+/* UDP Constant Sizes */
+#define UDP_HEADERSIZE 8 /* UDP header size */
+#define UDPIP_HEADERSIZE 28 /* IP header + UDP header size */
+
+#endif /* WeDoUDP */
+
+#endif /* _UDP_HEADER_H_ */
+
+
+
+
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/USER_API.H b/mcu/interface/protocol/l2_c2k/common/USER_API.H
new file mode 100644
index 0000000..2d086f5
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/USER_API.H
@@ -0,0 +1,432 @@
+/*************************************************************
+*
+* 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: user_api.h
+ * Project: TCP/IP
+ *
+ * Original Author: Steve Pye
+ * Creation Date: Based on PVCS Rev 1.0 (15 Apr 1998)
+ *
+ * Description: Prototypes/Structure definitions for requests
+ * coming from Higher Level Applications
+ * Restrictions:
+ * Dependencies:
+ *
+ *************************************************************************
+ *
+ * This Software is the property of ISOTEL Research Ltd.
+ * Unauthorized use is prohibited.
+ *
+ * ISOTEL Research Ltd.
+ * Suite 340, 525 - 28th Street S.E.
+ * Calgary, Alberta, Canada T2A 6W9
+ * Tel: (403)275-0041 Fax: (403)274-3598
+ *
+ *
+ *************************************************************************
+ *
+ * RCS Log Information
+ *
+ * $Revision: 1.2 $
+ *
+ * $Log: USER_API.H $
+ *
+ * 07 04 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - hlp
+ *
+ * 04 21 2017 adel.liao
+ * [MOLY00240756] [6293][C2K][HLP]remove unused code.
+ *
+ * remove MTK_DEV_BUG_FIX_HLP.
+ *
+ * 11 09 2016 sue.zhong
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * Update C2K PS code (1/2)
+ * Revision 1.2 2004/03/24 16:41:45 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.2 2004/02/10 11:31:27 cmastro
+ * merge with 4.0 8.050.0
+ * Revision 1.4 2004/01/21 10:48:08 hhong
+ * Added mechanism to support PPP open only and multi-sockets operations.
+ * Revision 1.3 2002/06/06 11:44:23 hhong
+ * Added VIA Copyright Labels
+ * Revision 1.2 2002/03/19 16:03:00 hhong
+ * Added 7074cust.h in the included file list.
+ * Added compiler flag SYS_OPTION_DATA_RAM_INUSE to guard against #define WeDoPacketMode.
+ * Revision 1.1 2001/04/26 11:42:31 fpeng
+ * Initial revision
+ * Revision 1.3 2000/08/28 15:06:55 hhong
+ * Moving up to Rev 1.3 by checking out 1.1.2.1 and locking 1.2.
+ * It's a duplicate version of 1.1.2.1
+ * Revision 1.1.4.1 2000/08/24 00:58:20Z hhong
+ * To update to engine release 1.6.0.1
+ * Revision 1.11 2000/03/04 01:28:25 pjiang
+ * remove Interface_Busy define
+ *
+ * Revision 1.10 1999/08/09 22:15:14 pjiang
+ * remove definition of Structure Pending_Data
+ *
+ * Revision 1.9 1999/07/23 21:01:07 pjiang
+ * remove UDP_Send_Rqst and UDP_Recv_Rqst
+ *
+ * Revision 1.8 1999/04/26 18:08:18 pjiang
+ * added TCP_Hiccup_Rqst( kal_uint8 sap )
+ *
+ * Revision 1.7 1999/04/19 22:44:52 bcassidy
+ * 1. Move use_rlp_flag to 7074api2.c
+ *
+ * Revision 1.6 1999/03/16 00:41:42 pjiang
+ * added kal_bool use_rlp_flag
+ *
+ * Revision 1.5 1999/02/09 01:18:06 pjiang
+ * added struct Interface_Busy and Pending_Data and enum _BrowserStatus
+ *
+ * Revision 1.4 1998/10/07 20:32:56 sharker
+ * Changed frame re-transmit number from constant to variable which can be set
+ * via IP_SetOpt_Rqst. New variable is maxrxtshift.
+ *
+ * Revision 1.3 1998/08/10 18:10:32 sharker
+ * Changed kal_uint8 to kal_uint8.
+ *
+ * Revision 1.2 1998/07/31 19:26:33 sharker
+ * Fixed C++ name mangling.
+ *
+ * Revision 1.1 1998/06/10 15:32:21 sharker
+ * Initial revision
+ *
+ *
+ ************************************************************************/
+
+#ifndef _USER_API_H_
+#define _USER_API_H_ 1
+
+#include "IP_CUSTM.H"
+#include "7074CUST.H"
+/* ------------- API #defines ----------------------------------------------*/
+
+#ifdef SYS_OPTION_DATA_RAM_INUSE
+#define WeDoPacketMode 1
+#endif
+/* Return values for the API calls */
+
+#define IE_CLOSEPENDINGWAIT 6 /* TCP close by peers, wait for user */
+#define IE_CLOSEPENDING 5 /* TCP graceful close in progress */
+#define IE_RECVMOREDATA 4 /* more UDP or raw IP data */
+#define IE_NODATA 3 /* no data available for receive */
+#define IE_CONNECTPENDING 2 /* TCP connect attempt in progress */
+#define IE_LISTENPENDING 1 /* listening for remote connect */
+#define IE_SUCCESS 0 /* request successful */
+#define IE_INVALIDRQST -1 /* invalid or unknown request */
+#define IE_INVALIDSAP -2 /* invalid service access point */
+#define IE_INVALIDPORT -4 /* invalid listen or connect port */
+#define IE_INVALIDADDR -5 /* invalid connect host address */
+#define IE_NOMOREMBUFS -6 /* no mbufs available */
+#define IE_NOMORETCBS -7 /* no tcbs available */
+#define IE_NOLOCALADDR -8 /* local host address not set */
+#define IE_INVALIDSIZE -9 /* invalid send or receive size */
+#define IE_INVALIDDATA -10 /* invalid request field */
+#define IE_INVALIDOPT -11 /* option incorrectly specified */
+#define IE_INVALIDFLAGS -12 /* invalid send/sento flags */
+#define IE_INVALIDSTATE -13 /* invalid TCP state */
+#define IE_TCPTIMEOUT -14 /* TCP time out */
+#define IE_TCPRESET -15 /* TCP reset at peers */
+#define IE_TCPABORT -16 /* TCP abort */
+#define IE_TCPDISCNTNORMAL -17 /* TCP disconnect normal */
+#define IE_EINVAL -18 /* Invalid argument */
+#define IE_EADDRNOTAVAIL -19 /* Can't assign requested address */
+#define IE_EISCONN -20 /* Socket is already connected */
+#define IE_EAFNOSUPPORT -21 /* Address family not supported by protocol family */
+#define IE_ETIMEDOUT -22 /* Operation timed out */
+
+
+/* Send and Receive Flags */
+
+#define TCP_URGENT 0x01 /* TCP send/received urgent data */
+#define TCP_PUSH 0x02 /* TCP send data immediately */
+#define IP_MOREDATA 0x04 /* UDP, raw IP datagram incomplete */
+#define HDLC_RECEIVE 0x08 /* Return a complete HDLC packet */
+
+
+/* Set Connection-Specific Option Request Types */
+
+#define OP_TOS 1 /* set IP type-of-service */
+#define OP_TTL 2 /* set IP datagram time-to-live */
+#define OP_FLAGS 3 /* set or clear binary option */
+#define OP_RECVBUF 4 /* set receive buffer size */
+#define OP_MAXSEG 5 /* set maximum data segment size */
+#define OP_MAXRXTSHIFT 6 /* set maximum frame re-transmission */
+#define OP_KEEPALIVE 7
+
+/* Connection-Specific Binary Options */
+
+#define OF_NOSENDDELAY 0x01 /* always send immediately */
+#define OF_SENDIFIDLE 0x02 /* send TCP data if conn is idle */
+
+
+
+/* ------------- Structure Declarations ------------------------------------*/
+struct AppAddress_tag
+{
+ kal_uint32 addr; /* Net-endian IP address */
+ kal_uint16 port; /* Net-endian application port */
+};
+
+typedef struct AppAddress_tag AppAddress;
+
+struct BindRequest_tag
+{
+ struct AppAddress_tag source; /* Local application */
+ struct AppAddress_tag dest; /* Remote application */
+};
+
+typedef struct BindRequest_tag BindRequest;
+
+
+struct ReceiveRequest_tag
+{
+ kal_uint8 *data; /* Pointer to receive buffer */
+ kal_uint16 size; /* Length of application data */
+ kal_uint8 flags; /* TCP_PUSH, TCP_URG, ??? */
+};
+
+typedef struct ReceiveRequest_tag ReceiveRequest;
+
+struct ReceiveFromRequest_tag
+{
+ struct ReceiveRequest_tag r;
+ struct AppAddress_tag from;
+ kal_uint16 to_port;
+};
+
+typedef struct ReceiveFromRequest_tag ReceiveFromRequest;
+
+
+struct SendRequest_tag
+{
+ kal_uint8 *data; /* Pointer to application data */
+ kal_uint16 size; /* Length of application data */
+ kal_uint8 flags; /* TCP_PSH, TCP_URG, ??? */
+};
+
+typedef struct SendRequest_tag SendRequest;
+
+struct SendToRequest_tag
+{
+ struct SendRequest_tag s;
+ struct AppAddress_tag to;
+ kal_uint16 from_port;
+ kal_uint8 sap;
+};
+
+typedef struct SendToRequest_tag SendToRequest;
+
+/* Note that the 'size' field is set on input to the maximum amount of
+ data to receive and updated on output to the actual amount of data
+ returned. */
+
+struct OptionRequest_tag
+{
+ kal_uint8 opt_type; /* Specifies which option is being set */
+ union
+ {
+ kal_uint8 opt_tos; /* Use with opt_type = OP_TOS */
+ kal_uint8 opt_ttl; /* Use with opt_type = OP_TTL */
+ kal_uint8 opt_flags; /* Use with opt_type = OP_FLAGS */
+ kal_uint16 opt_recvbuf; /* Use with opt_type = OP_RECVBUF */
+ kal_uint16 opt_maxseg; /* Use with opt_type = OP_MAXSEG */
+ kal_int16 opt_maxrxtshift; /* Use with opt_type = OP_MAXRXTSHIFT */
+ kal_bool opt_keepalive;
+ } u;
+ };
+
+typedef struct OptionRequest_tag OptionRequest;
+
+
+enum _BrowserStatus
+{
+ BrS_Success,
+ BrS_Busy,
+ BrS_Rejected,
+ BrS_Failed,
+ BrS_NoSvc,
+ BrS_DisconnectNormal,
+ BrS_ConnectionDropped,
+ BrS_Dormant,
+ BrS_Reconnected,
+ NUM_BrSs
+};
+typedef kal_uint8 BrowserStatus;
+
+
+#ifdef WeDoStats
+
+/* IP Statistics */
+
+struct ip_stats
+ {
+ kal_uint16 ips_badver; /* bad datagram version number */
+ kal_uint16 ips_total; /* total packets received */
+ kal_uint16 ips_badsum; /* checksum bad */
+ kal_uint16 ips_tooshort; /* packet too short */
+ kal_uint16 ips_toosmall; /* not enough data */
+ kal_uint16 ips_badhlen; /* ip header length < data size */
+ kal_uint16 ips_badlen; /* ip length < ip header length */
+ kal_uint16 ips_fragments; /* fragments received */
+ kal_uint16 ips_fragdropped; /* frags dropped (dups, no space) */
+ kal_uint16 ips_fragtimeout; /* fragments timed out */
+ kal_uint16 ips_cantforward; /* packets rcvd for unreach dest */
+ kal_uint16 ips_delivered; /* packets consumed here */
+ kal_uint16 ips_reassembled; /* total packets reassembled ok */
+ kal_uint16 ips_fragmented; /* output packets fragmented ok */
+ };
+
+
+/* TCP Statistics */
+
+struct tcp_stats
+ {
+ kal_uint16 tcps_connattempt; /* connections initiated */
+ kal_uint16 tcps_accepts; /* connections accepted */
+ kal_uint16 tcps_connects; /* connections established */
+ kal_uint16 tcps_drops; /* connections dropped */
+ kal_uint16 tcps_conndrops; /* embryonic connections dropped */
+ kal_uint16 tcps_closed; /* conn. closed (includes drops) */
+ kal_uint16 tcps_segstimed; /* segs where we tried to get rtt */
+ kal_uint16 tcps_rttupdated; /* times we succeeded */
+ kal_uint16 tcps_delack; /* delayed acks sent */
+ kal_uint16 tcps_timeoutdrop; /* conn. dropped in rxmt timeout */
+ kal_uint16 tcps_rexmttimeo; /* retransmit timeouts */
+ kal_uint16 tcps_persisttimeo; /* persist timeouts */
+ kal_uint16 tcps_sndtotal; /* total packets sent */
+ kal_uint16 tcps_sndpack; /* data packets sent */
+ kal_uint32 tcps_sndbyte; /* data bytes sent */
+ kal_uint16 tcps_sndrexmitpack; /* data packets retransmitted */
+ kal_uint32 tcps_sndrexmitbyte; /* data bytes retransmitted */
+ kal_uint16 tcps_sndacks; /* ack-only packets sent */
+ kal_uint16 tcps_sndprobe; /* window probes sent */
+ kal_uint16 tcps_sndwinup; /* window update-only packets sent */
+ kal_uint16 tcps_sndctrl; /* SYN|FIN|RST packets sent */
+ kal_uint16 tcps_rcvtotal; /* total packets received */
+ kal_uint16 tcps_rcvpack; /* packets received in sequence */
+ kal_uint32 tcps_rcvbyte; /* bytes received in sequence */
+ kal_uint16 tcps_rcvbadsum; /* packets received with chksum err */
+ kal_uint16 tcps_rcvbadoff; /* packets received with bad offset */
+ kal_uint16 tcps_rcvshort; /* packets received too short */
+ kal_uint16 tcps_rcvduppack; /* duplicate-only packets received */
+ kal_uint16 tcps_rcvdupbyte; /* duplicate-only bytes received */
+ kal_uint16 tcps_rcvpartduppack; /* packets with some duplicate data */
+ kal_uint16 tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */
+ kal_uint16 tcps_rcvoopack; /* out-of-order packets received */
+ kal_uint32 tcps_rcvoobyte; /* out-of-order bytes received */
+ kal_uint16 tcps_rcvpackafterwin; /* packets with data after window */
+ kal_uint16 tcps_rcvbyteafterwin; /* bytes rcvd after window */
+ kal_uint16 tcps_rcvwinprobe; /* rcvd window probe packets */
+ kal_uint16 tcps_rcvdupack; /* rcvd duplicate acks */
+ kal_uint16 tcps_rcvacktoomuch; /* rcvd acks for unsent data */
+ kal_uint16 tcps_rcvackpack; /* rcvd ack packets */
+ kal_uint16 tcps_rcvackbyte; /* bytes acked by rcvd acks */
+ kal_uint16 tcps_rcvwinupd; /* rcvd window update packets */
+ };
+
+
+/* UDP Statistics */
+
+struct udp_stats
+ {
+ kal_uint16 udps_ipackets; /* total input packets */
+ kal_uint16 udps_hdrops; /* packet shorter than header */
+ kal_uint16 udps_badsum; /* checksum error */
+ kal_uint16 udps_badlen; /* data length larger than packet */
+ kal_uint16 udps_fullrecvq; /* not delivered receive queue full*/
+ kal_uint16 udps_notcbfound; /* input packets can't find tcb */
+ kal_uint16 udps_opackets; /* total output packets */
+ kal_uint16 udps_nosum; /* no checksum */
+ };
+
+
+/* ICMP Statistics */
+
+struct icmp_stats
+ {
+ kal_uint16 icps_error; /* number of calls to icmp_error */
+ kal_uint16 icps_oldshort; /* no error as old ip too short */
+ kal_uint16 icps_oldicmp; /* no error as old was icmp */
+ kal_uint16 icps_badcode; /* icmp_code out of range */
+ kal_uint16 icps_tooshort; /* packet < ICMP_MINLEN */
+ kal_uint16 icps_checksum; /* bad checksum */
+ kal_uint16 icps_reflect; /* number of responses */
+ kal_uint16 icps_inhist[32]; /* history count by ICMP type */
+ kal_uint16 icps_outhist[32]; /* history count by ICMP type */
+ };
+
+#endif
+
+/* ------------- API Prototypes --------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+kal_int16 IP_Add_Address( kal_uint32 address );
+kal_int16 IP_Delete_Address( kal_uint32 address );
+kal_int16 IP_SetOpt_Rqst( kal_uint8 sap, OptionRequest *r );
+void IP_Start( kal_uint8 *buffer_pool, kal_uint16 buffer_size );
+void IP_Stop( void );
+void IP_250ms_Timer_Expired(hlp_timer_enum timer_id);
+
+#ifdef WeDoTCP
+
+kal_int16 TCP_Open_Rqst( kal_uint8 *sap );
+kal_int16 TCP_Bind_Rqst( kal_uint8 sap, BindRequest *r );
+kal_int16 TCP_Listen_Rqst( kal_uint8 sap );
+kal_int16 TCP_Connect_Rqst( kal_uint8 sap );
+kal_int16 TCP_Send_Rqst( kal_uint8 sap, SendRequest *r );
+kal_int16 TCP_Recv_Rqst( kal_uint8 sap, ReceiveRequest *r );
+kal_int16 TCP_Close_Rqst( kal_uint8 sap );
+kal_int16 TCP_Abort_Rqst( kal_uint8 sap );
+void TCP_Send_KeepAlive_Probe( kal_uint8 sap );
+#ifdef WeDoStats
+struct tcp_stats *TCP_Stats_Rqst( void );
+#endif /* WeDoStats */
+kal_int16 TCP_Local_Cleanup(kal_uint8 sap);
+#endif /* WeDoTCP */
+
+
+#ifdef WeDoUDP
+
+kal_int16 UDP_Open_Rqst( kal_uint8 *sap );
+kal_int16 UDP_Bind_Rqst( kal_uint8 sap, BindRequest *r );
+kal_int16 UDP_Listen_Rqst( kal_uint8 sap );
+kal_int16 UDP_Connect_Rqst( kal_uint8 sap );
+kal_int16 UDP_SendTo_Rqst( kal_uint8 sap, SendToRequest *r );
+kal_int16 UDP_RecvFrom_Rqst( kal_uint8 sap, ReceiveFromRequest *r );
+kal_int16 UDP_Close_Rqst( kal_uint8 sap );
+kal_int16 UDP_Abort_Rqst( kal_uint8 sap );
+kal_int16 TCP_Hiccup_Rqst( kal_uint8 sap );
+
+#ifdef WeDoStats
+struct udp_stats *UDP_Stats_Rqst( void );
+#endif /* WeDoStats */
+
+#endif /* WeDoUDP */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _USER_API_H_ */
+
+
+
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/bitbash.h b/mcu/interface/protocol/l2_c2k/common/bitbash.h
new file mode 100644
index 0000000..5e7bb7d
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/bitbash.h
@@ -0,0 +1,136 @@
+/*****************************************************************************
+* 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) 1999-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module: bitbash.h
+ *
+ * Purpose: Header File for the IS-136 Bitfield Functions.
+ *
+ ****************************************************************************
+ *
+ * PVCS Header Information
+ *
+ * $Workfile$
+ * $Revision: 1.2 $
+ * $Modtime$
+ * $Author: fpeng $
+ *
+ * $Log: bitbash.h $
+ *
+ * 06 29 2017 sue.zhong
+ * [MOLY00259241] [6293][C2K]Replace with KAL data type
+ * ::KAL type - folder inc
+ * Revision 1.2 2004/03/25 12:09:17 fpeng
+ * Updated from 6.0 CP 2.5.0
+ * Revision 1.1 2003/05/12 15:38:28 fpeng
+ * Initial revision
+ * Revision 1.2 2002/06/06 13:10:35 chinh
+ * Changed and Added Copyright
+ * Revision 1.1 2001/01/17 10:58:03 plabarbe
+ * Initial revision
+ * Revision 1.1 2000/10/24 14:11:02 fpeng
+ * Initial revision
+ * Revision 1.2 2000/03/01 18:05:39Z rsattari
+ * Isotel release 2.3 updates.
+ * Revision 1.1 1999/11/30 23:11:42Z cdma
+ * Initial revision
+ * Revision 1.18 1999/08/25 20:02:39 dstecker
+ * Merges from patches
+ * Revision 1.14.1.2.1.4 1999/08/23 21:42:43 dstecker
+ * ISOTEL R2.10
+ * Revision 1.3 1998/03/30 23:26:03 mhayduk
+ * Release 0.03.
+ *
+ * Revision 1.1 1997/11/06 17:49:24 mhayduk
+ * Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+
+#ifndef _BITBASH_H_
+
+ #define _BITBASH_H_
+
+#include "sysdefs.h"
+
+
+#ifdef SYS_DEBUG_FAULT_FILE_INFO
+#define getByte( Data, StartBit, NumBits )\
+ __getByte( __MODULE__, __LINE__ , Data, StartBit, NumBits )
+#define getWord( Data, StartBit, NumBits)\
+ __getWord( __MODULE__, __LINE__, Data, StartBit, NumBits)
+#define getDword( Data, StartBit, NumBits)\
+ __getDword( __MODULE__, __LINE__, Data, StartBit, NumBits)
+#define putByte( Data, StartBit, NumBits, Value)\
+ __putByte( __MODULE__, __LINE__, Data, StartBit, NumBits, Value)
+#define putWord( Data, StartBit, NumBits, Value)\
+ __putWord( __MODULE__, __LINE__, Data, StartBit, NumBits, Value)
+#define putDword( Data, StartBit, NumBits, Value)\
+ __putDword( __MODULE__, __LINE__, Data, StartBit, NumBits, Value)
+
+ kal_uint8 __getByte( const char *moduleName, unsigned lineNumber, kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits );
+ kal_uint16 __getWord( const char *moduleName, unsigned lineNumber, kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits );
+ kal_uint32 __getDword( const char *moduleName, unsigned lineNumber, kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits );
+
+ void __putByte( const char *moduleName, unsigned lineNumber, kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits, kal_uint8 Value );
+ void __putWord( const char *moduleName, unsigned lineNumber, kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits, kal_uint16 Value );
+ void __putDword( const char *moduleName, unsigned lineNumber, kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits, kal_uint32 Value );
+
+#else
+ kal_uint8 getByte( kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits );
+ kal_uint16 getWord( kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits );
+ kal_uint32 getDword( kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits );
+
+ void putByte( kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits, kal_uint8 Value );
+ void putWord( kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits, kal_uint16 Value );
+ void putDword( kal_uint8 *Data, kal_uint16 StartBit, kal_uint8 NumBits, kal_uint32 Value );
+
+#endif
+
+
+#endif /* _BITBASH_H_ */
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/cpbuf.h b/mcu/interface/protocol/l2_c2k/common/cpbuf.h
new file mode 100644
index 0000000..a4b962c
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/cpbuf.h
@@ -0,0 +1,162 @@
+/*****************************************************************************
+* 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 _CPBUF_H_
+#define _CPBUF_H_
+/*****************************************************************************
+*
+* FILE NAME : cpbuf.h
+*
+* DESCRIPTION : CP Buffer Manager
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+#include "kal_public_api.h"
+#include "flc2_ent_functions.h"
+#include "monapi.h"
+
+
+#define CPBUF_SIZE_FWD 640 /* bytes */
+#define CPBUF_SIZE_REV 252 /* bytes */
+#define CPBUF_SIZE_SIG 100 /* bytes */
+#define CPBUF_SIZE_HDR 15 /* bytes */
+#define CPBUF_SIZE_FWD1X 48 /* bytes */
+
+#define CPBUF_ONEBUF 0xFFFF
+
+//#define CPBUF_SPIN_LOCK
+#define DEBUG_CPBUF_FILE_INFO
+
+extern kal_spinlockid cpBufSpinLock[5];
+
+
+/*----------------------------------------------------------------------------
+ CP Buf Data Struct
+----------------------------------------------------------------------------*/
+
+/* Allocation Status of each CP Buf memory buffer */
+typedef enum
+{
+ CPBUF_FREE = 0xFE, /* non-zero nor one to avoid unwanted matching of uninitialized data field. */
+ CPBUF_BUSY = 0xB0
+} CpBufStatusT;
+
+
+/* Allocation Type of CP Buf memory buffer */
+typedef enum
+{
+ CPBUF_FWD = 0,
+ CPBUF_REV,
+ CPBUF_SIGNALING_MSG,
+ CPBUF_POOL_NUM,
+ CPBUF_HEADER = CPBUF_POOL_NUM, /* Obsolete pool */
+ CPBUF_FWD1X /* Obsolete pool */
+} CpBufTypeT;
+
+typedef struct cpBuffer
+{
+ kal_uint32* dataPtr; /* Ptr to the CPBUF addr in CPBUF_Pool[] */
+ kal_uint16 len; /* Length of data in bytes. */
+ CpBufStatusT status; /* Free or Busy */
+ CpBufTypeT type; /* partition type. Need this info to Free cpbuf */
+ kal_uint32 refCount; /* reference count of this cp buffer */
+ struct cpBuffer *nextPtr; /* Ptr to the next cpPktHdr in this CP Pkt */
+} CpBufferT;
+
+
+/* cpBufQ - This is a generic CpBufferT type Queue Linked-List */
+typedef struct cpBufQ
+{
+ CpBufferT *head;
+ CpBufferT *tail;
+ kal_uint32 count; /* Total number of CpBufferT in this linked-list */
+} CpBufQT;
+
+
+/*----------------------------------------------------------------------------
+ CP Pkt Functions
+----------------------------------------------------------------------------*/
+#ifndef DEBUG_CPBUF_FILE_INFO
+extern CpBufferT* CpBufGet(kal_uint16 size, CpBufTypeT CpBufType );
+extern void CpBufCopy( CpBufferT *cpPktPtr );
+extern void CpBufFree( CpBufferT *cpPktPtr );
+#else
+extern CpBufferT* __CpBufGet(const char *moduleName, unsigned lineNumber, kal_uint16 size, CpBufTypeT CpBufType );
+extern void __CpBufCopy(const char *moduleName, unsigned lineNumber, CpBufferT *cpPktPtr );
+extern void __CpBufFree(const char *moduleName, unsigned lineNumber, CpBufferT *cpPktPtr );
+
+#define CpBufGet(size, CpBufType) __CpBufGet( __FUNCTION__, __LINE__, size, CpBufType)
+#define CpBufFree( cpPktPtr ) __CpBufFree( __FUNCTION__, __LINE__, cpPktPtr )
+#define CpBufCopy( cpPktPtr ) __CpBufCopy(__FUNCTION__, __LINE__, cpPktPtr )
+
+#endif
+extern kal_bool CpBufFwdFlowCtrlOn(void);
+extern kal_bool CpBufRevFlowCtrlOn(void);
+extern CpBufferT * CpBufMerge (kal_uint16 numCpBuffers,
+ CpBufferT *cpBufList[],
+ kal_uint16 *offsetList,
+ kal_uint16 *lenList,
+ kal_uint16 *mergedLen,
+ CpBufTypeT cpBufType);
+extern void CpBufSpinLocksCreate(void);
+extern CpBufferT * isr_get_cpbuf(kal_uint16 size, CpBufTypeT cpBufType, const char *moduleName, kal_uint16 lineNumber);
+extern void fill_isr_cpbuf_queue(kal_uint16 size, CpBufTypeT cpBufType);
+extern void fill_rcp_ri_cpbuf_queue(void);
+
+#if defined (RCP_RI_HRT_DEV)
+#define RCP_CPBUF_GET(size, cpbufType) isr_get_cpbuf(size, cpbufType, __FUNCTION__, __LINE__)
+#else
+#define RCP_CPBUF_GET(size, cpbufType) CpBufGet(size, cpbufType)
+#endif
+
+
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
diff --git a/mcu/interface/protocol/l2_c2k/common/hlp_dhl_trace.h b/mcu/interface/protocol/l2_c2k/common/hlp_dhl_trace.h
new file mode 100644
index 0000000..5f83a13
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlp_dhl_trace.h
@@ -0,0 +1,281 @@
+/*******************************************************************************
+* 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).
+*
+*******************************************************************************/
+/*******************************************************************************
+ *
+ * Filename:
+ * ---------
+ * hlp_dhl_trace.h
+ *
+ * Project:
+ * --------
+ * C2K
+ *
+ * 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!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * 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!!
+ *==============================================================================
+ ******************************************************************************/
+#ifndef _HLP_DHL_TRACE_H
+#define _HLP_DHL_TRACE_H
+#ifndef GEN_FOR_PC
+#include "stack_config.h"
+#endif
+#include "dhl_trace.h"
+#if !defined(GEN_FOR_PC)
+#if defined(__DHL_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif
+#endif
+#if !defined(GEN_FOR_PC)
+#include"hlp_dhl_trace_mod_chlp_utmd.h"
+#endif
+#endif /* _HLP_DHL_TRACE_H */
diff --git a/mcu/interface/protocol/l2_c2k/common/hlp_dhl_trace_mod_chlp_utmd.json b/mcu/interface/protocol/l2_c2k/common/hlp_dhl_trace_mod_chlp_utmd.json
new file mode 100644
index 0000000..76d751c
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlp_dhl_trace_mod_chlp_utmd.json
@@ -0,0 +1,1740 @@
+{
+ "endGen": "-",
+ "legacyParameters": {},
+ "module": "MOD_CHLP",
+ "startGen": "Legacy",
+ "traceClassDefs": [
+ {
+ "TRACE_INFO": {
+ "debugLevel": "High",
+ "tag": [
+ "Baseline",
+ "TRACE_INFO"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_WARNING": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "Baseline",
+ "TRACE_WARNING"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_ERROR": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "Baseline",
+ "TRACE_ERROR"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_FUNC": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "TRACE_FUNC"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_STATE": {
+ "debugLevel": "Medium",
+ "tag": [
+ "Baseline",
+ "TRACE_STATE"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_1": {
+ "debugLevel": "Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_2": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_3": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_4": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_5": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_6": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_7": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_8": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_9": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_GROUP_10": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline",
+ "Sensitive"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_SENSITIVE_USIR": {
+ "debugLevel": "High",
+ "tag": [
+ "Baseline",
+ "USIR"
+ ],
+ "traceType": "Public"
+ }
+ }
+ ],
+ "traceDefs": [
+ {
+ "DHL_HLP_CAM_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_CAM_STATE_TRANS]OldSt=%MCamStatesT, Ev=%MCamEventsT, NewSt=%MCamStatesT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_NSPE_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_NSPE_STATE_TRANS]NspeApp=%MNspeAppsT, OldSt=%MNspeStatesT, NewSt=%MNspeStatesT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_IMS_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_IMS_STATE_TRANS]OldSt=%MIMSStateEnumT, NewSt=%MIMSStateEnumT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_EHRPD_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_STATE_TRANS]PdnId=%d, OldSt=%MEHRPDVsncpStateT, NewSt=%MEHRPDVsncpStateT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_MIP_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_MIP_STATE_TRANS]OldSt=%MMipStatesT, NewSt=%MMipStatesT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_MIP_REREG_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_MIP_REREG_STATE_TRANS]OldSt=%MReRegStateT, NewSt=%MReRegStateT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_PPP_FSM_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_PPP_FSM_STATE_TRANS]PppPhase=%MpppFsmPhases, OldSt=%MfsmStates, NewSt=%MfsmStates",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_PPP_PHASE_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_PPP_PHASE_STATE_TRANS]OldSt=%MpppPhases, Ev=%MpEvents, NewSt=%MpppPhases",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_EAP_STATE_TRANSITION": {
+ "apiType": "index",
+ "format": "[HLP_EAP_STATE_TRANS]OldSt=%MEapStateT, NewSt=%MEapStateT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_GENERIC_TRACE": {
+ "apiType": "index",
+ "format": "[HLP_TRACE] (%d): %d, %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_DEBUG": {
+ "apiType": "index",
+ "format": "[HLP_PPP_DEBUG] %s(%d): %d, %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_ACS_STREAM_INFO": {
+ "apiType": "index",
+ "format": "[HLP_ACS_STREAM] %s(%d): %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TCP_INPUT_INFO": {
+ "apiType": "index",
+ "format": "[HLP_TCP_INPUT_INFO]%d: %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TCP_INPUT_CHECK": {
+ "apiType": "index",
+ "format": "[HLP_TCP_INPUT_CHECK] %d: %d, %d, %d, %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_1XDO_ABORT": {
+ "apiType": "index",
+ "format": "[HLP_1XDO_ABORT] %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_ERROR_CODE_SET_DISCARD": {
+ "apiType": "index",
+ "format": "[HLP_ERROR_CODE_SET_DISCARD]PdnId=%d, HlpErrCode=%MDataConnErrCodeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_ERROR_CODE_SET": {
+ "apiType": "index",
+ "format": "[HLP_ERROR_CODE_SET]index=%d, PdnId=%d, HlpErrCode=%MDataConnErrCodeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_ERROR_CODE_FORCE_SET": {
+ "apiType": "index",
+ "format": "[HLP_ERROR_CODE_FORCE_SET]index=%d, PdnId=%d, HlpErrCode=%MDataConnErrCodeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_ERROR_CODE_RESET": {
+ "apiType": "index",
+ "format": "[HLP_ERROR_CODE_RESET]index=%d (255 indicates to reset all, otherwise, to reset the corresponding pdn error code)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_UM_RM_PPP_STATUS]interface=%MpppEndPointT, Status=%d, localAddr=%x, remoteAddr=%x, priDNS=%x, secDNS=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_THROTT_ENABLE_SET": {
+ "apiType": "index",
+ "format": "[HLP_THROTT_ENABLE_SET]enable=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_THROTT_START": {
+ "apiType": "index",
+ "format": "[HLP_THROTT_START]enable=%Mkal_bool, Sys=%MCamSysTypeT, timer active=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_THROTT_SYS_ID": {
+ "apiType": "index",
+ "format": "[HLP_THROTT_SYS_ID]Sys=%MCamSysTypeT, Id=%d,%d,%d,%d,%d,%d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TIMER_START": {
+ "apiType": "index",
+ "format": "[HLP_TIMER_START]Id=%Mhlp_timer_enum, Duration=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TIMER_STOP": {
+ "apiType": "index",
+ "format": "[HLP_TIMER_STOP]TimerID=%Mhlp_timer_enum, InUse=%Mkal_bool, Duration=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TIMER_EXPIRED": {
+ "apiType": "index",
+ "format": "[HLP_TIMER_EXPIRED]TimerID=%Mhlp_timer_enum, Duration=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TIMER_PENDING_SET": {
+ "apiType": "index",
+ "format": "[HLP_TIMER_PENDING_SET]ID=%Mhlp_timer_enum, Pending=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TIMER_PENDING_GET": {
+ "apiType": "index",
+ "format": "[HLP_TIMER_PENDING_GET]ID=%Mhlp_timer_enum, Pending=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_CALL_INSTANCE_INCREASE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_CALL_INSTANCE_INCREASE]CurCallNum=%d, CallType=%MNspeAppT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_CALL_INSTANCE_DECREASE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_CALL_INSTANCE_DECREASE]CurCallNum=%d, CallType=%MNspeAppT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_CALL_INSTANCE_RESET": {
+ "apiType": "index",
+ "format": "[HLP_CAM_CALL_INSTANCE_RESET]TotalCallNum=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_SYSTEM_UPDATE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_SYSTEM_UPDATE]CurSysFound=%MNetworkRspT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_SERVINGNW_UPDATE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_SERVINGNW_UPDATE]CurServingNW=%MNetworkT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_CAM_PPP_CONN_PARAMS": {
+ "apiType": "index",
+ "format": "[HLP_CAM_PPP_CONN_PARAMS]Cid=%d, NetworkPref=%MNetworkPrefT, AppType=%MNspeAppT, MoIpType=%d, InactivityTmr=%d, ReleaseTchwhenFB=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_CONN_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_CAM_CONN_STATUS]ConnStatus=%MConnStateT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_SYSTEM_RETRY": {
+ "apiType": "index",
+ "format": "[HLP_CAM_SYSTEM_RETRY]AppType=%MNspeAppT, DoRetryCount=%d, DoCloseReason=%MHlpConnCloseReasonT, RttRetryCount=%d, RttFailReason=%MCallProcessingEventT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_PSC_CPC_STATE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_PSC_CPC_STATE]CpcState=%MTraceCpcState, PscState=%MTracePscState",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_RETRY_FALLBACK_1X": {
+ "apiType": "index",
+ "format": "[HLP_CAM_RETRY_FALLBACK_1X]DoTo1xFallback_Enabled=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_OOSA": {
+ "apiType": "index",
+ "format": "[HLP_CAM_OOSA]CpState=%MCPState, VoCalRel=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_FWDQ_CLEANUP": {
+ "apiType": "index",
+ "format": "[HLP_CAM_FWDQ_CLEANUP]RdIndex=%d, WtIndex=%d, Bytes=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_DO_TO_1X_ENABLE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_DO_TO_1X_ENABLE]DoTo1xEnable=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_SYSTEM_QUERY_REQ": {
+ "apiType": "index",
+ "format": "[HLP_CAM_SYSTEM_QUERY_REQ]ConnectionCmd=%MConnCmdT, AppType=%MNspeAppT, eHRPDEnable=%d, PendingDormantReconnect=%MPendingRcnT, HlpDormancyTimerExpired=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_PPP_CLOSE_UM_REQ": {
+ "apiType": "index",
+ "format": "[HLP_CAM_PPP_CLOSE_UM_REQ]CurrentAppNum=%d, AppType=%MNspeAppT, NspeStateRlpApp=%d, NspeStateUartApp=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_DO_TO_1X": {
+ "apiType": "index",
+ "format": "[HLP_CAM_DO_TO_1X]%d,%d,%d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_WFR_FAST_EXPIRE": {
+ "apiType": "index",
+ "format": "[DHL_HLP_CAM_WFR_FAST_EXPIRE]AppType=%MNspeAppT, cam state=%MCamStatesT, RetryCount=%d, HLP_TIMER_DO_RETRY=%Mkal_bool, ServingNetwork=%MNetworkT, CSSsysRespnse=%MNetworkRspT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_CAM_RSVAS_ABORT_REQ": {
+ "apiType": "index",
+ "format": "[HLP_CAM_RSVAS_ABORT_REQ]CamFsmDesc.state=%MCamStatesT, CpcState=%d, PscState=%d, TriggeredByCs=%Mkal_bool, Timer=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_SET_ROUTE_TYPE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_SET_ROUTE_TYPE] %MHlpPppRouteTypeE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_SET_RETRY_COUNT": {
+ "apiType": "index",
+ "format": "[HLP_CAM_SET_RETRY_COUNT] %d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_STATUS]PpphaPhase=%MPpphaPhaseT, PpphaStatus=%MPpphaStatusT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_DEC_START": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_DEC_START]PpphaPhase=%MPpphaPhaseT, ItemsToPppha=%d, BytesToPppha=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_DEC_COMPLETE": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_DEC_COMPLETE]PpphaPhase=%MPpphaPhaseT, Complete=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_QBUF_CTRL": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_QBUF_CTRL]PpphaPhase=%MPpphaPhaseT, DstSpace=%d, FlowCtrl=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_CLOCK_CTRL": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_CLOCK_CTRL]ClockCtrl=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_ADDR_INFO": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_ADDR_INFO]PpphaPhase=%MPpphaPhaseT, DecCrtAddr=%d, DEC0MaxAddr=%d, CurrentCpBufAddr=%d, addrMask=%d, ForceDstBurstLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_REG_INFO": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_REG_INFO]PpphaPhase=%MPpphaPhaseT, LLD_ADR=%d, DST_ADR=%d, TRNSCNT=%d, CNFG=%d, CNTL=%d, RES_ADR=%d, MAX_ADR=%d, CRT_ADR=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_PDN_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_IMS_PDN_STATUS]PdnId=%d, State=%MPdnStatusEnumT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_PDN_SETUP_RSP_0": {
+ "apiType": "index",
+ "format": "[HLP_IMS_PDN_SETUP_RSP_0]Result=%MPdnResultEnumT, PdnId=%d, ErrCode=%MDataConnErrCodeT, HlpMainPdnID=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_PDN_SETUP_RSP_1": {
+ "apiType": "index",
+ "format": "[HLP_IMS_PDN_SETUP_RSP_1]IMSPdnSt=%MPdnStatusEnumT, ReqType=%MIMSEventTypeT, bHandOver=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_EV_SAVE": {
+ "apiType": "index",
+ "format": "[HLP_IMS_EV_SAVE]PdnId=%d, EvType=%MIMSEventTypeT, TotalEv=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_EV_PROC": {
+ "apiType": "index",
+ "format": "[HLP_IMS_EV_PROC]PdnId=%d, EvType=%MIMSEventTypeT, TotalEv=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_EV_CLEAR": {
+ "apiType": "index",
+ "format": "[HLP_IMS_EV_CLEAR]TotalEv=%d, Idx=%d, EvType=%MIMSEventTypeT, Parm1=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_REQ_EV_SET": {
+ "apiType": "index",
+ "format": "[HLP_IMS_REQ_EV_SET]PdnId=%d, EvType=%MIMSEventTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_REL_EV_SET": {
+ "apiType": "index",
+ "format": "[HLP_IMS_REL_EV_SET]PdnId=%d, EvType=%MIMSEventTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_REL_ENQ": {
+ "apiType": "index",
+ "format": "[HLP_IMS_REL_ENQ]Num=%d, begin=%d, end=%d, srcModId=%Mmodule_type, parm=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_REL_DEQ": {
+ "apiType": "index",
+ "format": "[HLP_IMS_REL_DEQ]Num=%d, begin=%d, end=%d, srcModId=%Mmodule_type, parm=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_UM_PPP_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_IMS_UM_PPP_STATUS]eHRPDEnable=%Mkal_bool, ReqType=%MIMSEventTypeT, ReleaseType=%MIMSEventTypeT, bMainConn=%Mkal_bool, CurPdnId=%d, Result=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_NETWK_REL_REQ": {
+ "apiType": "index",
+ "format": "[HLP_IMS_NETWK_REL_REQ]SrcModule=%Mmodule_type, IMSState=%MIMSStateEnumT, ReleaseType=%MIMSEventTypeT, ReqType=%MIMSEventTypeT, AlmpState=%d, HO21xFlag=%Mkal_bool, eHRPDEnable=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_EHRPD_DISC_REQ": {
+ "apiType": "index",
+ "format": "[HLP_IMS_EHRPD_DISC_REQ]eHRPDEnable=%Mkal_bool, IMSState=%MIMSStateEnumT, ReqType=%MIMSEventTypeT, ReleaseType=%MIMSEventTypeT, bMainConn=%Mkal_bool, PdnId=%d, DiscType=%MDataDiscTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_PDN_REL_RSP_0": {
+ "apiType": "index",
+ "format": "[HLP_IMS_PDN_REL_RSP_0]PdnId=%d, IMSState=%MIMSStateEnumT, ReleaseType=%MIMSEventTypeT, bMainConn=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_PDN_REL_RSP_1": {
+ "apiType": "index",
+ "format": "[HLP_IMS_PDN_REL_RSP_1]PdnId=%d, CurPdn ReleaseType=%MIMSEventTypeT, ReqType=%MIMSEventTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_SET_ST_TO_IDLE": {
+ "apiType": "index",
+ "format": "[HLP_IMS_SET_ST_TO_IDLE] TotalPdn=%d, Idx=%d, PdnId=%d, ReqType=%MIMSEventTypeT, ReleaseType=%MIMSEventTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_RESET_EHRPD": {
+ "apiType": "index",
+ "format": "[HLP_IMS_RESET_EHRPD] bMainConn=%Mkal_bool, ReqType=%MIMSEventTypeT, ReleaseType=%MIMSEventTypeT, TotalPdn=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IMS_RELEASE_ALL_PDN": {
+ "apiType": "index",
+ "format": "[HLP_IMS_RELEASE_ALL_PDN] IMSState=%MIMSStateEnumT, TotalPdn=%d, emergency_card=%Mkal_bool",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_IMS_RELEASE_PDN": {
+ "apiType": "index",
+ "format": "[HLP_IMS_RELEASE_PDN] PdnId=%d, IMSPdnSt=%MPdnStatusEnumT, EHRPDPdnSt=%MEHRPDVsncpStateT, ReqType=%MIMSEventTypeT, ReleaseType=%MIMSEventTypeT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_IMS_PDN_LOCAL_RESET": {
+ "apiType": "index",
+ "format": "[HLP_IMS_PDN_LOCAL_RESET]IMSState=%MIMSStateEnumT, bMainConn=%Mkal_bool, ReqType=%MIMSEventTypeT, ReleaseType=%MIMSEventTypeT",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "DHL_HLP_IMS_AUX_PDN_REL_IND": {
+ "apiType": "index",
+ "format": "[HLP_IMS_AUX_PDN_REL_IND]PdnId=%d, IMSState=%MIMSStateEnumT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EHRPD_CHECK_REC": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_CHECK_REC]PrebPdn=%Mkal_bool, PrePdnId=%d, CurPdnId=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EHRPD_ENABLE": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_ENABLE]eHRPDenable=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EHRPD_TERM_BY_NW": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_TERM_BY_NW]TermByNW=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_SET_HO_EHRPD_ENABLE": {
+ "apiType": "index",
+ "format": "[HLP_SET_HO_EHRPD_ENABLE]bHOEHRPDEnabled=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EHRPD_RECV_REJ": {
+ "apiType": "index",
+ "format": "[DHL_HLP_EHRPD_RECV_REJ]ErrorCode=%MDataConnErrCodeT state=%MEHRPDVsncpStateT AttachType=%d FieldNum=%d VSNCPReqRetxNum=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EHRPD_UPLANE_DETECT": {
+ "apiType": "index",
+ "format": "[DHL_HLP_EHRPD_UPLANE_DETECT]%d %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_TCP_DECOMPRESS_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_PPP_TCP_DECOMPRESS_STATUS]DeCompressStatus=%MTraceDeCompressStatusT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_SEND_DISCARD": {
+ "apiType": "index",
+ "format": "[HLP_PPP_SEND_DISCARD]PppPort=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_RECV_DISCARD": {
+ "apiType": "index",
+ "format": "[HLP_PPP_RECV_DISCARD]PppPort=%d, reason=%MDR_REASONT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_RENEGO": {
+ "apiType": "index",
+ "format": "[HLP_PPP_RENEGO]PppRenego=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_FWD_PKT": {
+ "apiType": "index",
+ "format": "[HLP_PPP_FWD_PKT]RLPFlowId=%d, RlpPath=%MHlpRlpDataPathT, DataLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_PPP_DISC_REQ": {
+ "apiType": "index",
+ "format": "[HLP_PPP_DISC_REQ] AppType=%MNspeAppT, eHRPDEnable=%Mkal_bool, CamSt=%MCamStatesT, _EmergencyCardInit=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IGNORE_EVDO_PAGING": {
+ "apiType": "index",
+ "format": "'[HLP_IGNORE_EVDO_PAGING] ConnectionCmd=%MConnCmdT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_TO_IDLE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_TO_IDLE]AppType=%MNspeAppT, MipFallbcakSip=%Mkal_bool, DataRetryFallBackTo1X=%Mkal_bool, DataRetryTimer=%Mkal_bool, pendingRedialForA12Failure=%Mkal_bool, SbpQuery=%Mkal_bool, MipCheckRrpAdminProhibRetry=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CAM_CONNECTION_OPEN_REQ": {
+ "apiType": "index",
+ "format": "[HLP_CAM_CONNECTION_OPEN_REQ]CSSsysRespnse=%MNetworkRspT, ServingNetwork=%MNetworkT, CamState=%MFSMState, DataRetryFallBackTo1X=%Mkal_bool, DoReconnectwithDRSZero=%Mkal_bool, ToRespReleaseStateToVAL=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_CHAP_METHOD": {
+ "apiType": "index",
+ "format": "[HLP_CHAP_METHOD]NspeApp=%MNspeAppsT, AuthInUim=%Mkal_bool, AuthInMD5=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EAP_VAR": {
+ "apiType": "index",
+ "format": "[HLP_EAP_VAR]EapBoolVar=%MEapOwnerBoolVarT, value=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_EAP_UIM_FAILURE": {
+ "apiType": "index",
+ "format": "[HLP_EAP_UIM_FAILURE]AuthResult=%MEapAkaAuthResultT, UimRspSw=%#x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_MODE_SET": {
+ "apiType": "index",
+ "format": "[HLP_MIP_MODE_SET]MipPreferMode=%MIPServiceTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_MODE_GET": {
+ "apiType": "index",
+ "format": "[HLP_MIP_MODE_GET]MipPreferMode=%MIPServiceTypeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_RRP_ERR": {
+ "apiType": "index",
+ "format": "[HLP_MIP_RRP_ERR]PriHA=%#x, SecHA=%#x, LastHA=%#x, Retries=%d, MaxRetries=%d, LastErr=%d, CurErr=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_RRP_TO": {
+ "apiType": "index",
+ "format": "[HLP_MIP_RRP_TO]Retries=%d, MaxRetries=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_RRP_LIFETM": {
+ "apiType": "index",
+ "format": "[HLP_MIP_RRP_LIFETM]RrpLifetime=%d, RRA=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_FALLBACK_ACT": {
+ "apiType": "index",
+ "format": "[HLP_MIP_FALLBACK_ACT]MipFallbackSipActive=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_RRA_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_RRA_SET]RRA=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_REG_RETRIES_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_REG_RETRIES_SET]MaxRegRetries=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_REG_TIMER_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_REG_TIMER_SET]RrpTimeOut=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_DEREG_RETRIES_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_DEREG_RETRIES_SET]MaxDeRegRetries=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_NAI_ENABLE_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_NAI_ENABLE_SET]NaiEnabled=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_REREG_ONLYIF_TRAFFIC_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_REREG_ONLYIF_TRAFFIC_SET]ReRegOnlyIfTraffic=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_REV_TUNNELING_SET": {
+ "apiType": "index",
+ "format": "[HLP_HLP_MIP_REV_TUNNELING_SET]RevTunneling=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_MIP_HA_IP_SET": {
+ "apiType": "index",
+ "format": "[HLP_MIP_HA_IP_SET]PriHA=%#x, SecHA=%#x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DBM_IMSI_GET": {
+ "apiType": "index",
+ "format": "[HLP_DBM_IMSI_GET]mcc=%#x, imsi_11_12=%#x, imsi_s2=%#x, imsi_s1=%#x, bNeedUpdate=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DBM_IMSI_GET_RESULT": {
+ "apiType": "index",
+ "format": "[HLP_DBM_IMSI_GET]bNeedUpdate=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_REV_READ": {
+ "apiType": "index",
+ "format": "[HLP_DATA_REV_READ]RdLen=%d, RestLen=%d, RestItems=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_FWD_WRITE": {
+ "apiType": "index",
+ "format": "[HLP_DATA_FWD_WRITE]WtLen=%d, RestSpace=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_FWD_QUEUE_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_DATA_FWD_QUEUE_STATUS]RdIndex=%d, WtIndex=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_APPEND": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_APPEND]dir=%MHlpDataDirEnum, pdn_id=%d, new_head=%x, new_tail=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_REMOVE": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_REMOVE]dir=%MHlpDataDirEnum, in_list=%Mkal_bool, is_not_empty=%Mkal_bool, remove_node=%x, list_head=%x, list_tail=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_IS_NODE_IN_LIST": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_IS_NODE_IN_LIST]dir=%MHlpDataDirEnum, in_list=%Mkal_bool, node=%x, list_head=%x, list_tail=%x, prev=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_GET_HEAD_DATA": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_GET_HEAD_DATA]dir=%MHlpDataDirEnum, is_not_empty=%Mkal_bool, data_ptr=%x, data_len=%d, pdn_id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_PPP_FRAME_INFO": {
+ "apiType": "index",
+ "format": "[HLP_DATA_PPP_FRAME_INFO]dir=%MHlpDataDirEnum, interface=%MpppEndPointT, len=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_DATA_CLEAR_LIST": {
+ "apiType": "index",
+ "format": "[HLP_DATA_CLEAR_LIST]dir=%MHlpDataDirEnum, pdn_id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_IS_EMTPY": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_IS_EMTPY]dir=%MHlpDataDirEnum, empty=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_INDEX_UL_1": {
+ "apiType": "index",
+ "format": "[HLP_PPP_REV_DATA_INDEX_1]%s, HlpRevDataEnc1SrcRdIndex=%d, HlpRevDataEnc1SrcWrIndex=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_INDEX_UL_2": {
+ "apiType": "index",
+ "format": "[HLP_PPP_REV_DATA_INDEX_2]%s, HlpRevToRlpRdIndex=%d, HlpRevToRlpWrIndex=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_INDEX_DL": {
+ "apiType": "index",
+ "format": "[HLP_PPP_FWD_DATA_INDEX]%s, HlpFwdDataIndRdIndex=%d, HlpFwdDataIndWrIndex=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_DL_BUF_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_DL_BUF_STATUS]DL data ind on buffering=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_DATA_LIST_DL_FIND": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_DL_FIND]pdn_id=%d, dl_queue_id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_REV_PATH_SET": {
+ "apiType": "index",
+ "format": "[HLP_RM_REV_PATH_SET]path=%MRevDataPathT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_READ": {
+ "apiType": "index",
+ "format": "[HLP_RM_READ]QType=%MQFwdRevT, QReadIndex=%d, QWriteIndex=%d, QReadingByte=%d, QRestItemNum=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_WRITE": {
+ "apiType": "index",
+ "format": "[HLP_RM_WRITE]QType=%MQFwdRevT, QReadIndex=%d, QWriteIndex=%d, QWritingByte=%d, QFreeSpace=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_RESETQ": {
+ "apiType": "index",
+ "format": "[HLP_RM_RESETQ]QType=%MQFwdRevT, QReadIndex=%d, QWriteIndex=%d, QTotalByte=%d, QRestItemNum=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_SEND": {
+ "apiType": "index",
+ "format": "[HLP_RM_SEND]DclSt=%MDCL_STATUS_T, TotalLen=%d, SentLen=%d, RestLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_RECV": {
+ "apiType": "index",
+ "format": "[HLP_RM_RECV]DclSt=%MDCL_STATUS_T, BufLen=%d, RecvLen=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_FLOW_CTRL_STATUS_SET": {
+ "apiType": "index",
+ "format": "[HLP_RM_FLOW_CTRL_STATUS_SET]HlpRmFlowCtrlOn=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_RM_FLOW_CTRL_STATUS_GET": {
+ "apiType": "index",
+ "format": "[HLP_RM_FLOW_CTRL_STATUS_GET]HlpRmFlowCtrlOn=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_CAM_UM_STATE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_WARNING_UM_STATE]RlpAppState=%MNspeStatesT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_CAM_RM_STATE": {
+ "apiType": "index",
+ "format": "[HLP_CAM_WARNING_RM_STATE]UartAppState=%MNspeStatesT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_CAM_EVENT": {
+ "apiType": "index",
+ "format": "[HLP_CAM_WARNING_EVENT]FsmEvent=%MCamEventsT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TCP_TCB_NULL": {
+ "apiType": "index",
+ "format": "[HLP_TCP_WARNING_TCB_NULL](%s,%d)sap=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TCP_INVALID_OPT": {
+ "apiType": "index",
+ "format": "[HLP_TCP_WARNING_INVALID_OPT]opt_type=%d, size=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TCP_INVALID_SCB": {
+ "apiType": "index",
+ "format": "[HLP_TCP_WARNING_INVALID_SCB](%s,%d)sap=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TCP_MBUF_CHAIN": {
+ "apiType": "index",
+ "format": "[HLP_TCP_WARNING_MBUF_CHAIN]size=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TCP_MBUF_GET": {
+ "apiType": "index",
+ "format": "[HLP_TCP_WARNING_MBUF_CHAIN]FreeCnt=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TCP_ERR_LEN": {
+ "apiType": "index",
+ "format": "[HLP_TCP_WARNING_ERR_LEN]%d, %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_IP4_MTU": {
+ "apiType": "index",
+ "format": "[HLP_IP4_WARNING_MTU]%d, %x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_REV_DISCARD_DATA_WRONG_SRC_IP_ADDR": {
+ "apiType": "index",
+ "format": "[HLP_REV_DISCARD_DATA_WRONG_SRC_IP_ADDR]mip=%Mkal_bool, SrcIpAddr=%x, MSIPAddr=%x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_IP6_HOP_LIMIT": {
+ "apiType": "index",
+ "format": "[HLP_IP6_WARNING_HOP_LIMIT]hlim=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_IP6_RA": {
+ "apiType": "index",
+ "format": "[HLP_IP6_WARNING_RA]off=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_INVALID_STATE": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_STATE](%s,%d)MipState=%MMipStatesT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_ADV_AGENT": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_ADV_AGENT]TmpAgent=%#x, CurAgent=%#x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_ADV": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_ADV]Type=%MHlpMipAdvErrTypeT, Temp=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_RRP": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_RRP]Type=%MHlpMipRrpErrTypeT, Temp=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_RRQ_ENCODE": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_RRQ_ENCODE]DmuVersion=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_AUTH_UIM_RSP": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_AUTH_UIM_RSP](%s,%d)UimRspSw=%#x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_MIP_NAI": {
+ "apiType": "index",
+ "format": "[HLP_MIP_WARNING_NAI] %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_OPTION": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_OPTION](%s,%d)Option=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_NOT_CHAP": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_NOT_CHAP]RemoteAuth=%#x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_INVALID_PORT": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_INVALID_PORT](%s,%d)Port=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_INVALID_STATE": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_INVALID_STATE](%s,%d)State=%MfsmStates",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_INVALID_TIMER": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_INVALID_TIMER](%s,%d)TimerId=%Mhlp_timer_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_INVALID_BUFSIZE": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_INVALID_BUFSIZE](%s,%d)BufLen=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_UIM_MSG_BOOM": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_UIM_MSG_QUE_BOOM]QueSize=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_RM_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_RM_STATUS]NspeStatus=%MNspeStatesT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_MNRP_USE": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_MNRP_USE]MnrpUse=%Mkal_bool",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_MNRP_ERR": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_MNRP_ERR]MnrpErr=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPP_HEADER_ENC": {
+ "apiType": "index",
+ "format": "[HLP_PPP_WARNING_HEADERENC]%MHlpPppHeaderEncWarningT, %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_CHAP_FAIL_IN_UIM": {
+ "apiType": "index",
+ "format": "[HLP_CHAP_WARNING_FAIL_IN_UIM]UimRspSw=%#x, len=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EAP_REQ_INVALID": {
+ "apiType": "index",
+ "format": "[HLP_EAP_WARNING_REQ_INVALID]len=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EAP_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_EAP_WARNING_STATUS](%s,%d)",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_AKA_IDENTITY": {
+ "apiType": "index",
+ "format": "[HLP_AKA_WARNING_IDENTITY](%d)temp=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EAP_PROCESS": {
+ "apiType": "index",
+ "format": "[HLP_EAP_WARNING_PROCESS](%s,%d)temp=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_AUTH_MODE": {
+ "apiType": "index",
+ "format": "[HLP_WARNING_AUTH_MODE](%s,%d)AuthMode=%d, AppType=%d, Num=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_RM_STATUS": {
+ "apiType": "index",
+ "format": "[HLP_RM_WARNING_STATUS](%s,%d)QBuf=%MQFwdRevT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_RM_BUF_FAIL": {
+ "apiType": "index",
+ "format": "[HLP_RM_WARNING_BUF_FAIL](%s,%d)BufStatus=%MCpBufStatusT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_RM_PORT_INIT_FAIL": {
+ "apiType": "index",
+ "format": "[HLP_RM_WARNING_PORT_INIT_FAIL]PortStatus=%MDCL_STATUS_T",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_RM_LINE_STATUS_SEND_FAIL": {
+ "apiType": "index",
+ "format": "[HLP_RM_WARNING_LINE_STATUS_SEND_FAIL]UART_HANDLE=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPPHA_ENC_SRCRD_INDEX": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_WARNING_ENC_SRCRD_INDEX]PpphaPhase=%MPpphaPhaseT, wrindex=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_PPPHA_DEC_LEN": {
+ "apiType": "index",
+ "format": "[HLP_PPPHA_WARNING_DEC_LEN]PpphaPhase=%MPpphaPhaseT, FirstHalfLen=%d, TotalLen=%d, WrapBufLen=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_IMS_ERR_TYPE": {
+ "apiType": "index",
+ "format": "[HLP_IMS_WARNING_ERR_TYPE](%s,%d)ErrType=%MIMSErrEnumT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EHRPD_INVALID_OPT": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_WARNING_INVALID_OPT]opt_type=%MEHRPDVsncpConfigOptionT, size=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EHRPD_INVALID_PCO": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_WARNING_INVALID_PCO]len=%d, ContLen=%d, DataLen=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EHRPD_REC_NULL": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_WARNING_REC_NULL]PdnID=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EHRPD_VZWPCO_ERR": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_WARNING_VZWPCO]index=%d, %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_EAPN_ERR": {
+ "apiType": "index",
+ "format": "[HLP_EHRPD_WARNING_VZWPCO]index=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_INVALID_PROFILE": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_INVALID_PROFILE](%s,%d)ProfileId=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_3GPD_FROM_UIM": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_3GPD_FROM_UIM](%s,%d)UimRspResult=%#x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_INVALID_PARM": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_INVALID_PARM](%s,%d)ParmId=%MHlpParmOperationId",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_NVRAM_READ": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_NVRAM_READ]Err=%MHlpNvRdWtErrT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_NVRAM_WRITE": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_NVRAM_WRITE]Err=%MHlpNvRdWtErrT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_NVRAM_SET": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_NVRAM_WRITE]Err=%MHlpNvRdWtErrT",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DBM_NAI_FROM_MDN": {
+ "apiType": "index",
+ "format": "[HLP_DBM_WARNING_NAI_FROM_MDN](HlpNAIDerivationFromMDN(),%d)",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_PACKET_TOO_BIG": {
+ "apiType": "index",
+ "format": "[HLP_DATA_WARNING_PACKET_TOO_BIG]PktSize=%d, Mru=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_BUF_ERR_DL": {
+ "apiType": "index",
+ "format": "[HLP_DATA_WARNING_BUF_ERR_DL]PdnId=%d, addr=%x, len=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_BUF_ERR_UL": {
+ "apiType": "index",
+ "format": "[HLP_DATA_WARNING_BUF_ERR_UL]head=%x, tail=%x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_BUF_ERR_UL_HWM_REACHED": {
+ "apiType": "index",
+ "format": "[HLP_WARNING_DATA_BUF_ERR_UL_HWM_REACHED]%s",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_CONDITION_NOT_READY": {
+ "apiType": "index",
+ "format": "[HLP_DATA_WARNING_CONDITION_NOT_READY]route_type=%MHlpPppRouteTypeE, nspe_um_state=%d, pdn_active=%Mkal_bool, ul_disc_flag_for_fc=%Mkal_bool",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_SEND_SHUT": {
+ "apiType": "index",
+ "format": "[HLP_DATA_WARNING_SEND_SHUT](%s,%d)",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_LIST_NODE_DISMATCH": {
+ "apiType": "index",
+ "format": "[HLP_WARNING_DATA_LIST_NODE_DISMATCH]ha_cal_peer=%x, list_head=%x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_LIST_APPEND_FAIL": {
+ "apiType": "index",
+ "format": "[HLP_DATA_LIST_APPEND_FAIL]DL queue array full, pdn_id=%d, only upto %d PDN supported",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_DATA_RATDM_EXT_MSG_QUEUE_ALMOST_FULL": {
+ "apiType": "index",
+ "format": "[HLP_WARNING_DATA_RATDM_EXT_MSG_QUEUE_ALMOST_FULL]ratdm external msg queue capacity=%d, now used=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_IT": {
+ "apiType": "index",
+ "format": "[HLP_IT_WARNING]%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_QOS_ERR": {
+ "apiType": "index",
+ "format": "[HLP_QOS_WARNING](%s,%d) %MQOMErrCodeT",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_WARNING_TIMER_PENDING": {
+ "apiType": "index",
+ "format": "[HLP_WARNING_TIMER_PENDING]Id=%Mhlp_timer_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "DHL_HLP_PPP_CHAP_RSP_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_PPP_CHAP_RSP]",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "DHL_HLP_EAP_AKA_IDENTITY": {
+ "apiType": "raw",
+ "format": "[HLP_EAP_AKA_IDENTITY]",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "DHL_HLP_MIP_MN_NAI_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_MIP_MN_NAI]",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "DHL_HLP_MIP_MN_DUN_NAI_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_MIP_MN_DUN_NAI]",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_DEC0_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_PPPHA_DEC0]",
+ "traceClass": "TRACE_GROUP_2"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_DEC1_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_PPPHA_DEC1]",
+ "traceClass": "TRACE_GROUP_2"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_ENC0_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_PPPHA_ENC0]",
+ "traceClass": "TRACE_GROUP_2"
+ }
+ },
+ {
+ "DHL_HLP_PPPHA_ENC1_RAW": {
+ "apiType": "raw",
+ "format": "[HLP_PPPHA_ENC1]",
+ "traceClass": "TRACE_GROUP_2"
+ }
+ },
+ {
+ "DHL_HLP_RM_REV_PPP_FRAME": {
+ "apiType": "raw",
+ "format": "[HLP_RM_REV_PPP_FRAME]",
+ "traceClass": "TRACE_GROUP_3"
+ }
+ },
+ {
+ "DHL_HLP_RM_FWD_PPP_FRAME": {
+ "apiType": "raw",
+ "format": "[HLP_RM_FWD_PPP_FRAME]",
+ "traceClass": "TRACE_GROUP_3"
+ }
+ },
+ {
+ "DHL_HLP_TCP_OUTPUT": {
+ "apiType": "index",
+ "format": "[HLP_TCP_OUTPUT]sendcnt=%d, win=%d, intransit=%d, len=%d, flag=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TCP_INPUT": {
+ "apiType": "index",
+ "format": "[HLP_TCP_INPUT]ctl=%d, wnd=%d, seq=%d, ack=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TCP_INPUT_CHKSUM": {
+ "apiType": "index",
+ "format": "[HLP_TCP_INPUT_CHKSUM]RecvChkSum=%#x, LocalChkSum=%#x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TCP_STATE": {
+ "apiType": "index",
+ "format": "[HLP_TCP_STATE]St=%MTraceTcpStates",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_TCP_SAP": {
+ "apiType": "index",
+ "format": "[HLP_TCP_SAP]sap=%d",
+ "traceClass": "TRACE_GROUP_5"
+ }
+ },
+ {
+ "DHL_HLP_TCP_SOCKET": {
+ "apiType": "index",
+ "format": "[HLP_TCP_SOCKET]SocketNum=%d, address=%#x, Port=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "DHL_HLP_IP6_SEND_DATA": {
+ "apiType": "index",
+ "format": "[HLP_IP6_SEND_DATA]RLPFlowId=%d, PdnId=%d, RlpPath=%MHlpRlpDataPathT, DataLen=%d",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "DHL_HLP_IP6_TCP_OUTPUT": {
+ "apiType": "index",
+ "format": "[HLP_IP6_TCP_OUTPUT]%d: %d %d",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "DHL_HLP_IP6_TCP_INPUT": {
+ "apiType": "index",
+ "format": "[HLP_IP6_TCP_INPUT]%d: %d, %d",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "DHL_HLP_IP6_INPUT": {
+ "apiType": "index",
+ "format": "[HLP_IP6_INPUT]%d: %d %d",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "DHL_HLP_IP6_OUTPUT": {
+ "apiType": "index",
+ "format": "[HLP_IP6_OUTPUT]%d: %d %d",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "DHL_HLP_REV_DISCARD_DATA_WRONG_SRC_IP_ADDR_USIR": {
+ "apiType": "index",
+ "format": "[HLP_REV_DISCARD_DATA_WRONG_SRC_IP_ADDR]mip=%Mkal_bool, SrcIpAddr=%S, MSIPAddr=%S",
+ "traceClass": "TRACE_SENSITIVE_USIR"
+ }
+ },
+ {
+ "DHL_HLP_MIP_RRP_ERR_USIR": {
+ "apiType": "index",
+ "format": "[HLP_MIP_RRP_ERR]PriHA=%S, SecHA=%S, LastHA=%S, Retries=%d, MaxRetries=%d, LastErr=%d, CurErr=%d",
+ "traceClass": "TRACE_SENSITIVE_USIR"
+ }
+ }
+ ],
+ "traceFamily": "PS",
+ "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/interface/protocol/l2_c2k/common/hlp_msg_struct.h b/mcu/interface/protocol/l2_c2k/common/hlp_msg_struct.h
new file mode 100644
index 0000000..e0d06e9
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlp_msg_struct.h
@@ -0,0 +1,1061 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * hlp_msg_struct.h
+ *
+ * Description:
+ * ------------
+ * This file defines the ILM structures for HLP task.
+ *
+ *
+ ****************************************************************************/
+
+#ifndef _HLP_MSG_STRUCT_H
+#define _HLP_MSG_STRUCT_H
+
+#include "hlpapi.h"
+#include "valdbmapi.h"
+#include "do_Qos.h"
+#include "hlpdef.h"
+#include "hlpmip.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_fwd_data_ind_signal_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_rev_data_ind_signal_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_ppp_ha_dec0_complete_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_ppp_ha_enc0_complete_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_ppp_ha_dec1_complete_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_ppp_ha_enc1_complete_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_rev_data_dorm_signal_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_fwd_pkt_data_ind_signal_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_rlp_idle_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_rlp_rev_data_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_rlp_open_failed_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_ppp_release_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_answer_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_dormant_reconnect_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_voice_call_release_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_otapa_update_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_color_code_change_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_1x_mt_conn_in_null_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_almp_conn_opened_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_xoff_resp_rcvd_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_acstrm_xon_resp_rcvd_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_do_inactivity_expr_msg_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ValGenericSetParmMsgT msg;
+} hlp_parm_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ValGenericGetParmMsgT msg;
+} hlp_parm_get_msg_struct;
+
+/* MSG_ID_HLP_DBM_GET_ESN_MEID_RSP_MSG */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ValDbmApiGetParmRspMsgT msg;
+} hlp_dbm_get_esn_meid_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_psws_dmu_keygen_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_psws_dmu_keyenc_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpConnectionIndMsgT msg;
+} hlp_connection_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ValRevTxReqMsgT msg;
+} hlp_rev_data_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppConnectReqMsgT msg;
+} hlp_ppp_connect_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppStatusMsgT msg;
+} hlp_ppp_status_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpTimerExpiredMsgT msg;
+} hlp_timer_expired_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSystemQueryRspMsgT msg;
+} hlp_sytem_query_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpConnectionReleasedIndMsgT msg;
+} hlp_connection_released_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpConnectionFailedIndMsgT msg;
+} hlp_connection_failed_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpOosaIndMsgT msg;
+} hlp_oosa_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_dormant_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ AppSubTypeT sub_type;
+} hlp_um_ppp_renegotiation_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPowerReqMsgT msg;
+} hlp_power_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpUmAppInstanceMsgT msg;
+} hlp_um_app_instance_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketCreateMsgT msg;
+} hlp_socket_create_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketBindMsgT msg;
+} hlp_socket_bind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketConnectMsgT msg;
+} hlp_socket_connect_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketCloseMsgT msg;
+} hlp_socket_close_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketSendReqMsgT msg;
+} hlp_socket_send_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSysSelPrefSetMsgT msg;
+} hlp_sys_sel_pref_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpUpbSendDataMsgT msg;
+} hlp_upb_send_data_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpUpbRecvDataRspMsgT msg;
+} hlp_upb_recv_data_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpTcpbRecvRspMsgT msg;
+} hlp_tcpb_data_recv_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpIp6SocketConnectMsgT msg;
+} hlp_ipv6_socket_connect_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSidNidChangIndMsgT msg;
+} hlp_sid_nid_change_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPktZoneIdChangIndMsgT msg;
+} hlp_pkt_zone_id_change_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSubnetIdChangIndMsgT msg;
+} hlp_subnet_id_change_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValPingReqMsgT msg;
+} hlp_icmp_ping_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValUpdatePdnInactivityTimerT msg;
+} hlp_val_update_pdn_inactivity_timer_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpMipRrpMsgT msg;
+} hlp_mip_rrp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpMipAgentAdvMsgT msg;
+} hlp_mip_agent_adv_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpMipUmPppStatusMsgT msg;
+} hlp_mip_um_ppp_status_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpGetIPServiceTypeMsgT msg;
+}hlp_get_ip_service_type_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpConnStatusMsgT msg;
+} hlp_almp_conn_failed_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSvcStatusMsgT msg;
+} hlp_service_status_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpTestBrowserConnectMsgT msg;
+} hlp_test_browser_connect_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ExeRspMsgT msg;
+} hlp_ip_counters_peek_ets_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ExeRspMsgT msg;
+} hlp_pure_ack_tag_rate_get_ets_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpEtsPureAckRateMsgT msg;
+} hlp_pure_ack_tag_rate_set_ets_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ExeRspMsgT msg;
+} hlp_throttling_tmr_status_get_ets_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValDMUVSetMsgT msg;
+} hlp_val_dmuv_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketListenMsgT msg;
+} hlp_socket_listen_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpOptionRequestMsgT msg;
+} hlp_socket_option_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketShutDownMsgT msg;
+} hlp_socket_shutdown_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSocketLingerMsgT msg;
+} hlp_socket_linger_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValPingReqMsgT msg;
+} hlp_val_ping_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValCtaUpdateReqMsgT msg;
+} hlp_val_cta_update_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpDmuSecureDataMsgT msg;
+} hlp_dmu_secure_data_changed_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_val_power_cycle_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPswMDNUpdatedMsgT msg;
+} hlp_psw_mdn_updated_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPswRsvasAbortReqMsgT msg;
+} hlp_psw_rsvas_abort_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_sip_chap_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_mip_mnha_auth_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_mip_rrq_hash_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_mip_mnaaa_auth_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_aka_auth_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_access_chap_resp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_opc_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_update_3gpd_opc_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_opm_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_update_3gpd_opm_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_sipcap_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_mipcap_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_sipupp_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_mipupp_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_sipsp_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_update_3gpd_sipsp_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_mipsp_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_update_3gpd_mipsp_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpd_sippapss_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_update_3gpd_sippapss_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpDormancyTimersSetMsgT msg;
+} hlp_dormancy_timers_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpDORetryTimersSetMsgT msg;
+} hlp_doretry_timers_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSetNetworkOrRelayModeMsgT msg;
+} hlp_set_network_or_relay_mode_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimNotifyMsgT msg;
+} hlp_uim_notify_register_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpUimFileChangeMsgT msg;
+} hlp_uim_file_changed_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_hrpdcap_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_3gpduppext_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_tcpcfg_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_dgc_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_mipflags_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_ipv6cap_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_usim_ust_data_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_usim_est_data_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_uim_get_usim_acl_data_rsp_msg_struct;
+
+#ifdef CBP7_EHRPD
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ ImsAppNetwkConnReqMsgT msg;
+} ims_app_netwk_conn_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsAppConnReqMsgT msg;
+} ims_app_setup_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsAppConnRelMsgT msg;
+} ims_app_rel_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+} ims_app_netwk_rel_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsPppPdnConnRspMsgT msg;
+} ims_ppp_pdn_conn_set_up_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsPppPdnRelIndMsgT msg;
+} ims_ppp_pdn_conn_rel_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsPppPdnRelIndMsgT msg;
+} ims_ppp_pdn_rel_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_set_pdn_info_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ IMSIpv6ConfgRspMsgT msg;
+} ims_ipv6_addr_config_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsCamPppIndT msg;
+} ims_cam_ppp_um_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ImsCamPppIndT msg;
+} ims_cam_ppp_rm_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpImsEHRPDAttriMsgT msg;
+} ims_rlp_ehrpd_attribute_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ AppImsBearerReqMsgT msg;
+} ims_app_bearer_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSecAkaAuthRspMsgT msg;
+} hlp_sec_akaauth_rsp_msg_struct;
+#endif /* CBP7_EHRPD */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSecAesCryptRspMsgT msg;
+} hlp_sec_aescrypt_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_get_usim_imsi_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_get_usim_ad_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ UimRspMsgT msg;
+} hlp_get_isim_impu_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpRlpFlowProtocolInfoMsgT msg;
+} hlp_rcp_rlpflow_protocol_info_msg_struct;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpNetConnReqT msg;
+} hlp_default_bearer_conn_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpBearerSetupReqT msg;
+} hlp_eps_bearer_setup_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpBearerDisconnReqT msg;
+} hlp_eps_bearer_disconn_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpDataConnectionCmdT msg;
+} hlp_data_connection_cmd_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpImsSetIPv6AddrMsgT msg;
+} hlp_irat_set_ipv6addr_cmd_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpCssNetRelT msg;
+} hlp_css_network_rel_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValNetRelT msg;
+} val_hlp_network_rel_req_struct;
+
+#endif /* MTK_DEV_C2K_IRAT */
+
+
+#ifdef CBP7_EHRPD
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpIp6UdpConnectionOpenMsgT msg;
+} hlp_ip6_udp_connection_open_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpIp6UdpConnectionCloseMsgT msg;
+} hlp_ip6_udp_connection_close_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpIp6TcpConnectionOpenMsgT msg;
+} hlp_ip6_tcp_connection_open_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpIp6TcpConnectionCloseMsgT msg;
+} hlp_ip6_tcp_connection_close_msg_struct;
+#endif /* CBP7_EHRPD */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppRouteTypeSetMsgT msg;
+} hlp_ppp_route_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ExeRspMsgT msg;
+} hlp_ppp_route_get_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpDOANAuthAlgoSetMsgT msg;
+} hlp_an_auth_algo_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpQOMOpFlowRspMsgT msg;
+} ims_qom_flow_req_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpQOMOpFlowRspMsgT msg;
+} ims_qom_flow_rel_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpQOMOpFlowRelIndMsgT msg;
+} ims_qom_flow_rel_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpQOMFlowIndMsgT msg;
+} ims_qom_flow_ntwk_init_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_sec_derivemk_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_sec_derivereauthxkey_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_sec_derivemsk_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_sec_derivemac_rsp_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpSetNetworkOrRelayModeMsgT msg;
+} hlp_set_nw_or_relay_mode_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpDORetryTimersSetMsgT msg;
+} hlp_do_retry_timers_set_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpValPcmtParaMsgT msg;
+} hlp_val_pcmt_para_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 FmpReferencePN;
+}hlp_rmc_fmp_ref_pn_update_ind_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool ho_ehrpd_enable;
+ kal_bool idp_in_sleep;
+}hlp_idp_update_ho_ehrpd_enable_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppConnectReqMsgT msg;
+} val_hlp_ppp_connect_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppDisconnectReqMsgT msg;
+} val_hlp_ppp_disconnect_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppUpdateReqMsgT msg;
+} val_hlp_ppp_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpEhrpdBearerConnReqMsgT msg;
+} val_hlp_ehrpd_bearer_connect_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpEhrpdBearerDisconReqMsgT msg;
+} val_hlp_ehrpd_bearer_disconnect_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpEapnsyncDefineReqMsgT msg;
+} val_hlp_eapnsync_define_req_struct;
+
+typedef struct
+{
+ /** ILM specific header. */
+ LOCAL_PARA_HDR
+
+ /** true: on; false: off */
+ kal_bool flag;
+}hlp_rm_buffer_status_notify_struct;
+
+#ifdef MTK_PLT_ON_PC
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpIpDataSendReqMsgT msg;
+} hlp_ip_data_send_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppDataReqMsgT msg;
+} hlp_ppp_data_req_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpPppDataReqMsgT msg;
+} hlp_ppp_data_ind_msg_struct;
+#endif /* MTK_PLT_ON_PC */
+
+#ifdef MTK_PLT_ON_PC_UT
+typedef struct
+{
+ LOCAL_PARA_HDR
+} hlp_init_nvram_read_msg_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ HlpUtConfigParamT msg;
+}hlp_ut_config_param_msg_struct;
+#endif /* MTK_PLT_ON_PC_UT */
+
+
+#endif /* _HLP_MSG_STRUCT_H */
diff --git a/mcu/interface/protocol/l2_c2k/common/hlp_nvram.h b/mcu/interface/protocol/l2_c2k/common/hlp_nvram.h
new file mode 100644
index 0000000..1ebe201
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlp_nvram.h
@@ -0,0 +1,403 @@
+/*****************************************************************************
+* 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 CONSKAL_TRUED 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).
+*
+*****************************************************************************/
+
+#ifndef _HLP_NVRAM_H_
+
+#define _HLP_NVRAM_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#define HLP_DEFAULT_HSPD_LOCKED KAL_FALSE
+#define HLP_DEFAULT_HSPD_NETWORKMODE KAL_TRUE
+
+#define HLP_DEFAULT_RRP_TIMEOUT 3 /* 1750 ms */
+#define HLP_DEFAULT_NUM_REG_RETRIES 2
+#define HLP_DEFAULT_NUM_DEREG_RETRIES 2
+#define HLP_DEFAULT_RRA 26
+#define HLP_DEFAULT_SPRINT_RRA 1800
+#define HLP_DEFAULT_REREG_ONLYIF_TRAFFIC KAL_FALSE
+#define HLP_DEFAULT_IP_ADDR 0x00000000L
+
+#define HLP_DEFAULT_NAI_ENABLED KAL_TRUE
+
+#define HLP_DEFAULT_NAI "ctnet@mycdma.cn"
+#define HLP_DEFAULT_DUN_NAI "ctnet@mycdma.cn"
+#define HLP_DEFAULT_SIP_PASSWRD "vnet.mobi"
+
+#define HLP_DEFAULT_AN_PASSWRD 0
+#define HLP_DEFAULT_AKA_PASSWRD 0
+#define HLP_DEFAULT_MN_HA_PASSWRD 0
+#define HLP_DEFAULT_MN_AAA_PASSWRD 0
+
+#define HLP_DEFAULT_DORMANT_HANDOFF_OPTION KAL_TRUE
+#define HLP_DEFAULT_DATA_SCRM_ENABLED KAL_TRUE
+#define HLP_DEFAULT_DATA_THROTTLING_ENABLED KAL_TRUE
+#define HLP_DEFAULT_PREFERRED_RC 3 /*PSW_RC_PREF_3 */
+#define HLP_DEFAULT_MIP_MODE IPSERVICE_TYPE_MIP_PREFER
+#define HLP_DEFAULT_ACTIVE_PROFILE 0
+#define HLP_DEFAULT_NUM_PROFILES HLP_MAX_HSPD_PROFILES
+#define HLP_DEFAULT_MN_HA_SPI_ENABLE KAL_TRUE
+#define HLP_DEFAULT_MN_AAA_SPI_ENABLE KAL_TRUE
+#define HLP_DEFAULT_VJCOMPRESSION_ENABLED KAL_FALSE
+#define HLP_DEFAULT_DOTO1X_FALLBACK_ENABLED KAL_TRUE
+
+#define HLP_DEFAULT_HSPD_T_DORMACNY 30
+#define HLP_DEFAULT_HSPD_T_HRPD_SEARCH 300
+#define HLP_DEFAULT_HSPD_T_RAPID_DORMACNY 5
+#define HLP_DEFAULT_HSPD_T_RES_DEF_DORMACNY 2
+
+#define HLP_DEFAULT_PPP_UM_LCP_REQ_RETRIES 10
+#define HLP_DEFAULT_PPP_UM_LCP_NAK_RETRIES 10
+#define HLP_DEFAULT_PPP_UM_LCP_RESTART_TMR 3000
+#define HLP_DEFAULT_PPP_UM_LCP_TERM_RETRIES 2
+#define HLP_DEFAULT_PPP_UM_LCP_TERM_TIMER 3000
+#define HLP_DEFAULT_PPP_UM_AUTH_RETRIES 5
+#define HLP_DEFAULT_PPP_UM_AUTH_TIMER 3000
+#define HLP_DEFAULT_PPP_UM_NCP_REQ_RETRIES 10
+#define HLP_DEFAULT_PPP_UM_NCP_NAK_RETRIES 3
+#define HLP_DEFAULT_PPP_UM_NCP_RESTART_TMR 3000
+#define HLP_DEFAULT_PPP_UM_NCP_TERM_RETRIES 2
+#define HLP_DEFAULT_PPP_UM_NCP_TERM_TIMER 3000
+
+#define HLP_DEFAULT_PPP_RM_PPP_KEEP_LIVE KAL_FALSE
+#define HLP_DEFAULT_PPP_RM_PPP_DETECT KAL_FALSE
+#define HLP_DEFAULT_PPP_RM_LCP_REQ_RETRIES 10
+#define HLP_DEFAULT_PPP_RM_LCP_NAK_RETRIES 3
+
+#define NET_MTU 1500 /* it was 1500 */
+#define TCPIP_HEADERSIZE 40 /* IP header + TCP header size */
+#define TCP_MAXWINSIZE 65535UL /* max TCP window size */
+
+#define HLP_DEFAULT_TCP_MTU NET_MTU - TCPIP_HEADERSIZE
+#define HLP_DEFAULT_TCP_WIN_1XRTT TCP_MAXWINSIZE
+#define HLP_DEFAULT_TCP_WIN_EVDO TCP_MAXWINSIZE
+#define DO_RETRY_TIMER 60
+
+#define HLP_DEFAULT_PKOID 10
+#define HLP_DEFAULT_MN_HA_SPI 300
+#define HLP_DEFAULT_MN_AAA_SPI 2
+#define HLP_DEFAULT_IS801_IP_ADDR 0x00000000L
+#define HLP_DEFAULT_IS801_PORT_NUM 0
+#define HLP_DEFAULT_MN_HOME_IP_ADDR 0x00000000L
+#define HLP_DEFAULT_HA_PRI_IP_ADDR 0xFFFFFFFF
+#define HLP_DEFAULT_HA_SEC_IP_ADDR 0xFFFFFFFF
+#define HLP_DEFAULT_SPRINT_HA_PRI_IP_ADDR 0x441C0F0C /* 68.28.15.12 */
+#define HLP_DEFAULT_SPRINT_HA_SEC_IP_ADDR 0x441C1F0C /* 68.28.31.12 */
+#define HLP_DEFAULT_MN_REV_TUNNELING KAL_TRUE
+#define HLP_DEFAULT_ACTIVE_RSA_PUBLIC_KEY DMU_RSA_PUBLICKEY_1
+#define HLP_DEFAULT_HA_AUTH RFC2002bis
+#define HLP_DEFAULT_HA_AUTH_ALGORITHM MD5_AUTH_ALGO
+#define HLP_MTU_SIZE_VZW 1428
+#define HLP_MTU_SIZE_SPRINT 1422
+/* CTCC requires at least 10 min for ppp context maintaince time 600 is in second unit */
+#define PPP_EHRPD_MAX_INACT_TIME_LEN_CT 600
+/* SPRINT ppp partial context maintenance timer on ehrpd, 3600 in second unit */
+#define PPP_EHRPD_MAX_INACT_TIME_LEN_SPRINT 3600
+/* VZW UE context maintenance timer, 0, by req on Feb 16 */
+#define PPP_EHRPD_MAX_INACT_TIME_LEN_VZW 0
+
+#define HLP_MAX_USRID_LEN 72
+#define HLP_MAX_PSWD_LEN 16
+#define HLP_MAX_BWSR_DIG_LEN 33 /* (CP_MAX_CALLING_PARTY_NUMBER_SIZE +1) */
+#define HLP_MN_NAI_MAX_SIZE HLP_MAX_USRID_LEN
+#define MN_AUTH_MAX_SIZE 3
+
+#define HLP_AKA_OP_LEN 16
+#define HLP_AKA_SEQ_ARRAY_SIZE 32
+#define HLP_AKA_SQN_LEN 6 /*48 bits 3G TS 33.105.v.3.0(2000-03)*/
+
+#define HLP_MAX_HSPD_PROFILES 8
+
+#define HLP_HSPD_DB_PAD_SIZE 57
+#define HLP_HSPD_PROFILE_PAD_SIZE 128
+
+#ifdef CBP7_EHRPD
+#define HLP_HSPD_SECURE_DB_PAD_SIZE 114
+#else
+#define HLP_HSPD_SECURE_DB_PAD_SIZE 130
+#endif
+
+#define HLP_HSPD_SECURE_PROFILE_PAD_SIZE 64
+#define HLP_EHRPD_DB_PAD_SIZE 47
+
+#define MN_PASSWD_MAX_SIZE HLP_MAX_PSWD_LEN
+
+#define RSA_PUBKEY_EXPONENT_MAX_SIZE 128
+#define RSA_PUBKEY_MODULUS_MAX_SIZE 128
+
+/*****************************/
+/* HlpNam definitions start */
+/*****************************/
+typedef struct
+{
+ kal_uint32 RxBytes;
+ kal_uint32 RxPackets;
+ kal_uint32 BadRxPackets;
+ kal_uint32 TxBytes;
+ kal_uint32 TxPackets;
+ kal_uint64 TotalRxBytes;
+ kal_uint64 TotalRxPackets;
+ kal_uint64 TotalBadRxPackets;
+ kal_uint64 TotalTxBytes;
+ kal_uint64 TotalTxPackets;
+ kal_uint8 Flag[4];
+ kal_uint8 Unused[10];
+} IPCounterStruct;
+
+typedef struct
+{
+ kal_uint8 lcpReqTries;
+ kal_uint8 lcpNakTries;
+ kal_uint16 lcpRestartTimer;
+ kal_uint8 lcpTermTries;
+ kal_uint16 lcpTermTimer;
+ kal_uint8 authRetries;
+ kal_uint16 authTimer;
+ kal_uint8 ncpReqTries;
+ kal_uint8 ncpNakTries;
+ kal_uint16 ncpReStrTimer;
+ kal_uint8 ncpTermTries;
+ kal_uint16 ncpTermTimer;
+ kal_uint8 unused[8];
+} HlpPppUmCfgT;
+
+typedef struct
+{
+ kal_bool pppKeepAlive;
+ kal_bool pppDetect;
+ kal_uint8 lcpReqTries;
+ kal_uint8 lcpNakTries;
+ kal_uint16 lcpRestartTimer;
+ kal_uint8 lcpTermTries;
+ kal_uint16 lcpTermTimer;
+ kal_uint8 ncpReqTries;
+ kal_uint8 ncpNakTries;
+ kal_uint16 ncpReStrTimer;
+ kal_uint8 ncpTermTries;
+ kal_uint16 ncpTermTimer;
+ kal_uint8 unused[3];
+} HlpPppRmCfgT;
+
+typedef struct
+{
+ kal_uint16 tcpMtu;
+ kal_uint16 tcpWinSize_1XRTT;
+ kal_uint16 tcpWinSize_EVDO;
+ kal_uint8 unused[4];
+} HlpTcpCfgT;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_bool Profile_Valid;
+ kal_uint32 MN_HOME_IP_ADDR;
+ kal_uint32 HA_PRI_IP_ADDR;
+ kal_uint32 HA_SEC_IP_ADDR;
+ kal_uint8 MN_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 MN_DUN_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 MN_REV_TUNNELING;
+ kal_bool bMN_HA_SPI_Enable;
+ kal_uint32 MN_HA_SPI;
+ kal_bool bMN_AAA_SPI_Enable;
+ kal_uint32 MN_AAA_SPI;
+ kal_uint8 Padding[HLP_HSPD_PROFILE_PAD_SIZE];
+} HlpHspdProfileData;
+
+
+typedef struct {
+ kal_uint8 RRPTimeout; /* RRP MIP Registration timeout */
+ kal_uint8 NumRegRetries; /* RRP MIP Registration Retry Attempts */
+ kal_uint16 RRA; /* Pre Re-registration backoff */
+ kal_uint32 Is801_IpAddr;
+ kal_uint16 Is801_PortNum;
+ kal_uint8 Is801_UserId[HLP_MAX_USRID_LEN];
+ kal_uint8 Is801_Pswd[HLP_MAX_PSWD_LEN];
+ kal_uint8 Is801_CalledNumber[HLP_MAX_BWSR_DIG_LEN];
+
+ kal_uint8 MN_HA_AUTH; /* 0-RFC2002, 1-RFC2002bis, 2-bypassHA */
+ kal_uint8 MN_HA_Auth_Algo;
+ kal_uint8 MN_AAA_Auth_Algo;
+
+ kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE];
+ kal_uint8 ActiveDmuRsaPublicKey; /* 0-TestKey, 1-CommercialKey */
+ kal_uint8 nPKOID;
+
+ kal_uint8 SIP_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 SIP_DUN_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 AN_NAI[HLP_MN_NAI_MAX_SIZE];
+
+ kal_uint8 DormantHandoffOptSet; /* 0-Disabled, 1-Enabled */
+ kal_uint8 DataScrmEnabled; /* Supp Chan Supported */
+ kal_uint8 DataTrtlEnabled; /* Slow Down data at high CPU utilization */
+ kal_uint8 PrefRc; /* Preferred Radio Cfg. Default-RC3 */
+ kal_uint32 DNS_PRI_IP_ADDR;
+ kal_uint32 DNS_SEC_IP_ADDR;
+ kal_uint8 MIPMode;
+
+ kal_uint32 ActiveProfile;
+ kal_uint8 NumProfiles;
+ kal_uint8 VJCompEnabled;
+ kal_bool HspdLocked;
+ kal_uint16 LockCode;
+ kal_bool HspdNetworkMode;
+ kal_uint16 T_Dormancy;
+ kal_uint16 T_HRPD_Search;
+ kal_uint16 T_DO_Retry;
+ kal_uint16 T_Rapid_Dormancy;
+ kal_uint16 T_ResDef_Dormancy;
+ kal_uint8 NumDeRegRetries;
+ kal_bool MipReRegOnlyIfTraffic;
+ kal_bool MipNaiEnabled;
+ kal_bool DoTo1X_Enabled;
+
+ HlpPppUmCfgT PppUmCfg;
+ HlpPppRmCfgT PppRmCfg;
+ HlpTcpCfgT TcpCfg;
+ kal_uint8 Ipv6V4Mode;
+
+ kal_uint8 Padding[HLP_HSPD_DB_PAD_SIZE];
+ HlpHspdProfileData ProfileData [HLP_MAX_HSPD_PROFILES];
+}HlpHspdSegData;
+
+typedef struct
+{
+ kal_uint8 ProfileId;
+ kal_bool Profile_Valid;
+ kal_uint8 MN_AAA_PASSWORD_LEN;
+ kal_uint8 MN_AAA_PASSWORD[MN_PASSWD_MAX_SIZE]; /* MIP AAA Shared Secret*/
+ kal_uint8 MN_HA_PASSWORD_LEN;
+ kal_uint8 MN_HA_PASSWORD[MN_PASSWD_MAX_SIZE]; /* MIP HA Shared Secret */
+ kal_uint8 Padding[HLP_HSPD_SECURE_PROFILE_PAD_SIZE];
+} HlpSecureProfileData;
+
+typedef struct
+{
+ kal_uint32 checkSum;
+ kal_uint8 SIP_PASSWORD_LEN;
+ kal_uint8 SIP_PASSWORD[HLP_MAX_PSWD_LEN]; /* Simple IP User Password */
+ kal_uint8 AN_PASSWORD_LEN;
+ kal_uint8 AN_PASSWORD[HLP_MAX_PSWD_LEN]; /* AN Shared Secret*/
+#ifdef CBP7_EHRPD
+ kal_uint8 AKA_PASSWORD[HLP_MAX_PSWD_LEN];
+#endif
+ kal_uint8 Padding[HLP_HSPD_SECURE_DB_PAD_SIZE];
+ HlpSecureProfileData ProfileData [HLP_MAX_HSPD_PROFILES];
+} HlpHspdSecureSegData;
+
+#ifdef CBP7_EHRPD
+
+#if defined MTK_PLT_ON_PC
+#pragma pack( push, saved_packing, 1 )
+#endif
+typedef struct {
+ kal_uint8 NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 AcessNetworkId[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 OP[HLP_AKA_OP_LEN];
+ kal_uint8 SQN[HLP_AKA_SEQ_ARRAY_SIZE][HLP_AKA_SQN_LEN];
+} HlpHspdAkaProfileDataT;
+#if defined MTK_PLT_ON_PC
+#pragma pack( pop, saved_packing )
+#endif
+
+typedef struct
+{
+ kal_bool SmsOverIpNetworks;
+ kal_bool SigComp;
+ kal_uint8 ImsDomain[72];
+ kal_uint8 ImsAkaPassword[72];
+ kal_uint16 SipT1Timer_ims;
+ kal_uint16 SipTFTimer_ims;
+ kal_uint16 SipT2Timer_ims;
+ kal_uint16 SipPcscfPort;
+} SmsOverImsT;
+
+typedef struct
+{
+ HlpHspdAkaProfileDataT AkaProfileData;
+ kal_uint32 pcmt_val_ehrpd; /* PPP Partial Context Maintenance timer eHRPD: standalone eHRPD scenario. Unit: second. */
+ kal_uint32 pcmt_val_irat; /* PPP Partial Context Maintenance timer eHRPD: LTE IRAT transition scenario. Unit: second. */
+} HlpEHrpdSegDataT;
+#endif
+
+typedef enum
+{
+ InvalidIP=0,
+ IPv4=1,
+ IPv6,
+ IPv4andIPv6,
+}IPAddrTypeT;
+
+typedef enum
+{
+ IPSERVICE_TYPE_SIP_ONLY,
+ IPSERVICE_TYPE_MIP_PREFER,
+ IPSERVICE_TYPE_MIP_ONLY
+} IPServiceTypeT;
+
+typedef enum
+{
+ DMU_RSA_PUBLICKEY_1 = 0,
+ DMU_RSA_PUBLICKEY_2
+} DmuRsaPublickKeyNumber;
+
+typedef enum
+{
+ RFC2002,
+ RFC2002bis,
+ BypassHA
+}HAAuthNumber;
+
+typedef enum
+{
+ NONE_AUTH_ALGO,
+ MD5_AUTH_ALGO
+}AuthAlgoNumber;
+
+typedef struct {
+ kal_uint8 nPKOID;
+ kal_uint8 nPKOI;
+ kal_uint8 nPK_Expansion;
+ kal_uint8 nATVAndDMUV;
+} HlpRSAPublicKeyInfoHdrT;
+
+typedef struct {
+ HlpRSAPublicKeyInfoHdrT hdrRSAPublicKeyInfo;
+ kal_uint8 RSAPubKeyExponent[RSA_PUBKEY_EXPONENT_MAX_SIZE];
+ kal_uint8 RSAPubKeyModulus[RSA_PUBKEY_MODULUS_MAX_SIZE];
+} HlpRSAPublicKeyInfoT;
+
+
+#endif /* _HLP_NVRAM_H_ */
+
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpapi.h b/mcu/interface/protocol/l2_c2k/common/hlpapi.h
new file mode 100644
index 0000000..4d9562e
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpapi.h
@@ -0,0 +1,1971 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+#ifndef _HLPAPI_H_
+#define _HLPAPI_H_
+/*****************************************************************************
+*
+* FILE NAME : hlpapi.h
+*
+* DESCRIPTION :
+*
+* This include file provides system wide global type declarations and
+* constants
+*
+* HISTORY :
+* See Log at end of file.
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "module_msg_range.h"
+#include "sysdefs.h"
+#include "pswcustom.h"
+#include "valatdata.h"
+#include "cpbuf.h"
+#include "iopapi.h"
+#include "sbp_public_utility.h"
+#include "hlp_nvram.h"
+#include "slc_nvram.h"
+
+#define EAP_AKA_PRIME 1
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define HLP_MAILBOX_CMD EXE_MAILBOX_1_ID
+#define HLP_MAILBOX2_CMD EXE_MAILBOX_2_ID
+#define HLP_SEC_MAILBOX EXE_MESSAGE_MBOX_3
+#define HLP_SEC_CMD EXE_MAILBOX_3_ID
+
+#define HLP_MAX_SIZE_DATA 240
+#define HLP_MAX_NUM_REV_RLP 300
+#define HLP_MAX_SPY_LEN 164
+#define MAX_NUM_DO_INACTIVITY_TICKS 4500 /* 4500 x 6.67ms = 30 sec */
+#define MAX_NUM_1X_INACTIVITY_TICKS 30 /* second */
+
+#define HLP_AKA_KEY_LEN 16 /*128 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_RAND_LEN 16 /*128 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_FMK_LEN 4 /*32 bits */
+#define HLP_AKA_AMF_LEN 2 /*16 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_MACA_LEN 8 /*64 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_MACS_LEN 8 /*64 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_RES_LEN 16 /*32<->128 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_CK_LEN 16 /*128 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_IK_LEN 16 /*128 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_AK_LEN 6 /*48 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_AKS_LEN 6 /*48 bits 3G TS 33.105.v.3.0(2000-03)*/
+#define HLP_AKA_UAK_LEN 16
+#define HLP_AKA_AUTN_LEN 16
+#define HLP_AKA_AUTS_LEN 16
+
+#define EAP_AKA_NONCE_S_LEN 16
+#define EAP_AKA_NONCE_MT_LEN 16
+#define EAP_AKA_MAC_LEN 16
+#define EAP_AKA_K_AUT_LEN 32
+#define EAP_AKA_K_ENCR_LEN 16
+#define EAP_AKA_MSK_DATA_LEN 64
+#define EAP_AKA_IV_LEN 16
+
+#define EAP_AKA_RAND_LEN 16
+#define EAP_AKA_AUTN_LEN 16
+#define EAP_AKA_RES_MAX_LEN 16
+#define EAP_AKA_MK_LEN 20
+#define EAP_AKA_MSK_LEN 64
+#define EAP_AKA_AUTS_LEN 14
+#define EAP_AKA_IK_LEN 16
+#define EAP_AKA_CK_LEN 16
+#define EAP_AKA_SHA1_MAC_LEN 20
+
+#define EAP_AKA_PSEUDONYM_LEN 128
+#define EAP_AKA_REAUTH_ID_LEN 128
+#define EAP_AKA_KC_LEN 8
+#define RM_WRITE_FLAG_SND_ACK 1
+
+#if EAP_AKA_PRIME
+#define EAP_AKA_K_RE_LEN 32
+#define EAP_AKA_EMSK_DATA_LEN 64
+#define EAP_AKA_PRIME_MK_LEN 208
+#endif
+
+#define HLP_MAX_SOCKET 10
+
+#define HLP_MN_PASSWD_MAX_SIZE HLP_MAX_PSWD_LEN
+#define HLP_BETTER_SYSTEM_THRESH 20
+#define MN_NAI_MAX_SIZE HLP_MAX_USRID_LEN
+#define HLP_NUM_DIAL_STRING_DIGITS 11
+
+#ifdef CBP7_EHRPD
+#define MAX_HLP_FLOW_SUPPORTED 8 /* 6 */ /*Must be same as MAX_RLP_FLOW_SUPPORTED*/
+#define MAX_RLP_FRAMES_PER_IP_PKT 32
+#define NUM_HLP_FWD_IP_DATA_IND_ENTRIES 16
+#endif
+
+#define HSPD_PRI
+
+
+#define VAL_UIM_FILE_CHANGE_LIST_MAX 50
+#define HLP_VZW_PCO_CODE 0xFF00
+#define HLP_VZW_PCO_CODE_STR "FF00"
+#define HLP_VZW_PCO_MCCMNC_LEN 6
+#define HLP_VZW_PCO_MCCMNC_STR "311480"
+#define HLP_VZW_PCO_CODE_STR_LEN 4
+
+#define HLP_MAX_APN_NUM 10
+#define HLP_UIM_USIM_ACL_TAG 0xDD
+#define HLP_UIM_USIM_ACL_SEPERATOR 0x2E
+#define HLP_MIP_ERROR_CODE_BASE 0x80b0
+#define HLP_PDN_ERROR_CODE_BASE 0x8000
+
+/***********************************************************************/
+/* Global Typedefs */
+/**********************************************************************/
+
+
+/***********************************************************************/
+/* Enumeration Definitions */
+/***********************************************************************/
+typedef enum
+{
+ HlpDataChRetOK,
+ HlpDataChRetOK_Empty,
+ HlpDataChRetFull,
+ HlpDataChRetErr
+} HlpDataChRetStatus;
+
+typedef struct {
+ CpBufferT *bufPtr;
+ kal_uint16 offset;
+ kal_uint16 dataLen;
+ kal_uint8 nRLPFlow;
+ kal_uint8 streamType;
+
+ kal_uint16 tcpTag;
+ kal_uint32 tcpPort;
+ kal_uint32 srcIpAddr;
+ kal_uint32 dstIpAddr;
+
+#ifdef CBP7_EHRPD
+ kal_uint16 FrameType; /* distinguish Ipv4/Ipv6 and PDN-ID */
+#endif
+
+ kal_uint8 BearerId;
+} RmDataCpBuffDescT;
+
+typedef enum
+{
+ RmDataQBuffOK,/*Process successfully*/
+ RmDataQBuffOK_Empty,/* Buffer Q empty after read successfully */
+ RmDataQBuffFull,/* Buffer Q full */
+ RmDataQBuffErr /* Error occurred. */
+} RmDataQBuffStatusE;
+
+typedef enum
+{
+ DO_NETWORK,
+ RTT_NETWORK,
+ NON_CONNECTED
+} NetworkT;
+
+typedef enum
+{
+ IN_SERVICE,
+ OOSA,
+ TO_ACQUIRE
+} SvcStatusT;
+
+typedef enum
+{
+ ASYNC_DATA,
+ NETWORK_RM,
+ PPP_ONLY,
+ RELAY_RM,
+ MAIN_CONN
+} NspeAppT;
+
+typedef enum
+{
+ DO_ONLY, /* DO is active and is the only system that is allowed. */
+ DO_PREFERRED, /* DO and 1X are both active, DO is preferred. */
+ RTT_ONLY, /* 1X is active and is the only system that is allowed. */
+ RTT_PREFERRED, /* DO and 1X are both active, 1X is preferred. */
+ NO_PREFERENCE,
+#ifdef MTK_CBP
+ HLP_NTW_PREF_NONE
+#endif
+} NetworkPrefT;
+
+typedef enum
+{
+ CONNECTION_FAILED_IND,
+ CONNECTION_CLOSED_IND,
+ CONNECTION_OPENED_IND
+} ConnectionRspT;
+
+typedef enum
+{
+ Um, /* Service Stream */
+ Rm,
+ Um_AccessStream,
+ PppEndPointMax
+} pppEndPointT;
+
+typedef enum
+{
+ DO_FOUND, /* Only DO network is found */
+ RTT_FOUND, /* Only 1X network is found */
+ BOTH, /* Both network are found */
+ NEITHER /* Nothing available */
+} NetworkRspT;
+
+typedef enum
+{
+ HA_DEC0,
+ HA_DEC1,
+ HA_ENC0,
+ HA_ENC1
+} pppHaPortT;
+
+typedef enum
+{
+ HLP_NETWORK_ERROR_EVDO_CO_NO_SERVICE,
+ HLP_NETWORK_ERROR_EVDO_CO_ACCESS_FAILURE,
+ HLP_NETWORK_ERROR_EVDO_CO_REDIRECTION,
+ HLP_NETWORK_ERROR_EVDO_CO_NOT_PREFERRED,
+ HLP_NETWORK_ERROR_EVDO_CO_MODE_HANDOFF,
+ HLP_NETWORK_ERROR_EVDO_CO_IN_PROGRESS,
+ HLP_NETWORK_ERROR_EVDO_CO_SETUP_TIMEOUT,
+ HLP_NETWORK_ERROR_EVDO_CO_SESSION_NOT_OPEN,
+ HLP_NETWORK_ERROR_EVDO_RELEASE_NO_REASON,
+ HLP_NETWORK_ERROR_EVDO_PROTOCOL_FAILURE,
+ HLP_NETWORK_ERROR_EVDO_DENY_NO_REASON,
+ HLP_NETWORK_ERROR_EVDO_DENY_NETWORK_BUSY,
+ HLP_NETWORK_ERROR_EVDO_DENY_AUTHENTICATION,
+ HLP_NETWORK_ERROR_EVDO_REDIRECT_TO_1X,
+ HLP_NETWORK_ERROR_EVDO_FADE,
+ HLP_NETWORK_ERROR_EVDO_USER_DISCONNECTED
+#if defined (MTK_DEV_C2K_IRAT) && defined (MTK_DEV_C2K_SRLTE_L1)
+ ,
+ HLP_NETWORK_ERROR_EVDO_RSVAS_SUSPEND,
+ HLP_NETWORK_ERROR_EVDO_RSVAS_VIRTUAL_SUSPEND
+#endif
+ ,
+ HLP_NETWORK_SESSION_NEGOTIATION_COMPLETE,
+ HLP_NETWORK_ERROR_EVDO_LAST
+}HlpConnCloseReasonT;
+
+typedef struct HlpPPPHaLLD
+{
+ kal_uint32 sourceAddr;
+ kal_uint32 xferCount;
+ kal_uint32 configReg;
+ kal_uint32 nextInLLD;
+} HlpPPPHaLLDT;
+
+typedef enum
+{
+ REG_TIMER_EXPIRED,
+ DORMANT_RECONN,
+ SID_NID_CHANGE,
+ PKT_ZID_CHANGE,
+ COLOR_CODE_CHANGE
+} MipReRegReasonT;
+
+typedef enum
+{
+ Check_T_Dormancy = 0x01,
+ Check_T_HRPD_Search = 0x02,
+ Check_T_Rapid_Dormancy = 0x04,
+ Check_T_ResDef_Dormancy = 0x08,
+ Check_Dormancy_All = 0x0f
+} DormParmCheckT;
+
+typedef enum
+{
+ HLP_TIMER_TCH_SETUP,
+ HLP_TIMER_WFR_SYS_RSP,
+ HLP_TIMER_1X_CONNECTION_5MIN,
+ HLP_TIMER_WFR_FAST_CONN,
+ HLP_TIMER_DATA_RETRY,
+ HLP_TIMER_DO_RETRY,
+ HLP_TIMER_FALLBACK,
+ HLP_TIMER_DO_OOSA_CONNECT_1X,
+ HLP_TIMER_WFR_RM_CONNECT,
+ HLP_TIMER_PPP_UM_REQ,
+ HLP_TIMER_PPP_RM_REQ,
+ HLP_TIMER_PPP_A12_REQ,
+ HLP_TIMER_PPP_AUX_REQ,
+ HLP_TIMER_PPP_UM_LOCAL_AUTH_REQ,
+ HLP_TIMER_PPP_RM_LOCAL_AUTH_REQ,
+ HLP_TIMER_PPP_A12_LOCAL_AUTH_REQ,
+ HLP_TIMER_PPP_AUX_LOCAL_AUTH_REQ,
+ HLP_TIMER_PPP_UM_REMOTE_AUTH_REQ,
+ HLP_TIMER_PPP_RM_REMOTE_AUTH_REQ,
+ HLP_TIMER_PPP_A12_REMOTE_AUTH_REQ,
+ HLP_TIMER_PPP_AUX_REMOTE_AUTH_REQ,
+ HLP_TIMER_PPP_MNRP_REQ,
+ HLP_TIMER_WFR_UIM_AUTH_RSP,
+ HLP_TIMER_THROTTLING_HSPD,
+ HLP_TIMER_THROTTLING_HRPD,
+ HLP_TIMER_IP_250MS,
+ HLP_TIMER_DRMNT_RCNT_BACKOFF,
+ HLP_TIMER_WFR_HANDOFF_HYST,
+ HLP_TIMER_XOFF_RSP,
+ HLP_TIMER_TCH_REL,
+ HLP_TIMER_C109_PULSE,
+ HLP_TIMER_PPP_CONNECT_BACKOFF,
+ HLP_TIMER_DATA_RELEASE,
+ HLP_TIMER_PDN_REQ_0, /* ehrpd start, 0-4 not the pdn id, but the pdn array index */
+ HLP_TIMER_PDN_REQ_1,
+ HLP_TIMER_PDN_REQ_2,
+ HLP_TIMER_PDN_REQ_3,
+ HLP_TIMER_PDN_REQ_4,
+ HLP_TIMER_VSE_VER_CAP_IND,
+ HLP_TIMER_VSE_PPP_INACT,
+ HLP_TIMER_IMS_WFR_RSP,
+ HLP_TIMER_PDN_INACT_0,
+ HLP_TIMER_PDN_INACT_1,
+ HLP_TIMER_PDN_INACT_2,
+ HLP_TIMER_PDN_INACT_3,
+ HLP_TIMER_PDN_INACT_4,
+ HLP_TIMER_THROTTLING_EHRPD,
+ HLP_TIMER_UE_PARTIAL_CONTEXT, /* ehrpd end */
+ HLP_TIMER_MIP_RRP_REG, /* mip start */
+ HLP_TIMER_MIP_RRP_DEREG,
+ HLP_TIMER_MIP_RRQ_REG,
+ HLP_TIMER_MIP_AGENT_ADV,
+ HLP_TIMER_MIP_LIFETIME, /* mip end */
+ HLP_TIMER_IPV6_TEST,
+ HLP_TIMER_NAT,
+ HLP_TIMER_A12_REDIAL_PENDING,
+ HLP_TIMER_RSVAS_ABORT_REQ,
+ HLP_TIMER_VSNCP_PDN_OPEN,
+ HLP_TIMER_MAX_NUM
+}hlp_timer_enum;
+
+typedef enum
+{
+ /*Network Generates PDN Error*/
+ GeneralError = 0x8000,
+ UnauthorizedAPN,
+ PDNLimitExceeded,
+ NoPGWAvailable,
+ PGWUnreachable,
+ PGWReject,
+ InsufficientParameters,
+ ResourceUnavailable,
+ AdminProhibited,
+ PDNIDAlreadyInUse,
+ SubScriptionLimitation,
+ PDNConnAlreadyExistForPDN,
+ EmergencyNotSupported,
+ ReconnectNotAllowed,
+ /*User Defined PDN Error*/
+ EAPAKAfailure = 0x8080,
+ RetryTmrThrottling,
+ NetworkNoRsp,
+ PDNAttachAbort,
+ PDNLimitExceededInUESide,
+ PDNIDAlreadyInUseInUESide,
+ InvalidPDNAttachReq,
+ PdnRecFailure,
+ MainConnSetupFailure,
+ BearerResourceUnAvailable,
+ OpAbortByUser,
+ RttDataConnected,
+ EAPAKAReject,
+ LCPNego3Failure,
+ TCHSetupFailure,
+ NwNoRspInLCP,
+ NwNoRspInAuth,
+ A12Retry3Failure,
+ RsvasSuspended,
+ AbortByGMSS,
+ /*User Defined PPP Error*/
+ PppAuthFail = 0x80b0,
+ MipPppLcpTmo,
+ MipPppNcpTmo,
+ SipPppLcpTmo,
+ SipPppNcpTmo,
+ MipPppOptMismatch,
+ SipPppOptMismatch,
+ MipSolTmo,
+ MipRrqTmo,
+ MipRrpErr,
+ MipLcpFail,
+ SipLcpFail,
+ MipNcpFail,
+ SipNcpFail,
+ A12AuthFail,
+ EapAkaAuthFail,
+ MipAdminProhibFail,
+ MultiTchFail,
+ PppA12LcpTmo,
+ DnsNoResponse,
+ /*Network Generates MIP Error*/
+ /*0x80f0 - 0x8140: MIP error code, shall not disorder it*/
+ MipUnspecifiedFailure = 0x80f0,
+ MipAdminProhibited,
+ MipInsuffResources1,
+ MipMnFailedAuth,
+ MipHaFailedAuth,
+ MipLifetimeTooLong,
+ MipPoorlyFormedReq,
+ MipPoorlyFormedReply,
+ MipEncapUnavail,
+ MipReservedUnavail,
+ MipRevTunUnavail,
+ MipRTNTNotSet,
+ MipMnTooDistant,
+ MipInvalidCareOfAddr,
+ MipRegTimeout,
+ MipDsNotSupport,
+ MipHnUnreachable,
+ MipHaHostUnreachable,
+ MipHaPortUnreachable,
+ MipHaUnreachable = 0x8108,
+ MipVendorSpecific,
+ MipNonzeroHaAddr,
+ MipNonzeroHomeAddr = 0x8110,
+ MipMissingNai,
+ MipMissingHa,
+ MipMissingHomeAddr,
+ MipUnknownChall = 0x8118,
+ MipMissingChall,
+ MipStaleChall,
+ MipMissingMnFa,
+ MipReasonUnspec = 0x8130,
+ MipAdminProhib,
+ MipInsuffResources2,
+ MipMnFailedAuth2,
+ MipFaFailedAuth,
+ MipIdentMismatch,
+ MipPoorlyFormedReq2,
+ MipTooManyBindings,
+ MipUnknownHaAddr,
+ MipRevTunnelUnavail,
+ MipRTNTNotSet2,
+ MipEncapsulationUnavail = 0x813b,
+ MipRegWithRedirected = 0x813f,
+ MipErrCodeFromHome = 0x8140,
+ NullError = 0xeeee,
+ NoError = 0xffff
+}DataConnErrCodeT;
+
+/***********************************************************************/
+/* Message/Struct Definitions */
+/***********************************************************************/
+typedef struct
+{
+ NetworkT networkType;
+ SvcStatusT svcStatus;
+} networkSvcT;
+
+typedef struct
+{
+ networkSvcT ServiceStatus;
+} HlpOosaIndMsgT;
+
+typedef struct
+{
+ NetworkRspT SysToBeConnected;
+} HlpSystemQueryRspMsgT;
+
+/* Same as ValPswCallEndReasonT defined in valpswapi.h */
+typedef enum
+{
+ HLP_PSW_ORIG_FAIL=2,
+ HLP_PSW_ORIG_CANCELED_NDSS,
+ HLP_PSW_ORIG_CANCELED,
+ HLP_PSW_INTERCEPT,
+ HLP_PSW_REORDER,
+ HLP_PSW_CC_RELEASE,
+ HLP_PSW_CC_RELEASE_SO_REJ,
+ HLP_PSW_FNM_RELEASE,
+ HLP_PSW_DIALING_COMPLETE,
+ HLP_PSW_DIALING_CONTINUE,
+ HLP_PSW_MAINTENANCE,
+ HLP_PSW_VP_ON,
+ HLP_PSW_VP_OFF,
+ HLP_PSW_PSIST_FAIL,
+ HLP_PSW_TC_RELEASE_MS,
+ HLP_PSW_TC_RELEASE_PDOWN,
+ HLP_PSW_TC_RELEASE_DISABLE,
+ HLP_PSW_TC_RELEASE_BS,
+ HLP_PSW_TC_RELEASE_SO_REJECT,
+ HLP_PSW_TC_RELEASE_TIMEOUT,
+ HLP_PSW_TC_RELEASE_ACK_FAIL,
+ HLP_PSW_TC_RELEASE_FADE,
+ HLP_PSW_TC_RELEASE_LOCK,
+ HLP_PSW_PAGE_FAIL,
+ HLP_PSW_RETRY_TIMER_ACTIVE,
+ HLP_PSW_RETRY_TIMER_INACTIVE,
+ HLP_PSW_AMPS_INSVC,
+ HLP_PSW_ORIG_REJECTED,
+ HLP_PSW_EV_ORIG_RETRY_ORDER,
+ HLP_PSW_SO_REDIRECT
+} HlpPswCallEndReasonT;
+
+typedef struct
+{
+ HlpPswCallEndReasonT reason;
+} HlpConnectionFailedIndMsgT;
+
+typedef struct
+{
+ ConnectionRspT ConnRsp;
+} HlpConnectionRspMsgT;
+
+typedef struct
+{
+ kal_uint16 sid;
+ kal_uint16 nid;
+} HlpSidNidChangIndMsgT;
+
+typedef struct
+{
+ kal_uint8 pid;
+} HlpPktZoneIdChangIndMsgT;
+
+typedef struct
+{
+ kal_uint8 subnetId[16];
+} HlpSubnetIdChangIndMsgT;
+
+typedef struct
+{
+ kal_uint8 CallNumber[HLP_MAX_BWSR_DIG_LEN]; /* ASCII chars, NULL terminated */
+ kal_uint8 UserId[HLP_MAX_USRID_LEN]; /* Username use for SIP */
+ kal_uint8 Pswd[HLP_MAX_PSWD_LEN]; /* Password use for SIP */
+} DialingInfoT;
+
+typedef struct
+{
+ NspeAppT AppInstance;
+ kal_uint8 Action;
+} HlpUmAppInstanceMsgT;
+
+typedef struct
+{
+ kal_uint8 FileCount;
+ kal_uint16 FileId[VAL_UIM_FILE_CHANGE_LIST_MAX];
+} HlpUimFileChangeMsgT;
+
+typedef struct {
+ kal_uint32 ipaddress;
+ kal_uint16 port;
+} FilterMux;
+
+typedef struct {
+ FilterMux socket[4];
+ kal_uint16 currentSocketNum;
+}MuxInfo;
+
+typedef struct
+{
+ kal_bool gotoDormant;
+} HlpConnectionReleasedIndMsgT;
+
+typedef struct
+{
+ kal_bool success; /* True = TCH connection and 1X RLP established. */
+} HlpConnectionIndMsgT;
+
+typedef struct
+{
+ kal_bool TcpType; /* KAL_TRUE=TCP, KAL_FALSE=UDP */
+ kal_int16 socketId; /* input socket Id, will be used in the response message */
+ ExeRspMsgT SocketCreateRspInfo;
+ ExeRspMsgT SocketConnRspInfo;
+ ExeRspMsgT SocketCloseRspInfo;
+} HlpSocketCreateMsgT;
+
+typedef struct
+{
+ kal_uint32 IpAddr;
+ kal_uint16 Port;
+} HlpAppAddrT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ HlpAppAddrT ResourceAddr;
+ ExeRspMsgT SocketBindRspInfo;
+} HlpSocketBindMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ kal_bool Passive; /* KAL_FALSE=active, TURE=listen */
+ HlpAppAddrT DestAddr; /* IP and port number if active mode is chosen */
+} HlpSocketConnectMsgT;
+
+typedef enum
+{
+ HLP_IP6_ADDR_TYPE_PUBLIC,
+ HLP_IP6_ADDR_TYPE_PUBLIC_TEMP,
+ HLP_IP6_ADDR_TYPE_LOCAL
+} HlpIp6AddrTypeE;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ kal_uint8 FlowId;
+ HlpIp6AddrTypeE AddrType;
+ kal_uint16 PeerAddrPort;
+ kal_uint32 PeerAddrIp[4];
+} HlpIp6SocketConnectMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpIp6SocketConnectRspMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ kal_bool Graceful;
+} HlpSocketCloseMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap; /*server's sap*/
+ kal_int16 SockListenfd;
+ kal_int16 sockfd[5];
+ kal_uint8 SocketNum;
+ ExeRspMsgT MmiSocketListenRspInfo;
+} HlpSocketListenMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ kal_uint8 opt_type; /* Specifies which option is being set */
+ kal_uint16 size;
+} HlpOptionRequestMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ kal_int8 how;
+} HlpSocketShutDownMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+ kal_bool lingerOnOff;
+ kal_uint32 lingerTime;
+} HlpSocketLingerMsgT;
+
+typedef struct
+{
+ kal_uint32 IpAddr; /* 32-bit IP address. */
+ kal_uint16 UdpPort; /* UDP port address. */
+} HlpDatagramAddrT;
+
+typedef struct
+{
+ kal_uint8* DataBufP; /* Point to the first byte */
+ kal_uint16 DataLen; /* size of data in byte */
+ kal_uint8 Flags; /* if IP_MOREDATA is set in the flag
+ it indicates that datagram is not
+ able to fit into allocated buffer
+ Datagram is truncated to fit. */
+} HlpDatagramT;
+
+typedef struct
+{
+#if defined(MTK_PLT_ON_PC) && defined(MTK_PLT_ON_PC_UT)
+ kal_uint8 data[255];
+#endif
+ kal_uint8* DataP; /* point to the first byte of data. */
+ kal_uint16 Size; /* The size of data in byte. */
+ kal_bool Push; /* KAL_TRUE, send immediately; */
+ /* KAL_FALSE, TCP determine by itself. */
+ HlpDatagramAddrT To; /* The address of receipent for UDP */
+ kal_uint8 Sap; /* Socket of which the data is going to
+ be sent. */
+} HlpSocketSendReqMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpUpbRecvDataRspMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpTcpbRecvRspMsgT;
+
+typedef struct
+{
+ kal_uint32 SrcIp;
+ kal_uint32 DestIp;
+ kal_uint16 SrcPort;
+ kal_uint16 DestPort;
+ kal_uint16 DataLength;
+ kal_uint8 *DataPtr;
+} HlpMipRrpMsgT;
+
+typedef struct
+{
+ kal_uint32 SrcIp;
+ kal_uint32 DestIp;
+ kal_uint16 DataLength;
+ kal_uint8 *DataPtr;
+} HlpMipAgentAdvMsgT;
+
+typedef struct
+{
+ kal_uint8 Status;
+ kal_uint32 LocalIp;
+ kal_uint32 RemoteIp;
+} HlpMipUmPppStatusMsgT;
+
+typedef struct
+{
+ pppEndPointT interface;
+ kal_uint8 status;
+ kal_uint32 localAddr;
+ kal_uint32 remoteAddr;
+ kal_uint32 priDNS;
+ kal_uint32 secDNS;
+} HlpPppStatusMsgT;
+
+typedef struct
+{
+ kal_uint8 UserId[HLP_MAX_USRID_LEN];
+ kal_uint8 Pswd[HLP_MAX_PSWD_LEN];
+} HlpUsernamePasswdMsgT;
+
+typedef struct
+{
+ hlp_timer_enum TimerID;
+} HlpTimerExpiredMsgT;
+
+typedef struct
+{
+ kal_uint8* DataP; /* point to the first byte of data. */
+ kal_uint16 Size; /* The size of data in byte. */
+ kal_bool Push; /* KAL_TRUE, send immediately; */
+ /* KAL_FALSE, TCP determine by itself. */
+ kal_uint8 Sap; /* Socket of which the data is going to
+ be sent. */
+} HlpTcpbDataSendReqMsgT;
+
+typedef struct
+{
+ HlpDatagramT SendData; /* Datagram itself.. */
+ HlpDatagramAddrT To; /* The address of receipent. */
+ kal_uint8 Sap; /* SAP to TCB */
+} HlpUpbSendDataMsgT;
+
+typedef struct
+{
+ kal_bool NetworkMode; /* True: Network Mode, +CRM=2 */
+ /* False: Relay Mode, +CRM=1 */
+} HlpSetNetworkOrRelayModeMsgT;
+
+#ifdef CBP7_EHRPD
+typedef struct {
+ CpBufferT *dataPtr;
+ kal_uint16 offset;
+ kal_uint16 dataLen;
+} PafHlpFwdDataPktT;
+
+typedef struct
+{
+ kal_uint8 nAppType;
+ kal_uint8 nRLPFlowId;
+ kal_uint8 nRoute;
+ kal_bool bRohcEnabled;
+ kal_uint8 numRlpFrames;
+ PafHlpFwdDataPktT rlpFrames[MAX_RLP_FRAMES_PER_IP_PKT];
+} HlpRlpFwdIPDataPktT;
+#endif
+
+#if 1 //!defined (MTK_DEV_MEMORY_OPT)
+#define NUM_HLP_FWD_DATA_IND_ENTRIES 600
+#define NUM_HLP_REV_DATA_IND_ENTRIES 150
+#else
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef RmDataCpBuffDescT HlpRlpFwdDataPktT;
+typedef RmDataCpBuffDescT HlpRlpRevDataPktT;
+
+typedef struct
+{
+ kal_uint8 forceNetworkPref;
+ kal_uint8 forceCSSResp;
+} HlpSysSelPrefSetMsgT;
+
+typedef struct
+{
+ kal_uint8 nDMUV;
+} HlpValDMUVSetMsgT;
+
+typedef struct
+{
+ HlpConnCloseReasonT ConnCloseReason;
+} HlpConnStatusMsgT;
+
+#ifdef HSPD_PRI
+
+#define RSA_PUBLIC_KEY_BIT (1<<0)
+#define AUTH_SET_BIT (1<<1)
+#define PKOID_SET_BIT (1<<2)
+
+typedef enum
+{
+ RSA_PUBLIC_KEY_SET = RSA_PUBLIC_KEY_BIT,
+ AUTH_SET = AUTH_SET_BIT,
+ SET_BOTH = RSA_PUBLIC_KEY_BIT|AUTH_SET_BIT,
+ PKOID_SET = PKOID_SET_BIT
+} RsaSetE;
+
+typedef struct
+{
+ kal_uint8 nPKOID;
+ kal_uint8 nActiveDmuRsaPublicKeyNo;
+ kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE];
+} HlpRSAPublicKeyOrgIdInfoT;
+
+typedef enum
+{
+ /* Set All Params in a Profile */
+ HL_PARM_SET_HSPD_SEG_PROFILE_DATA = 0,
+ HL_PARM_GET_HSPD_SEG_PROFILE_DATA,
+ HL_PARM_SET_HSPD_SECURE_SEG_PROFILE_DATA, /* no Gets for Secure Data */
+
+ HL_PARM_SET_HSPD_SECURE_SEG_PROFILE_BYTE_DATA,
+
+ HL_PARM_GET_HSPD_SECURE_SEG_PROFILE_DATA,
+
+ /* Set All HSPD SegData together, that are not part of a Profile */
+ HL_PARM_SET_HSPD_SEG_ALL_DATA,
+ HL_PARM_GET_HSPD_SEG_ALL_DATA,
+
+ /* Init HSPD Db to defaults */
+ HL_PARM_SET_HSPD_SEG_INIT, /* Init Hspd Data that are not part of a Profile */
+ HL_PARM_SET_HSPD_SEG_PROFILE_INIT, /* Init a Profile, with ProfileId */
+
+ /* Set Individual Params in HSPD SegData, that are not part of a Profile */
+ HL_PARM_SET_ACTIVE_PROFILE, /* ActiveProfile */
+ HL_PARM_GET_ACTIVE_PROFILE = 10,
+ HL_PARM_SET_NUM_PROFILE, /* NumProfiles */
+ HL_PARM_GET_NUM_PROFILE,
+ HL_PARM_SET_RRP_TIMEOUT, /* RRPTimeout */
+ HL_PARM_GET_RRP_TIMEOUT,
+ HL_PARM_SET_NUM_REG_RETRIES, /* NumRegRetries */
+ HL_PARM_GET_NUM_REG_RETRIES,
+ HL_PARM_SET_REG_BACKOFF, /* RRA */
+ HL_PARM_GET_REG_BACKOFF,
+ HL_PARM_SET_IS801_IPADDR, /* Is801_IpAddr */
+ HL_PARM_GET_IS801_IPADDR = 20,
+ HL_PARM_SET_IS801_PORTNUM, /* Is801_PortNum */
+ HL_PARM_GET_IS801_PORTNUM,
+ HL_PARM_SET_IS801_USERID, /* Is801_UserId[HLP_MAX_USRID_LEN]*/
+ HL_PARM_GET_IS801_USERID,
+ HL_PARM_SET_IS801_PSWD, /* Is801_Pswd[HLP_MAX_PSWD_LEN] */
+ HL_PARM_GET_IS801_PSWD,
+ HL_PARM_SET_IS801_CALLEDNUMBER, /* Is801_CalledNumber[HLP_MAX_BWSR_DIG_LEN] */
+ HL_PARM_GET_IS801_CALLEDNUMBER,
+ HL_PARM_SET_MN_HA_AUTH, /* 0-RFC2002, 1-RFC2002bis */
+ HL_PARM_GET_MN_HA_AUTH = 30,
+ HL_PARM_SET_MN_HA_AUTH_ALGO, /* MN_HA_Auth_Algo */
+ HL_PARM_GET_MN_HA_AUTH_ALGO,
+ HL_PARM_SET_MN_AAA_AUTH_ALGO, /* MN_AAA_Auth_Algo */
+ HL_PARM_GET_MN_AAA_AUTH_ALGO,
+ HL_PARM_SET_MN_AUTHENTICATOR, /* MN_Authenticator[MN_AUTH_MAX_SIZE] */
+ HL_PARM_GET_MN_AUTHENTICATOR,
+ HL_PARM_SET_ACTIVE_DMURSA_PK, /* ActiveDmuRsaPublicKey */
+ HL_PARM_GET_ACTIVE_DMURSA_PK,
+ HL_PARM_SET_NPKOID, /* nPKOID */
+ HL_PARM_GET_NPKOID = 40,
+ HL_PARM_SET_SIP_NAI, /* SIP_NAI[HLP_MN_NAI_MAX_SIZE] */
+ HL_PARM_GET_SIP_NAI,
+ HL_PARM_SET_SIP_DUN_NAI, /* SIP_DUN_NAI[HLP_MN_NAI_MAX_SIZE] */
+ HL_PARM_GET_SIP_DUN_NAI,
+ HL_PARM_SET_AN_NAI, /* AN_NAI[HLP_MN_NAI_MAX_SIZE] */
+ HL_PARM_GET_AN_NAI,
+ HL_PARM_SET_DORMANT_HANDOFF_OPTSET, /* DormantHandoffOptSet */
+ HL_PARM_GET_DORMANT_HANDOFF_OPTSET,
+ HL_PARM_SET_DATA_SCRM_ENABLED, /* DataScrmEnabled */
+ HL_PARM_GET_DATA_SCRM_ENABLED = 50,
+ HL_PARM_SET_DATA_TRTL_ENABLED, /* DataTrtlEnabled */
+ HL_PARM_GET_DATA_TRTL_ENABLED,
+ HL_PARM_SET_PREFRC, /* PrefRc */
+ HL_PARM_GET_PREFRC,
+ HL_PARM_SET_DNS_PRI_IP_ADDR,
+ HL_PARM_GET_DNS_PRI_IP_ADDR,
+ HL_PARM_SET_DNS_SEC_IP_ADDR,
+ HL_PARM_GET_DNS_SEC_IP_ADDR,
+ HL_PARM_GET_DNS_IP_ADDR,
+ HL_PARM_SET_DNS_IP_ADDR = 60,
+ HL_PARM_SET_MIP_MODE,
+ HL_PARM_GET_MIP_MODE,
+
+ /* Set Individual Params in HSPD Secure SegData, that are not part of a Profile */
+ HL_PARM_SET_SIP_STRING_PASSWORD,
+ HL_PARM_GET_SIP_STRING_PASSWORD,
+ HL_PARM_SET_AN_PASSWORD,
+ HL_PARM_GET_AN_PASSWORD,
+ HL_PARM_SET_AN_BINARY_PASSWORD,
+ HL_PARM_SET_SIP_BINARY_PASSWORD,
+ HL_PARM_SET_PACKET_DIAL_STRING,
+ HL_PARM_GET_PACKET_DIAL_STRING = 70,
+ HL_PARM_SET_VJ_COMPRESSION_ENABLE,
+ HL_PARM_GET_VJ_COMPRESSION_ENABLE,
+ HL_PARM_SET_MIP_STRING_PASSWORD,
+ HL_PARM_GET_MIP_STRING_PASSWORD,
+ HL_PARM_SET_MIP_BINARY_PASSWORD,
+ HL_PARM_GET_MIP_BINARY_PASSWORD,
+ HL_PARM_SET_QNC_ENABLED,
+ HL_PARM_GET_QNC_ENABLED,
+ HL_PARM_SET_MDR_MODE_ENABLED,
+ HL_PARM_GET_MDR_MODE_ENABLED = 80,
+ HL_PARM_SECURE_PROFILE_DATA_INIT,
+ HL_PARM_GET_SIP_BINARY_PASSWORD,
+#ifdef CBP7_EHRPD
+ HL_PARM_SET_AKA_PASSWORD = 83,
+ HL_PARM_GET_AKA_PASSWORD,
+ HL_PARM_SET_AKA_RROFILEDATA,
+ HL_PARM_GET_AKA_PROFILEDATA,
+#endif
+ HL_PARM_GET_HSPD_LOCK = 87,
+ HL_PARM_SET_HSPD_LOCK,
+ HL_PARM_SET_HSPD_LOCK_CODE,
+ HL_PARM_SET_DATA_AUTO_PACKET_DETECTION,
+ HL_PARM_GET_DATA_AUTO_PACKET_DETECTION,
+ HL_PARM_SET_DATA_SO,
+ HL_PARM_GET_DATA_SO,
+ HL_PARM_SET_MN_NAI,
+ HL_PARM_GET_MN_NAI,
+ HL_PARM_SET_MN_DUN_NAI,
+ HL_PARM_GET_MN_DUN_NAI,
+ HL_PARM_SET_MN_HA_SPI_ENABLE,
+ HL_PARM_GET_MN_HA_SPI_ENABLE,
+ HL_PARM_SET_MN_HA_SPI,
+ HL_PARM_GET_MN_HA_SPI,
+ HL_PARM_SET_MN_AAA_SPI_ENABLE,
+ HL_PARM_GET_MN_AAA_SPI_ENABLE,
+ HL_PARM_SET_MN_AAA_SPI,
+ HL_PARM_GET_MN_AAA_SPI,
+ HL_PARM_SET_MN_REVERSE_TUNNELING,
+ HL_PARM_GET_MN_REVERSE_TUNNELING,
+ HL_PARM_SET_MN_HOME_IP_ADDRESS,
+ HL_PARM_GET_MN_HOME_IP_ADDRESS,
+ HL_PARM_SET_HOME_AGENT_PRIMARY_IP_ADDRESS,
+ HL_PARM_GET_HOME_AGENT_PRIMARY_IP_ADDRESS,
+ HL_PARM_SET_HOME_AGENT_SECONDARY_IP_ADDRESS,
+ HL_PARM_GET_HOME_AGENT_SECONDARY_IP_ADDRESS,
+
+ HL_PARM_SET_HSPD_NETWORKMODE,
+ HL_PARM_GET_HSPD_NETWORKMODE,
+
+ HL_PARM_SET_HSPD_DORMANT_TIMER_MODE,
+ HL_PARM_GET_HSPD_DORMANT_TIMER_MODE,
+
+ HL_PARM_SET_MIP_DE_REG_RETRIES = 118,
+ HL_PARM_GET_MIP_DE_REG_RETRIES,
+ HL_PARM_SET_MIP_RE_REG_ONLYIF_TRAFFIC,
+ HL_PARM_GET_MIP_RE_REG_ONLYIF_TRAFFIC,
+ HL_PARM_SET_MIP_NAI_ENABLE,
+ HL_PARM_GET_MIP_NAI_ENABLE,
+
+ HL_PARM_SET_DATA_DO_TO_1X_ENABLE,
+ HL_PARM_GET_DATA_DO_TO_1X_ENABLE,
+
+ HL_PARM_SET_DATA_PPP_UM_CONFIG = 126,
+ HL_PARM_GET_DATA_PPP_UM_CONFIG,
+ HL_PARM_SET_DATA_PPP_RM_CONFIG,
+ HL_PARM_GET_DATA_PPP_RM_CONFIG,
+ HL_PARM_SET_DATA_TCP_CONFIG,
+ HL_PARM_GET_DATA_TCP_CONFIG,
+
+ HL_PARM_SET_DO_RETRY_TIMER = 132,
+ HL_PARM_GET_DO_RETRY_TIMER,
+
+#ifdef CBP7_EHRPD
+ HL_PARM_SET_EHRPD_TEST_MODE = 148,
+ HL_PARM_GET_EHRPD_TEST_MODE,
+#endif
+
+ HL_PARM_SET_PROFILE_VALID = 150,
+ HL_PARM_GET_PROFILE_VALID,
+ HL_PARM_VAL_AT_SET_HSPD_NETWORKMODE,
+ HL_PARM_VAL_AT_SET_AN_NAI,
+ HL_PARM_VAL_AT_GET_AN_NAI,
+
+ HL_PARM_OPERATION_ID_END_LIST
+} HlpParmOperationId;
+
+typedef enum
+{
+ HL_PARM_MIN_VALUE,
+ HL_PARM_MAX_VALUE,
+ HL_PARM_DEFAULT_VALUE,
+ HL_PARM_CUSTOM_VALUE,
+ HL_PARM_OP_TYPE_LIST_END
+} HlpParmOperationType;
+
+typedef enum
+{
+ HL_PARM_OPERATION_SUCCESS,
+ HL_PARM_OPERATION_FAIL_READ_NOT_ALLOWED,
+ HL_PARM_OPERATION_FAIL_WRITE_NOT_ALLOWED,
+ HL_PARM_OPERATION_NOT_ALLOWED_IN_HL_STATE,
+ HL_PARM_OPERATION_FAIL_INVALID_PTR,
+ HL_PARM_OPERATION_FAIL_INVALID_LENGTH,
+ HL_PARM_OPERATION_GENERAL_FAILURE,
+ HL_PARM_OPERATION_NO_CHANGE_IN_VALUE,
+ HL_PARM_OPERATION_FAIL_VALUE_OUT_OF_RANGE,
+ HL_PARM_OPERATION_PARAMETER_NOT_SUPPORTED,
+ HL_PARM_OPERATION_INTERFACE_NOT_SUPPORTED,
+ HL_PARM_OPERATION_FAIL_OP_TYPE_NOT_SUPPORTED,
+ HL_PARM_OPERATION_FAIL_DEFAULT_NOT_DEFINED,
+ HL_PARM_OPERATION_FAIL_DEFAULT_NOT_SUPPORTED_FOR_PARM,
+ HL_PARM_OPERATION_RESULT_END_LIST
+} HlpParmAccessResultCode;
+
+typedef enum
+{
+ NOT_CONNECTED,
+ DO_CONNECTING,
+ DO_CONNECTED,
+ RTT_CONNECTING,
+ RTT_CONNECTED
+} ConnStateT;
+
+typedef struct
+{
+ ExeRspMsgT resp;
+ kal_uint8 SMS_Over_IP_Networks_Indication;
+ kal_uint8 SigComp;
+ kal_uint8 ImsDomain[72];
+ kal_uint8 AkaPassword[72];
+ kal_uint16 SipT1Timer_ims;
+ kal_uint16 SipTFTimer_ims;
+ kal_uint16 SipT2Timer_ims;
+ kal_uint16 SipPcscfPort;
+} HlpSmsImsEtsCfgSetT;
+
+typedef struct
+{
+ kal_uint8 SMS_Over_IP_Networks_Indication;
+ kal_uint8 SigComp;
+ kal_uint8 ImsDomain[72];
+ kal_uint8 AkaPassword[72];
+ kal_uint16 SipT1Timer_ims;
+ kal_uint16 SipTFTimer_ims;
+ kal_uint16 SipT2Timer_ims;
+ kal_uint16 SipPcscfPort;
+} HlpSmsImsEtsCfgGetT;
+
+/* The following structures are to be obsolete
+ but keep them for backword compatible now
+typedef struct
+{
+ ExeRspMsgT resp;
+ kal_uint16 restartTimer;
+ kal_uint8 lcpReqTry;
+ kal_uint8 lcpNakTry;
+ kal_uint8 lcpTermTry;
+ kal_uint8 authRetry;
+ kal_uint8 ipcpReqTry;
+ kal_uint8 ipcpNakTry;
+ kal_uint8 ipcpTermTry;
+ kal_uint8 ipcpCompression;
+} HlpPppUmEtsCfgSetT;
+
+typedef struct
+{
+ kal_uint8 result;
+} HlpPppUmEtsCfgSetRespT;
+
+typedef struct
+{
+ kal_uint8 result;
+ kal_uint16 restartTimer;
+ kal_uint8 lcpReqTry;
+ kal_uint8 lcpNakTry;
+ kal_uint8 lcpTermTry;
+ kal_uint8 authRetry;
+ kal_uint8 ipcpReqTry;
+ kal_uint8 ipcpNakTry;
+ kal_uint8 ipcpTermTry;
+ kal_uint8 ipcpCompression;
+} HlpPppUmEtsCfgGetT;
+
+typedef struct
+{
+ kal_uint16 restartTimer;
+ kal_uint8 lcpReqTry;
+ kal_uint8 lcpNakTry;
+ kal_uint8 lcpTermTry;
+ kal_uint8 authRetry;
+ kal_uint8 ipcpReqTry;
+ kal_uint8 ipcpNakTry;
+ kal_uint8 ipcpTermTry;
+ kal_uint8 ipcpCompression;
+} HlpPppUmEtsCfgT;
+ The above structures are to be obsolete
+ but keep them for backword compatible now */
+
+
+
+typedef struct
+{
+ kal_uint32 RxBytes;
+ kal_uint32 RxPackets;
+ kal_uint32 BadRxPackets;
+ kal_uint32 TxBytes;
+ kal_uint32 TxPackets;
+ kal_uint64 TotalRxBytes;
+ kal_uint64 TotalRxPackets;
+ kal_uint64 TotalBadRxPackets;
+ kal_uint64 TotalTxBytes;
+ kal_uint64 TotalTxPackets;
+} IPCounterT;
+
+typedef struct
+{
+ kal_uint8 lcpReqTries;
+ kal_uint8 lcpNakTries;
+ kal_uint16 lcpRestartTimer;
+ kal_uint8 lcpTermTries;
+ kal_uint16 lcpTermTimer;
+ kal_uint8 authRetries;
+ kal_uint16 authTimer;
+ kal_uint8 ncpReqTries;
+ kal_uint8 ncpNakTries;
+ kal_uint16 ncpReStrTimer;
+ kal_uint8 ncpTermTries;
+ kal_uint16 ncpTermTimer;
+} HlpPppUmCfg_APIStruct;
+
+typedef struct
+{
+ kal_bool pppKeepAlive;
+ kal_bool pppDetect;
+ kal_uint8 lcpReqTries;
+ kal_uint8 lcpNakTries;
+} HlpPppRmCfg_APIStruct;
+
+typedef struct
+{
+ kal_uint16 tcpMtu;
+} HlpTcpCfgSet_APIStruct;
+
+typedef struct
+{
+ kal_uint16 tcpMtu;
+ kal_uint16 tcpWinSize_1XRTT;
+ kal_uint16 tcpWinSize_EVDO;
+} HlpTcpCfg_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_uint8 NAI[HLP_MN_NAI_MAX_SIZE];
+} HlpHspdMNNAI_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_uint8 MN_REV_TUNNELING;
+} HlpHspdRevTunneling_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_uint32 SPI;
+} HlpHspdMNSPI_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_bool SPI_Enable;
+} HlpHspdMNSPIEnable_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_uint32 IPAddress;
+} HlpHspdProfileIPAddress_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+} HlpHspdProfileParmGet_APIStruct;
+
+typedef struct{
+ kal_uint8 ProfileId;
+ kal_bool Profile_Valid;
+ kal_uint32 MN_HOME_IP_ADDR;
+ kal_uint32 HA_PRI_IP_ADDR;
+ kal_uint32 HA_SEC_IP_ADDR;
+ kal_uint8 MN_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 MN_DUN_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 MN_REV_TUNNELING;
+ kal_bool bMN_HA_SPI_Enable;
+ kal_uint32 MN_HA_SPI;
+ kal_bool bMN_AAA_SPI_Enable;
+ kal_uint32 MN_AAA_SPI;
+} HlpProfileData_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId;
+ kal_bool Profile_Valid;
+ kal_uint8 MN_AAA_PASSWORD_LEN;
+ kal_uint8 MN_AAA_PASSWORD[MN_PASSWD_MAX_SIZE]; /* MIP AAA Shared Secret*/
+ kal_uint8 MN_HA_PASSWORD_LEN;
+ kal_uint8 MN_HA_PASSWORD[MN_PASSWD_MAX_SIZE]; /* MIP HA Shared Secret */
+} HlpSecureProfileData_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId; /* Init the data to defaults, for this ProfileId */
+} HlpInitHspdProfileData_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId; /* Init the data to defaults, for this ProfileId */
+} HlpGetHspdProfileData_APIStruct;
+
+typedef struct
+{
+
+ /* HSPD Seg Data, that are not part of a profile */
+ /*===============================================*/
+ kal_uint8 RRPTimeout; /* RRP MIP Registration timeout */
+ kal_uint8 NumRegRetries; /* RRP MIP Registration Retry Attempts */
+ kal_uint16 RRA; /* Pre Re-registration backoff */
+ kal_uint32 Is801_IpAddr;
+ kal_uint16 Is801_PortNum;
+ kal_uint8 Is801_UserId[HLP_MAX_USRID_LEN];
+ kal_uint8 Is801_Pswd[HLP_MAX_PSWD_LEN];
+ kal_uint8 Is801_CalledNumber[HLP_MAX_BWSR_DIG_LEN];
+
+ kal_uint8 MN_HA_AUTH; /* 0-RFC2002, 1-RFC2002bis, 2-bypassHA */
+ kal_uint8 MN_HA_Auth_Algo;
+ kal_uint8 MN_AAA_Auth_Algo;
+ kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE];
+ kal_uint8 ActiveDmuRsaPublicKey; /* 0-TestKey, 1-CommercialKey */
+ kal_uint8 nPKOID;
+
+ kal_uint8 SIP_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 SIP_DUN_NAI[HLP_MN_NAI_MAX_SIZE];
+ kal_uint8 AN_NAI[HLP_MN_NAI_MAX_SIZE];
+
+ kal_uint8 DormantHandoffOptSet; /* 0-Disabled, 1-Enabled */
+ kal_uint8 DataScrmEnabled; /* Supp Chan Supported */
+ kal_uint8 DataTrtlEnabled; /* Slow Down data at high CPU utilization */
+ kal_uint8 PrefRc; /* Preferred Radio Cfg. Default-RC3 */
+ kal_uint32 DNS_PRI_IP_ADDR;
+ kal_uint32 DNS_SEC_IP_ADDR;
+ kal_uint8 MIPMode;
+
+ kal_uint32 ActiveProfile;
+ kal_uint8 NumProfiles;
+ kal_uint8 VJCompEnabled;
+ /* HSPD Secure Seg Data, that are not part of a profile */
+ /*======================================================*/
+ /* Only Set applies, no Gets for Secure Data */
+ kal_uint8 SIP_PASSWORD[HLP_MAX_PSWD_LEN]; /* Simple IP User Password */
+ kal_uint8 AN_PASSWORD[HLP_MAX_PSWD_LEN]; /* AN Shared Secret*/
+} HlpHspdSegData_APIStruct;
+
+typedef struct
+{
+ kal_uint8 RRPTimeout;
+} HlpRrpTimeout_APIStruct;
+
+typedef struct
+{
+ kal_uint8 NumRegRetries;
+} HlpNumRegRetries_APIStruct;
+
+typedef struct
+{
+ kal_uint8 NumDeRegRetries;
+} HlpDeRegRetries_APIStruct;
+
+typedef struct
+{
+ kal_bool ReRegOnlyIfTraffic;
+} HlpReRegOnlyIfTraffic_APIStruct;
+
+typedef struct
+{
+ kal_bool MipNaiEnabled;
+} HlpMipNaiEnable_APIStruct;
+
+typedef struct
+{
+ kal_uint16 RRA;
+} HlpReRegBackoff_APIStruct;
+
+typedef struct
+{
+ kal_uint32 Is801_IpAddr;
+} HlpIs801IpAddr_APIStruct;
+
+typedef struct
+{
+ kal_uint16 Is801_PortNum;
+} HlpIs801PortNum_APIStruct;
+
+typedef struct
+{
+ kal_uint8 Is801_UserId[HLP_MAX_USRID_LEN];
+} HlpIs801UserId_APIStruct;
+
+typedef struct
+{
+ kal_uint8 Is801_Pswd[HLP_MAX_PSWD_LEN];
+} HlpIs801Pswd_APIStruct;
+
+typedef struct
+{
+ kal_uint8 Is801_CalledNumber[HLP_MAX_BWSR_DIG_LEN];
+} HlpIs801CalledNumber_APIStruct;
+
+typedef struct
+{
+ kal_uint8 MN_HA_AUTH; /* 0-RFC2002, 1-RFC2002bis, 2-bypassHA */
+} HlpMNHAAUTH_APIStruct;
+typedef struct
+{
+ kal_uint8 MN_HA_Auth_Algo;
+} HlpMNHAAuthAlgo_APIStruct;
+
+typedef struct
+{
+ kal_uint8 MN_AAA_Auth_Algo;
+} HlpMNAAAAuthAlgo_APIStruct;
+
+typedef struct
+{
+ kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE];
+} HlpMNAuthenticator_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ActiveDmuRsaPublicKey; /* 0-TestKey, 1-CommercialKey */
+} HlpActiveDmuRsaPublicKey_APIStruct;
+
+typedef struct
+{
+ kal_uint8 nPKOID;
+} HlpPKOID_APIStruct;
+
+typedef struct
+{
+ kal_uint8 SIP_NAI[HLP_MN_NAI_MAX_SIZE];
+} HlpSIPNAI_APIStruct;
+
+typedef struct
+{
+ kal_uint8 SIP_DUN_NAI[HLP_MN_NAI_MAX_SIZE];
+} HlpSIPDUNNAI_APIStruct;
+
+typedef struct
+{
+ kal_uint8 AN_NAI[HLP_MN_NAI_MAX_SIZE];
+} HlpANNAI_APIStruct;
+
+typedef struct
+{
+ kal_uint8 DormantHandoffOptSet; /* 0-Disabled, 1-Enabled */
+} HlpDormantHandoffOptSet_APIStruct;
+
+typedef struct
+{
+ kal_uint8 DataScrmEnabled; /* Supp Chan Supported */
+} HlpDataScrmEnabled_APIStruct;
+
+typedef struct
+{
+ kal_uint8 DataTrtlEnabled; /* Slow Down data at high CPU utilization */
+} HlpDataTrtlEnabled_APIStruct;
+
+typedef struct
+{
+ kal_uint8 PrefRc; /* Preferred Radio Cfg. Default-RC3 */
+} HlpPrefRc_APIStruct;
+
+typedef struct
+{
+ kal_uint8 VJCompressionEnabled;
+} HlpVJCompressionEnabled_APIStruct;
+
+typedef struct
+{
+ kal_uint8 DialString[HLP_NUM_DIAL_STRING_DIGITS];
+} HlpDialString_APIStruct;
+
+typedef struct
+{
+ kal_bool QNC_Enabled;
+} HlpQncEnabled_APIStruct;
+
+typedef struct
+{
+ kal_uint8 MDR_Mode;
+} HlpMdrMode_APIStruct;
+
+typedef struct
+{
+ kal_bool DoTo1X_Enabled;
+} HlpDoTo1XEnabled_APIStruct;
+
+typedef struct
+{
+ kal_uint32 DNS_PRI_IP_ADDR;
+} HlpDNSPRIIPADDR_APIStruct;
+
+typedef struct
+{
+ kal_uint32 DNS_SEC_IP_ADDR;
+} HlpDNSSECIPADDR_APIStruct;
+
+typedef struct
+{
+ HlpDNSPRIIPADDR_APIStruct PriIpAddr;
+ HlpDNSSECIPADDR_APIStruct SecIpAddr;
+} HlpDNSIPADDR_APIStruct;
+
+typedef struct
+{
+ kal_uint32 ActiveProfile;
+} HlpActiveProfile_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId;
+ kal_bool Profile_Valid;
+} HlpProfileValid_APIStruct;
+
+typedef struct
+{
+ kal_uint8 NumProfiles;
+} HlpNumProfiles_APIStruct;
+
+typedef struct
+{
+ kal_uint8 MipMode;
+} HlpMipMode_APIStruct;
+
+typedef struct
+{
+ kal_uint8 SIP_PASSWORD[HLP_MAX_PSWD_LEN];
+} HlpSipPassword_APIStruct;
+
+typedef struct
+{
+ kal_uint8 AN_PASSWORD[HLP_MAX_PSWD_LEN];
+} HlpAnPassword_APIStruct;
+
+typedef struct
+{
+ kal_uint8 AN_PASSWORD_LEN;
+ kal_uint8 AN_PASSWORD[HLP_MAX_PSWD_LEN];
+} HlpAnBinaryPassword_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId;
+ kal_uint8 MN_AAA_PASSWORD_LEN;
+ kal_uint8 MN_AAA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_HA_PASSWORD_LEN;
+ kal_uint8 MN_HA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+} HlpMIPPasswordHex_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId;
+ kal_uint8 MN_HA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_AAA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+} HlpMIPPasswordString_APIStruct;
+
+typedef struct
+{
+ kal_uint8 SIP_PASSWORD_LEN;
+ kal_uint8 SIP_PASSWORD[HLP_MAX_PSWD_LEN];
+} HlpSIPPasswordHex_APIStruct;
+
+typedef struct
+{
+ kal_uint8 ProfileId; /* Init the data to defaults, for this ProfileId */
+} HlpSecureSegInit_APIStruct;
+
+typedef struct
+{
+ kal_bool HspdLocked;
+} HlpHspdLockGet_APIStruct;
+
+typedef struct
+{
+ kal_uint16 LockCode;
+ kal_bool Lock;
+} HlpHspdLockSet_APIStruct;
+
+typedef struct
+{
+ kal_uint16 CurrentLockCode;
+ kal_uint16 NewLockCode;
+} HlpHspdLockCode_APIStruct;
+
+typedef struct
+{
+ kal_bool Enable; /* KAL_TRUE: Scan the serial link for PPP packets
+ Default is KAL_FALSE: Wait for ATD #777*/
+} HlpDataAutoPacketDetection_APIStruct;
+
+typedef struct
+{
+ kal_bool HspdNetworkMode;
+} HlpHspdNetworkMode_APIStruct;
+
+typedef struct
+{
+ kal_uint16 T_Dormancy;
+ kal_uint16 T_HRPD_Search;
+ kal_uint16 T_Rapid_Dormancy;
+ kal_uint16 T_ResDef_Dormancy;
+#ifdef MTK_CBP
+ /* refer to DormParmCheckT enum
+ * bit3: T_ResDef_Dormancy; bit2: T_Rapid_Dormancy; bit1: T_HRPD_Search; bit0: T_Dormancy.
+ * if 1, need check
+ */
+ DormParmCheckT Check_Flag;
+#endif
+} HlpDormantTimerData_APIStruct;
+
+typedef struct
+{
+ kal_uint16 T_DO_Retry;
+} HlpDoRetryTimerData_APIStruct;
+
+typedef struct {
+ kal_uint16 T_Dormancy;
+} HlpValCtaUpdateReqMsgT;
+
+typedef enum
+{
+ HLP_DATA_SO_PRE701=0,
+ HLP_DATA_SO_QP=1,
+ HLP_DATA_SO_IS701=2
+} HlpDataSOType;
+
+typedef struct
+{
+ HlpDataSOType SOSetType;
+} HlpDataSO_APIStruct;
+
+typedef struct
+{
+ HlpParmOperationId ParmId;
+ kal_bool InProgress;
+ kal_bool RspNeeded;
+ ExeRspMsgT RspInfo;
+ kal_int16 RegId;
+} HlpSecureRspType;
+
+typedef struct {
+ kal_uint8 N_DIGITS;
+ kal_uint8 MDN[OTA_MAX_MDN_DIGITS];
+} HlpPswMDNUpdatedMsgT;
+
+typedef struct
+{
+ kal_bool TriggeredByCs;
+} HlpPswRsvasAbortReqMsgT;
+
+#define MAX_CHAP_DATA_LEN 16
+
+typedef struct{
+ kal_uint8 ChapId;
+ kal_uint8 ChapLen;
+ kal_uint8 ChapData[MAX_CHAP_DATA_LEN];
+} HlpUimAccessChapTestMsgT;
+
+typedef struct {
+ kal_uint16 T_Dormancy;
+ kal_uint16 T_HRPD_Search;
+ kal_uint16 T_Rapid_Dormancy;
+ kal_uint16 T_ResDef_Dormancy;
+ DormParmCheckT Check_Flag;
+} HlpDormancyTimersSetMsgT;
+
+typedef struct {
+ kal_uint16 T_DO_Retry;
+} HlpDORetryTimersSetMsgT;
+
+typedef HlpSecureRspType HlpSegRspType;
+#endif
+
+#ifdef CBP7_EHRPD
+typedef struct
+{
+ kal_uint8 AKA_PASSWORD[HLP_MAX_PSWD_LEN];
+} HlpAkaPassword_APIStruct;
+
+typedef struct
+{
+ HlpHspdAkaProfileDataT AkaProfileData;
+} HlpAkaProfileData_APIStruct;
+
+typedef enum
+{
+ AKAAuth_Success,
+ AKAAuth_AUTNFailure,
+ AKAAuth_SQNSyncFailure,
+ AKAAuth_RESInvalid,
+ AKAAuth_CKInvalid,
+ AKAAuth_IKInvalid,
+ AKAAuth_UnknowFailure
+#if EAP_AKA_PRIME
+ ,
+ AKAAuth_KDFIputInvalid,
+ AKAAuth_KDFInvalid
+#endif
+} EapAkaAuthResultT;
+
+typedef struct
+{
+ EapAkaAuthResultT authResult;
+} HlpSecAkaAuthRspMsgT;
+#endif
+
+typedef struct
+{
+ kal_bool bEncryptDecryptResult;
+} HlpSecAesCryptRspMsgT;
+
+typedef struct
+{
+ ExeRspMsgT RspInfo;
+ kal_uint8 FlowId;
+ HlpIp6AddrTypeE AddrType;
+ kal_uint16 LocalAddrPort;
+ kal_uint16 PeerAddrPort;
+ kal_uint32 PeerAddrIp[4];
+} HlpIp6TcpConnectionOpenMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpTcpConnectionOpenRspMsgT;
+
+typedef struct
+{
+ ExeRspMsgT RspInfo;
+ kal_uint16 LocalAddrPort;
+ kal_uint16 PeerAddrPort;
+ kal_uint32 PeerAddrIp;
+} HlpIp4TcpConnectionOpenMsgT;
+
+#ifdef CBP7_EHRPD
+typedef struct
+{
+ kal_bool eEHRPD;
+} HlpImsEHRPDAttriMsgT;
+
+/* IP6 related Begin */
+
+typedef struct
+{
+ ExeRspMsgT RspInfo;
+ kal_uint8 FlowId;
+ HlpIp6AddrTypeE AddrType;
+ kal_uint16 LocalAddrPort;
+ kal_uint16 PeerAddrPort;
+ kal_uint32 PeerAddrIp[4];
+ kal_int32 PayloadSize;
+} HlpIp6UdpConnectionOpenMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpIp6UdpConnectionOpenRspMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpIp6UdpConnectionCloseMsgT;
+
+typedef struct
+{
+ kal_uint8 Sap;
+} HlpIp6TcpConnectionCloseMsgT;
+
+/* IP6 related End */
+
+
+typedef struct
+{
+ kal_bool bRevRohcOnRlpFlow;
+ HlpProtocolIdentifierT RevProtcolID;
+ RevRohcProtocolParmsT RevRohcParms;
+ kal_bool bFwdRohcOnRlpFlow;
+ HlpProtocolIdentifierT FwdProtcolID;
+ FwdRohcProtocolParmsT FwdRohcParms;
+} HlpRlpFlowProtocolInfoT;
+
+typedef struct
+{
+ HlpRlpFlowProtocolInfoT RlpFlowProtocolInfo[MAX_HLP_FLOW_SUPPORTED];
+} HlpRlpFlowProtocolInfoMsgT;
+
+typedef struct
+{
+ kal_uint8 curRoute;
+} HlpRlpRouteChangedMsgT;
+#endif
+
+typedef enum
+{
+ HLP_PPP_ROUTE_DEFAULT,
+ HLP_PPP_ROUTE_NDIS
+} HlpPppRouteTypeE;
+
+typedef struct
+{
+ kal_uint8 RouteType;
+} HlpPppRouteTypeSetMsgT;
+
+typedef enum
+{
+ PATH_HDLC,
+ PATH_IP,
+ PATH_ROHC,
+ PATH_IP_WITH_PDNMUX
+} HlpRlpDataPathT;
+
+typedef struct
+{
+ NetworkT network;
+ SvcStatusT svcStatus;
+} HlpSvcStatusMsgT;
+
+typedef enum
+{
+ CONN_SUSPEND,
+ CONN_RESUME,
+ CONN_DISABLE,
+ CONN_RELEASE,
+ CONN_RESET
+} ConnCmdT;
+
+typedef struct
+{
+ ConnCmdT dataCmd;
+} HlpDataConnectionCmdT;
+
+typedef enum
+{
+ PowerUp,
+ HybridRegistration,
+ RTTOnlyRegistration,
+ TriggerPDRegistration,
+ DefaultAttach,
+ SetIPv6Address,
+ DedicateAttach,
+ DetachAll,
+ SendPING_IPv4,
+ SendPING_IPv6
+} ActionT;
+
+typedef struct
+{
+ ActionT myAction;
+ kal_uint32 Ipv4Src;
+ kal_uint32 Ipv4Dst;
+ kal_uint32 Ipv6Src[4];
+ kal_uint32 Ipv6Dst[4];
+ kal_uint8 PDNid;
+ kal_uint8 PDNtype;
+ kal_uint8 AttachType;
+ kal_uint8 APNstring[16];
+} HlpTestBrowserConnectMsgT;
+
+typedef struct
+{
+ kal_bool bPowerUp;
+} HlpPowerReqMsgT;
+
+
+typedef enum
+{
+ HLP_DOANAUTH_CHINATELECOM,
+ HLP_DOANAUTH_INDONESIASMART,
+ HLP_DOANAUTH_CARRIER_MAX
+} HlpDOANAuthT;
+
+typedef struct
+{
+ HlpDOANAuthT DOANAuthAlgo;
+} HlpDOANAuthAlgoSetMsgT;
+
+typedef struct
+{
+ kal_uint32 SrcAddr;
+ kal_uint32 DstAddress;
+ kal_uint32 Length;
+ kal_uint8 Data[520];
+} HlpValPingReqMsgT;
+
+typedef struct
+{
+ kal_uint8 Apn[100]; /* APN of PDN which need update its inactivity timer */
+} HlpValUpdatePdnInactivityTimerT;
+
+typedef enum
+{
+ HLP_VAL_SET_PCMT_MODE = 0,
+ HLP_VAL_READ_PCMT_MODE,
+ HLP_VAL_PCMT_INVALID_MODE = 255
+}HlpValPcmtModeT;
+
+typedef struct
+{
+ ExeRspMsgT RspInfo;
+ HlpValPcmtModeT mode;
+ kal_bool pcmtIratSet;
+ kal_uint32 pcmtIratValue;
+ kal_bool pcmtEhrpdSet;
+ kal_uint32 pcmtEhrpdValue;
+} HlpValPcmtParaMsgT;
+
+typedef struct
+{
+ kal_uint8 AppSubType;
+} HlpPppDataReqMsgT;
+
+typedef enum
+{
+ HLP_UT_CONFIG_PARAM_1X_PS_ORIG_FAIL_REASON,
+ HLP_UT_CONFIG_PARAM_CONTINUE_PROCESS_RATDM_UL_DATA,
+ HLP_UT_CONFIG_PARAM_MCC,
+ HLP_UT_CONFIG_PARAM_COMPLETE_PROCESS_DL_DATA,
+ HLP_UT_CONFIG_PARAM_SBP_ID,
+ HLP_UT_CONFIG_PARAM_MAX
+}HlpUtConfigParamT;
+
+typedef struct
+{
+ kal_uint32 LocalIPAddr;
+ kal_uint32 PriDNSAddr;
+ kal_uint32 RemoteIPAddr;
+ kal_uint32 SecDNSAddr;
+ kal_uint16 IPv4MTU;
+}NwAppliedParm1xHRPDT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+ NetworkPrefT NetworkPref;
+ NspeAppT AppType;
+ DialingInfoT CallInfo;
+ kal_uint16 InactivityTmr; /* number of seconds for 1X RLP only */
+ kal_bool ReleaseTchWhenFallback; /* MIP to SIP fallback, release TCH */
+ HlpPppRouteTypeE RouteType;
+}HlpPppConnectReqMsgT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+ DataConnErrCodeT ErrCode;
+ NwAppliedParm1xHRPDT Parm;
+}HlpPppConnectCnfMsgT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+}HlpPppDisconnectReqMsgT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+}HlpPppUpdateReqMsgT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+}HlpPppDisconnectCnfMsgT;
+
+typedef enum
+{
+ DISCONNECT_BY_NW,
+ DISCONNECT_BY_ME
+}DataDiscCauseT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+ DataDiscCauseT Cause;
+}HlpPppDisconnectIndMsgT;
+
+typedef struct
+{
+ kal_uint8 Cid; /*context id of PDP*/
+ NwAppliedParm1xHRPDT Parm;
+}HlpPppModifyIndMsgT;
+
+/*---------------------------------------------------------------
+* Declare global variables
+*----------------------------------------------------------------*/
+extern kal_bool PppFilterIpMux;
+
+extern MuxInfo FilterMuxInfo;
+/*---------------------------------------------------------------
+* Declare global function prototypes
+*----------------------------------------------------------------*/
+
+extern void PppHaDecode0Lisr (kal_uint32 irq_id);
+extern void PppHaDecode1Lisr (kal_uint32 irq_id);
+extern void PppHaEncode0Lisr (kal_uint32 irq_id);
+extern void PppHaEncode1Lisr (kal_uint32 irq_id);
+extern void HlpSetInternetPdnId(kal_uint8 PdnId);
+
+RmDataQBuffStatusE RmWrite(RmDataCpBuffDescT *Buff, kal_uint32 flags);
+RmDataQBuffStatusE RmRead(RmDataCpBuffDescT * Buff);
+void C2kPppLineStatusNotify(kal_uint32 PppStatus);
+void C2kPppLineStatusIndicate(kal_uint32 PppStatus);
+kal_bool HlpIsHightPriorityConnReq(void);
+
+#endif
+
+
+
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpcam.h b/mcu/interface/protocol/l2_c2k/common/hlpcam.h
new file mode 100644
index 0000000..b0fd5e0
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpcam.h
@@ -0,0 +1,226 @@
+/*****************************************************************************
+* 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) 2003-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+/*******************************************************************************
+ *
+ * FILE NAME : HlpCam.H
+ *
+ * DATE CREATED : 06/22/06
+ *
+ * DESCRIPTION : Header file for HlpCam.c
+ *
+ *******************************************************************************
+ ******************************************************************************/
+
+#ifndef _HLPCAM_H_
+#define _HLPCAM_H_
+
+/*******************************************************************************
+ Include Header Files
+ (No absolute paths - paths handled by make file)
+*******************************************************************************/
+#include "hlpapi.h"
+#include "cpbuf.h"
+#include "valapi.h"
+
+/*******************************************************************************
+ Macros
+*******************************************************************************/
+
+#define PPP_STATUS_FLAG_INTERFACE 1
+#define PPP_STATUS_FLAG_STATUS 2
+#define PPP_STATUS_FLAG_LOCALADDR 4
+#define PPP_STATUS_FLAG_REMOTEADDR 8
+#define PPP_STATUS_FLAG_PRIDNS 16
+#define PPP_STATUS_FLAG_SECDNS 32
+#define CAM_FORCE_STATE_EV 0xFF
+
+#define HLP_DO_SUBNET_ID_MAX_LEN 16
+#define HLP_1X_SID_PID_MAX_LEN 16
+#define MAX_NUM_SYS_TMR_ENTRY 7
+
+/*******************************************************************************
+ User-Defined Types (Typedefs)
+*******************************************************************************/
+typedef enum
+{
+ CAM_IDLE_ST,
+ CAM_IDLE_WFR_SYSTEM_RSP_ST,
+ CAM_IDLE_WFR_CP_CONNECT_ST,
+ CAM_IDLE_WFR_CP_CONNECT_RETRY_ST,
+ CAM_WFR_UM_CONNECT_ST,
+ CAM_WFR_RM_CONNECT_ST,
+ CAM_CONNECTED_ST,
+ CAM_WFR_UM_RELEASE_ST,
+ CAM_WFR_RM_RELEASE_ST,
+ CAM_WFR_CP_DORMANT_ST,
+ CAM_DORMANT_ST,
+ CAM_DORMANT_WFR_SYSTEM_RSP_ST,
+ CAM_DORMANT_WFR_CP_CONNECT_ST,
+ CAM_DORMANT_WFR_CP_CONNECT_RETRY_ST,
+ CAM_WFR_CP_RELEASE_ST,
+ CAM_WFR_XOFF_RESPONSE_ST,
+ CAM_NUM_STATES
+} CamStatesT;
+
+typedef enum
+{
+ CAM_PPP_CONNECT_REQ_EV,
+ CAM_ANSWER_REQ_EV,
+ CAM_DORMANT_REQ_EV,
+ CAM_PPP_RELEASE_REQ_EV,
+ CAM_DORMANT_RECONNECT_REQ_EV,
+ CAM_CONNECTION_OPENED_IND_EV,
+ CAM_CONNECTION_FAILED_IND_EV,
+ CAM_CONNECTION_RELEASED_IND_EV,
+ CAM_SYSTEM_QUERY_RSP_EV,
+ CAM_OOSA_IND_EV,
+ CAM_UM_PPP_STATUS_RSP_EV,
+ CAM_RM_PPP_STATUS_RSP_EV,
+ CAM_RLP_INACT_IND_EV,
+ CAM_RLP_OPEN_FAILED_EV,
+ CAM_XOFF_RESPONSE_RCVD_EV,
+ CAM_NUM_EVENTS
+} CamEventsT;
+
+typedef struct
+{
+ kal_bool InUse;
+ kal_uint8 PdnId;/*PPP error: 0xff, PDN error: pdn id*/
+ DataConnErrCodeT ErrorCode;
+} PsConnErrorCodeT;
+
+typedef struct
+{
+ kal_uint8 Cid;
+ NetworkPrefT NetworkPref;
+ NspeAppT AppType;
+ DialingInfoT* CallInfo;
+ kal_uint16 InactivityTmr; /* units of msec for 1X RLP only */
+ kal_bool ReleaseTchWhenFallback;
+ HlpPppRouteTypeE RouteType;
+} PppConnParamsT;
+
+typedef struct
+{
+ kal_bool DormantFrom1x;
+ kal_bool gotoDormant;
+} PppDormParamsT;
+
+typedef struct
+{
+ kal_bool connFromDo;
+} TchConnParamsT;
+
+/*TracePscState/TraceCpcState set for Trace, copy from SCC*/
+typedef enum
+{
+ PSC_NULL,
+ PSC_INIT,
+ PSC_CONNECTED,
+ PSC_NO_DMC_CONNECTED,
+ PSC_DORMANT,
+ PSC_RECONNECT,
+ PSC_NUM
+} TracePscState;
+
+typedef enum
+{
+ CPC_IDLE,
+ CPC_CONNECTING,
+ CPC_CONNECTED,
+ CPC_DISCONNECT,
+ CPC_ANALOG_CONN,
+ CPC_NUM
+} TraceCpcState;
+
+typedef enum
+{
+ NO_PENDING_RECONN_REQ,
+ PENDING_REQ_1X_BUSY,
+ PENDING_REQ_1X_IDLE
+} PendingRcnT;
+
+/*******************************************************************************
+ Global Variable Declarations
+*******************************************************************************/
+
+/*******************************************************************************
+ Global Function Prototypes
+*******************************************************************************/
+
+void camProcessEvent(CamEventsT event, void* parms, kal_uint8 parmSize);
+void camProcessEventNoParms(CamEventsT event);
+void HlpCamInit(void);
+CamStatesT camGetCurrentState(void);
+void camSetCurrentState(CamStatesT);
+kal_bool HlpCamReadyForReconnect(void);
+void HlpCallInstanceIncrease(NspeAppT callType);
+void HlpCallInstanceDecrease(NspeAppT callType);
+kal_bool HlpCallInstanceRequested(NspeAppT callType);
+void HlpCamSetDoTo1XFallbackMode(kal_bool DoTo1X_Enabled);
+void HlpSendDormantCnfToPsw(void);
+void PppResetAtUmRm(void);
+kal_uint16 GetIpv4MTU(void);
+void HlpSendPppConnStatusToValATC(HlpConnStatusT status, kal_uint32 localAddr, kal_uint32 remoteAddr, kal_uint32 priDNS, kal_uint32 secDNS);
+void HlpSendPSDMPppDisconnectStatus(CamStatesT oldCamState, DataDiscCauseT DataDisconnCause);
+void HlpSendPSDMPppConnectStatus(CamStatesT oldCamState);
+void HlpSendPppConnCnfMsg(HlpConnStatusT status, kal_uint32 localAddr, kal_uint32 remoteAddr, kal_uint32 priDNS, kal_uint32 secDNS);
+void HlpSendPppDisconnCnfMsg(void);
+void HlpSendPppDisconnIndMsg(DataDiscCauseT DiscType);
+void HlpSendPppModifyIndMsg(kal_uint32 localAddr, kal_uint32 remoteAddr, kal_uint32 priDNS, kal_uint32 secDNS);
+kal_bool HlpNeedIgnoreEvdoPaging(void);
+kal_bool HlpNeedIgnoreEvdoPaging(void);
+void HlpCamEnableEhrpdIfFallback(void);
+void HlpRsvasAbortReq(void *MsgDataPtr);
+void HlpCamEnableEhrpdIfFallback(void);
+void ConnectionReq(NetworkT networkType);
+#ifdef MTK_DEV_C2K_IRAT
+void HlpSendPppSetupStatusToClc(kal_bool PppSetupStatus);
+#endif
+kal_bool HlpGetFlightModeStatus(void);
+void HlpSetFlightModeStatus(kal_bool);
+kal_uint8 HlpCheckCAMState(void);
+
+#endif /* _HLPCAM_H_ */
+
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpcustom.h b/mcu/interface/protocol/l2_c2k/common/hlpcustom.h
new file mode 100644
index 0000000..11dd9ae
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpcustom.h
@@ -0,0 +1,81 @@
+/*****************************************************************************
+* 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.
+*
+*************************************************************/
+#ifndef _HLPCUSTOM_H_
+#define _HLPCUSTOM_H_
+
+/****************************************************************************
+ *
+ * Module: hlpcustom.h
+ *
+ * Purpose: Default/Customized values for the HLP parameters
+ *
+ * HISTORY :
+ *
+***************************************************************************/
+
+#define HLP_DEFAULT_DNS_PRI_IP_ADDR HLP_DEFAULT_IP_ADDR
+#define HLP_DEFAULT_DNS_SEC_IP_ADDR HLP_DEFAULT_IP_ADDR
+
+#define HLP_DEFAULT_AAA_AUTH_ALGORITHM MD5_AUTH_ALGO
+#define HLP_DEFAULT_MN_AUTHENTICATOR 0x07B201 /* byte reversed */
+
+#define HLP_DEFAULT_DDTM_MODE_ENABLED KAL_FALSE
+
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif /* _CUSTOM_H_ */
+
+/**Log information: \main\CBP80\cbp80_xding_scbp10176\1 2012-08-30 06:35:56 GMT xding
+** add an PRI item under HSPD menu for retry time on KDDI 2-19**/
+/**Log information: \main\SMART\1 2013-04-28 05:01:20 GMT jzwang
+** HREF#0000: Add smartfren compile option**/
+/**Log information: \main\SMART\2 2013-04-28 05:13:00 GMT jzwang
+** HREF#0000: Add smartfren compile option**/
+/**Log information: \main\Trophy\Trophy_xding_href22316\1 2013-11-27 06:00:43 GMT xding
+** HREF#22316,RDUD feature **/
+/**Log information: \main\Trophy\2 2013-11-27 06:04:14 GMT jzwang
+** href#22316**/
+
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpdef.h b/mcu/interface/protocol/l2_c2k/common/hlpdef.h
new file mode 100644
index 0000000..c3c8da1
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpdef.h
@@ -0,0 +1,858 @@
+/*****************************************************************************
+* 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) 1998-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _HLPDEF_H_
+#define _HLPDEF_H_
+/*****************************************************************************
+*
+* FILE NAME : hlpdef.h
+*
+* DESCRIPTION :
+*
+* This include file provides unit wide regional type declarations and
+* constants
+*
+* HISTORY :
+* See Log at end of file.
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "valapi.h"
+#include "hlpcam.h"
+#include "do_rcpapi.h"
+#include "reg_base.h"
+#include "cssapi.h"
+#include "do_almpapi.h"
+#include "hlpem.h"
+#include "sim_exported_enum.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define MAX_SIZE_REVERSE_BUFFER 512
+#define MAX_NUM_DATA_PAGE 2
+#define MAX_NUMBER_OF_TIMERS 20
+#define MAX_NUM_DECODE_RESULTS 20
+#define WFR_HAND_OFF_HYST_TMR 10000
+
+#define START_DECODER_OPERATION 0x0001
+#define DEFAULT_DECODER_CONFIG 0x0350
+#define START_ENCODER_OPERATION 0x0001
+#define DEFAULT_ENCODER_CONFIG 0x0350
+
+#define PPPReMap(data) ((kal_uint32)(data))
+#define PPP_MAX_ENC0_SRC 75 /* 75 entries max. */
+#define PPP_MAX_ENC1_SRC 150 /* 150 entries max. */
+#define PPP_MAX_RESULT0 75 /* 75 entries max. */
+#define PPP_MAX_RESULT1 150 /* 150 entries max. */
+#define PPP_MAX_LLD0 480 /* 480 entries max. */
+#define PPP_MAX_LLD1 480 /* 480 entries max. */
+
+#define PPP_MAX_DEST0 0x8000 /* 32K bytes. */
+#define PPP_MAX_DEST1 0x4000 /* 64K bytes. */
+
+/*---------------------------------
+Foward path : ENC0 & DEC0
+Reverse path: ENC1 & DEC1
+----------------------------------*/
+#define PPPHA_BASE_ADDR BASE_MADDR_MDINFRA_PPPHA
+#define PPP_ENC0_SRC_ADR (PPPHA_BASE_ADDR + 0x0000)
+#define PPP_ENC0_DST_ADR (PPPHA_BASE_ADDR + 0x0004)
+#define PPP_ENC0_TRNSCNT (PPPHA_BASE_ADDR + 0x0008)
+#define PPP_ENC0_CNFG (PPPHA_BASE_ADDR + 0x000C)
+#define PPP_ENC0_CNTL (PPPHA_BASE_ADDR + 0x0010)
+#define PPP_ENC0_ACCM (PPPHA_BASE_ADDR + 0x0014)
+#define PPP_ENC0_BYTECNT (PPPHA_BASE_ADDR + 0x0018)
+#define PPP_ENC0_BYTES_TOT (PPPHA_BASE_ADDR + 0x001C)
+
+#define PPP_ENC1_SRC_ADR (PPPHA_BASE_ADDR + 0x0040)
+#define PPP_ENC1_DST_ADR (PPPHA_BASE_ADDR + 0x0044)
+#define PPP_ENC1_TRNSCNT (PPPHA_BASE_ADDR + 0x0048)
+#define PPP_ENC1_CNFG (PPPHA_BASE_ADDR + 0x004C)
+#define PPP_ENC1_CNTL (PPPHA_BASE_ADDR + 0x0050)
+#define PPP_ENC1_ACCM (PPPHA_BASE_ADDR + 0x0054)
+#define PPP_ENC1_BYTECNT (PPPHA_BASE_ADDR + 0x0058)
+#define PPP_ENC1_BYTES_TOT (PPPHA_BASE_ADDR + 0x005C)
+
+#define PPP_DEC0_LLD_ADR (PPPHA_BASE_ADDR + 0x0080)
+#define PPP_DEC0_DST_ADR (PPPHA_BASE_ADDR + 0x0084)
+#define PPP_DEC0_TRNSCNT (PPPHA_BASE_ADDR + 0x0088)
+#define PPP_DEC0_CNFG (PPPHA_BASE_ADDR + 0x008C)
+#define PPP_DEC0_CNTL (PPPHA_BASE_ADDR + 0x0090)
+#define PPP_DEC0_RES_ADR (PPPHA_BASE_ADDR + 0x0094)
+#define PPP_DEC0_MAX_ADR (PPPHA_BASE_ADDR + 0x0098)
+#define PPP_DEC0_CRT_ADR (PPPHA_BASE_ADDR + 0x009C)
+
+#define PPP_DEC1_LLD_ADR (PPPHA_BASE_ADDR + 0x00C0)
+#define PPP_DEC1_DST_ADR (PPPHA_BASE_ADDR + 0x00C4)
+#define PPP_DEC1_TRNSCNT (PPPHA_BASE_ADDR + 0x00C8)
+#define PPP_DEC1_CNFG (PPPHA_BASE_ADDR + 0x00CC)
+#define PPP_DEC1_CNTL (PPPHA_BASE_ADDR + 0x00D0)
+#define PPP_DEC1_RES_ADR (PPPHA_BASE_ADDR + 0x00D4)
+#define PPP_DEC1_MAX_ADR (PPPHA_BASE_ADDR + 0x00D8)
+#define PPP_DEC1_CRT_ADR (PPPHA_BASE_ADDR + 0x00DC)
+
+#define PPP_DMA_SUSPEND (PPPHA_BASE_ADDR + 0x00E0)
+
+/* #define PPP_SRAM_ACCESS 0xABC0001C */
+
+#define HLP_DEFAULT_ACCM 0xFFFFFFFF
+
+#define HLP_BURST_LENGTH_4
+#define HLP_HA_DEC_DST_BURST_LEN_MASK 0xFF3F
+
+#if defined(HLP_BURST_LENGTH_8) /* burst length 8 */
+#define HLP_DEFAULT_HA_ENC_CFG 0x03a0
+#define HLP_HA_32BIT_ENC_CFG 0x03a2
+#define HLP_HA_16BIT_ENC_CFG 0x03a1
+
+#define HLP_DEFAULT_HA_DEC_CFG 0x07a0
+#define HLP_HA_32BIT_DEC_CFG 0x07a2
+#define HLP_HA_16BIT_DEC_CFG 0x07a1
+
+#elif defined(HLP_BURST_LENGTH_4) /* burst length 4 */
+#define HLP_DEFAULT_HA_ENC_CFG 0x0350
+#define HLP_HA_16BIT_ENC_CFG 0x0351
+
+#define HLP_HA_32BIT_ENC_CFG 0x0368
+
+#define HLP_DEFAULT_HA_DEC_CFG 0x07a0
+#define HLP_HA_32BIT_DEC_CFG 0x07a2
+#define HLP_HA_16BIT_DEC_CFG 0x07a1
+
+#else /* non-burst 1 */
+#define HLP_DEFAULT_HA_CFG 0x0300
+#define HLP_HA_32BIT_CFG 0x0302
+#define HLP_HA_16BIT_CFG 0x0301
+#endif
+
+#define TCP_TAG_NOT_PURE_ACK 38
+#define TCP_TAG_PURE_ACK 49
+#define TCP_TAG_RETRANSMIT 50
+
+
+/* Define Macros that manages the PPP_DMA_SUSPEND register (This feature is not used) */
+#define PppDmaSuspend() HwdWrite(PPP_DMA_SUSPEND, 0x0001)
+#define PppDmaResume() HwdWrite(PPP_DMA_SUSPEND, 0x0000)
+
+#define HLP_UIM_MAX_PROFILE_NUM 16
+#define HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM 16
+
+#define WFR_PPP_RSP_TM 20000 /* 250 seconds, seems too long. changed to 10 seconds by Fenix */
+#define WFR_NWK_RSP_TM 15000
+#define WFR_USER_RSP_TM 60000 /*1 minute for call setup*/
+
+/* memory size occupied by ppp header, 2B as its data type is kal_uint16 */
+#define HLP_PPP_HEADER_DATA_TYPE_SIZE sizeof(kal_uint16)
+
+extern kal_spinlockid chlp_spinlock;
+
+#if defined (__SMP_ARCH__)
+#define CHLP_TAKE_SPINLOCK() kal_take_spinlock(chlp_spinlock, KAL_INFINITE_WAIT)
+#define CHLP_GIVE_SPINLOCK() kal_give_spinlock(chlp_spinlock)
+#else
+#define CHLP_TAKE_SPINLOCK()
+#define CHLP_GIVE_SPINLOCK()
+#endif /* __SMP_ARCH__ */
+
+enum
+{
+ HO_NULL,
+ HO_TO_DO,
+ HO_TO_1X,
+ HO_TO_EHRPD
+};
+
+typedef enum
+{
+ CAM_SYS_HSPD,
+ CAM_SYS_HRPD,
+ CAM_SYS_EHRPD,
+ CAM_SYS_MAX
+} CamSysTypeT;
+
+typedef enum
+{
+ PPPHA_NOT_INITIALIZED,
+ PPPHA_CLOSE_TO_END_DEC0,
+ PPPHA_CLOSE_TO_END_DEC1,
+ PPPHA_FLOW_CTRL_TURNED_ON,
+ PPPHA_BUF_FAIL,
+ PPPHA_CRC_FAIL,
+ PPPHA_DEST_ADDR_NULL,
+ PPPHA_STATUS_MAX
+} PpphaStatusT;
+
+typedef enum
+{
+ PPPHA_ENC0,/*Rev Encode*/
+ PPPHA_DEC0,/*Fwd Decode*/
+ PPPHA_ENC1,/*Fwd Encode*/
+ PPPHA_DEC1 /*Rev Decode*/
+} PpphaPhaseT;
+
+typedef enum
+{
+ DATA_SERVICE_SIP,
+ DATA_SERVICE_MIP,
+ DATA_SERVICE_HRPD,
+ DATA_SERVICE_3GPDEXT,
+ DATA_SERVICE_IPv6,
+ DATA_SERVICE_UST_ACL,
+ DATA_SERVICE_EST_ACL
+} DataServiceTypeT;
+
+typedef enum
+{
+ HLP_DATA_DIR_UL,
+ HLP_DATA_DIR_DL,
+ HLP_DATA_DIR_MAX
+}HlpDataDirEnum;
+
+typedef enum
+{
+ HLP_NV_IP_COUNTER_ERR,
+ HLP_NV_IP_COUNTER_LEN_ERR,
+ HLP_NV_HSPD_DATA_ERR,
+ HLP_NV_HSPD_DATA_LEN_ERR,
+ HLP_NV_HSPD_SECURE_ERR,
+ HLP_NV_HSPD_SECURE_LEN_ERR,
+ HLP_NV_EHRPD_DATA_ERR,
+ HLP_NV_EHRPD_DATA_LEN_ERR,
+ HLP_NV_DMU_PUBKEY_ERR,
+ HLP_NV_DMU_PUBKEY_LEN_ERR,
+ HLP_NV_ERR_MAX
+} HlpNvRdWtErrT;
+
+typedef enum
+{
+ NO_SILENTLY_RETRY, /*don't retry by modem, directly notify AP*/
+ SILENTLY_AFRESH_CONN,/*re-establish connection*/
+ SILENTLY_AFRESH_PS,/*re-establish connection and re-nego ppp*/
+ SILENTLY_PPP_RENEGO /*re-establish PPP*/
+} HlpRecoverFlagT;
+
+typedef enum
+{
+ HLP_PROTOCOL_COMPRESSION, /* Protocol Compression */
+ HLP_ADDRESS_CONTROL_COMPRESSION, /* Address/Control Compression */
+ HLP_PPP_HEADER_ENC_GETBUFF_NULL
+}HlpPppHeaderEncWarningT;
+
+typedef struct
+{
+ kal_uint16 tcpTag;
+ kal_uint32 tcpPort;
+ kal_uint32 srcIpAddr;
+ kal_uint32 dstIpAddr;
+}socketInfoT;
+
+typedef struct
+{
+ CpBufferT* sourceAddr;
+ CpBufferT* destAddr;
+ kal_uint8* directSrcAddr;
+ kal_uint32 xferCount;
+ kal_uint32 configReg;
+#ifdef SYS_OPTION_PPPHA_ENC_ENH
+ kal_uint8 leadingPad;
+ kal_uint8 tailingPad;
+#endif
+ kal_uint32 accmInUse;
+ kal_uint16 encodedLen;
+ kal_uint16 sourceOffset;
+ kal_bool isCpBufPtr;
+ AppSubTypeT AppSubType;
+ socketInfoT dstSocket;
+} HlpPPPHaEncTableT;
+
+typedef struct
+{
+ ExeRspMsgT RspInfo;
+} HlpGetIPServiceTypeMsgT;
+
+typedef struct
+{
+ kal_uint8 pureAckTagRateTD;
+ kal_uint8 pureAckTagRate;
+} HlpEtsPureAckRateMsgT;
+
+typedef struct
+{
+ kal_uint32 tmrStatusHspd;
+ kal_uint32 tmrSysIdHspd[MAX_NUM_SYS_TMR_ENTRY];
+ kal_uint32 tmrStatusHrpd;
+ kal_uint32 tmrSysIdHrpd[MAX_NUM_SYS_TMR_ENTRY];
+ kal_uint32 tmrStatusEhrpd;
+ kal_uint32 tmrSysIdEhrpd[MAX_NUM_SYS_TMR_ENTRY];
+} HlpEtsThrottlingTmrStatusMsgT;
+
+#define HLP_UIM_MAX_PROFILE_NUM 16
+#define HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM 16
+typedef struct
+{
+ kal_uint8 MaxNumNAI;
+ kal_uint8 MaxNAILen;
+ kal_uint8 MaxSSLen;
+ kal_uint8 AuthAlgo;
+} HlpUim3GPDSipCapT;
+
+typedef struct
+{
+ kal_uint8 MaxNumNAI;
+ kal_uint8 MaxNAILen;
+ kal_uint8 MaxMNAAASSLen;
+ kal_uint8 MNAAAAuthAlgo;
+ kal_uint8 MaxMNHASSLen;
+ kal_uint8 MNHAAuthAlgo;
+} HlpUim3GPDMipCapT;
+
+typedef struct
+{
+ kal_uint8 NAIEntryIndex;
+ kal_uint8 NAILen;
+ kal_uint8 NAI[MN_NAI_MAX_SIZE];
+ kal_uint8 AuthAlgo;
+} HlpSipUserProfileT;
+
+typedef struct
+{
+ kal_uint8 NumNAI;
+ HlpSipUserProfileT SipUserProfile[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDSipUserProfileT;
+
+typedef struct
+{
+ kal_uint8 NAIEntryIndex;
+ kal_uint8 NAILen;
+ kal_uint8 NAI[MN_NAI_MAX_SIZE];
+ kal_bool TBit;
+ kal_uint32 HomeAddress;
+ kal_uint32 PrimaryHomeAgent;
+ kal_uint32 SecondaryHomeAgent;
+ kal_uint8 MNAAAAuthAlgo;
+ kal_bool MNAAASpiInd;
+ kal_uint32 MNAAASpi;
+ kal_uint8 MNHAAuthAlgo;
+ kal_bool MNHASpiInd;
+ kal_uint32 MNHASpi;
+} HlpMipUserProfileT;
+
+typedef struct
+{
+ kal_bool RetryInfoIncluded;
+ kal_uint8 MaxNumRetry;
+ kal_uint8 FirstRetryTimeOut;
+ kal_uint8 ReregThreshold;
+ kal_uint8 NumNAI;
+ HlpMipUserProfileT MipUserProfile[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDMipUserProfileT;
+
+typedef struct
+{
+ kal_uint8 ActNAIEntryIndex;
+ kal_uint8 NumAddActNAI;
+ kal_uint8 AddActNaiEntryIndex[HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM];
+} HlpUim3GPDMipStatusT;
+
+typedef struct
+{
+ kal_uint8 ActNAIEntryIndex;
+ kal_uint8 SSLen;
+ kal_uint8 SS[32];
+} HlpSipPapSSParmsT;
+
+typedef struct
+{
+ kal_uint8 NumNAI;
+ HlpSipPapSSParmsT SipPapSSParms[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDSipPapSSParmsT;
+
+typedef struct
+{
+ kal_uint8 NAIEntryIndex;
+ kal_uint32 Application;
+ kal_uint8 Priority;
+ kal_uint8 DataRateMode;
+ kal_uint8 DataBearer;
+} HlpUserProfileExtParamsT;
+
+typedef struct
+{
+ kal_uint8 NumNAI;
+ HlpUserProfileExtParamsT UppExtParams[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDUserProfileExtT;
+
+typedef struct
+{
+ kal_uint16 InitNeighborSolicitDelayTime;
+ kal_uint16 SolicitInterval;
+ kal_uint16 ReSolicitInterval;
+ kal_uint16 MaxSolicitAttempt;
+ kal_uint16 MaxReSolicitAttempt;
+ kal_uint16 PreRAExpiryReSolicitTime;
+ kal_uint8 IidInfo[8];
+ kal_uint8 Flags;
+} HlpUim3GPDIpv6capT;
+
+typedef struct
+{
+ kal_uint8 Flags;
+ kal_uint8 KeepAliveIdleTimer;
+} HlpUim3GPDTcpConfigT;
+
+typedef struct
+{
+ kal_uint8 DataDormTimer;
+ kal_uint8 EpzidTypeInfo;
+ kal_uint8 HystActTime;
+} HlpUim3GPDDgcT;
+
+typedef struct
+{
+ kal_uint8 MaxNaiLen;
+ kal_uint8 MaxSsLen;
+ kal_uint8 AuthAlgo;
+} HlpUimHrpdAccessAuthCapT;
+
+typedef struct
+{
+ kal_uint8 NaiLen;
+ kal_uint8 Nai[HLP_MAX_USRID_LEN];
+ kal_uint8 AuthAlgo;
+} HlpUimHrpdAccessAuthUppT;
+
+typedef struct
+{
+ /* this field indicates the EFcst, EFust, EFest file be used or not
+ * used only for UIM file test critical checking
+ * KAL_FALSE, not use the files
+ * KAL_TRUE, use the files
+ * default value should be KAL_FALSE
+ */
+ kal_bool TurnOnCheck;
+ kal_bool SipEnabled;
+ kal_bool MipEnabled;
+ kal_bool HrpdEnabled;
+ kal_bool Msg3gpdExtEnabled;
+ kal_bool Ipv6Enabled;
+ /* EFust, 6F38, byte5.bit3 */
+ kal_bool UstAclEnabled;
+ /* EFest, 6F56, byte1.bit3 */
+ kal_bool EstAclEnabled;
+} HlpUimServiceTableT;
+
+typedef struct
+{
+ kal_bool Flag;
+ kal_uint16 FileId[2];
+ kal_bool IsNeededForCTCard;
+} HlpUimFileTableT;
+
+typedef struct
+{
+ /*-------------card status----------------*/
+ kal_uint8 CardStatus;
+ /*-------------card index----------------*/
+ sim_interface_enum sim_index;
+ /*-------------card type-----------------*/
+ kal_bool is_uicc_card;
+ kal_bool is_omh_card;
+ kal_bool is_ct_card;
+ /*-------------file read flag-------------*/
+ /* read index point to next file index */
+ kal_uint8 ReadIndex;
+ kal_bool ReadDone;
+ /* this flag is ugly! to solve the duplicated 0x6F56 EF ID
+ * in RUIM/CSIM, it's EFhrpdcap, in USIM, it's EFest
+ * in HLP_UIM_FILE_CHANGED_MSG, if 0x6F56 received, both files are read
+ * EFhrpdcap will always be handled before EFest
+ * default value is KAL_FALSE, once EFhrpdcap is handled, this flag is set to KAL_TRUE
+ * after the whole read procedure is finished, this flag is reset to KAL_FALSE
+ */
+ kal_bool Cur6F56IsUsimFile;
+
+ /*-------------service table--------------*/
+ HlpUimServiceTableT srvtbl;
+
+ /*-------------operation mode-------------*/
+ /* EFme3gpdopc */
+ kal_uint8 opc;
+ /* EF3gpdopm */
+ kal_uint8 opm;
+
+ /*----------------simpe IP----------------*/
+ /* EFsipsp */
+ kal_uint8 sipsp;
+ /* EFsipcap */
+ HlpUim3GPDSipCapT sipcap;
+ /* EFsipupp */
+ HlpUim3GPDSipUserProfileT sipupp;
+ /* EFsippapss */
+ HlpUim3GPDSipPapSSParmsT sippapss;
+
+ /*----------------mobile IP----------------*/
+ /* EFmipsp */
+ HlpUim3GPDMipStatusT mipsp;
+ /* EFmipcap */
+ HlpUim3GPDMipCapT mipcap;
+ /* EFmipupp */
+ HlpUim3GPDMipUserProfileT mipupp;
+
+ /*-------------extension files-------------*/
+ /* EFmipflags */
+ kal_uint8 mipflags;
+ /* EF3gpduppext */
+ HlpUim3GPDUserProfileExtT uppext;
+ /* EFtcpconfig */
+ HlpUim3GPDTcpConfigT tcpcfg;
+ /* EFdgc */
+ HlpUim3GPDDgcT dgc;
+ /* EFipv6cap */
+ HlpUim3GPDIpv6capT ipv6cap;
+
+ /*---------HRPD Access Auth files---------*/
+ /* EFhrpdcap */
+ HlpUimHrpdAccessAuthCapT hrpdcap;
+ /* EFhrpdupp */
+ HlpUimHrpdAccessAuthUppT hrpdupp;
+ /* EFimsi */
+ IMSIType imsi;
+ kal_bool bUSIMIMSINeedUpdate;
+ /* EFad */
+ kal_uint8 MncLen;
+} HlpUimFilesT;
+
+typedef void (*hlp_timer_expiry_func)(hlp_timer_enum timer_id);
+
+typedef struct
+{
+ eventid id;
+ hlp_timer_enum timer_id;
+ kal_bool pending;
+ kal_uint32 duration_ms;
+ hlp_timer_expiry_func expiry_func;
+}hlp_es_struct;
+
+typedef struct
+{
+ peer_buff_struct *head;
+ peer_buff_struct *tail;
+}hlp_sll_ul_queue_struct;
+
+typedef struct
+{
+ peer_buff_struct *head;
+ peer_buff_struct *tail;
+ kal_uint8 pdn_id;
+}hlp_sll_dl_queue_struct;
+
+/*----------------------------------------------------------------------------
+ Global Variable Declarations
+----------------------------------------------------------------------------*/
+extern kal_bool PppRenego;
+
+/*----------------------------------------------------------------------------
+ Function Declarations
+----------------------------------------------------------------------------*/
+void HlpConnectionIndMsg(void *MsgDataP, kal_bool atDONetwork);
+void Hlp1XMTConnInNullStIndMsg(void *MsgDataP);
+void HlpConnectionReleasedIndMsg(void *MsgDataP);
+void HlpConnectionFailedIndMsg(void *MsgDataP);
+void HlpPppConnectReqMsg(void *MsgDataP);
+void HlpPppDisconnectReqMsg(void *MsgDataP);
+void HlpPppUpdateReqMsg(void *MsgDataP);
+void HlpPppReleaseReqMsg(void *MsgDataP);
+void HlpPppStatusMsg(void *MsgDataP);
+void HlpUmAppInstance(void * MsgDataPtr);
+void HlpPppAnswerReqMsg(void *MsgDataP);
+void HlpRlpResetIndMsg(void *MsgDataP);
+void HlpFwdDataIndSig(void);
+void HlpRevDataIndSig(void);
+void HlpRlpRevDataRspMsg(void *MsgDataP);
+void HlpRlpIdleIndMsg(void *MsgDataP);
+void HlpRlpOpenFailedMsg(void *MsgDataP);
+void HlpRlpRevDataRspMsg(void *MsgDataP);
+void HlpUpbConnStatusMsg(void *MsgDataP);
+void HlpUpbConnReqMsg(void* MsgDataP);
+void HlpAiwBeginUdpMsg(void* MsgDataP);
+void HlpUpbEndMsg(void* MsgDataP);
+void HlpUpbSendDataMsg(void* MsgDataP);
+void HlpUpbDormantReq(void *MsgDataP);
+void HlpUpbRecvDataRspMsg(void *MsgDataP);
+void HlpRmPppBeginMsg(void* MsgDataP);
+void HlpRmDisconnectInd(void *MsgDataP);
+void HlpRmConnectStatusMsg(void *MsgDataP);
+void HlpServiceStatusMsg(void *MsgDataPtr);
+void HlpUmPppBeginMsg(void* MsgDataP);
+void HlpUmRestartRlpMsg(void* MsgDataP);
+void HlpUmDisconnMsg(void* MagDataP);
+void HlpDormantReconnectReqMsg(void* MagDataP);
+void HlpUmAbortReqMsg(void* MagDataP);
+void HlpMipUmPppStatusMsg(void * MsgDataP);
+void HlpPktZoneIdMsg(void* MagDataP);
+void HlpTimerExpiredMsg(void* MsgDataP);
+void HlpTestBrowserConnectMsg(void* MsgDataP);
+void HlpTcpbConnReqMsg(void* MsgDataP);
+void HlpTcpbConnEndMsg(void* MsgDataP);
+void HlpTcpbDataSendReqMsg(void* MsgDataP);
+void HlpTcpbDataRecvRspMsg(void *MsgDataP);
+void HlpSocketCreateMsg(void *MsgDataP);
+void HlpSocketBindMsg(void *MsgDataP);
+void HlpSocketConnectMsg(void *MsgDataP);
+void HlpSocketCloseMsg(void *MsgDataP);
+void HlpSocketSendReqMsg(void *MsgDataP);
+void HlpSocketListenMsg(void *MsgDataP);
+void HlpSocketOptionMsg(void *MsgDataP);
+void HlpSocketShutDownMsg(void *MsgDataP);
+void HlpSocketLingerMsg(void *MsgDataP);
+void HlpUartReadyMsg(void *MsgDataP);
+void HlpMipInit(void);
+void HlpMipRrpMsg(void *MsgDataP);
+void HlpMipAgentAdvMsg(void *MsgDataP);
+void HlpMipUmPppStatusMsg(void *MsgDataP);
+void HlpOosaIndMsg(void *MsgDataPtr);
+void HlpSystemQueryRspMsg(void* MsgDataPtr);
+void HlpSysSelPrefSetMsg(void* MsgDataPtr);
+void HlpUmPppReNegotiationMsg(void *MsgDataPtr);
+void HlpSetNetworkOrRelayModeMsg(void *MsgDataPtr);
+void HlpAlmpConnReleased(void);
+void HlpAlmpConnFailed(void);
+void HlpXoffRspRcvdMsg(void);
+#ifdef KDDI_EXTENSIONS
+extern void HlpDORetryTmrExp(void);
+#endif
+void HlpDormantReqMsg(void);
+void HlpValCtaUpdateReqMsg(HlpValCtaUpdateReqMsgT* MsgDataPtr);
+void HlpSetHoFlag(kal_uint8 direction);
+kal_uint8 HlpGetHoFlag(void);
+extern void HlpVoiceCallReleaseIndMsg(void);
+#ifdef MTK_DEV_C2K_IRAT
+void HlpSetHO21xFlag(kal_bool bHO21xEnabledFlag);
+kal_bool HlpGetHO21xFlag(void);
+void HlpSetByPassThresholdCheckFlag(kal_bool bNewFlag);
+kal_bool HlpGetByPassThresholdCheckFlag(void);
+#endif /* MTK_DEV_C2K_IRAT */
+void HlpValDMUVSetMsg(void *MsgDataPtr);
+void HlpDOInactivityExprMsg(void);
+#ifdef MTK_DEV_C2K_IRAT
+void HlpSendPppMtu2Val(void);
+#endif
+HlpDataChRetStatus HlpWrite(RmDataCpBuffDescT *Buff);
+HlpDataChRetStatus HlpRead(RmDataCpBuffDescT *Buff);
+kal_uint16 GetRevHlpDataSize(void);
+kal_uint16 HlpCheckRxReadyStatus(void);
+void HlpAccessStreamStart(void);
+void HlpGetPPPConnParams(PppConnParamsT *connPtr);
+
+/* System ID Change message function prototypes */
+void HlpSidNidChangeIndMsg(void *MsgDataPtr);
+void HlpPktZoneIdChangeIndMsg(void *MsgDataPtr);
+void HlpSubnetIdChangeIndMsg(void *MsgDataPtr);
+void HlpColorCodeIndMsg(void *MsgDataP);
+
+/* Hlpdbm function prototypes */
+void HlpDbmHspdSegInitReq(void);
+void HlpNvHspdSegDataReadHandler(void);
+void HlpParmSetMsg(void *MsgDataPtr);
+void hlp_elt_set_parm_msg(ilm_struct* ilm_ptr, HlpParmOperationId ParmId);
+
+void HlpNvSecureDataReadHandler(void);
+void HlpParmGetMsg(void *MsgDataPtr);
+void hlp_elt_get_parm_msg(ilm_struct* ilm_ptr, HlpParmOperationId ParmId);
+void HlpDbmGetEsnMeidRspMsg(void *MsgDataPtr);
+void HlpDmuSecureDataChangedMsg(void *MsgDataP);
+void HlpPswMDNUpdatedMsg(void *MsgDataPtr);
+void HlpSetMipPasswordMsg(void *MsgDataPtr);
+kal_uint8 HlpDbmGetMipMode(void);
+kal_uint8 HlpDbmGetHaAuthMode(void);
+kal_uint8 HlpDbmGetVJCompressionEnabled(void);
+void HlpDbmGetPppUmCfg(HlpPppUmCfg_APIStruct *HlpPppUmCfg);
+void HlpDbmGetPppRmCfg(HlpPppRmCfg_APIStruct *HlpPppRmCfg);
+void HlpDbmGetTcpCfg(HlpTcpCfg_APIStruct *HlpTcpCfg);
+kal_bool HlpDbmGetHspdLocked(void);
+void HlpNvEHrpdDataReadHandler(void);
+
+void HlpDormancyTimersSetMsg(void *MsgDataPtr);
+void HlpDORetryTimersSetMsg(void *MsgDataPtr);
+
+/* Timer expiration function prototypes */
+void HlpTimerStartReq(hlp_timer_enum timer_id);
+void HlpTimerKillReq(hlp_timer_enum timer_id);
+void HlpTimerSetDuration(hlp_timer_enum timer_id, kal_uint32 duration);
+void HlpTimerSetPending(hlp_timer_enum timer_id, kal_bool pending);
+kal_bool HlpTimerIsActive(hlp_timer_enum timer_id);
+kal_bool HlpTimerIsPending(hlp_timer_enum timer_id);
+kal_uint32 HlpTimerGetDuration(hlp_timer_enum timer_id);
+void WfrFastConnTimeUp(hlp_timer_enum timer_id);
+void HlpWfsSysRspTimeup(hlp_timer_enum timer_id);
+void HlpWfrUimAuthRspTimeup(hlp_timer_enum timer_id);
+void WfrRmConnectionTimeUp(hlp_timer_enum timer_id);
+void DataRetryTimeUp(hlp_timer_enum timer_id);
+void DoRetryTimeUp(hlp_timer_enum timer_id);
+void HlpWaitForIratReleaseTimerExp(hlp_timer_enum timer_id);
+void HlpWfrFallBack1XConnectTimeUp(hlp_timer_enum timer_id);
+void HlpSetC109LowExp(hlp_timer_enum timer_id);
+void HlpProcThrottlingTmrExp(hlp_timer_enum timer_id);
+void DormantReconnectBackOffTimerUp(hlp_timer_enum timer_id);
+void HlpPppConnectBackOffTimerExp (hlp_timer_enum timer_id);
+void HlpFiveMinsTimeOut(hlp_timer_enum timer_id);
+void HlpForceCpIdle(hlp_timer_enum timer_id);
+void HlpCloseConnAtDO(hlp_timer_enum timer_id);
+void HlpMipTimerRrpRegTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerRrpDeregTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerRrqRegTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerAgentAdvTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerLifetimeTimeUp(hlp_timer_enum timer_id);
+void HlpIp6TestTmrExp(hlp_timer_enum timer_id);
+void natTimerExpire(hlp_timer_enum timer_id);
+void HlpPendingRedailA12TmrExp(hlp_timer_enum timer_id);
+void HlpSetPendingRedailA12Flag(kal_bool flag);
+kal_bool HlpGetPendingRedailA12Flag(void);
+void HlpRsvasAbortReqTimeUp(hlp_timer_enum timer_id);
+
+/* Throttling function prototypes */
+void HlpThrottSetEnable(kal_bool enable);
+kal_bool HlpThrottGetEnable(void);
+void HlpThrottSetCurrSys(CamSysTypeT system);
+CamSysTypeT HlpThrottGetCurrSys(void);
+kal_bool HlpThrottIsActive(CamSysTypeT SystemType);
+void HlpThrottLogSysId(CamSysTypeT SystemType);
+void HlpThrottInit(void);
+void HlpThrottResetAll(void);
+void HlpThrottStop(CamSysTypeT SystemType);
+void HlpThrottStart(void);
+
+/* IPv6 function prototypes */
+#ifdef CBP7_EHRPD
+kal_bool EapAkaFailureByNwkRejFlagGet(void);
+void EapAkaFailureByNwkRejFlagSet(kal_bool bRejByNetworkNotification);
+#endif
+
+void HlpFwdPktDataIndSig( void );
+
+/* PPP free mode support */
+void HLPRouteTypeSet(HlpPppRouteTypeE type);
+HlpPppRouteTypeE HLPRouteTypeGet(void);
+/* TCP/IP filter-mux function prototypes */
+void IP_Add_TCP_FilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port);
+void IP_Delete_TCP_FilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port);
+kal_bool CheckTcpPacketWithTcpFilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port, kal_bool fragmentIpPkt);
+void IP_Init_TCP_FilterMux(MuxInfo *Info);
+
+/* UIM function prototypes */
+void HlpUimNotifyRegisterMsg(void *MsgDataPtr);
+void HlpDbmPowerCycleMsg(void);
+void HlpUim3GPDDataUpdate(void);
+void HlpUimGet3GPDOpcRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDOpcRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDOpmRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDOpmRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipCapRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDMipCapRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipUPPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDMipUPPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipSPRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDSipSPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDMipSPRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDMipSPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipPapSSRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDSipPapSSRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDImsiRspMsg(void *MsgDataPtr, kal_bool NeedToReadOtherFile);
+void HlpUimUpdate3GPDAdRspMsg(void *MsgDataPtr);
+kal_uint8 HlpUimGetMipMnHaAuthAlgorithm(void);
+
+/* System ID function prototypes */
+void HlpSetCurrentSidNid(kal_uint16 sid, kal_uint16 nid);
+void HlpSetCurrentPid(kal_uint8 pid);
+kal_uint8 *HlpGetCurrentSidPid(void);
+void HlpSetCurrentSubnetId(kal_uint8 *pSubnetId);
+kal_uint8 *HlpGetCurrentSubnetId(void);
+void HlpColorCodeIndMsg(void *MsgDataP);
+kal_uint16 HlpGetDormancyTimer(kal_bool bForRDUD);
+IMSIType HlpGetImsiInfoInUimCntx(void);
+kal_uint8 HlpGetMncLenInUimCntx(void);
+kal_bool HlpCheckImsiInfoNeedUpdate(void);
+void HlpWaitForExtMsg(kal_uint32 expMsgId, ilm_struct *ilm);
+#ifdef CBP7_EHRPD
+void HlpGetImsiFromUsim(void);
+#endif
+void HlpSendTchSetupStatusToCss(CssTchSetupStatusT status);
+void HlpSendConnStatusMsg2Val(ValWmcConnStatusT connStatus);
+void HlpSendPppConnStatusMsg2Val(ValHlpPppConnStatusMsgT *ConnStatus);
+void HlpSendPppConnStatusMsg2ValAtc(ValHlpPppConnStatusMsgT *ConnStatus);
+
+void hlp_nvram_read_cnf_handler(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+void hlp_nvram_write_cnf_handler(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+void HlpProcessRevDataFromHIF(void* MsgDataP);
+AlmpStateT HlpGetAlmpState(void);
+void HlpTcpPacketTagPureAck(kal_uint8 *pIpPacket, socketInfoT *dstSocketPtr);
+kal_uint16 PPP_HeaderEncode_CopyFree(kal_uint16 prot, kal_uint8 *data, kal_bool acomp, kal_bool pcomp, kal_uint8 pdn_id);
+void HlpHandleDnsQueryNoNwRsp(kal_uint8 *pIpPacket, kal_bool *pToRelPpp);
+HlpRecoverFlagT HlpGetRecoverFlag(void);
+void HlpSetRecoverFlag(HlpRecoverFlagT value);
+kal_bool HlpTransferToLower(char* pStrIn, char* pStrOut, kal_uint32 nLen);
+DialingInfoT* HlpCallInfoGet(void);
+void HlpSendXonXoffToFcp(kal_bool bXOnOff, StreamType StreamID);
+kal_uint8 HlpGetPPPConnParamsCid(void);
+kal_bool HlpUimIsUiccCard(void);
+kal_bool HlpUimIsOmhCard(void);
+void HlpConnectionSuspendCmd(void);
+void HlpConnectionResumeCmd(void);
+void HlpConnectionDisableCmd(void);
+void HlpConnectionResetCmd(void);
+void HlpConnectionFallbackCmd(void);
+
+void HlpSetHOEHRPDEnableFlag(kal_bool bEnable);
+kal_bool HlpGetHOEHRPDEnableFlag(void);
+sim_interface_enum HlpUimGetCurSimIndex(void);
+kal_uint16 HlpRmCheckRxReadyStatus(void);
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpem.h b/mcu/interface/protocol/l2_c2k/common/hlpem.h
new file mode 100644
index 0000000..d828339
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpem.h
@@ -0,0 +1,72 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+/****************************************************************************
+ *
+ * Module: hlpem.h
+ *
+ * Purpose: hlp engineer mode definitions and prototypes.
+ *
+ ****************************************************************************/
+
+#ifndef _HLPEM_H_
+#define _HLPEM_H_
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "em_public_struct_c2k_hlp.h"
+
+void HlpEmSendTimerStatusInd(kal_uint32 hlp_timer_tmp, kal_bool act_tmp, kal_uint32 duration_tmp);
+void HlpEmSendCamStateInd(kal_uint8 old_state_tmp, kal_uint8 event_tmp, kal_uint8 new_state_tmp);
+void HlpEmSendNspeStateInd(void);
+void HlpEmSendPdnStatusInd(void);
+void HlpEmSendPpphaStatusInd(em_hlp_pppha_enum hlp_pppha_name, kal_uint16 PullOut_tmp);
+void HlpEmSendPppStatusInd(void);
+void HlpEmSendRmBufQInfoInd(void);
+void HlpEmSendUmBufQInfoInd(void);
+void HlpEmSendPacketInfoInd(void);
+void HlpEmDecPacketInfo(em_hlp_data_dir_enum UL_DL, kal_uint8 *pIpPacket, kal_uint16 data_len);
+void HlpEmSendStatusCnf(void);
+void HlpEmUpdateReqMsg(local_para_struct *local_para_ptr);
+void HlpEmInitDataPlaneInfo(void);
+void HlpEmPpphaBadPacketIncrease(em_hlp_pppha_enum hlp_pppha_name, kal_uint16 Add_in);
+void HlpEmDiscardUmData(em_queue_type_enum FwdRevFlag);
+void HlpEmSendAbnormalEventInfoInd(em_hlp_abnormal_event_enum hlp_abnormal_event);
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpmip.h b/mcu/interface/protocol/l2_c2k/common/hlpmip.h
new file mode 100644
index 0000000..4019366
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpmip.h
@@ -0,0 +1,249 @@
+/*****************************************************************************
+* 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 _HLPMIP_H_
+#define _HLPMIP_H_
+/*****************************************************************************
+*
+* FILE NAME : hlpmip.h
+*
+* DESCRIPTION :
+*
+* This include file provides type declarations and constants for Mobile IP
+*
+* HISTORY :
+* See Log at end of file.
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "pswnam.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define AAA_AUTH_MAX_SIZE 8
+#define DMU_ENCRYPTED_DATA_MAX_SIZE 128
+
+#define MAX_RSA_PUBLIC_KEY_SUPPORTED 2
+
+#define HLP_DEFAULT_INLAND_NAI_REALM "@inland3g.com"
+#define HLP_DEFAULT_IVC_NAI_REALM "@ivcdata.com" /* IIIinois Valley Cellular */
+#define HLP_DEFAULT_APPALACHIAN_NAI_REALM "@myawi.com" /* Applalachian */
+typedef struct {
+ kal_uint8 MN_AAAH_Key[MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_HA_Key[MN_PASSWD_MAX_SIZE];
+ kal_uint8 CHAP_Key[MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_Authenticator[MN_AUTH_MAX_SIZE];
+ kal_uint8 AAA_Authenticator[AAA_AUTH_MAX_SIZE];
+} HlpDMUKeyDataT;
+
+typedef struct {
+ kal_uint8 MN_AAA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_HA_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_SIP_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+ kal_uint8 MN_AN_PASSWORD[HLP_MN_PASSWD_MAX_SIZE];
+} HlpDmuSecureDataMsgT;
+
+typedef enum
+{
+ MIP_WFR_REREG_WINDOW,
+ MIP_REREG_WINDOW,
+ MIP_REREG_RRQ_SENT_WINDOW,
+ MIP_REREG_LIFETIME_EXPIRED,
+ MIP_DEREG_ALREADY
+} ReRegStateT;
+
+typedef enum
+{
+ MIP_RRP_TYPE,
+ MIP_RRP_CODE,
+ MIP_RRP_IDENT,
+ MIP_RRP_VENDOR_ID,
+ MIP_RRP_PUBLIC_KEY,
+ MIP_RRP_KEY_ENCRYPT,
+ MIP_RRP_CVSE_LEN,
+ MIP_RRP_AAA_AUTHENTICATOR,
+ MIP_RRP_CVSE_VENDOR_TYPE,
+ MIP_RRP_CVSE_TYPE_NUMBER,
+ MIP_RRP_LIFETIME,
+ MIP_RRP_AUTH_DATA,
+ MIP_RRP_EXT_TYPE,
+ MIP_RRP_EXT_LEN,
+ MIP_RRP_MAX_NUM
+} HlpMipRrpErrTypeT;
+
+typedef enum
+{
+ MIP_ADV_TYPE,
+ MIP_ADV_CODE,
+ MIP_ADV_ROUTER_NUM,
+ MIP_ADV_ENTRY_SIZE,
+ MIP_ADV_MOB_EXT_TYPE,
+ MIP_ADV_CHALL_EXT_TYPE,
+ MIP_ADV_FA_BUSY,
+ MIP_ADV_COA_NUM,
+ MIP_ADV_EXT_LEN,
+ MIP_ADV_MAX_NUM
+} HlpMipAdvErrTypeT;
+
+#define SECURE_DATA_SIP_PWD_BIT (1<<0)
+#define SECURE_DATA_AN_PWD_BIT (1<<1)
+#define SECURE_PROFILE_BIT (1<<2)
+#ifdef CBP7_EHRPD
+#define SECURE_DATA_AKA_PWD_BIT (1<<3)
+#endif
+
+typedef enum
+{
+ SECURE_DATA_SIP_PWD_SET = SECURE_DATA_SIP_PWD_BIT,
+ SECURE_DATA_AN_PWD_SET = SECURE_DATA_AN_PWD_BIT,
+#ifdef CBP7_EHRPD
+ SECURE_DATA_AKA_PWD_SET = SECURE_DATA_AKA_PWD_BIT,
+#endif
+ SECURE_SET_BOTH = RSA_PUBLIC_KEY_BIT|SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT,
+ SECURE_PROFILE_SET = SECURE_PROFILE_BIT,
+#ifdef CBP7_EHRPD
+ SET_ALL = SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT|SECURE_PROFILE_BIT|SECURE_DATA_AKA_PWD_BIT
+#else
+ SET_ALL = SECURE_DATA_SIP_PWD_BIT|SECURE_DATA_AN_PWD_BIT|SECURE_PROFILE_BIT
+#endif
+}SecureDataSetE;
+
+typedef enum
+{
+ HLP_MIP_ERR_INVALID_STATE, /* MIP error codes */
+ HLP_MIP_ERR_INVALID_TIMER_ID,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_TYPE,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_CODE,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_NUM_ROUTER,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_ENTRY_SIZE,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_NUM_COA,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_EXT_TYPE, /* 0x10 */
+ HLP_MIP_ERR_AGENT_ADV_INVALID_EXT_LEN,
+ HLP_MIP_ERR_AGENT_ADV_INVALID_AGENT,
+ HLP_MIP_ERR_AGENT_ADV_FA_BUSY,
+ HLP_MIP_ERR_AGENT_SOL_BUFFER_BUSY,
+ HLP_MIP_ERR_RRP_INVALID_TYPE,
+ HLP_MIP_ERR_RRP_INVALID_CODE,
+ HLP_MIP_ERR_RRP_INVALID_LIFETIME,
+ HLP_MIP_ERR_RRP_INVALID_IDENT,
+ HLP_MIP_ERR_RRP_INVALID_EXT_TYPE,
+ HLP_MIP_ERR_RRP_INVALID_EXT_LEN,
+ HLP_MIP_ERR_RRP_INVALID_AUTH_DATA,
+ HLP_MIP_ERR_RRP_INVALID_CHALLENGE_DATA,
+ HLP_MIP_ERR_RRQ_TOO_LARGE,
+ HLP_MIP_ERR_RRQ_BUFFER_BUSY,
+ HLP_MIP_ERR_USER_DATA_GET_FAILED,
+ HLP_MIP_ERR_INVALID_CVSE_TYPE_NUMBER, /* 0x20 */
+ HLP_MIP_ERR_INVALID_VENDOR_ID,
+ HLP_MIP_ERR_INVALID_CVSE_VENDOR_TYPE,
+ HLP_MIP_ERR_INVALID_PUBLIC_KEY,
+ HLP_MIP_ERR_INVALID_CVSE_LEN,
+ HLP_MIP_ERR_MIP_KEY_ENCRYPT_INVALID,
+ HLP_MIP_ERR_INVALID_AAA_AUTHENTICATOR,
+} HlpMipErrCodeE;
+
+/*----------------------------------------------------------------------------
+ Externs Declarations
+----------------------------------------------------------------------------*/
+extern void HlpMipInit(void);
+extern void HlpMipFallbackSipSet(kal_bool bEnable);
+extern kal_bool HlpMipFallbackSipGet(void);
+extern void HlpMipFallbackSipActive(void);
+
+extern void HlpMipRrpMsg(void *MsgDataP);
+extern void HlpMipAgentAdvMsg(void *MsgDataP);
+extern void HlpMipUmPppStatusMsg(void *MsgDataP);
+extern void HlpMipNvmMiscData(void* MsgDataP);
+extern void HlpMipNvmRRAUpdate(kal_uint16 Rra);
+extern void HlpMipNvmNumRegRetriesUpdate(kal_uint8 Num);
+extern void HlpMipNvmDeRegRetriesUpdate(kal_uint8 Num);
+extern void HlpMipNvmReRegOnlyIfTrafficUpdate(kal_bool ReRegOnlyIfTraffic);
+extern void HlpMipNvmMipNaiEnabledUpdate(kal_bool NaiEnabled);
+extern void HlpMipNvmRegTimeoutUpdate(kal_uint8 Timeout);
+extern void HlpMipNvmActivedProfileDataUpdate(HlpHspdSegData * MsgDataP);
+extern void HlpMipNvmSecureProfileDataUpdate(kal_uint8 SetType, HlpHspdSecureSegData* MsgDataP);
+
+extern void HlpDMUInit(void);
+extern void HlpMipKeysGenEnc(void);
+/*extern void HlpResetMNAuthMsg(void *MsgDataP);*/
+/*extern void HlpSetMNAuthMsg(void *MsgDataP);*/
+extern void HlpPswSDmuKeyGenRspMsg(void);
+extern void HlpPswSDmuKeyEncRspMsg(void);
+extern void HlpDmuRsaPublicKeyActiveAndMNAuthSetMsg(kal_uint8 SetType, HlpRSAPublicKeyOrgIdInfoT *MsgDataP);
+
+extern void HlpMipStartRrpAdminProhibRetry(void);
+extern kal_bool HlpMipCheckRrpAdminProhibRetry(void);
+extern kal_bool HlpMipCheckRrpAdminProhibRetryOtherErr(void);
+extern void HlpMipClearRrpAdminProhibRetry(void);
+
+extern void HlpMipResetRrpCode(void);
+extern void HlpMipSetRrpCode(kal_uint8 RrpCode);
+extern kal_uint8 HlpMipGetRrpCode(void);
+extern void HlpMIPReRegistration(MipReRegReasonT Reason);
+extern void HlpReturnToService(void);
+
+extern void HlpToReadNVRSAPublicKeyInfo(void);
+extern kal_bool HlpCheckRSAPublicKeyInfo(kal_uint8 nPKOID);
+extern kal_bool HlpIsAcgOpTetheringMode(void);
+extern kal_bool HlpIsAcgOpMipOnlyMode(void);
+extern kal_bool HlpCheckIsAcgSpecialNAI(char *pStr);
+extern kal_uint8 HlpDeriveTetheredNAIForACG(kal_uint8 *InputNAI, kal_uint8 InNAILen);
+/*****************************************************************************
+* $Log: hlpmip.h $
+*
+* 11 09 2016 sue.zhong
+* [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+* Update C2K PS code (1/2)
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
+
+