671 lines
23 KiB
C
671 lines
23 KiB
C
/*
|
|
******************************************************************************
|
|
* 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 <ipcom_align16.h>
|
|
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 <ipcom_align16.h>
|
|
|
|
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
|
|
****************************************************************************
|
|
*/
|
|
|