nt9856x/code/lib/include/WiFiIpc/nvtwifi.h
2023-03-28 15:07:53 +08:00

408 lines
12 KiB
C
Executable File

#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];
unsigned char 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