/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipwlan_wlan.h,v $ $Revision: 1.12 $ * $Source: /home/interpeak/CVSRoot/ipwlan/include/ipwlan_wlan.h,v $ * $Author: krosenfe $ $Date: 2010-04-09 17:51:54 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING ****************************************************************************** */ #ifndef IPCOM_WLAN_H #define IPCOM_WLAN_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** * Wireless. */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include "ipwlan_wifi.h" #include "ipcom_netif.h" #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* WLAN ioctls commands */ #define IP_SIOCSIWCOMMIT IP_IO(WLAN, IP_SIWCOMMIT, W, Ipcom_iwreq) #define IP_SIOCSIWFREQ IP_IOW(WLAN, IP_SIWFREQ, W, Ipcom_iwreq) #define IP_SIOCGIWFREQ IP_IOR(WLAN, IP_GIWFREQ, R, Ipcom_iwreq) #define IP_SIOCSIWMODE IP_IOW(WLAN, IP_SIWMODE, W, Ipcom_iwreq) #define IP_SIOCGIWMODE IP_IOR(WLAN, IP_GIWMODE, R, Ipcom_iwreq) #define IP_SIOCSIWAP IP_IOW(WLAN, IP_SIWAP, W, Ipcom_iwreq) #define IP_SIOCGIWAP IP_IOR(WLAN, IP_GIWAP, R, Ipcom_iwreq) #define IP_SIOCSIWSCAN IP_IOW(WLAN, IP_SIWSCAN, W, Ipcom_iwreq) #define IP_SIOCGIWSCAN IP_IOR(WLAN, IP_GIWSCAN, R, Ipcom_iwreq_large_data) #define IP_SIOCSIWESSID IP_IOW(WLAN, IP_SIWESSID, W, Ipcom_iwreq_small_data) #define IP_SIOCGIWESSID IP_IOR(WLAN, IP_GIWESSID, R, Ipcom_iwreq_small_data) #define IP_SIOCSIWENCRTYPE IP_IOW(WLAN, IP_SIWENCRTYPE, W, Ipcom_iwreq) #define IP_SIOCGIWENCRTYPE IP_IOW(WLAN, IP_GIWENCRTYPE, R, Ipcom_iwreq) #define IP_SIOCGIWMCASTENCRTYPE IP_IOW(WLAN, IP_GIWMCASTENCRTYPE, R, Ipcom_iwreq) #define IP_SIOCSIWAUTHTYPE IP_IOW(WLAN, IP_SIWAUTHTYPE, W, Ipcom_iwreq) #define IP_SIOCGIWAUTHTYPE IP_IOR(WLAN, IP_GIWAUTHTYPE, R, Ipcom_iwreq) #define IP_SIOCSIWENCRKEY IP_IOW(WLAN, IP_SIWENCRKEY, W, Ipcom_iwreq_small_data) #define IP_SIOCSIWPMKKEY IP_IOW(WLAN, IP_SIWPMKKEY, W, Ipcom_iwreq_small_data) #define IP_SIOCSIWDEFAULTKEY IP_IOW(WLAN, IP_SIWDEFAULTKEY, W, Ipcom_iwreq) #define IP_SIOCGIWRSC IP_IOW(WLAN, IP_GIWRSC, R, Ipcom_iwreq_small_data) #define IP_SIOCSIWRSC IP_IOW(WLAN, IP_SIWRSC, W, Ipcom_iwreq_small_data) #define IP_SIOCSIWRESET IP_IOW(WLAN, IP_SIWRESET, W, Ipcom_iwreq) #define IP_SIOCSIWATTACHFUNC IP_IOW(WLAN, IP_SIWATTACHFUNC, W, Ipcom_iwreq) #define IP_SIOCSIWREMOVEFUNC IP_IOW(WLAN, IP_SIWREMOVEFUNC, W, Ipcom_iwreq) #define IP_SIOCSIWOPENPORT IP_IOW(WLAN, IP_SIWOPENPORT, W, Ipcom_iwreq) #define IP_SIOCGIWQUALITY IP_IOR(WLAN, IP_GIWQUALITY, R, Ipcom_iwreq_small_data) #define IP_SIOCSIWENCODE IP_IOW(WLAN, IP_SIWENCODE, W, Ipcom_iwreq_small_data) #define IP_SIOCGIWENCODE IP_IOW(WLAN, IP_GIWENCODE, R, Ipcom_iwreq_small_data) #define IP_SIOCGIWMAC IP_IOR(WLAN, IP_GIWMAC, R, Ipcom_iwreq_small_data) #define IP_SIOCSIWMAC IP_IOW(WLAN, IP_SIWMAC, W, Ipcom_iwreq_small_data) #define IP_SIOCSIWDATA IP_IOWR(WLAN, IP_SIWDATA, W, Ipcom_iwreq_large_data) /* Generic data transfer */ #define IP_SIOCSIWIDLE IP_IOW(WLAN, IP_SIWIDLE, W, Ipcom_iwreq) #define IP_SIOCGIWIDLE IP_IOR(WLAN, IP_GIWIDLE, R, Ipcom_iwreq) #define IP_SIOCSIWPOWERMAN IP_IOW(WLAN, IP_SIWPOWERMAN, W, Ipcom_iwreq) #define IP_SIOCGIWPOWERMAN IP_IOR(WLAN, IP_GIWPOWERMAN, R, Ipcom_iwreq) #define IP_SIOCSIWCHANNEL IP_IOW(WLAN, IP_SIWCHANNEL, W, Ipcom_iwreq) #define IP_SIOCGIWCHANNEL IP_IOR(WLAN, IP_GIWCHANNEL, R, Ipcom_iwreq) #define IP_SIOCSIWLRL IP_IOW(WLAN, IP_SIWLRL, W, Ipcom_iwreq) #define IP_SIOCGIWLRL IP_IOR(WLAN, IP_GIWLRL, R, Ipcom_iwreq) #define IP_SIOCSIWSRL IP_IOW(WLAN, IP_SIWSRL, W, Ipcom_iwreq) #define IP_SIOCGIWSRL IP_IOR(WLAN, IP_GIWSRL, R, Ipcom_iwreq) #define IP_SIOCSIWCOUNTRY IP_IOW(WLAN, IP_SIWCOUNTRY, W, Ipcom_iwreq) #define IP_SIOCGIWCOUNTRY IP_IOR(WLAN, IP_GIWCOUNTRY, R, Ipcom_iwreq) #define IP_SIOCSIWBEACONINT IP_IOW(WLAN, IP_SIWBEACONINT, W, Ipcom_iwreq) #define IP_SIOCGIWBEACONINT IP_IOR(WLAN, IP_GIWBEACONINT, R, Ipcom_iwreq) #define IP_SIOCSIWRATE IP_IOR(WLAN, IP_SIWRATE, W, Ipcom_iwreq) #define IP_SIOCGIWRATE IP_IOR(WLAN, IP_GIWRATE, R, Ipcom_iwreq) #define IP_SIOCSIWSUPPRATES IP_IOW(WLAN, IP_SIWSUPPRATES, W, Ipcom_iwreq) #define IP_SIOCGIWSUPPRATES IP_IOR(WLAN, IP_GIWSUPPRATES, R, Ipcom_iwreq) #define IP_SIOCSIWFRAGTHRESH IP_IOW(WLAN, IP_SIWFRAGTHRESH, W, Ipcom_iwreq) #define IP_SIOCGIWFRAGTHRESH IP_IOR(WLAN, IP_GIWFRAGTHRESH, R, Ipcom_iwreq) #define IP_SIOCSIWRADIOMODE IP_IOW(WLAN, IP_SIWRADIOMODE, W, Ipcom_iwreq) #define IP_SIOCGIWRADIOMODE IP_IOR(WLAN, IP_GIWRADIOMODE, R, Ipcom_iwreq) #define IP_SIOCGIWSUPPCHAN IP_IOR(WLAN, IP_GIWSUPPCHAN, W, Ipcom_iwreq_small_data) #define IP_SIOCSIWRTSTHRESH IP_IOW(WLAN, IP_SIWRTSTHRESH, W, Ipcom_iwreq) #define IP_SIOCGIWRTSTHRESH IP_IOR(WLAN, IP_GIWRTSTHRESH, R, Ipcom_iwreq) #define IP_SIOCSIWHIDESSID IP_IOW(WLAN, IP_SIWHIDESSID, W, Ipcom_iwreq) #define IP_SIOCGIWHIDESSID IP_IOR(WLAN, IP_GIWHIDESSID, R, Ipcom_iwreq) #define IP_SIOCSIWRADIONRATE IP_IOW(WLAN, IP_SIWRADIONRATE, W, Ipcom_iwreq) #define IP_SIOCGIWRADIONRATE IP_IOR(WLAN, IP_GIWRADIONRATE, R, Ipcom_iwreq) #define IP_SIOCSIWRADIONSTAT IP_IOW(WLAN, IP_SIWRADIONSTAT, W, Ipcom_iwreq) #define IP_SIOCGIWRADIONSTAT IP_IOR(WLAN, IP_GIWRADIONSTAT, R, Ipcom_iwreq) #define IP_SIOCSIWACL IP_IOW(WLAN, IP_SIWACL, W, Ipcom_iwreq) #define IP_SIOCGIWACL IP_IOR(WLAN, IP_GIWACL, R, Ipcom_iwreq_large_data) #define IP_SIOCGIWACLMODE IP_IOR(WLAN, IP_GIWACLMODE, R, Ipcom_iwreq) #define IP_SIOCSIWACLMODE IP_IOW(WLAN, IP_SIWACLMODE, W, Ipcom_iwreq) #define IP_SIOCSIWACLADD IP_IOW(WLAN, IP_SIWACLADD, W, Ipcom_iwreq) #define IP_SIOCSIWACLDEL IP_IOW(WLAN, IP_SIWACLDEL, W, Ipcom_iwreq) #define IP_SIOCSIWSCANMODE IP_IOW(WLAN, IP_SIWSCANMODE, W, Ipcom_iwreq) #define IP_SIOCGIWSCANMODE IP_IOR(WLAN, IP_SIWSCANMODE, W, Ipcom_iwreq) #define IP_SIOCSIWPOWERSCALE IP_IOW(WLAN, IP_SIWPOWERSCALE, W, Ipcom_iwreq) #define IP_SIOCGIWPOWERSCALE IP_IOR(WLAN, IP_GIWPOWERSCALE, R, Ipcom_iwreq) #define IP_SIOCSIWCOUNTRYCODE IP_IOW(WLAN, IP_SIWCOUNTRYCODE, W, Ipcom_iwreq) #define IP_SIOCGIWCOUNTRYCODE IP_IOR(WLAN, IP_GIWCOUNTRYCODE, R, Ipcom_iwreq) #define IP_SIOCSIWBSSINDEX IP_IOW(WLAN, IP_SIWBSSINDEX, W, Ipcom_iwreq) #define IP_SIOCGIWBSSINDEX IP_IOR(WLAN, IP_GIWBSSINDEX, R, Ipcom_iwreq) #define IP_SIOCSIWBSSADD IP_IOW(WLAN, IP_SIWBSSADD, W, Ipcom_iwreq) #define IP_SIOCSIWBSSDEL IP_IOW(WLAN, IP_GIWBSSDEL, W, Ipcom_iwreq) #define IP_SIOCSIWREGMODE IP_IOW(WLAN, IP_SIWREGMODE, W, Ipcom_iwreq) #define IP_SIOCGIWREGMODE IP_IOR(WLAN, IP_GIWREGMODE, R, Ipcom_iwreq) #define IP_SIOCSIWSECTYPE IP_IOW(WLAN, IP_SIWSECTYPE, W, Ipcom_iwreq) #define IP_SIOCGIWSECTYPE IP_IOR(WLAN, IP_GIWSECTYPE, R, Ipcom_iwreq) #define IP_SIOCSIWDEBUGLEVEL IP_IOW(WLAN, IP_SIWDEBUGLEVEL, W, Ipcom_iwreq) #define IP_SIOCGIWDEBUGLEVEL IP_IOR(WLAN, IP_GIWDEBUGLEVEL, R, Ipcom_iwreq) #define IP_SIOCGIWDEBUGOPTIONS IP_IOR(WLAN, IP_GIWDEBUGOPTIONS, R, Ipcom_iwreq) #define IP_SIOCGIWSTATISTICS IP_IOR(WLAN, IP_GIWSTATISTICS, R, Ipcom_iwreq) #define IP_SIOCSIWVLAN IP_IOW(WLAN, IP_SIWVLAN, W, Ipcom_iwreq) #define IP_SIOCGIWVLAN IP_IOR(WLAN, IP_GIWVLAN, R, Ipcom_iwreq) #define IP_SIOCSIWVLANADD IP_IOW(WLAN, IP_SIWVLANADD, W, Ipcom_iwreq) #define IP_SIOCSIWVLANDEL IP_IOW(WLAN, IP_GIWVLANDEL, W, Ipcom_iwreq) #define IP_SIOCSIWMBSS IP_IOW(WLAN, IP_SIWMBSS, W, Ipcom_iwreq) #define IP_SIOCGIWMBSS IP_IOR(WLAN, IP_GIWMBSS, R, Ipcom_iwreq) #define IP_SIOCGIWMBSS IP_IOR(WLAN, IP_GIWMBSS, R, Ipcom_iwreq) #define IP_SIOCSIWAUTHWPA IP_IOW(WLAN, IP_SIWAUTHWPA, W, Ipcom_iwreq) #define IP_SIOCGIWAUTHWPA IP_IOW(WLAN, IP_GIWAUTHWPA, R, Ipcom_iwreq) #define IP_SIOCSIWSUPWPA IP_IOW(WLAN, IP_SIWSUPWPA, W, Ipcom_iwreq) #define IP_SIOCGIWSUPWPA IP_IOW(WLAN, IP_GIWSUPWPA, R, Ipcom_iwreq) #define IP_SIOCGIWMIMOTXBW IP_IOW(WLAN, IP_GIWMIMOTXBW, R, Ipcom_iwreq) #define IP_SIOCSIWMIMOTXBW IP_IOW(WLAN, IP_SIWMIMOTXBW, W, Ipcom_iwreq) #define IP_SIOCSIWCHANNELMIMO IP_IOW(WLAN, IP_SIWCHANNELMIMO, W, Ipcom_iwreq) #define IP_SIOCGIWRSNCAP IP_IOW(WLAN, IP_GIWRSNCAP, R, Ipcom_iwreq) #define IP_SIOCSIW4WAYHSSTATE IP_IOW(WLAN, IP_SIW4WAYHSSTATE, W, Ipcom_iwreq) #define IP_SIOCSIWDOT1XPORTSTATUS IP_IOW(WLAN, IP_SIWDOT1XPORTSTATUS, W, Ipcom_iwreq) #define IP_SIOCSIWEXTRSN IP_IOW(WLAN, IP_SIWEXTRSN, W, Ipcom_iwreq) #define IP_SIOCSAUTHCALLBACK IP_IOW(WLAN, IP_SIWAUTHCALLBACK, W, Ipcom_iwreq) #define IP_SIOCSDRVCALLBACK IP_IOW(WLAN, IP_SIWDRVCALLBACK, W, Ipcom_iwreq) #define IP_SIOCSTKIPCMSTART IP_IOW(WLAN, IP_SIWTKIPCMSTART, W, Ipcom_iwreq) #define IP_SIOCSIWDEAUTH IP_IOW(WLAN, IP_SIWDEAUTH, W, Ipcom_iwreq) #define IP_SIOCGIWMM IP_IOR(WLAN, IP_GIWWMM, R, Ipcom_iwreq) #define IP_SIOCSIWMM IP_IOR(WLAN, IP_SIWWMM, W, Ipcom_iwreq) #define IP_SIOCGIWMMAC IP_IOR(WLAN, IP_GIWWMMAC, R, Ipcom_iwreq) #define IP_SIOCSIWMMAC IP_IOR(WLAN, IP_SIWWMMAC, W, Ipcom_iwreq) #define IP_SIOCSIVNDRIE IP_IOR(WLAN, IP_SIWVNDRIE, W, Ipcom_iwreq) #define IP_SIOCGISCANLIST IP_IOR(WLAN, IP_GISCANLIST,R,Ipcom_iwreq ) #define IP_SIOCSIWPSMODE IP_IOR(WLAN, IP_SIWWPSMODE, W, Ipcom_iwreq) #define IP_SIOCSIWJOINBSS IP_IOW(WLAN, IP_SIWJOINBSS, W, Ipcom_iwreq_small_data) #define IP_SIOCSIWDEASSOC IP_IOW(WLAN, IP_SIWDEASSOC, W, Ipcom_iwreq) #define IP_SIOCGIWIOCTLSUPPORTED IP_IOR(WLAN, IP_GIWIOCTLSUPPORTED,R,Ipcom_iwreq ) #define IP_SIOCGIWSUPPORTEDBANDS IP_IOR(WLAN, IP_GIWSUPPORTEDBANDS,R,Ipcom_iwreq ) #define IP_SIOCGIWSUPPORTEDMODES IP_IOR(WLAN, IP_GIWSUPPORTEDMODES,R,Ipcom_iwreq ) #define IP_SIOCGIWSUPPORTEDAUTHTYPES IP_IOR(WLAN, IP_GIWSUPPORTEDAUTHTYPES,R,Ipcom_iwreq ) #define IP_SIOCGIWSUPPORTEDENCRTYPES IP_IOR(WLAN, IP_GIWSUPPORTEDENCRTYPES,R,Ipcom_iwreq ) #define IP_SIOCIWFIRSTPRIV 100 #define IP_IS_IPWLAN_CMD(a) ( (((a) & (0x00000900)) == (0x00000900)) ) /* IP_SIOCSIWMODE: Modes of operation */ #define IP_IW_MODE_AUTO 0 /* Let the driver decide */ #define IP_IW_MODE_INFRA 1 /* Multi cell network, roaming, ... */ #define IP_IW_MODE_ADHOC 2 /* Single cell network */ #define IP_IW_MODE_MASTER 3 /* Synchronisation master or Access Point */ /* End marker in arrays */ #define IP_IW_END 0 /* Frequency flags */ #define IP_IW_FREQ_AUTO 0x00 /* Let the driver decides */ #define IP_IW_FREQ_FIXED 0x01 /* Force a specific value */ /* IW_AUTH_80211_AUTH_ALG values */ #define IP_IW_AUTH_ALG_OPEN_SYSTEM 1 #define IP_IW_AUTH_ALG_SHARED_KEY 2 #define IP_IW_AUTH_ALG_WPA_PSK 3 #define IP_IW_AUTH_ALG_WPA 4 #define IP_IW_AUTH_ALG_WPA2_PSK 5 #define IP_IW_AUTH_ALG_WPA2 6 /* Security Policy bit vectors */ #define IP_IW_SECPOL_NONE 0x00 #define IP_IW_SECPOL_TSN 0x01 #define IP_IW_SECPOL_WPA 0x02 #define IP_IW_SECPOL_RSN 0x04 /* Authentication Policy bit vectors */ #define IP_IW_AUTHPOL_OPEN 0x00 #define IP_IW_AUTHPOL_SHARED_KEY 0x01 #define IP_IW_AUTHPOL_WPA 0x02 #define IP_IW_AUTHPOL_WPA_PSK 0x04 #define IP_IW_AUTHPOL_WPA2 0x08 #define IP_IW_AUTHPOL_WPA2_PSK 0x10 /* Cipher (encryption) Policy bit vectors */ #define IP_IW_CIPHPOL_NONE 0x00 #define IP_IW_CIPHPOL_WEP40 0x02 #define IP_IW_CIPHPOL_WEP104 0x04 #define IP_IW_CIPHPOL_TKIP 0x08 #define IP_IW_CIPHPOL_CCMP 0x10 /* IP_SIOCSIWENCRTYPE: */ #define IP_IW_ENCR_ALG_NONE IP_IW_CIPHPOL_NONE #define IP_IW_ENCR_ALG_WEP IP_IW_CIPHPOL_WEP #define IP_IW_ENCR_ALG_TKIP IP_IW_CIPHPOL_TKIP #define IP_IW_ENCR_ALG_CCMP IP_IW_CIPHPOL_CCMP /* SSID flags */ #define IP_IW_SSID_SHOW 0x00 #define IP_IW_SSID_HIDE 0x01 /* MIMO support for 40MHz Channel aggregation */ #define IP_IW_MIMO_BW_40MHZ 0x04 #define IP_IW_MIMO_BW_20MHZ_LOWER 0x02 #define IP_IW_MIMO_BW_20MHZ_UPPER 0x03 #define IP_IW_MIMO_BW_40MHZ_DUP 0x05 #define IP_IW_CHANSPEC_BAND_2G 0x2000 #define IP_IW_CHANSPEC_BW_20 0x0800 #define IP_IW_CHANSPEC_BW_40 0x0C00 #define IP_IW_CHANSPEC_CTL_SB_LOWER 0x0100 #define IP_IW_CHANSPEC_CTL_SB_UPPER 0x0200 #define IP_IW_CHANSPEC_CTL_SB_NONE 0x0300 /* Radio mode flags */ #define IP_IW_RADIOMODE_NONE 0x00 #define IP_IW_RADIOMODE_11A 0x01 #define IP_IW_RADIOMODE_11B 0x02 #define IP_IW_RADIOMODE_11G 0x04 #define IP_IW_RADIOMODE_11N 0x20 #define IP_IW_RADIOMODE_AUTO 0x1f #define IPCOM_WLAN_MAX_KEY_SIZE 64 #define IPCOM_WLAN_MAX_WEP_KEY_SIZE 13 #define IP_IW_KEY_FLAG_STA_KEY 0x01 #define IP_IW_KEY_FLAG_AP_KEY 0x02 #define IP_IW_KEY_FLAG_NOKEY 0x04 #define IP_IW_KEY_FLAG_GROUP 0x08 #define IP_IW_KEY_FLAG_PAIR 0x10 #define IP_IW_KEY_FLAG_PASS 0x20 #define IP_IW_KEY_AES_LEN 16 #define IP_IW_KEY_TKIP_LEN 32 #define IP_IW_KEY_WEP_LEN 32 #define IP_IW_KEY_WEP40_LEN 5 #define IP_IW_KEY_WEP104_LEN 13 #define IP_IW_KEY_WPA_LEN 64 #define IP_IW_KEY_WPA2_LEN 64 #define IP_IW_KEY_PMK_LEN 64 /* Keep matched to IP_IW_CIPHPOL */ #define IP_IW_KEY_WEP40_TYPE IP_IW_CIPHPOL_WEP40 #define IP_IW_KEY_WEP104_TYPE IP_IW_CIPHPOL_WEP104 #define IP_IW_KEY_TKIP_TYPE IP_IW_CIPHPOL_TKIP #define IP_IW_KEY_AES_TYPE IP_IW_CIPHPOL_CCMP #define IP_IW_KEY_WPA_TYPE 0x14 #define IP_IW_KEY_WPA2_TYPE 0x18 #define IP_IW_4WAYHS_FLAG_INIT 0 #define IP_IW_4WAYHS_FLAG_DONE 1 /* WME Access Category Indices (ACIs) */ #define IP_IW_AC_BE 0 /* Best Effort */ #define IP_IW_AC_BK 1 /* Background */ #define IP_IW_AC_VI 2 /* Video */ #define IP_IW_AC_VO 3 /* Voice */ #define IP_IW_AC_COUNT 4 /* number of ACs */ #define IP_IW_ENCODE_FLAGS 0xff00 #define IP_IW_ENCODE_DISABLED 0x8000 /* Encoding disabled */ #define IP_IW_ENCODE_OPEN 0x2000 #define IP_IW_ENCODE_NOKEY 0x0800 #define IP_IW_MAX_RATES 255 #define IP_IW_MCSSET_LEN 16 #define IP_IW_MAX_CHANNELS 64 #define IWREQ_UNION_SIZE (64) #define IP_IW_WLAN_MAX_RTS 2347 #define IP_IW_ACL_DENY 2 #define IP_IW_ACL_ALLOW 1 #define IP_IW_ACL_NONE 0 #define IP_IW_PM_ON 1 #define IP_IW_PM_OFF 0 #define IP_IW_PS_MAX 100 #define IP_IW_PS_66 66 #define IP_IW_PS_50 50 #define IP_IW_PS_33 33 #define IP_IW_PS_MIN 25 #define IP_IW_SCANMODE_PASSIVE 1 #define IP_IW_SCANMODE_ACTIVE 2 #define IP_IW_ADDR_LEN 6 #define IP_IW_MAX_DEBUG_LEVELS 32 #define IP_IW_MAX_STATISTICS 256 #define IP_IW_DEFAULT_SCAN_TIME 1 #define IP_IW_MIMO_STD_SISO 0 #define IP_IW_MIMO_STD_CDD 1 #define IP_IW_MIMO_STD_STBC 2 #define IP_IW_MIMO_STD_SDM 3 #define IP_IW_DOT1X_PORTSTATUS_UNCONTROLLED 0 #define IP_IW_DOT1X_PORTSTATUS_CLOSED 1 #define IP_IW_DOT1X_PORTSTATUS_OPEN 2 #ifndef MIN #define MIN(a, b) (((a)<(b))?(a):(b)) #endif #define IE_MAX_LEN 254 /* IE max length */ #define IE_HDR_LEN 2 /* id + len field */ #define IE_ADD 1 #define IE_DEL 2 #define WPSIE_PKTTYPE 5 /* **************************************************************************** * 5 TYPES **************************************************************************** */ /* 802.11 packet types */ typedef enum { FIRST_DRV_PKTTYPE = 1, BEACON, PROBE_RESPONSE, PROBE_REQUEST, ASSOC_REQUEST, ASSOC_RESPONSE, LAST_DRV_PKTTYPE }ipwlan_pkt_type; typedef struct Ipcom_wlan_func_st { int (*link_input)(Ipcom_netif *, Ipcom_pkt *); } Ipcom_wlan_func; typedef struct Ipcom_iw_point { void *pointer; /* Pointer to the data (in user space) */ Ip_u16 length; /* number of fields or size in bytes */ Ip_u16 flags; /* Optional params */ } Ipcom_iw_point; typedef struct Ipcom_iw_param { Ip_s32 value; Ip_u8 fixed; /* Hardware should not use auto select */ Ip_u8 disabled; /* Disable the feature */ Ip_u16 flags; /* Various specific flags (if any) */ } Ipcom_iw_param; typedef struct Ipcom_iw_callback { void *ptr; /* Pointer to the callback routine */ Ip_u32 param; /* optional param to pass back upon callback */ } Ipcom_iw_callback; typedef struct Ipcom_iw_quality { Ip_u8 qual; /* link quality (%retries, SNR, %missed beacons or better...) */ Ip_s8 level; /* signal level (dBm) */ Ip_u8 noise; /* noise level (dBm) */ Ip_u8 updated; /* Flags to know if updated */ Ip_u8 bssid[6]; /* BSSID to request quality values for, zero => the currently associated */ } Ipcom_iw_quality; typedef struct Ipcom_iw_key_rsc_st { Ip_u8 rsc[8]; Ip_u32 index; Ip_bool tx; /* 1 for transmit counter, 0 for receive */ Ip_u8 addr[6]; } Ipcom_iw_key_rsc; typedef struct Ipcom_iw_key_st { Ip_u32 type; Ip_u32 flags; Ip_u32 index; int len; Ip_u8 key[IPCOM_WLAN_MAX_KEY_SIZE]; Ip_u8 addr[6]; #if 1 Ip_bool key_rsc_set; /* set to 1 if key_rsc included */ Ipcom_iw_key_rsc key_rsc; #endif } Ipcom_iw_key; typedef struct Ipcom_iw_freq_st { Ip_s32 m; Ip_s16 e; Ip_u8 i; Ip_u8 flags; } Ipcom_iw_freq; typedef struct Ipcom_iw_rates_st { Ip_u32 count; /* # rates in this set */ Ip_u8 rates[IP_IW_MAX_RATES]; /* rates in 500kbps units w/hi bit set if basic */ Ip_u8 mcs[IP_IW_MCSSET_LEN]; /* supported mcs index bit map */ } Ipcom_iw_rates; typedef struct Ipcom_iw_channels_st { Ip_u32 count; /* # channels in this set */ Ip_u8 chan[IP_IW_MAX_CHANNELS]; /* channels */ } Ipcom_iw_channels; typedef struct Ipcom_iw_nmode_st { Ip_u32 mcs; Ip_u32 std; Ip_u32 legacyrate; Ip_bool legacymode; Ip_u32 status; } Ipcom_iw_nmode; typedef struct Ipcom_iw_country_code_st { const char *abbrev; const Ip_u32 code; } Ipcom_iw_country_code; typedef struct Ipcom_iw_debug_level_st { const Ip_u32 value; const char *description; } Ipcom_iw_debug_level; typedef struct Ipcom_iw_debug_levels_st { Ipcom_iw_debug_level levels[32]; } Ipcom_iw_debug_levels; typedef struct Ipcom_iw_statistic_st { Ip_u64 value; const char *description; } Ipcom_iw_statistic; typedef struct Ipcom_iw_scan_result_st { char *ssid; unsigned char *bssid; int mode; int channel; int level; int noise; } Ipcom_iw_scan_result; typedef struct Ipcom_iw_dot1x_port_control_st { Ip_u16 status; Ip_u8 addr[6]; } Ipcom_iw_dot1x_port_control; typedef struct Ipcom_iw_deauth_req_st { Ip_u32 reason; /* deauth reason */ Ip_u8 addr[6]; } Ipcom_iw_deauth_req; /* standard wmm parameters */ typedef struct Ipcom_wmm_edcf_param_st { Ip_bool acm; /* admission control mandatory*/ Ip_u32 aci; /* access category */ Ip_u32 aifsn;/* arbitrate inter frame spacing */ Ip_u32 ecwmin; /* contention window min */ Ip_u32 ecwmax; /* max */ Ip_u32 txop; /* transmit opportunity */ }Ipcom_wmm_edcf_param; typedef struct ipcom_ipwlan_ie_st { Ip_u16 pkt_type; /* packet type i.e. Beacon, ProbeReq ,ProbRes .. */ Ip_u8 ie_cmd; /* IE add, del command */ Ip_u8 *iebuf; }ipcom_ipwlan_ie; #include typedef IP_PACKED1 struct ipcom_drv_custom_scan_instruction_st { Ip_u16 packet_type; Ip_u8 *data; Ip_s16 no_of_data_or_len; Ip_u8 cmd[8]; /* start, stop, wpsscan */ } IP_PACKED2 ipcom_drv_custom_scan_instruction; #include typedef struct ipcom_ipwps_state_st { Ip_u32 wps_mode; /* 1 = on, 0 = off */ Ip_u32 rc; /* return code, IPCOM_SUCCESS, IPCOM_ERR_NOT_SUPPORTED, IPCOM_ERR_FAILED */ }ipcom_ipwps_state; typedef struct ipcom_supported_bands_st { Ip_bool is_support_2_4_GHZ; Ip_bool is_support_5_GHZ; }ipcom_supported_bands; typedef struct ipcom_join_param_st{ Ip_u8 ssid[32+1]; Ip_u8 bssid[6]; Ip_u8 mode; /*1 = INFRA, ADHOC = 0*/ }ipcom_join_param_t; typedef union Ipcom_iwreq_data_u { Ip_u32 encr_type; Ip_u32 auth_type; Ip_u32 sec_type; Ip_u32 pm; Ip_u32 ps; Ip_u16 channel; Ip_u32 lrl; Ip_u32 srl; Ip_u32 bi; Ip_u32 rate; Ip_u32 mode; Ip_u32 fragthresh; Ip_u32 rtsthresh; Ip_u32 radiomode; Ip_u32 hidessid; Ip_u32 aclmode; Ip_u32 scanmode; Ip_u32 countrycode; Ip_u32 bssindex; Ip_u32 regmode; Ip_u32 value32; Ip_u32 debuglevel; Ip_u32 vlan; Ip_u32 mbss; Ip_u32 mimobw; Ip_u32 wpa_type; Ip_u16 rsn_cap; Ip_u8 wme_ac_queue; Ip_u32 wme; ipcom_supported_bands supported_bands; ipcom_ipwps_state wps_state; Ipcom_wmm_edcf_param edcf[IP_IW_AC_COUNT]; Ipcom_iw_key key; Ipcom_iw_key_rsc key_rsc; Ipcom_iw_point essid; Ipcom_iw_point encode; Ipcom_iw_point data; Ipcom_iw_param param; ipcom_drv_custom_scan_instruction custom_scan; ipcom_ipwlan_ie iedata; Ipcom_iw_freq freq; Ipcom_iw_quality quality; Ipcom_iw_rates supprates; Ipcom_iw_channels suppchan; Ipcom_iw_nmode nmode; Ipcom_iw_dot1x_port_control dot1xport; Ipcom_iw_callback callback; ipcom_join_param_t join_param; struct Ip_sockaddr addr; Ip_u8 fixed_size[IWREQ_UNION_SIZE]; /* RIME: make 'iwreq' and 'Ipcom_iwreq' same size */ Ip_u8 macAddr[6]; Ipcom_iw_deauth_req deauth_req; } Ipcom_iwreq_data; typedef struct iwreq_s { char if_name[IP_IFNAMSIZ]; Ipcom_iwreq_data u; } Ipcom_iwreq; #define MAX_IWREQ_SMALL_DATA (52) #define MAX_IWREQ_LARGE_DATA (4000) typedef struct iwreq_small_data_s { char if_name[IP_IFNAMSIZ]; Ipcom_iwreq_data u; char data[MAX_IWREQ_SMALL_DATA]; } Ipcom_iwreq_small_data; typedef struct iwreq_large_data_s { char if_name[IP_IFNAMSIZ]; Ipcom_iwreq_data u; char data[MAX_IWREQ_LARGE_DATA]; } Ipcom_iwreq_large_data; /* Wireless IOCTL used in Ipcom_iw_event */ #define SIOCGIWAP 0x8B15 #define SIOCGIWESSID 0x8B1B #define SIOCGIWMODE 0x8B07 #define SIOCGIWFREQ 0x8B05 #define SIOCGIWENCODE 0x8B2B #define SIOCGIWRATE 0x8B21 #define SIOCGIWSPY 0x8B11 typedef struct iw_event_s { Ip_u16 len; /* Real length of this stuff */ Ip_u16 cmd; /* Wireless IOCTL */ Ipcom_iwreq_data u; /* IOCTL fixed payload */ } Ipcom_iw_event; /* Size of the Event prefix (including padding and alignement junk) */ #define IP_IW_EV_LCP_LEN (sizeof(Ipcom_iw_event) - sizeof(Ipcom_iwreq_data)) /* Size of the various events */ #define IP_IW_EV_CHAR_LEN (IP_IW_EV_LCP_LEN + IFNAMSIZ) #define IP_IW_EV_UINT_LEN (IP_IW_EV_LCP_LEN + sizeof(Ip_u32)) #define IP_IW_EV_FREQ_LEN (IP_IW_EV_LCP_LEN + sizeof(Ipcom_iw_freq)) #define IP_IW_EV_POINT_LEN (IP_IW_EV_LCP_LEN + sizeof(Ipcom_iw_point)) #define IP_IW_EV_PARAM_LEN (IP_IW_EV_LCP_LEN + sizeof(Ipcom_iw_param)) #define IP_IW_EV_ADDR_LEN (IP_IW_EV_LCP_LEN + sizeof(struct Ip_sockaddr)) #define IP_IW_EV_QUAL_LEN (IP_IW_EV_LCP_LEN + sizeof(Ipcom_iw_quality)) #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */