netsetting_if.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. #ifndef _NET_INTERFACE_H_
  2. #define _NET_INTERFACE_H_
  3. #include "types.h"
  4. typedef struct _mid_nwsi_ipv4_addr_t_{
  5. UINT8 A;
  6. UINT8 B;
  7. UINT8 C;
  8. UINT8 D;
  9. }MID_NWSI_IPv4_Addr_t;
  10. typedef struct _mid_nwsi_mac_addr_t_{
  11. UINT8 A;
  12. UINT8 B;
  13. UINT8 C;
  14. UINT8 D;
  15. UINT8 E;
  16. UINT8 F;
  17. }MID_NWSI_MAC_Addr_t;
  18. typedef enum{
  19. E_MID_NWSI_CONNECT_TYPE_NONE ,
  20. E_MID_NWSI_CONNECT_TYPE_ETHERNET ,
  21. E_MID_NWSI_CONNECT_TYPE_WIRELESS,
  22. E_MID_NWSI_CONNECT_TYPE_4G,
  23. E_MID_NWSI_CONNECT_TYPE_END ,
  24. }E_MID_NWSI_CONNECT_TYPE;
  25. typedef enum{
  26. E_MID_NWSI_IP_TYPE_NONE,
  27. E_MID_NWSI_IP_TYPE_MANUAL, //static ip
  28. E_MID_NWSI_IP_TYPE_AUTO, //DHCP
  29. E_MID_NWSI_IP_TYPE_END,
  30. }E_MID_NWSI_IP_TYPE;
  31. #define PPPoE_ACCOUNT_NAME_LENGTH 50
  32. #define PPPoE_PASSWORD_NAME_LENGTH 20
  33. typedef struct _mid_nwsi_pppoe_account_data_t_{
  34. INT8 account[PPPoE_ACCOUNT_NAME_LENGTH];
  35. INT8 pwd[PPPoE_PASSWORD_NAME_LENGTH];
  36. }MID_NWSI_PPPOE_Account_Data_t;
  37. //wireless
  38. typedef enum {
  39. E_MID_NWSI_WLAN_SCAN_STATE_IDLE,
  40. E_MID_NWSI_WLAN_SCAN_STATE_SCANNING,
  41. E_MID_NWSI_WLAN_SCAN_STATE_EXCEPTION,
  42. }E_MID_NWSI_WLAN_SCAN_STATE;
  43. typedef enum {
  44. E_MID_NWSI_WLAN_CONNECT_STATE_OFF,
  45. E_MID_NWSI_WLAN_CONNECT_STATE_ON,
  46. E_MID_NWSI_WLAN_CONNECT_STATE_ING,
  47. E_MID_NWSI_WLAN_CONNECT_STATE_EXCEPTION,
  48. }E_MID_NWSI_WLAN_CONNECT_STATE;
  49. typedef enum {
  50. E_MID_NWSI_ENCRYPTIONTYPE_OFF = 0,
  51. E_MID_NWSI_ENCRYPTIONTYPE_WEP = 0x1,
  52. E_MID_NWSI_ENCRYPTIONTYPE_WPA = 0x2,
  53. E_MID_NWSI_ENCRYPTIONTYPE_WPA2 = 0x4,
  54. }E_MID_NWSI_ENCRYPTIONTYPE;
  55. typedef enum {
  56. E_MID_NWSI_FTPFILETYPE_VIDEO_FILE = 0,
  57. E_MID_NWSI_FTPFILETYPE_FILE_VERSION = 0x1,
  58. }E_MID_NWSI_FTPFILETYPE;
  59. typedef struct _mid_nwsi_apdata_t_
  60. {
  61. INT8 APName[64]; // SSID - 172.156.XXX.XXX- ssid max length :32bytes
  62. UINT8 APChannel;
  63. INT8 APQuality; // signal quality<=100
  64. UINT8 APEncryption; // Type : WEP , WPA , WPA2 , or No encryption
  65. MID_NWSI_MAC_Addr_t APMAC; // BSSID - XX.XX.XX.XX.XX.XX (X: 0~F)
  66. }MID_NWSI_APData_t;
  67. typedef struct _mid_nwsi_ap_node_t_{
  68. MID_NWSI_APData_t *data;
  69. struct _mid_nwsi_ap_node_t_ *prev;
  70. struct _mid_nwsi_ap_node_t_ *next;
  71. UINT8 state; //for list's internal used
  72. }MID_NWSI_APNode_t;
  73. typedef struct _mid_nwsi_aplist_t_{
  74. MID_NWSI_APNode_t head;
  75. MID_NWSI_APNode_t tail;
  76. INT32 apNum;
  77. }MID_NWSI_APList_t;
  78. typedef struct _mid_nwsi_wlaninfo_t_{ //for app_frmk use
  79. INT32 APTotalNum;
  80. MID_NWSI_APData_t *apdatalist;
  81. }MID_NWSI_WLANINFO_t;
  82. //callback enum - notice status & get paramters
  83. typedef enum _e_mid_net_setting_callback_type_ {
  84. E_MID_NWSI_REPORT_WLAN_AP_ScanStart,
  85. E_MID_NWSI_REPORT_WLAN_AP_ScanStop,
  86. E_MID_NWSI_REPORT_WLAN_AP_ListUpdate,
  87. E_MID_NWSI_REPORT_WLAN_DEVICE_DISABLED,
  88. E_MID_NWSI_REPORT_WLAN_DEVICE_ENABLED,
  89. }E_MID_NWSI_REPORT_TYPE;
  90. typedef enum {
  91. E_MID_NWSI_AP_STATE_NOT_EXIST,
  92. E_MID_NWSI_AP_STATE_OLD,
  93. E_MID_NWSI_AP_STATE_NEW,
  94. }E_MID_NWSI_AP_STATE;
  95. typedef enum {
  96. E_MID_NWSI_INTERFACE_P2P0,
  97. E_MID_NWSI_INTERFACE_WLAN1,
  98. }E_MID_NWSI_INTERFACE;
  99. typedef enum
  100. {
  101. Dongle_None = 0,
  102. Dongle_MTK_7601,
  103. Dongle_RTK_8188FTV,
  104. Dongle_RTK_8188EU,
  105. Dongle_RTK_8723BU,
  106. Dongle_RTK_8723DU,
  107. Dongle_RTK_8733BU,
  108. Dongle_RDA_5995,
  109. Dongle_ATBM_6032,
  110. Dongle_ATBM_6132,
  111. Dongle_AIC_8800,
  112. Dongle_Max,
  113. } Dongle_e;
  114. typedef struct
  115. {
  116. Dongle_e eDongle;
  117. char *P2PName;
  118. char *eVidInfo;
  119. char *ePidInfo;
  120. char *pKoName;
  121. char *pDongleOutputString;
  122. } Dongle_Format_t;
  123. /*
  124. * Make it easy for customers to add new wifi dongles
  125. * The order in "g_DongleMap" must be the same as the order in "Dongle_e"
  126. * parameter eDongle: Which Dongle to use
  127. * parameter eVidInfo/ePidInfo: dongle info, "cat /proc/usbinfo" can get this information
  128. * parameter pDongleOutputString: print message only
  129. */
  130. static const Dongle_Format_t g_DongleMap[Dongle_Max] =
  131. {
  132. {Dongle_None, "null", "null", "null", "null", "null"},
  133. {Dongle_MTK_7601, "p2p0", "148f", "7601", "mt7601Usta", "MTK_7601"},
  134. {Dongle_RTK_8188FTV,"wlan1", "0bda", "f179", "8188fu", "RTK_8188FTV"},
  135. {Dongle_RTK_8188EU, "wlan1", "0bda", "0179", "8188eu", "RTK_8188EU"},
  136. {Dongle_RTK_8723BU, "wlan1", "0bda", "b720", "8723bu", "RTK_8723BU"},
  137. {Dongle_RTK_8723DU, "wlan1", "0bda", "d723", "8723du", "RTK_8723DU"},
  138. {Dongle_RTK_8733BU, "wlan1", "0bda", "b733|f72b", "8733bu", "RTK_8733BU"},
  139. {Dongle_RDA_5995, "p2p0", "1e04", "8888", "rdawfmac", "RDA_5995"},
  140. {Dongle_ATBM_6032, "p2p0", "007a", "8888", "atbm_wifi", "ATBM_6032"},
  141. {Dongle_ATBM_6132, "p2p0", "007a", "8890", "atbm_wifi", "ATBM_6132"},
  142. {Dongle_AIC_8800, "p2p0", "a69c", "880", "aic8800_fdrv", "AIC8800"},
  143. };
  144. #if defined(CONFIG_SUPPORT_MULTI_DONGLE)
  145. #define WIFI_DONGLE Dongle_Max
  146. #elif defined(CONFIG_SUPPORT_NORMAL_MTK7601)
  147. #define WIFI_DONGLE Dongle_MTK_7601
  148. #elif defined(CONFIG_SUPPORT_RDA5995)
  149. #define WIFI_DONGLE Dongle_RDA_5995
  150. #elif defined(CONFIG_SUPPORT_RTL8188)
  151. #define WIFI_DONGLE Dongle_RTK_8188EU
  152. #elif defined(CONFIG_SUPPORT_RTL8188FTV)
  153. #define WIFI_DONGLE Dongle_RTK_8188FTV
  154. #elif defined(CONFIG_SUPPORT_RTL8723BU)
  155. #define WIFI_DONGLE Dongle_RTK_8723BU
  156. #elif defined(CONFIG_SUPPORT_RTL8723DU)
  157. #define WIFI_DONGLE Dongle_RTK_8723DU
  158. #elif defined(CONFIG_SUPPORT_RTL8733BU)
  159. #define WIFI_DONGLE Dongle_RTK_8733BU
  160. #elif defined(CONFIG_SUPPORT_ATBM6023)
  161. #define WIFI_DONGLE Dongle_ATBM_6032
  162. #elif defined(CONFIG_SUPPORT_ATBM6132)
  163. #define WIFI_DONGLE Dongle_ATBM_6132
  164. #elif defined(CONFIG_SUPPORT_AIC8800)
  165. #define WIFI_DONGLE Dongle_AIC_8800
  166. #endif
  167. typedef INT32 (*MID_NWSI_CallBack)(E_MID_NWSI_REPORT_TYPE type, void *pParam);
  168. //IP
  169. INT32 MID_NWSI_SetIP(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t addr);
  170. INT32 MID_NWSI_GetIP(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t *paddr);
  171. //Netmask
  172. INT32 MID_NWSI_SetNetmask(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t addr);
  173. INT32 MID_NWSI_GetNetmask(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t *paddr);
  174. //Gateway
  175. INT32 MID_NWSI_SetGateway(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t addr);
  176. INT32 MID_NWSI_GetGateway(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t *paddr);
  177. //DNS
  178. INT32 MID_NWSI_SetDNS(MID_NWSI_IPv4_Addr_t dns1, MID_NWSI_IPv4_Addr_t dns2);
  179. INT32 MID_NWSI_GetDNS(MID_NWSI_IPv4_Addr_t *dns1, MID_NWSI_IPv4_Addr_t *dns2);
  180. //MTU
  181. INT32 MID_NWSI_GetMTU(E_MID_NWSI_CONNECT_TYPE type);
  182. //MAC
  183. INT32 MID_NWSI_GetMAC(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_MAC_Addr_t *pmac);
  184. //PPPoE
  185. INT32 MID_NWSI_SetPPPoEAccount(MID_NWSI_PPPOE_Account_Data_t data);
  186. INT32 MID_NWSI_ConnectPPPoE(BOOL bConnect);
  187. //DHCP
  188. INT32 MID_NWSI_StopDHCP(void);
  189. INT32 MID_NWSI_SetDHCP(E_MID_NWSI_CONNECT_TYPE type);
  190. INT32 MID_NWSI_Init(void);
  191. INT32 MID_NWSI_ScanWifiAP(BOOL *bAPListUpdate);
  192. INT32 MID_NWSI_ScanP2PAP(BOOL *bAPListUpdate, E_MID_NWSI_INTERFACE Interface);
  193. //wireless
  194. Dongle_e MID_NWSI_WLAN_CheckWifiDongle();
  195. Dongle_e MID_NWSI_WLAN_GetWifiDongle();
  196. void MID_NWSI_WLAN_InsertWifiModule(Dongle_e Dongle_Select);
  197. void MID_NWSI_WLAN_RemoveWifiModule(Dongle_e Dongle_Select);
  198. INT32 MID_NWSI_WLAN_WiFiEnable(UINT8 bEnable);
  199. BOOL MID_NWSI_WLAN_IsDevExistence(void);
  200. INT32 MID_NWSI_WLAN_Disconnect(void);
  201. MID_NWSI_WLANINFO_t *MID_NWSI_WLAN_GetAPList(void); //for application to get ap list
  202. INT32 MID_NWSI_WLAN_ConnectSelectedAP(MID_NWSI_APData_t *pAPData, UINT8 keylen, INT8 *pKey);
  203. void MID_NWSI_DisableConnectMode(void);
  204. void MID_NWSI_EnableConnectMode(void);
  205. void MID_NWSI_SetConnectMode(E_MID_NWSI_CONNECT_TYPE type);
  206. INT32 MID_NWSI_GetConnectMode(void);
  207. void MID_NWSI_RegisterCB(MID_NWSI_CallBack pfCB);
  208. void MID_NWSI_UnRegisterCB(void);
  209. void MID_NWSI_Destory(void);
  210. UINT8 MID_NWSI_WLAN_GetAPState(void);
  211. BOOL MID_NWSI_IFStatus(void);
  212. void MID_NWSI_WLAN_ScanAP();
  213. BOOL MID_NWSI_P2P_ScanAP(E_MID_NWSI_INTERFACE Interface);
  214. BOOL MID_FTP_Get(E_MID_NWSI_FTPFILETYPE FILE_TYPE);
  215. BOOL MID_FTP_Ver_Check(void);
  216. UINT8 MID_NWSI_WLAN_GetAPState(void);
  217. void MID_NWSI_SetWPAPid(INT32 pid);
  218. INT32 MID_NWSI_GetWPAPid(void);
  219. UINT32 _MID_NWSI_Find_Id_(INT8 *path);
  220. INT32 _MID_NWSI_Check_File_Exist_(INT8 *fname);
  221. INT8 _MID_NWSI_Parse_String_MAC_(INT8 *pStr, MID_NWSI_MAC_Addr_t *pMac);
  222. #endif