#ifndef CYGONCE_CYG_WIFI_NVT_H #define CYGONCE_CYG_WIFI_NVT_H //============================================================================= //define NVTWIFI_SIM for simulation //#define NVTWIFI_SIM //------------------------------------------------------------------------- //NvtWifiECOS API return value #define NVTWIFI_RET_OK 0 #define NVTWIFI_RET_OPENED 1 #define NVTWIFI_RET_ERR (-1) #define NVTWIFI_RET_NO_FUNC (-2) #define NVTWIFI_TOKEN_PATH "wifiipc" #define NVTWIFI_MAX_PARAM 6 #define NVTWIFI_PARAM_LEN 64 #define NVTWIFI_INTERFACE_VER 16061709 //------------------------------------------------------------------------- //IPC command id and parameters typedef enum { NVTWIFI_CMDID_GET_VER_INFO = 0x00000000, NVTWIFI_CMDID_GET_BUILD_DATE, NVTWIFI_CMDID_TEST, NVTWIFI_CMDID_INIT, NVTWIFI_CMDID_INTF_IS_UP, NVTWIFI_CMDID_INTF_UP, NVTWIFI_CMDID_INTF_DOWN, NVTWIFI_CMDID_INTF_CONFIG, NVTWIFI_CMDID_INTF_DELETE_ADDR, NVTWIFI_CMDID_CONFIG, NVTWIFI_CMDID_GET_MAC, NVTWIFI_CMDID_SET_MAC, NVTWIFI_CMDID_RUN_CMD, NVTWIFI_CMDID_REG_STACB, NVTWIFI_CMDID_REG_LINKCB, NVTWIFI_CMDID_REG_WSCCB, NVTWIFI_CMDID_REG_WSC_FLASHCB, NVTWIFI_CMDID_REG_P2PCB, NVTWIFI_CMDID_STA_CB, NVTWIFI_CMDID_LINK_CB, NVTWIFI_CMDID_WSCCB, NVTWIFI_CMDID_WSC_FLASHCB, NVTWIFI_CMDID_P2PCB, NVTWIFI_CMDID_SITE_REQ, NVTWIFI_CMDID_SITE_RET, NVTWIFI_CMDID_P2P_REQ, NVTWIFI_CMDID_P2P_RET, NVTWIFI_CMDID_P2P_PROVISION, NVTWIFI_CMDID_WSCD_CREATE, NVTWIFI_CMDID_WSCD_REINIT, NVTWIFI_CMDID_WSCD_STOP, NVTWIFI_CMDID_WSCD_STATUS, NVTWIFI_CMDID_GEN_PIN, NVTWIFI_CMDID_THREAD_INFO_BY_NAME, NVTWIFI_CMDID_IGNORE_DOWN_UP, NVTWIFI_CMDID_SYSREQ_ACK, NVTWIFI_CMDID_GET_CONNECT_INFO, NVTWIFI_CMDID_UNINIT, NVTWIFI_CMDID_INTF_REMOVE, NVTWIFI_CMDID_SET_COUNTRY, NVTWIFI_CMDID_SET_FREQUENCY, } NVTWIFI_CMDID; typedef struct { NVTWIFI_CMDID CmdId; int Arg; } NVTWIFI_MSG; //------------------------------------------------------------------------- //NVTWIFI definition typedef struct _NVTWIFI_OPEN_OBJ { unsigned int RcvParamAddr; unsigned int SndParamAddr; } NVTWIFI_OPEN_OBJ; #define WIFIIPC_BUF_CHK_SIZE (4) #define WIFIIPC_BUF_TAG MAKEFOURCC('W','I','F','I') #define NVT_MAX_BSS_DESC (64) #define NVT_WIFIIPC_MAC_ADDR_LEN (6) #define NVT_MESH_ID_LEN 32 #define NVT_WSC_MAX_SSID_LEN (64) #define NVT_MAX_WEP_KEY_LEN (26) #define NVT_MAX_NETWORK_KEY_LEN (64) #define NVT_PIN_LEN (8) #define NVT_MAX_DEVICE_NAME_LEN (32) #define NVT_WPS_REINIT_EVENT 1 #define NVT_WPS_STATUS_CHANGE_EVENT 2 // for client mode #define NVT_WIFI_LINK_STATUS_DISCONNECTED 0 #define NVT_WIFI_LINK_STATUS_CONNECTED 1 #define NVT_WIFI_LINK_STATUS_AUTH_FAIL 2 #define NVT_WIFI_LINK_STATUS_DISASSOCIATED 3 #define NVT_WIFI_LINK_STATUS_DEAUTHENTICATED 4 #define NVT_WIFI_LINK_STATUS_HANDSHAKE_TIMEOUT 5 #define NVT_WIFI_LINK_STATUS_SACN_ZREO_RESULT 6 // for AP mode #define NVT_WIFI_STA_STATUS_ASSOCIATED 1 #define NVT_WIFI_STA_STATUS_REASSOCIATED 2 #define NVT_WIFI_STA_STATUS_DISASSOCIATED 3 #define NVT_WIFI_STA_STATUS_DEAUTHENTICATED 4 #define NVT_WIFI_STA_STATUS_PORT_AUTHORIZED 5 #define NVT_WIFI_STA_STATUS_AUTH_FAIL 6 #define NVT_WIFI_STA_STATUS_EXPIRED 7 #define NVT_WIFI_AP_READY 8 // for p2p #define NVT_WIFI_P2P_EVENT_BACK2DEV 1 #define NVT_WIFI_P2P_EVENT_START_DHCPD 2 #define NVT_WIFI_P2P_EVENT_START_DHCPC 3 typedef struct _nvt_wifi_settings { int wlan_disable; int wps_disable; char mode[16]; char security[32]; int channel; char ssid[NVT_WSC_MAX_SSID_LEN + 1]; char passphrase[NVT_MAX_NETWORK_KEY_LEN + 1]; char wep_key1[NVT_MAX_WEP_KEY_LEN + 1]; char wep_key2[NVT_MAX_WEP_KEY_LEN + 1]; char wep_key3[NVT_MAX_WEP_KEY_LEN + 1]; char wep_key4[NVT_MAX_WEP_KEY_LEN + 1]; int wep_default_key; char wsc_pin[NVT_PIN_LEN + 1]; int is_configured; int config_by_ext_reg; int p2pmode; char device_name[NVT_MAX_DEVICE_NAME_LEN + 1]; int is_dhcp; // static ip or dhcp for client mode int auto_ssid_plus_mac; } nvt_wifi_settings; typedef struct _nvt_wsc_flash_param { char SSID[NVT_WSC_MAX_SSID_LEN + 1]; int WSC_AUTH; /* WSC_AUTH_OPEN=1, WSC_AUTH_WPAPSK=2, WSC_AUTH_SHARED=4, WSC_AUTH_WPA=8, WSC_AUTH_WPA2=0x10, WSC_AUTH_WPA2PSK=0x20, WSC_AUTH_WPA2PSKMIXED=0x22 */ char WSC_PSK[NVT_MAX_NETWORK_KEY_LEN + 1]; int WEP; /* WEP_DISABLED=0, WEP64=1, WEP128=2*/ char WEP_KEY1[NVT_MAX_WEP_KEY_LEN + 1]; char WEP_KEY2[NVT_MAX_WEP_KEY_LEN + 1]; char WEP_KEY3[NVT_MAX_WEP_KEY_LEN + 1]; char WEP_KEY4[NVT_MAX_WEP_KEY_LEN + 1]; int WEP_DEFAULT_KEY; int WSC_ENC; /* WSC_ENCRYPT_NONE=1, WSC_ENCRYPT_WEP=2, WSC_ENCRYPT_TKIP=4, WSC_ENCRYPT_AES=8, WSC_ENCRYPT_TKIPAES=12 */ int WSC_CONFIGBYEXTREG; /* CONFIG_BY_INTERNAL_REGISTRAR=1, CONFIG_BY_EXTERNAL_REGISTRAR=2, MANUAL_SETTING_TO_ENROLLEE=3 */ int WLAN0_P2P_TYPE; } nvt_wsc_flash_param; struct nvt_bss_desc { unsigned char bssid[NVT_WIFIIPC_MAC_ADDR_LEN]; unsigned char ssid[32]; unsigned char *ssidptr; // unused, for backward compatible unsigned short ssidlen; unsigned char meshid[NVT_MESH_ID_LEN]; unsigned char *meshidptr; // unused, for backward compatible unsigned short meshidlen; unsigned int bsstype; unsigned short beacon_prd; unsigned char dtim_prd; unsigned int t_stamp[2]; unsigned int ibss_par; unsigned short capability; unsigned char channel; unsigned int basicrate; unsigned int supportrate; unsigned char bdsa[NVT_WIFIIPC_MAC_ADDR_LEN]; int rssi; unsigned char sq; unsigned int network; /*add for P2P_SUPPORT ; for sync; it exist no matter p2p enabled or not*/ unsigned char p2pdevname[33]; unsigned char p2prole; unsigned short p2pwscconfig; unsigned char p2paddress[NVT_WIFIIPC_MAC_ADDR_LEN]; }; typedef struct _nvt_sitesurvey_status { unsigned char number; unsigned char pad[3]; //BssDscr bssdb[MAX_BSS_DESC]; struct nvt_bss_desc bssdb[NVT_MAX_BSS_DESC]; } NVT_SS_STATUS_T, *NVT_SS_STATUS_Tp; /* Any changed here MUST sync with 8192cd_p2p.h */ typedef struct _nvt_p2p_provision_comm { unsigned char dev_address[6]; unsigned short wsc_config_method; unsigned char channel; } NVT_P2P_PROVISION_COMM_T, *NVT_P2P_PROVISION_COMM_Tp; enum NVT_NETWORK_TYPE { NVT_WIRELESS_11B = 1, NVT_WIRELESS_11G = 2, NVT_WIRELESS_11A = 4, NVT_WIRELESS_11N = 8, NVT_WIRELESS_11AC = 64, NVT_WIRELESS_24G = 128, NVT_WIRELESS_5G = 256, NVT_WIRELESS_32BIT = 512 }; typedef enum _NVT_FREQUENCY_TYPE { NVT_WIFI_24G = 0, NVT_WIFI_5G = 1 } NVT_FREQUENCY_TYPE; typedef enum _NVT_Capability { nvt_cESS = 0x01, nvt_cIBSS = 0x02, nvt_cPollable = 0x04, nvt_cPollReq = 0x01, nvt_cPrivacy = 0x10, nvt_cShortPreamble = 0x20, } NVT_Capability; enum nvt_wifi_state { NVT_WIFI_STATION_STATE = 0x00000008, NVT_WIFI_AP_STATE = 0x00000010, NVT_WIFI_P2P_SUPPORT = 0x08000000 }; enum nvt_p2p_role_more{ NVT_P2P_DEVICE=1, NVT_P2P_PRE_CLIENT=2, NVT_P2P_CLIENT=3, NVT_P2P_PRE_GO=4, // after GO nego , we are GO and proceed WSC exchange NVT_P2P_TMP_GO=5 // after GO nego , we are GO and proceed WSC exchange is done }; typedef enum { NVT_WIFI_SEC_INVALID =0, NVT_WIFI_SEC_NONE =0x01, NVT_WIFI_SEC_WEP =0x02, NVT_WIFI_SEC_WEP_128 =0x20, NVT_WIFI_SEC_WPA_PSK =0x04, NVT_WIFI_SEC_WPA_1X =0x05, NVT_WIFI_SEC_WPA_PSK_AES_TKIP =0x09, NVT_WIFI_SEC_WPA_PSK_AES =0x0A, NVT_WIFI_SEC_WPA_PSK_TKIP =0x0B, NVT_WIFI_SEC_WPA_1X_AES_TKIP =0x0C, NVT_WIFI_SEC_WPA_1X_AES =0x0D, NVT_WIFI_SEC_WPA_1X_TKIP =0x0E, NVT_WIFI_SEC_WPA2_PSK =0x10, NVT_WIFI_SEC_WPA2_1X =0x11, NVT_WIFI_SEC_WPA2_PSK_AES_TKIP =0x15, NVT_WIFI_SEC_WPA2_PSK_AES =0x16, NVT_WIFI_SEC_WPA2_PSK_TKIP =0x17, NVT_WIFI_SEC_WPA2_1X_AES_TKIP =0x18, NVT_WIFI_SEC_WPA2_1X_AES =0x19, NVT_WIFI_SEC_WPA2_1X_TKIP =0x1A, NVT_WIFI_SEC_WPA_AUTO_PSK_AES_TKIP =0x1B, NVT_WIFI_SEC_WPA_AUTO_PSK_AES =0x1C, NVT_WIFI_SEC_WPA_AUTO_PSK_TKIP =0x1D, NVT_WIFI_SEC_MAX, }NVT_WIFI_SEC_SETTING; enum nvt_wifi_wakeup_reason { NVT_WIFI_WAKEUP_REASON_UNKNOWN = 0, NVT_WIFI_WAKEUP_REASON_DATA = 1, NVT_WIFI_WAKEUP_REASON_DISCONNECT = 2, NVT_WIFI_WAKEUP_REASON_NOT_WAKEUP = 3, NVT_WIFI_WAKEUP_REASON_AUTO_RECOVERY_SUCCESS = 4, NVT_WIFI_WAKEUP_REASON_AUTO_RECOVERY_FAIL = 5, NVT_WIFI_WAKEUP_REASON_DHCP_OK = 6, NVT_WIFI_WAKEUP_REASON_DHCP_NAK = 7, NVT_WIFI_WAKEUP_REASON_DHCP_No_Resp = 8, NVT_WIFI_WAKEUP_REASON_KEEP_ALIVE_NO_RESP = 9, }; enum nvt_wifi_sleep_recovery_action { NVT_WIFI_SLEEP_RECOVERY_ACTION_ALL = 0, NVT_WIFI_SLEEP_RECOVERY_ACTION_RECOVER = 1, NVT_WIFI_SLEEP_RECOVERY_ACTION_RECONNECT = 2, NVT_WIFI_SLEEP_RECOVERY_ACTION_NONE = 3, NVT_WIFI_SLEEP_RECOVERY_ACTION_FINAL_FAIL = 4, }; typedef enum _NVT_Connect_Info { nvt_ci_rssi = 0x01, } NVT_Connect_Info; ///////////////////////parameter struct /////////////// typedef struct{ int param1; int param2; int param3; }NVTWIFI_PARAM_VALUE; typedef struct{ char pIntfName[NVTWIFI_PARAM_LEN]; }NVTWIFI_PARAM_INTF; typedef struct{ char pIntfName[NVTWIFI_PARAM_LEN]; int status; }NVTWIFI_PARAM_STATUS; typedef struct{ char pIntfName[NVTWIFI_PARAM_LEN]; char string[NVTWIFI_PARAM_LEN]; int status; }NVTWIFI_PARAM_STATUS2; typedef struct{ char string1[NVTWIFI_PARAM_LEN]; char string2[NVTWIFI_PARAM_LEN]; char string3[NVTWIFI_PARAM_LEN]; }NVTWIFI_PARAM_STRING; typedef struct{ char param[NVTWIFI_MAX_PARAM][NVTWIFI_PARAM_LEN]; }NVTWIFI_PARAM_RUN_CMD; typedef struct{ char pIntfName[NVTWIFI_PARAM_LEN]; NVT_SS_STATUS_T status; }NVTWIFI_PARAM_SITE_STATUS; typedef struct{ char pIntfName[NVTWIFI_PARAM_LEN]; NVT_P2P_PROVISION_COMM_T status; }NVTWIFI_PARAM_PROVISION_STATUS; typedef struct { char pIntfName[NVTWIFI_PARAM_LEN]; char pStaMac[NVTWIFI_PARAM_LEN]; NVT_Connect_Info info; unsigned char data[NVTWIFI_PARAM_LEN]; } NVTWIFI_PARAM_CONNECT_INFO; typedef struct{ unsigned char smac[6]; unsigned char dmac[6]; unsigned char sip[4]; unsigned char dip[4]; unsigned int sport; unsigned int dport; unsigned char *payload; unsigned int plen; unsigned int interval; }NVTWIFI_PARAM_KEEP_ALIVE; typedef struct{ unsigned char smac[6]; unsigned char dmac[6]; unsigned char sip[4]; unsigned char dip[4]; int tcp; unsigned int sport; unsigned int dport; unsigned char *payload; unsigned int plen; unsigned int interval; }NVTWIFI_PARAM_WAKEUP_PATTERN; typedef struct{ char ssid[32]; char password[32]; NVT_WIFI_SEC_SETTING security; unsigned char ip[4]; int reserved; }NVTWIFI_PARAM_EASY_SETUP; typedef struct{ unsigned int scan_frequency; unsigned int repeat; unsigned int exponent; unsigned int timeout; unsigned int action; char ssid[32]; char security[32]; }NVTWIFI_PARAM_SLEEP_RECOVERY; typedef struct{ unsigned char current_ip[4]; unsigned int lease_time; }NVTWIFI_PARAM_DHCP_OFFLOAD; #ifndef __externC #ifdef __cplusplus # define __externC extern "C" #else # define __externC extern #endif #endif __externC void NvtWifiECOS_CmdLine(char *szCmd); #endif // CYGONCE_CYG_WIFI_NVT_H // End of nvtwifi.h