blob: b0fd5e006636c75ae9789d1bc284eaeb331d43d8 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35/*************************************************************
36*
37* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 2003-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44/*******************************************************************************
45 *
46 * FILE NAME : HlpCam.H
47 *
48 * DATE CREATED : 06/22/06
49 *
50 * DESCRIPTION : Header file for HlpCam.c
51 *
52 *******************************************************************************
53 ******************************************************************************/
54
55#ifndef _HLPCAM_H_
56#define _HLPCAM_H_
57
58/*******************************************************************************
59 Include Header Files
60 (No absolute paths - paths handled by make file)
61*******************************************************************************/
62#include "hlpapi.h"
63#include "cpbuf.h"
64#include "valapi.h"
65
66/*******************************************************************************
67 Macros
68*******************************************************************************/
69
70#define PPP_STATUS_FLAG_INTERFACE 1
71#define PPP_STATUS_FLAG_STATUS 2
72#define PPP_STATUS_FLAG_LOCALADDR 4
73#define PPP_STATUS_FLAG_REMOTEADDR 8
74#define PPP_STATUS_FLAG_PRIDNS 16
75#define PPP_STATUS_FLAG_SECDNS 32
76#define CAM_FORCE_STATE_EV 0xFF
77
78#define HLP_DO_SUBNET_ID_MAX_LEN 16
79#define HLP_1X_SID_PID_MAX_LEN 16
80#define MAX_NUM_SYS_TMR_ENTRY 7
81
82/*******************************************************************************
83 User-Defined Types (Typedefs)
84*******************************************************************************/
85typedef enum
86{
87 CAM_IDLE_ST,
88 CAM_IDLE_WFR_SYSTEM_RSP_ST,
89 CAM_IDLE_WFR_CP_CONNECT_ST,
90 CAM_IDLE_WFR_CP_CONNECT_RETRY_ST,
91 CAM_WFR_UM_CONNECT_ST,
92 CAM_WFR_RM_CONNECT_ST,
93 CAM_CONNECTED_ST,
94 CAM_WFR_UM_RELEASE_ST,
95 CAM_WFR_RM_RELEASE_ST,
96 CAM_WFR_CP_DORMANT_ST,
97 CAM_DORMANT_ST,
98 CAM_DORMANT_WFR_SYSTEM_RSP_ST,
99 CAM_DORMANT_WFR_CP_CONNECT_ST,
100 CAM_DORMANT_WFR_CP_CONNECT_RETRY_ST,
101 CAM_WFR_CP_RELEASE_ST,
102 CAM_WFR_XOFF_RESPONSE_ST,
103 CAM_NUM_STATES
104} CamStatesT;
105
106typedef enum
107{
108 CAM_PPP_CONNECT_REQ_EV,
109 CAM_ANSWER_REQ_EV,
110 CAM_DORMANT_REQ_EV,
111 CAM_PPP_RELEASE_REQ_EV,
112 CAM_DORMANT_RECONNECT_REQ_EV,
113 CAM_CONNECTION_OPENED_IND_EV,
114 CAM_CONNECTION_FAILED_IND_EV,
115 CAM_CONNECTION_RELEASED_IND_EV,
116 CAM_SYSTEM_QUERY_RSP_EV,
117 CAM_OOSA_IND_EV,
118 CAM_UM_PPP_STATUS_RSP_EV,
119 CAM_RM_PPP_STATUS_RSP_EV,
120 CAM_RLP_INACT_IND_EV,
121 CAM_RLP_OPEN_FAILED_EV,
122 CAM_XOFF_RESPONSE_RCVD_EV,
123 CAM_NUM_EVENTS
124} CamEventsT;
125
126typedef struct
127{
128 kal_bool InUse;
129 kal_uint8 PdnId;/*PPP error: 0xff, PDN error: pdn id*/
130 DataConnErrCodeT ErrorCode;
131} PsConnErrorCodeT;
132
133typedef struct
134{
135 kal_uint8 Cid;
136 NetworkPrefT NetworkPref;
137 NspeAppT AppType;
138 DialingInfoT* CallInfo;
139 kal_uint16 InactivityTmr; /* units of msec for 1X RLP only */
140 kal_bool ReleaseTchWhenFallback;
141 HlpPppRouteTypeE RouteType;
142} PppConnParamsT;
143
144typedef struct
145{
146 kal_bool DormantFrom1x;
147 kal_bool gotoDormant;
148} PppDormParamsT;
149
150typedef struct
151{
152 kal_bool connFromDo;
153} TchConnParamsT;
154
155/*TracePscState/TraceCpcState set for Trace, copy from SCC*/
156typedef enum
157{
158 PSC_NULL,
159 PSC_INIT,
160 PSC_CONNECTED,
161 PSC_NO_DMC_CONNECTED,
162 PSC_DORMANT,
163 PSC_RECONNECT,
164 PSC_NUM
165} TracePscState;
166
167typedef enum
168{
169 CPC_IDLE,
170 CPC_CONNECTING,
171 CPC_CONNECTED,
172 CPC_DISCONNECT,
173 CPC_ANALOG_CONN,
174 CPC_NUM
175} TraceCpcState;
176
177typedef enum
178{
179 NO_PENDING_RECONN_REQ,
180 PENDING_REQ_1X_BUSY,
181 PENDING_REQ_1X_IDLE
182} PendingRcnT;
183
184/*******************************************************************************
185 Global Variable Declarations
186*******************************************************************************/
187
188/*******************************************************************************
189 Global Function Prototypes
190*******************************************************************************/
191
192void camProcessEvent(CamEventsT event, void* parms, kal_uint8 parmSize);
193void camProcessEventNoParms(CamEventsT event);
194void HlpCamInit(void);
195CamStatesT camGetCurrentState(void);
196void camSetCurrentState(CamStatesT);
197kal_bool HlpCamReadyForReconnect(void);
198void HlpCallInstanceIncrease(NspeAppT callType);
199void HlpCallInstanceDecrease(NspeAppT callType);
200kal_bool HlpCallInstanceRequested(NspeAppT callType);
201void HlpCamSetDoTo1XFallbackMode(kal_bool DoTo1X_Enabled);
202void HlpSendDormantCnfToPsw(void);
203void PppResetAtUmRm(void);
204kal_uint16 GetIpv4MTU(void);
205void HlpSendPppConnStatusToValATC(HlpConnStatusT status, kal_uint32 localAddr, kal_uint32 remoteAddr, kal_uint32 priDNS, kal_uint32 secDNS);
206void HlpSendPSDMPppDisconnectStatus(CamStatesT oldCamState, DataDiscCauseT DataDisconnCause);
207void HlpSendPSDMPppConnectStatus(CamStatesT oldCamState);
208void HlpSendPppConnCnfMsg(HlpConnStatusT status, kal_uint32 localAddr, kal_uint32 remoteAddr, kal_uint32 priDNS, kal_uint32 secDNS);
209void HlpSendPppDisconnCnfMsg(void);
210void HlpSendPppDisconnIndMsg(DataDiscCauseT DiscType);
211void HlpSendPppModifyIndMsg(kal_uint32 localAddr, kal_uint32 remoteAddr, kal_uint32 priDNS, kal_uint32 secDNS);
212kal_bool HlpNeedIgnoreEvdoPaging(void);
213kal_bool HlpNeedIgnoreEvdoPaging(void);
214void HlpCamEnableEhrpdIfFallback(void);
215void HlpRsvasAbortReq(void *MsgDataPtr);
216void HlpCamEnableEhrpdIfFallback(void);
217void ConnectionReq(NetworkT networkType);
218#ifdef MTK_DEV_C2K_IRAT
219void HlpSendPppSetupStatusToClc(kal_bool PppSetupStatus);
220#endif
221kal_bool HlpGetFlightModeStatus(void);
222void HlpSetFlightModeStatus(kal_bool);
223kal_uint8 HlpCheckCAMState(void);
224
225#endif /* _HLPCAM_H_ */
226