Files
2026-07-30 11:19:44 +05:30

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
****************************************************************************
*/