rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame^] | 1 | /************************************************************* |
| 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 |
| 53 | extern "C" { |
| 54 | #endif |
| 55 | |
| 56 | typedef 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 */ |
| 128 | void is7074HDLCPacketRxd( kal_uint8 *data, kal_uint16 size ); |
| 129 | void is7074AppIntEndConnection( kal_bool graceful ); |
| 130 | void is7074AppIntTxReq( kal_uint8 *data, kal_uint16 size, kal_bool push, kal_uint8 sap ); |
| 131 | void is7074AppIntRxRsp( kal_uint8 sap ); |
| 132 | void is7074BrowserSendDatagram( kal_uint8 sap, SendToRequest *s ); |
| 133 | void is7074BrowserRxRsp(kal_uint8 sap); |
| 134 | |
| 135 | /* RLP -> Bottom of PPP functions in all modes */ |
| 136 | void is7074RlpTxComplete( kal_bool rlp_channel ); |
| 137 | void is7074RlpHDLCPacketRxd( kal_uint8 app, kal_uint8 *data, kal_uint16 size ); |
| 138 | |
| 139 | /* UART -> Bottom of PPP via the UART during Packet mode */ |
| 140 | void is7074UartHDLCPacketRxd( kal_uint8 *data, kal_uint16 size ); |
| 141 | |
| 142 | /* 'IP or CLNP' -> Top of PPP (and then UART) functions for Packet Mode */ |
| 143 | void is7074RmPppConnect( kal_uint32 local_ip, kal_uint32 remote_ip ); |
| 144 | void is7074RmConnectStatus(kal_uint8 status); |
| 145 | |
| 146 | #ifdef PPP_RECONNECT |
| 147 | void is7074RmPppReConnect( void ); |
| 148 | void is7074UmPppReConnect( kal_uint16 port); |
| 149 | #endif |
| 150 | |
| 151 | /* TCP browser -> top of TCP/IP/PPP stack */ |
| 152 | void is7074TcpbEndConnection( kal_bool graceful ); |
| 153 | void is7074TcpbSendDataReq( kal_uint8 *data, kal_uint16 size, kal_bool push, kal_uint8 sap ); |
| 154 | void is7074TcpbRecvDataRsp( kal_uint8 sapRsp ); |
| 155 | |
| 156 | kal_int16 is7074SocketCreate(kal_bool TcpType, kal_uint8 *sap); |
| 157 | kal_int16 is7074SocketClose(kal_uint8 sap, kal_bool graceful); |
| 158 | kal_int16 is7074SocketBind(kal_uint8 sap, kal_uint32 ipAddr, kal_uint16 port, kal_bool FromApp); |
| 159 | void is7074SocketConnect(kal_uint8 sap, kal_bool passive, kal_uint32 ipAddr, kal_uint16 port); |
| 160 | kal_int16 is7074SocketListen(kal_uint8 sap, kal_uint8 listenSap); |
| 161 | kal_int16 is7074SocketOptionSet(kal_uint8 sap, kal_uint8 opt_type, kal_uint16 size); |
| 162 | kal_int16 is7074SocketShutDown(kal_uint8 sap, kal_uint8 shutdown); |
| 163 | kal_int16 is7074SocketSetLinger(kal_uint8 sap, kal_bool lingerOnoff, kal_uint32 lingerTime); |
| 164 | |
| 165 | /* Mobile IP */ |
| 166 | void is7074MipRrpRsp( kal_uint8 MipState, kal_bool deRegPassed ); |
| 167 | void is7074MipAgentAdvRsp( void ); |
| 168 | kal_bool is7074MipRrq(kal_uint32 srcIp, kal_uint32 dstIp, kal_uint16 srcPort, kal_uint16 dstPort, kal_uint16 len, kal_uint8* data); |
| 169 | void is7074MipAgentSol(kal_uint32 srcIp, kal_uint32 dstIp, kal_uint16 len, kal_uint8* data ); |
| 170 | void is7074MipIpAddr(kal_uint32 LocalIp, kal_uint32 RemoteIp); |
| 171 | void is7074MipIpInitAddr(kal_uint32 LocalIp, kal_uint32 RemoteIp); |
| 172 | void is7074MipUmPppStatus( kal_uint8 status,kal_uint32 local_ip, kal_uint32 remote_ip ); |
| 173 | void is7074Md5(kal_uint8 *data, kal_uint16 dataLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *digest); |
| 174 | void is7074Md5MIPCHAP(kal_uint8 *data, kal_uint16 dataLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *chal, kal_uint16 chalLen, kal_uint8 *digest); |
| 175 | void is7074Md5SIPCHAP(kal_uint8 *id, kal_uint16 idLen, kal_uint8 *key, kal_uint16 keyLen, kal_uint8 *chal, kal_uint16 chalLen, kal_uint8 *digest); |
| 176 | void is7074MipDMUVersionSet(kal_uint8 nDMUV); |
| 177 | kal_uint8 is7074MipDMUVersionGet(void); |
| 178 | void is7074MipPreferModeSet(kal_uint8 nMipPreferMode); |
| 179 | kal_uint8 is7074MipPreferModeGet(void); |
| 180 | void is7074MipConnFail (void); |
| 181 | kal_bool HlpCheckAgpsData(kal_uint8 *IpData,kal_bool bMip); |
| 182 | kal_uint8 HlpGetInternetPdnId(void); |
| 183 | kal_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 |
| 187 | kal_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 | |
| 192 | void is707_connect_lcp( kal_uint8 app ); |
| 193 | void 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_ */ |