#ifndef _NET_INTERFACE_H_ #define _NET_INTERFACE_H_ #include "types.h" typedef struct _mid_nwsi_ipv4_addr_t_{ UINT8 A; UINT8 B; UINT8 C; UINT8 D; }MID_NWSI_IPv4_Addr_t; typedef struct _mid_nwsi_mac_addr_t_{ UINT8 A; UINT8 B; UINT8 C; UINT8 D; UINT8 E; UINT8 F; }MID_NWSI_MAC_Addr_t; typedef enum{ E_MID_NWSI_CONNECT_TYPE_NONE , E_MID_NWSI_CONNECT_TYPE_ETHERNET , E_MID_NWSI_CONNECT_TYPE_WIRELESS, E_MID_NWSI_CONNECT_TYPE_4G, E_MID_NWSI_CONNECT_TYPE_END , }E_MID_NWSI_CONNECT_TYPE; typedef enum{ E_MID_NWSI_IP_TYPE_NONE, E_MID_NWSI_IP_TYPE_MANUAL, //static ip E_MID_NWSI_IP_TYPE_AUTO, //DHCP E_MID_NWSI_IP_TYPE_END, }E_MID_NWSI_IP_TYPE; #define PPPoE_ACCOUNT_NAME_LENGTH 50 #define PPPoE_PASSWORD_NAME_LENGTH 20 typedef struct _mid_nwsi_pppoe_account_data_t_{ INT8 account[PPPoE_ACCOUNT_NAME_LENGTH]; INT8 pwd[PPPoE_PASSWORD_NAME_LENGTH]; }MID_NWSI_PPPOE_Account_Data_t; //wireless typedef enum { E_MID_NWSI_WLAN_SCAN_STATE_IDLE, E_MID_NWSI_WLAN_SCAN_STATE_SCANNING, E_MID_NWSI_WLAN_SCAN_STATE_EXCEPTION, }E_MID_NWSI_WLAN_SCAN_STATE; typedef enum { E_MID_NWSI_WLAN_CONNECT_STATE_OFF, E_MID_NWSI_WLAN_CONNECT_STATE_ON, E_MID_NWSI_WLAN_CONNECT_STATE_ING, E_MID_NWSI_WLAN_CONNECT_STATE_EXCEPTION, }E_MID_NWSI_WLAN_CONNECT_STATE; typedef enum { E_MID_NWSI_ENCRYPTIONTYPE_OFF = 0, E_MID_NWSI_ENCRYPTIONTYPE_WEP = 0x1, E_MID_NWSI_ENCRYPTIONTYPE_WPA = 0x2, E_MID_NWSI_ENCRYPTIONTYPE_WPA2 = 0x4, }E_MID_NWSI_ENCRYPTIONTYPE; typedef enum { E_MID_NWSI_FTPFILETYPE_VIDEO_FILE = 0, E_MID_NWSI_FTPFILETYPE_FILE_VERSION = 0x1, }E_MID_NWSI_FTPFILETYPE; typedef struct _mid_nwsi_apdata_t_ { INT8 APName[64]; // SSID - 172.156.XXX.XXX- ssid max length :32bytes UINT8 APChannel; INT8 APQuality; // signal quality<=100 UINT8 APEncryption; // Type : WEP , WPA , WPA2 , or No encryption MID_NWSI_MAC_Addr_t APMAC; // BSSID - XX.XX.XX.XX.XX.XX (X: 0~F) }MID_NWSI_APData_t; typedef struct _mid_nwsi_ap_node_t_{ MID_NWSI_APData_t *data; struct _mid_nwsi_ap_node_t_ *prev; struct _mid_nwsi_ap_node_t_ *next; UINT8 state; //for list's internal used }MID_NWSI_APNode_t; typedef struct _mid_nwsi_aplist_t_{ MID_NWSI_APNode_t head; MID_NWSI_APNode_t tail; INT32 apNum; }MID_NWSI_APList_t; typedef struct _mid_nwsi_wlaninfo_t_{ //for app_frmk use INT32 APTotalNum; MID_NWSI_APData_t *apdatalist; }MID_NWSI_WLANINFO_t; //callback enum - notice status & get paramters typedef enum _e_mid_net_setting_callback_type_ { E_MID_NWSI_REPORT_WLAN_AP_ScanStart, E_MID_NWSI_REPORT_WLAN_AP_ScanStop, E_MID_NWSI_REPORT_WLAN_AP_ListUpdate, E_MID_NWSI_REPORT_WLAN_DEVICE_DISABLED, E_MID_NWSI_REPORT_WLAN_DEVICE_ENABLED, }E_MID_NWSI_REPORT_TYPE; typedef enum { E_MID_NWSI_AP_STATE_NOT_EXIST, E_MID_NWSI_AP_STATE_OLD, E_MID_NWSI_AP_STATE_NEW, }E_MID_NWSI_AP_STATE; typedef enum { E_MID_NWSI_INTERFACE_P2P0, E_MID_NWSI_INTERFACE_WLAN1, }E_MID_NWSI_INTERFACE; typedef enum { Dongle_None = 0, Dongle_MTK_7601, Dongle_RTK_8188FTV, Dongle_RTK_8188EU, Dongle_RTK_8723BU, Dongle_RTK_8723DU, Dongle_RTK_8733BU, Dongle_RDA_5995, Dongle_ATBM_6032, Dongle_ATBM_6132, Dongle_AIC_8800, Dongle_Max, } Dongle_e; typedef struct { Dongle_e eDongle; char *P2PName; char *eVidInfo; char *ePidInfo; char *pKoName; char *pDongleOutputString; } Dongle_Format_t; /* * Make it easy for customers to add new wifi dongles * The order in "g_DongleMap" must be the same as the order in "Dongle_e" * parameter eDongle: Which Dongle to use * parameter eVidInfo/ePidInfo: dongle info, "cat /proc/usbinfo" can get this information * parameter pDongleOutputString: print message only */ static const Dongle_Format_t g_DongleMap[Dongle_Max] = { {Dongle_None, "null", "null", "null", "null", "null"}, {Dongle_MTK_7601, "p2p0", "148f", "7601", "mt7601Usta", "MTK_7601"}, {Dongle_RTK_8188FTV,"wlan1", "0bda", "f179", "8188fu", "RTK_8188FTV"}, {Dongle_RTK_8188EU, "wlan1", "0bda", "0179", "8188eu", "RTK_8188EU"}, {Dongle_RTK_8723BU, "wlan1", "0bda", "b720", "8723bu", "RTK_8723BU"}, {Dongle_RTK_8723DU, "wlan1", "0bda", "d723", "8723du", "RTK_8723DU"}, {Dongle_RTK_8733BU, "wlan1", "0bda", "b733|f72b", "8733bu", "RTK_8733BU"}, {Dongle_RDA_5995, "p2p0", "1e04", "8888", "rdawfmac", "RDA_5995"}, {Dongle_ATBM_6032, "p2p0", "007a", "8888", "atbm_wifi", "ATBM_6032"}, {Dongle_ATBM_6132, "p2p0", "007a", "8890", "atbm_wifi", "ATBM_6132"}, {Dongle_AIC_8800, "p2p0", "a69c", "880", "aic8800_fdrv", "AIC8800"}, }; #if defined(CONFIG_SUPPORT_MULTI_DONGLE) #define WIFI_DONGLE Dongle_Max #elif defined(CONFIG_SUPPORT_NORMAL_MTK7601) #define WIFI_DONGLE Dongle_MTK_7601 #elif defined(CONFIG_SUPPORT_RDA5995) #define WIFI_DONGLE Dongle_RDA_5995 #elif defined(CONFIG_SUPPORT_RTL8188) #define WIFI_DONGLE Dongle_RTK_8188EU #elif defined(CONFIG_SUPPORT_RTL8188FTV) #define WIFI_DONGLE Dongle_RTK_8188FTV #elif defined(CONFIG_SUPPORT_RTL8723BU) #define WIFI_DONGLE Dongle_RTK_8723BU #elif defined(CONFIG_SUPPORT_RTL8723DU) #define WIFI_DONGLE Dongle_RTK_8723DU #elif defined(CONFIG_SUPPORT_RTL8733BU) #define WIFI_DONGLE Dongle_RTK_8733BU #elif defined(CONFIG_SUPPORT_ATBM6023) #define WIFI_DONGLE Dongle_ATBM_6032 #elif defined(CONFIG_SUPPORT_ATBM6132) #define WIFI_DONGLE Dongle_ATBM_6132 #elif defined(CONFIG_SUPPORT_AIC8800) #define WIFI_DONGLE Dongle_AIC_8800 #endif typedef INT32 (*MID_NWSI_CallBack)(E_MID_NWSI_REPORT_TYPE type, void *pParam); //IP INT32 MID_NWSI_SetIP(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t addr); INT32 MID_NWSI_GetIP(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t *paddr); //Netmask INT32 MID_NWSI_SetNetmask(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t addr); INT32 MID_NWSI_GetNetmask(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t *paddr); //Gateway INT32 MID_NWSI_SetGateway(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t addr); INT32 MID_NWSI_GetGateway(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_IPv4_Addr_t *paddr); //DNS INT32 MID_NWSI_SetDNS(MID_NWSI_IPv4_Addr_t dns1, MID_NWSI_IPv4_Addr_t dns2); INT32 MID_NWSI_GetDNS(MID_NWSI_IPv4_Addr_t *dns1, MID_NWSI_IPv4_Addr_t *dns2); //MTU INT32 MID_NWSI_GetMTU(E_MID_NWSI_CONNECT_TYPE type); //MAC INT32 MID_NWSI_GetMAC(E_MID_NWSI_CONNECT_TYPE type, MID_NWSI_MAC_Addr_t *pmac); //PPPoE INT32 MID_NWSI_SetPPPoEAccount(MID_NWSI_PPPOE_Account_Data_t data); INT32 MID_NWSI_ConnectPPPoE(BOOL bConnect); //DHCP INT32 MID_NWSI_StopDHCP(void); INT32 MID_NWSI_SetDHCP(E_MID_NWSI_CONNECT_TYPE type); INT32 MID_NWSI_Init(void); INT32 MID_NWSI_ScanWifiAP(BOOL *bAPListUpdate); INT32 MID_NWSI_ScanP2PAP(BOOL *bAPListUpdate, E_MID_NWSI_INTERFACE Interface); //wireless Dongle_e MID_NWSI_WLAN_CheckWifiDongle(); Dongle_e MID_NWSI_WLAN_GetWifiDongle(); void MID_NWSI_WLAN_InsertWifiModule(Dongle_e Dongle_Select); void MID_NWSI_WLAN_RemoveWifiModule(Dongle_e Dongle_Select); INT32 MID_NWSI_WLAN_WiFiEnable(UINT8 bEnable); BOOL MID_NWSI_WLAN_IsDevExistence(void); INT32 MID_NWSI_WLAN_Disconnect(void); MID_NWSI_WLANINFO_t *MID_NWSI_WLAN_GetAPList(void); //for application to get ap list INT32 MID_NWSI_WLAN_ConnectSelectedAP(MID_NWSI_APData_t *pAPData, UINT8 keylen, INT8 *pKey); void MID_NWSI_DisableConnectMode(void); void MID_NWSI_EnableConnectMode(void); void MID_NWSI_SetConnectMode(E_MID_NWSI_CONNECT_TYPE type); INT32 MID_NWSI_GetConnectMode(void); void MID_NWSI_RegisterCB(MID_NWSI_CallBack pfCB); void MID_NWSI_UnRegisterCB(void); void MID_NWSI_Destory(void); UINT8 MID_NWSI_WLAN_GetAPState(void); BOOL MID_NWSI_IFStatus(void); void MID_NWSI_WLAN_ScanAP(); BOOL MID_NWSI_P2P_ScanAP(E_MID_NWSI_INTERFACE Interface); BOOL MID_FTP_Get(E_MID_NWSI_FTPFILETYPE FILE_TYPE); BOOL MID_FTP_Ver_Check(void); UINT8 MID_NWSI_WLAN_GetAPState(void); void MID_NWSI_SetWPAPid(INT32 pid); INT32 MID_NWSI_GetWPAPid(void); UINT32 _MID_NWSI_Find_Id_(INT8 *path); INT32 _MID_NWSI_Check_File_Exist_(INT8 *fname); INT8 _MID_NWSI_Parse_String_MAC_(INT8 *pStr, MID_NWSI_MAC_Addr_t *pMac); #endif