blob: 761a1dfed65faa298def26278a0693c66a055bf0 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*************************************************************
2*
3* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
4*
5* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
6*
7* Copyright (c) 2002-2010 VIA Telecom, Inc. All rights reserved.
8*
9*************************************************************/
10/*************************************************************************
11 *
12 * File Name: 7074api.h
13 * Project: NSPE stack
14 *
15 * Original Author: Steve Pye
16 * Creation Date: July 10, 1998
17 *
18 * Description: Header file for 7074api.c
19 * Restrictions:
20 * Dependencies:
21 *
22 *************************************************************************
23 *
24 * This Software is the property of ISOTEL Research Ltd.
25 * Unauthorized use is prohibited.
26 *
27 * ISOTEL Research Ltd.
28 * Suite 340, 525 - 28th Street S.E.
29 * Calgary, Alberta, Canada T2A 6W9
30 * Tel: (403)275-0041 Fax: (403)274-3598
31 *
32 *
33 ************************************************************************/
34
35#ifndef _7074API_H_
36#define _7074API_H_ 1
37
38#include "USER_API.H"
39#include "kal_public_defs.h"
40#include "kal_public_api.h"
41
42/* Connect Status/Disconnect Reasons */
43#define IS707_CONNECT_SUCCESS 0
44#define IS707_CONNECT_FAIL_TCP 1
45#define IS707_CONNECT_FAIL_PPP 2
46#define IS707_CONNECT_FAIL_RLP 3
47#define IS707_CONNECT_FAIL_UART 4
48#define IS707_DISCONNECT_NORMAL 5
49#define IS707_CONNECTING_MIP 20
50#define IS707_DISCONNECTING_MIP 21
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56typedef enum
57{
58 CONN_FAIL_UNUSED = 0,
59 CONN_FAIL_PPP_AUTH_FAIL = 6,
60 CONN_FAIL_MIP_PPP_LCP_TMO,
61 CONN_FAIL_MIP_PPP_NCP_TMO,
62 CONN_FAIL_SIP_PPP_LCP_TMO,
63 CONN_FAIL_SIP_PPP_NCP_TMO,
64 CONN_FAIL_MIP_PPP_OPT_MISMATCH,
65 CONN_FAIL_SIP_PPP_OPT_MISMATCH,
66 CONN_FAIL_MIP_SOL_TMO,
67 CONN_FAIL_MIP_RRQ_TMO,
68 CONN_FAIL_MIP_RRP_ERR,
69 CONN_FAIL_MIP_LCP_FAIL,
70 CONN_FAIL_SIP_LCP_FAIL,
71 CONN_FAIL_MIP_NCP_FAIL,
72 CONN_FAIL_SIP_NCP_FAIL,
73 CONN_FAIL_PPP_A12_AUTH_FAIL,
74 CONN_FAIL_PPP_EAP_AKA_AUTH_FAIL,
75 CONN_FAIL_MIP_ADMIN_PROHIB_FAIL,
76 CONN_FAIL_MULTI_TCH_FAIL,
77 CONN_FAIL_PPP_A12_LCP_TMO,
78
79 /*the code from 64 to 144 have been token as MIP Error codes*/
80 /*GTR-DATA-SPEC*/
81 CONN_FAIL_MIP_UNSPECIFIED = 64,
82 CONN_FAIL_MIP_ADMIN_PROHIBITED = 65,
83 CONN_FAIL_MIP_INSUFF_RESOURCES_1 = 66,
84 CONN_FAIL_MIP_MN_FAILED_AUTH = 67,
85 CONN_FAIL_MIP_HA_FAILED_AUTH = 68,
86 CONN_FAIL_MIP_LIFETIME_TOO_LONG = 69,
87 CONN_FAIL_MIP_POORLY_FORMED_REQ = 70,
88 CONN_FAIL_MIP_POORLY_FORMED_REPLY = 71,
89 CONN_FAIL_MIP_ENCAP_UNAVAIL = 72,
90 CONN_FAIL_MIP_RESERVED_UNAVAIL = 73,
91 CONN_FAIL_MIP_REV_TUN_UNAVAIL = 74,
92 CONN_FAIL_MIP_RT_N_T_NOT_SET = 75,
93 CONN_FAIL_MIP_MN_TOO_DISTANT = 76,
94 CONN_FAIL_MIP_INVALID_CARE_OF_ADDR = 77,
95 CONN_FAIL_MIP_REG_TIMEOUT = 78,
96 CONN_FAIL_MIP_DS_NOT_SUPPORT = 79,
97 CONN_FAIL_MIP_HN_UNREACHABLE = 80,
98 CONN_FAIL_MIP_HA_HOST_UNREACHABLE = 81,
99 CONN_FAIL_MIP_HA_PORT_UNREACHABLE = 82,
100 CONN_FAIL_MIP_HA_UNREACHABLE = 88,
101 CONN_FAIL_MIP_VENDOR_SPECIFIC = 89,
102 CONN_FAIL_MIP_NONZERO_HA_ADDR = 90,
103 CONN_FAIL_MIP_NONZERO_HOME_ADDR = 96,
104 CONN_FAIL_MIP_MISSING_NAI = 97,
105 CONN_FAIL_MIP_MISSING_HA = 98,
106 CONN_FAIL_MIP_MISSING_HOME_ADDR = 99,
107 CONN_FAIL_MIP_UNKNOWN_CHALL = 104,
108 CONN_FAIL_MIP_MISSING_CHALL = 105,
109 CONN_FAIL_MIP_STALE_CHALL = 106,
110 CONN_FAIL_MIP_MISSING_MN_FA = 107,
111 CONN_FAIL_MIP_REASON_UNSPEC = 128,
112 CONN_FAIL_MIP_ADMIN_PROHIB = 129,
113 CONN_FAIL_MIP_INSUFF_RESOURCES_2 = 130,
114 CONN_FAIL_MIP_MN_FAILED_AUTH_2 = 131,
115 CONN_FAIL_MIP_FA_FAILED_AUTH = 132,
116 CONN_FAIL_MIP_IDENT_MISMATCH = 133,
117 CONN_FAIL_MIP_POORLY_FORMED_REQ_2 = 134,
118 CONN_FAIL_MIP_TOO_MANY_BINDINGS = 135,
119 CONN_FAIL_MIP_UNKNOWN_HA_ADDR = 136,
120 CONN_FAIL_MIP_REV_TUNNEL_UNAVAIL = 137,
121 CONN_FAIL_MIP_RT_N_T_NOT_SET_2 = 138,
122 CONN_FAIL_MIP_ENCAPSULATION_UNAVAIL = 139,
123 CONN_FAIL_MIP_REG_WITH_REDIRECTED = 143,
124 CONN_FAIL_MIP_ERR_CODE_FROM_HOME = 144
125}ConnFailReasonT;
126
127/* Async App -> Browser Control/Bottom of PPP functions for Browser Mode */
128void is7074HDLCPacketRxd( kal_uint8 *data, kal_uint16 size );
129void is7074AppIntEndConnection( kal_bool graceful );
130void is7074AppIntTxReq( kal_uint8 *data, kal_uint16 size, kal_bool push, kal_uint8 sap );
131void is7074AppIntRxRsp( kal_uint8 sap );
132void is7074BrowserSendDatagram( kal_uint8 sap, SendToRequest *s );
133void is7074BrowserRxRsp(kal_uint8 sap);
134
135/* RLP -> Bottom of PPP functions in all modes */
136void is7074RlpTxComplete( kal_bool rlp_channel );
137void is7074RlpHDLCPacketRxd( kal_uint8 app, kal_uint8 *data, kal_uint16 size );
138
139/* UART -> Bottom of PPP via the UART during Packet mode */
140void is7074UartHDLCPacketRxd( kal_uint8 *data, kal_uint16 size );
141
142/* 'IP or CLNP' -> Top of PPP (and then UART) functions for Packet Mode */
143void is7074RmPppConnect( kal_uint32 local_ip, kal_uint32 remote_ip );
144void is7074RmConnectStatus(kal_uint8 status);
145
146#ifdef PPP_RECONNECT
147void is7074RmPppReConnect( void );
148void is7074UmPppReConnect( kal_uint16 port);
149#endif
150
151/* TCP browser -> top of TCP/IP/PPP stack */
152void is7074TcpbEndConnection( kal_bool graceful );
153void is7074TcpbSendDataReq( kal_uint8 *data, kal_uint16 size, kal_bool push, kal_uint8 sap );
154void is7074TcpbRecvDataRsp( kal_uint8 sapRsp );
155
156kal_int16 is7074SocketCreate(kal_bool TcpType, kal_uint8 *sap);
157kal_int16 is7074SocketClose(kal_uint8 sap, kal_bool graceful);
158kal_int16 is7074SocketBind(kal_uint8 sap, kal_uint32 ipAddr, kal_uint16 port, kal_bool FromApp);
159void is7074SocketConnect(kal_uint8 sap, kal_bool passive, kal_uint32 ipAddr, kal_uint16 port);
160kal_int16 is7074SocketListen(kal_uint8 sap, kal_uint8 listenSap);
161kal_int16 is7074SocketOptionSet(kal_uint8 sap, kal_uint8 opt_type, kal_uint16 size);
162kal_int16 is7074SocketShutDown(kal_uint8 sap, kal_uint8 shutdown);
163kal_int16 is7074SocketSetLinger(kal_uint8 sap, kal_bool lingerOnoff, kal_uint32 lingerTime);
164
165/* Mobile IP */
166void is7074MipRrpRsp( kal_uint8 MipState, kal_bool deRegPassed );
167void is7074MipAgentAdvRsp( void );
168kal_bool is7074MipRrq(kal_uint32 srcIp, kal_uint32 dstIp, kal_uint16 srcPort, kal_uint16 dstPort, kal_uint16 len, kal_uint8* data);
169void is7074MipAgentSol(kal_uint32 srcIp, kal_uint32 dstIp, kal_uint16 len, kal_uint8* data );
170void is7074MipIpAddr(kal_uint32 LocalIp, kal_uint32 RemoteIp);
171void is7074MipIpInitAddr(kal_uint32 LocalIp, kal_uint32 RemoteIp);
172void is7074MipUmPppStatus( kal_uint8 status,kal_uint32 local_ip, kal_uint32 remote_ip );
173void is7074Md5(kal_uint8 *data, kal_uint16 dataLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *digest);
174void is7074Md5MIPCHAP(kal_uint8 *data, kal_uint16 dataLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *chal, kal_uint16 chalLen, kal_uint8 *digest);
175void is7074Md5SIPCHAP(kal_uint8 *id, kal_uint16 idLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *chal, kal_uint16 chalLen, kal_uint8 *digest);
176void is7074MipDMUVersionSet(kal_uint8 nDMUV);
177kal_uint8 is7074MipDMUVersionGet(void);
178void is7074MipPreferModeSet(kal_uint8 nMipPreferMode);
179kal_uint8 is7074MipPreferModeGet(void);
180void is7074MipConnFail (void);
181kal_bool HlpCheckAgpsData(kal_uint8 *IpData,kal_bool bMip);
182kal_uint8 HlpGetInternetPdnId(void);
183kal_bool is7074AppSendUdpPkt(kal_uint32 srcIp, kal_uint32 dstIp,
184 kal_uint16 srcPort, kal_uint16 dstPort,
185 kal_uint16 len, kal_uint8* data,kal_uint8 UdpSap);
186#ifdef CBP7_EHRPD
187kal_int16 is7074AppSendUdp4PppPkt(kal_uint32 srcIp, kal_uint32 dstIp,
188 kal_uint16 srcPort, kal_uint16 dstPort,
189 kal_uint16 len, kal_uint8* data,kal_uint8 UdpSap, kal_uint8 PdnId);
190#endif
191
192void is707_connect_lcp( kal_uint8 app );
193void is707_set_ppp_addr( kal_uint8 app, kal_uint32 local_ip, kal_uint32 remote_ip );
194
195#ifdef __cplusplus
196}
197#endif
198
199#endif /* _7074API_H_ */