Files
m241Neelima/components/ip_net2-6.9/ipwlan/include/ipwlan_atheros.h
T
2026-07-30 11:19:44 +05:30

503 lines
18 KiB
C

/* ipwlan_atheros.h - Structures for atheros wlan driver */
/*
******************************************************************************
* INTERPEAK API HEADER FILE
*
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipwlan_atheros.h,v $ $Revision: 1.5 $
* $Source: /home/interpeak/CVSRoot/ipwlan/include/ipwlan_atheros.h,v $
* $Author: ulf $ $Date: 2009-11-25 09:59:10 $
* $State: Exp $ $Locker: $
*
* Copyright 2000-2007 Interpeak AB (http://www.interpeak.se). All rights reserved.
* Design and implementation by Kenneth Jonsson <kenneth@interpeak.se>
******************************************************************************
*/
#ifndef IPWLAN_ATHEROS_H
#define IPWLAN_ATHEROS_H
/*
****************************************************************************
* 1 DESCRIPTION
****************************************************************************
*/
/*
DESCRIPTION
This library contains structures used by the Broadcom wlan driver
*/
/*
****************************************************************************
* 2 CONFIGURATION
****************************************************************************
*/
/*
****************************************************************************
* 3 INCLUDE FILES
****************************************************************************
*/
#include <ipcom_type.h>
#include <ipcom_cstyle.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
****************************************************************************
* 4 DEFINES
****************************************************************************
*/
#define ATH_IOC_USER 0x8000
#define ATH_IOCPARM_MASK 0xfff
#define ATH_IOC(inout,group,num,len) \
((Ip_u32)(inout | ((len & ATH_IOCPARM_MASK) << 16) | \
((group) << 8) | (num)))
#define ATH_IO(g,n) ATH_IOC(IP_IOC_VOID,(g),(n),0)
#define ATH_IOR(g,n,t) ATH_IOC(IP_IOC_OUT,(g),(n),sizeof(t))
#define ATH_IOW(g,n,t) ATH_IOC(IP_IOC_IN,(g),(n),sizeof(t))
#define ATH_IOWR(g,n,t) ATH_IOC(IP_IOC_INOUT,(g),(n),sizeof(t))
#define ATH_IOU(g,n) (ATH_IOC_USER|ATH_IO(g,n))
#define ATH_IORU(g,n,t) (ATH_IOC_USER|ATH_IOR(g,n,t))
#define ATH_IOWU(g,n,t) (ATH_IOC_USER|ATH_IOW(g,n,t))
#define ATH_IOWRU(g,n,t) (ATH_IOC_USER|ATH_IOWR(g,n,t))
#ifndef _BIT
#define _BIT(x) (1<<(x))
#endif
/* Error codes */
#define IPWLAN_ATHEROS_ERR_FAILED -1
#define IPWLAN_ATHEROS_ERR_UNSUPPORTED -2
#define IPWLAN_ATHEROS_ERR_INVALID_ARG -3
#define IPWLAN_ATHEROS_ERR_INVALID_MODE -4
/* Debug values, macros */
#define IPWLAN_ATHEROS_MAX_DEBUG (sizeof(ipwlan_atheros_debuglevels)/sizeof(Ipcom_iw_debug_level))
#define IPWLAN_ATHEROS_MAX_STATS 33
#define DOT11_MAX_CHANNELS 64
#define DOT11_MAX_DEFAULT_KEY 4
#define DOT11_PASSPHRASE_LEN 63
typedef char DOT11_PASSPHRASE[DOT11_PASSPHRASE_LEN];
#define DOT11_DEBUG_FATAL 1
#define DOT11_DEBUG_ERROR 2
#define DOT11_DEBUG_INFO 3
#define DOT11_DEBUG_FLOOD 4
#define DOT11_DEBUG_NONE 0
#define DOT11_AREA_ALL 0
#define DOT11_AREA_INIT 1
#define DOT11_AREA_SME 2
#define DOT11_AREA_DPE 3
#define DOT11_AREA_HDD 4
#define DOT11_AREA_INT 5
#define ATH_DBG_AREAS 6
#define ATH_DBG_NONE 0
#define ATH_DBG_ALL 1
#define ATH_DBG_INFO 2
#define ATH_DBG_ERROR 4
#define ATH_DBG_FATAL 8
#define ATH_DBG_ALL_SHIFT 0
#define ATH_DBG_INIT_SHIFT 4
#define ATH_DBG_STATE_SHIFT 8
#define ATH_DBG_DATA_SHIFT 12
#define ATH_DBG_HW_SHIFT 16
#define ATH_DBG_ISR_SHIFT 20
#define ATH_DBG_ALL_NONE 0x00000000
#define ATH_DBG_ALL_ALL 0x00000004
#define ATH_DBG_ALL_INFO 0x00000003
#define ATH_DBG_ALL_ERROR 0x00000002
#define ATH_DBG_ALL_FATAL 0x00000001
#define ATH_DBG_INIT_NONE 0x01000000
#define ATH_DBG_INIT_ALL 0x01000040
#define ATH_DBG_INIT_INFO 0x01000030
#define ATH_DBG_INIT_ERROR 0x01000020
#define ATH_DBG_INIT_FATAL 0x01000010
#define ATH_DBG_STATE_NONE 0x02000000
#define ATH_DBG_STATE_ALL 0x02000400
#define ATH_DBG_STATE_INFO 0x02000300
#define ATH_DBG_STATE_ERROR 0x02000200
#define ATH_DBG_STATE_FATAL 0x02000100
#define ATH_DBG_DATA_NONE 0x04000000
#define ATH_DBG_DATA_ALL 0x04004000
#define ATH_DBG_DATA_INFO 0x04003000
#define ATH_DBG_DATA_ERROR 0x04002000
#define ATH_DBG_DATA_FATAL 0x04001000
#define ATH_DBG_HW_NONE 0x08000000
#define ATH_DBG_HW_ALL 0x08040000
#define ATH_DBG_HW_INFO 0x08030000
#define ATH_DBG_HW_ERROR 0x08020000
#define ATH_DBG_HW_FATAL 0x08010000
#define ATH_DBG_ISR_NONE 0x10000000
#define ATH_DBG_ISR_ALL 0x10400000
#define ATH_DBG_ISR_INFO 0x10300000
#define ATH_DBG_ISR_ERROR 0x10200000
#define ATH_DBG_ISR_FATAL 0x10100000
#define MAX_TEXT_LEN 100
#define DOT11_ADDR_LEN 6
#define DOT11_SSID_LEN 32
#define MAX_CHANNEL_NO (sizeof(ipwlan_atheros_freq)/sizeof(int))
#define DOT11_MODE_NONE 0
#define DOT11_MODE_ESS 1
#define DOT11_MODE_IBSS 2
#define DOT11_MODE_AP 3
#define DOT11_MAX_RATES 256
#define DOT11_MAX_SCANRESULTS 50
#define DOT11_RATE(x) (((x) & 0x7f) / 2)
#define DOT11_RATE_MASK(x) (((x) & 0x7f))
#define DOT11_IS_BRATE(x) (((x) & 0x80) == 0x80)
#define ALIGN_UP_4(a) (((a)+3)&(~0<<2))
#define CHANNEL_MASK(c) ((c) & 0xff)
#define DOT11_KSL_MAX_HASH 256
#define DOT11_ACL_DISABLED 0
#define DOT11_ACL_ALLOW 1
#define DOT11_ACL_DENY 2
#define DOT11_SCANTYPE_ACTIVE _BIT(0)
#define DOT11_SCANTYPE_PASSIVE _BIT(1)
#define DOT11_TXPOWER_MAX 0
#define DOT11_TXPOWER_66 1
#define DOT11_TXPOWER_50 2
#define DOT11_TXPOWER_33 3
#define DOT11_TXPOWER_MIN 4
#define DOT11_AUTHTYPE_OPEN 1
#define DOT11_AUTHTYPE_SKA 2
#define DOT11_AUTHTYPE_ALL 3
#define DOT11_AUTHPOL_NONE 0
#define DOT11_AUTHPOL_8021X _BIT(0)
#define DOT11_AUTHPOL_PSK _BIT(1)
#define DOT11_AUTHPOL_MAX (DOT11_AUTHPOL_PSK + 1)
#define DOT11_SECPOL_NONE 0
#define DOT11_SECPOL_TSN _BIT(0)
#define DOT11_SECPOL_WPA _BIT(1)
#define DOT11_SECPOL_11i _BIT(2)
#define DOT11_CIPHPOL_NONE 0
#define DOT11_CIPHPOL_WEP40 _BIT(0)
#define DOT11_CIPHPOL_WEP104 _BIT(1)
#define DOT11_CIPHPOL_TKIP _BIT(2)
#define DOT11_CIPHPOL_AES _BIT(3)
#define DOT11_CIPHPOL_MAX (DOT11_CIPHPOL_AES + 1)
#define DOT11_WEP40_KEY_SIZE 5
#define DOT11_WEP104_KEY_SIZE 13
#define DOT11_AES_KEY_SIZE 16
#define DOT11_TKIP_KEY_SIZE 32
#define DOT11_MAX_WEP_KEY_INDEX 3
#define DOT11_KEYINDEX_SEARCH 65536
#define DOT11_RADIO_NONE 0
#define DOT11_RADIO_11a _BIT(0)
#define DOT11_RADIO_11b _BIT(1)
#define DOT11_RADIO_11g _BIT(2)
#define DOT11_RADIO_TURBOg _BIT(3)
#define DOT11_RADIO_TURBOa _BIT(4)
#define DOT11_RADIO_ANY 0x1f
/* Capability Information Field */
#define DOT11_CAP_ESS 0x0001 /* d11 cap. ESS */
#define DOT11_CAP_IBSS 0x0002 /* d11 cap. IBSS */
#define DOT11_CAP_PRIVACY 0x0010 /* d11 cap. privacy */
#define WIOCSDOT1XPORTSTATUS ATH_IOW('x', 0x01, DOT11_DOT1X_PORTSTATUS)
#define WIOCSAUTHCALLBACK ATH_IOW('x', 0x02, DOT11_CALLBACK_PARAMS)
#define WIOCGSTATS ATH_IORU('w', 0x001, DOT11_STATS)
#define WIOCGLINKSTAT 0x002
#define WIOCGDESIREDSSID ATH_IORU('w', 0x003, DOT11_SSID)
#define WIOCSSSID ATH_IOWU('w', 0x004, DOT11_SSID)
#define WIOCGCONNECTEDSSID ATH_IORU('w', 0x005, DOT11_SSID)
#define WIOCGCONNECTEDBSSID 0x006
#define WIOCGTXRATE ATH_IORU('w', 0x007, Ip_u32)
#define WIOCSTXRATE ATH_IOWU('w', 0x008, DOT11_RATES)
#define WIOCGPWRMAN ATH_IORU('w', 0x009, Ip_u32)
#define WIOCSPWRMAN ATH_IOU('w', 0x00a)
#define WIOCGCOMMQUAL 0x00b
#define WIOCGCARDTYPE 0x00c
#define WIOCGCHANNEL ATH_IORU('w', 0x00d, Ip_u32)
#define WIOCSCHANNEL ATH_IOU('w', 0x00e)
#define WIOCGWEPAVAIL 0x00f
#define WIOCSWEPKEY0 ATH_IOWU('w', 0x010, DOT11_KEY)
#define WIOCSWEPKEY1 ATH_IOWU('w', 0x011, DOT11_KEY)
#define WIOCSWEPKEY2 ATH_IOWU('w', 0x012, DOT11_KEY)
#define WIOCSWEPKEY3 ATH_IOWU('w', 0x013, DOT11_KEY)
#define WIOCSWEPDEFAULTKEY ATH_IOU('w', 0x014)
#define WIOCGENCRYPTTYPE ATH_IORU('w', 0x015, Ip_u32)
#define WIOCSENCRYPTTYPE ATH_IOU('w',0x016)
#define WIOCAACLSTA ATH_IOWU('w', 0x017, DOT11_ADDR)
#define WIOCDACLSTA ATH_IOWU('w', 0x018, DOT11_ADDR)
#define WIOCSEXUNENCRYPT 0x019
#define WIOCGEXUNENCRYPT 0x01a
#define WIOCGAUTHTYPE ATH_IORU('w', 0x01b, Ip_u32)
#define WIOCSAUTHTYPE ATH_IOU('w', 0x1c)
#define WIOCSBEACONRATE ATH_IOU('w', 0x01e)
#define WIOCGBEACONRATE ATH_IORU('w', 0x01f, Ip_u32)
#define WIOCGMAC 0x020
#define WIOCSCTSRTS ATH_IOU('w', 0x021)
#define WIOCGCTSRTS ATH_IORU('w', 0x022, Ip_u32)
#define WIOCSSHORTRETRY ATH_IOU('w', 0x023)
#define WIOCGSHORTRETRY ATH_IORU('w', 0x024, Ip_u32)
#define WIOCSLONGRETRY ATH_IOU('w', 0x025)
#define WIOCGLONGRETRY ATH_IORU('w', 0x026, Ip_u32)
#define WIOCSFRAGTHRESH ATH_IOU('w', 0x027)
#define WIOCGFRAGTHRESH ATH_IORU('w', 0x028, Ip_u32)
#define WIOCSMAXTXLIFE 0x029
#define WIOCGMAXTXLIFE 0x02a
#define WIOCSMAXRXLIFE 0x02b
#define WIOCGMAXRXLIFE 0x02c
#define WIOCSPREAMBLE 0x02d
#define WIOCGPREAMBLE 0x02e
#define WIOCSAUTHRESPTO 0x02f
#define WIOCGAUTHRESPTO 0x030
#define WIOCSADVSECURITY ATH_IOU('w', 0x035)
#define WIOCGADVSECURITY ATH_IORU('w', 0x036, Ip_u32)
#define WIOCSOCCUPANCY 0x037
#define WIOCGOCCUPANCY 0x038
#define WIOCGCFPPOLL 0x039
#define WIOCSCFPPERIOD 0x03a
#define WIOCGCFPPERIOD 0x03b
#define WIOCSCFPMAX 0x03c
#define WIOCGCFPMAX 0x03d
#define WIOCSDTIMRATE 0x03e
#define WIOCGDTIMRATE 0x03f
#define WIOCGSUPPTXRATE ATH_IORU('w', 0x040, DOT11_RATES)
#define WIOCGSUPPRXRATE ATH_IORU('w', 0x041, DOT11_RATES)
#define WIOCSASSOCRESPTIME 0x042
#define WIOCGASSOCRESPTIME 0x043
#define WIOCSBCASTRATE 0x044
#define WIOCGBCASTRATE 0x045
#define WIOCSRADIOMODE ATH_IOU('w', 0x046)
#define WIOCGRADIOMODE ATH_IORU('w', 0x047, Ip_u32)
#define WIOCSDOT11MODE ATH_IOU('w', 0x048)
#define WIOCGDOT11MODE ATH_IORU('w', 0x049, Ip_u32)
#define WIOCSACLMODE ATH_IOU('w', 0x04a)
#define WIOCGACLMODE ATH_IORU('w', 0x04b, Ip_u32)
#define WIOCGWEPDEFAULTKEY ATH_IORU('w' 0x04c, Ip_u32)
#define WIOCSDESIREDSSID 0x04d
#define WIOCUNSUPPORTED 0x04e
#define WIOCAPAIRWISEKEY ATH_IOWU('w', 0x04f, DOT11_KEY)
#define WIOCSSECPOL ATH_IOU('w', 0x050)
#define WIOCGSECPOL ATH_IORU('w', 0x051, Ip_u32)
#define WIOCSAUTHPOL ATH_IOU('w', 0x052)
#define WIOCGAUTHPOL ATH_IORU('w', 0x053, Ip_u32)
#define WIOCSCIPHPOL ATH_IOU('w', 0x054)
#define WIOCGCIPHPOL ATH_IORU('w', 0x055, Ip_u32)
#define WIOCSPSK ATH_IOWU('w', 0x56, DOT11_PSK)
#define WIOCSPASSPHRASE ATH_IOWU('w', 0x57, DOT11_PASSPHRASE)
#define WIOCBSSSCAN ATH_IOWRU('w', 0x058, DOT11_SCAN_REQ)
#define WIOCSCOUNTRYCODE ATH_IOU('w', 0x059)
#define WIOCGCOUNTRYCODE ATH_IORU('w', 0x5a, Ip_u32)
#define WIOCS80211D ATH_IOU('w', 0x5b)
#define WIOCG80211D ATH_IORU('w', 0x5c, Ip_u32)
#define WIOCSBULK 0x5d
#define WIOCGHWVERS 0x5e
#define WIOCGTXPOWERSCALE ATH_IORU('w', 0x5f, Ip_u32)
#define WIOCSTXPOWERSCALE ATH_IOU('w', 0x60)
#define WIOCSUSERAUTHCALLBACK 0x61
#define WIOCDPAIRWISEKEY ATH_IOWU('w', 0x62, DOT11_ADDR)
#define WIOCGCHANNELLIST ATH_IOWRU('w', 0x63, DOT11_CHANNEL_LIST)
#define WIOCSSCANTYPE ATH_IOU('w', 0x64)
#define WIOCGSCANTYPE ATH_IORU('w', 0x65, Ip_u32)
#define WIOCSBSS ATH_IOU('w', 0x66)
#define WIOCGBSS ATH_IORU('w', 0x67, Ip_u32)
#define WIOCABSS ATH_IORU('w', 0x68, Ip_u32)
#define WIOCDBSS ATH_IOU('w', 0x69)
#define WIOCSMBSSADDRBITS 0x6a
#define WIOCSASSOCLIMIT 0x6b
#define WIOCSVLAN 0x6c
#define WIOCGVLAN 0x6d
#define WIOCSBRSSITHR 0x6e
#define WIOCGBRSSITHR 0x6f
#define WIOCGACL ATH_IOWRU('w', 0x070, DOT11_ACL)
#define WIOCS4WAYHSSTATE ATH_IOWRU('w', 0x071, DOT11_4WAYHSSTATE)
#define WIOCSEXTRSN ATH_IOWRU('w', 0x072, Ip_u32)
#define WIOCSTKIPCMSTART ATH_IOWU('w', 0x73, DOT11_ADDR)
#define WIOCSDEAUTH ATH_IOWU('w', 0x74, DOT11_DEAUTH_REQ)
#define EIOCVLANJOIN ATH_IOU('e', 37)
#define EIOCVLANGET ATH_IOWRU('e', 40, END_VLAN_REQ)
/*
****************************************************************************
* 5 TYPES
****************************************************************************
*/
typedef char DOT11_SSID[DOT11_SSID_LEN + 1];
typedef Ip_u8 DOT11_ADDR[DOT11_ADDR_LEN];
#include "ipcom_align16.h"
typedef IP_PACKED1 struct
{
Ip_u32 length;
Ip_u8 rates[DOT11_MAX_RATES];
} IP_PACKED2
DOT11_RATES;
#include "ipcom_align16.h"
#include "ipcom_align16.h"
typedef IP_PACKED1 struct
{
int numStations;
DOT11_ADDR macAddr[DOT11_ADDR_LEN];
} IP_PACKED2
DOT11_ACL;
#include "ipcom_align16.h"
typedef struct
{
Ip_u32 channel;
Ip_u32 freq;
Ip_u32 mode;
Ip_bool activeScanAllowed;
} DOT11_CHANNEL_INFO;
typedef struct
{
Ip_u32 numChannels;
DOT11_CHANNEL_INFO channels[DOT11_MAX_CHANNELS];
} DOT11_CHANNEL_LIST;
typedef struct
{
char ssid[DOT11_SSID_LEN + 1];
Ip_u8 macAddr[DOT11_ADDR_LEN];
Ip_u16 capabilities;
DOT11_RATES rates;
Ip_u16 beaconInterval;
Ip_u32 channel;
Ip_u8 ssi;
} DOT11_SCAN_RESULTS;
typedef struct
{
Ip_u8 ssid[DOT11_SSID_LEN + 1];
Ip_u32 maxResults;
DOT11_SCAN_RESULTS * pResults;
Ip_u32 numResults;
} DOT11_SCAN_REQ;
typedef struct
{
Ip_u32 keyType;
Ip_u32 keySlot; /* Keyslot key was installed to */
Ip_u8 macAddr[DOT11_ADDR_LEN];
union
{
Ip_u8 wep40[DOT11_WEP40_KEY_SIZE];
Ip_u8 wep104[DOT11_WEP104_KEY_SIZE];
Ip_u8 aes[DOT11_AES_KEY_SIZE];
Ip_u8 tkip[DOT11_TKIP_KEY_SIZE];
} type;
Ip_u16 dummy_pad; /* Make struct 4 byte aligned to avoid compiler packing issues */
} DOT11_KEY;
/* structure used by 4 WAY Handshake state Ioctl */
typedef struct
{
Ip_bool established; /* 4 WAY Handshake established or not */
Ip_u8 macAddr[DOT11_ADDR_LEN];
Ip_u16 dummy_pad; /* Make struct 4 byte aligned to avoid compiler packing issues */
} DOT11_4WAYHSSTATE;
typedef struct
{
Ip_u32 reason;
Ip_u8 macAddr[DOT11_ADDR_LEN];
Ip_u16 dummy_pad; /* Make struct 4 byte aligned to avoid compiler packing issues */
} DOT11_DEAUTH_REQ;
#define DOT11_PMK_LEN 32
typedef Ip_u8 DOT11_PMK[DOT11_PMK_LEN];
#define DOT11_PSK_LEN 64
typedef Ip_u8 DOT11_PSK[DOT11_PSK_LEN];
typedef struct /* DOT11_STATS */
{
Ip_u32 rxFrames;
Ip_u32 rxFragments;
Ip_u32 rxMcastFragments;
Ip_u64 rxTotalBytes;
Ip_u32 rxDuplicates;
Ip_u32 rxFCSError;
Ip_u32 rxHardwareError;
Ip_u32 rxDecryptError;
Ip_u32 rxMicFailure;
Ip_u32 rxExcludeUnencrypted;
Ip_u32 rxDot1xDropped;
Ip_u32 rxCantReassemble;
Ip_u32 rxBytesPerSec;
Ip_u32 rxBytesPer16Sec;
Ip_u32 txFrames;
Ip_u32 txFragments;
Ip_u32 txMcastFragments;
Ip_u64 txTotalBytes;
Ip_u32 txRetry;
Ip_u32 txRetryMultiple;
Ip_u32 txRetryFailure;
Ip_u32 txAckFailure;
Ip_u32 txRTSFailure;
Ip_u32 txRTSSuccess;
Ip_u32 txHardwareError;
Ip_u32 txDot1xDropped;
Ip_u32 txBytesPerSec;
Ip_u32 txBytesPer16Sec;
Ip_u32 fourWaySuccess;
Ip_u32 fourWayFailure;
Ip_u32 groupExchangeSuccess;
Ip_u32 groupExchangeFailure;
} DOT11_STATS;
typedef struct _END_VLAN_REQ
{
Ip_u32 vlanCount; /* # of configured VLAN tags */
Ip_u32 vlanTagCount; /* # of VLAN tags in pVlanTagData */
Ip_u16 * pVlanTagData; /* Array of VLAN tags */
} END_VLAN_REQ;
#include "ipcom_align16.h"
/* Must match DOT11_DOT1X_PORTSTATUS and "OT11_DOT1XPORT_XXX" defined value in "dot11Lib.h" */
typedef IP_PACKED1 struct {
Ip_u32 status;
Ip_u8 macAddr[6];
} IP_PACKED2
DOT11_DOT1X_PORTSTATUS;
#include "ipcom_align16.h"
/* Must match DOT1X_PARAMS defined value in "dot1xCommonIoctls.h" */
typedef struct {
Ip_u32 callback; /* Callback event handler */
Ip_u32 cookie; /* private data */
} DOT11_CALLBACK_PARAMS;
#define DOT11_DOT1XPORT_UNCONTROLLED 0
#define DOT11_DOT1XPORT_CLOSED 1
#define DOT11_DOT1XPORT_OPEN 2
/*
****************************************************************************
* 6 FUNCTIONS
****************************************************************************
*/
#ifdef __cplusplus
}
#endif
#endif
/*
****************************************************************************
* END OF FILE
****************************************************************************
*/