diff options
Diffstat (limited to 'packages/dreamplug-uaputl/uaputl.h')
-rw-r--r-- | packages/dreamplug-uaputl/uaputl.h | 1289 |
1 files changed, 0 insertions, 1289 deletions
diff --git a/packages/dreamplug-uaputl/uaputl.h b/packages/dreamplug-uaputl/uaputl.h deleted file mode 100644 index 1cd0fba..0000000 --- a/packages/dreamplug-uaputl/uaputl.h +++ /dev/null @@ -1,1289 +0,0 @@ -/** @file uaputl.h - * - * @brief Header file for uaputl application - * - * Copyright (C) 2008-2009, Marvell International Ltd. - * - * This software file (the "File") is distributed by Marvell International - * Ltd. under the terms of the GNU General Public License Version 2, June 1991 - * (the "License"). You may use, redistribute and/or modify this File in - * accordance with the terms and conditions of the License, a copy of which - * is available along with the File in the gpl.txt file or by writing to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. - * - * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE - * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE - * ARE EXPRESSLY DISCLAIMED. The License provides additional details about - * this warranty disclaimer. - * - */ -/************************************************************************ -Change log: - 03/01/08: Initial creation -************************************************************************/ - -#ifndef _UAP_H -#define _UAP_H - -#if (BYTE_ORDER == LITTLE_ENDIAN) -#undef BIG_ENDIAN -#endif - -/** 16 bits byte swap */ -#define swap_byte_16(x) \ - ((u16)((((u16)(x) & 0x00ffU) << 8) | \ - (((u16)(x) & 0xff00U) >> 8))) - -/** 32 bits byte swap */ -#define swap_byte_32(x) \ - ((u32)((((u32)(x) & 0x000000ffUL) << 24) | \ - (((u32)(x) & 0x0000ff00UL) << 8) | \ - (((u32)(x) & 0x00ff0000UL) >> 8) | \ - (((u32)(x) & 0xff000000UL) >> 24))) - -/** 64 bits byte swap */ -#define swap_byte_64(x) \ - ((u64)((u64)(((u64)(x) & 0x00000000000000ffULL) << 56) | \ - (u64)(((u64)(x) & 0x000000000000ff00ULL) << 40) | \ - (u64)(((u64)(x) & 0x0000000000ff0000ULL) << 24) | \ - (u64)(((u64)(x) & 0x00000000ff000000ULL) << 8) | \ - (u64)(((u64)(x) & 0x000000ff00000000ULL) >> 8) | \ - (u64)(((u64)(x) & 0x0000ff0000000000ULL) >> 24) | \ - (u64)(((u64)(x) & 0x00ff000000000000ULL) >> 40) | \ - (u64)(((u64)(x) & 0xff00000000000000ULL) >> 56) )) - -#ifdef BIG_ENDIAN -/** Convert from 16 bit little endian format to CPU format */ -#define uap_le16_to_cpu(x) swap_byte_16(x) -/** Convert from 32 bit little endian format to CPU format */ -#define uap_le32_to_cpu(x) swap_byte_32(x) -/** Convert from 64 bit little endian format to CPU format */ -#define uap_le64_to_cpu(x) swap_byte_64(x) -/** Convert to 16 bit little endian format from CPU format */ -#define uap_cpu_to_le16(x) swap_byte_16(x) -/** Convert to 32 bit little endian format from CPU format */ -#define uap_cpu_to_le32(x) swap_byte_32(x) -/** Convert to 64 bit little endian format from CPU format */ -#define uap_cpu_to_le64(x) swap_byte_64(x) - -/** Convert APCMD header to little endian format from CPU format */ -#define endian_convert_request_header(x); \ - { \ - (x)->CmdCode = uap_cpu_to_le16((x)->CmdCode); \ - (x)->Size = uap_cpu_to_le16((x)->Size); \ - (x)->SeqNum = uap_cpu_to_le16((x)->SeqNum); \ - (x)->Result = uap_cpu_to_le16((x)->Result); \ - } - -/** Convert APCMD header from little endian format to CPU format */ -#define endian_convert_response_header(x); \ - { \ - (x)->CmdCode = uap_le16_to_cpu((x)->CmdCode); \ - (x)->Size = uap_le16_to_cpu((x)->Size); \ - (x)->SeqNum = uap_le16_to_cpu((x)->SeqNum); \ - (x)->Result = uap_le16_to_cpu((x)->Result); \ - } - -/** Convert TLV header to little endian format from CPU format */ -#define endian_convert_tlv_header_out(x); \ - { \ - (x)->Tag = uap_cpu_to_le16((x)->Tag); \ - (x)->Length = uap_cpu_to_le16((x)->Length); \ - } - -/** Convert TLV header from little endian format to CPU format */ -#define endian_convert_tlv_header_in(x); \ - { \ - (x)->Tag = uap_le16_to_cpu((x)->Tag); \ - (x)->Length = uap_le16_to_cpu((x)->Length); \ - } - -#else /* BIG_ENDIAN */ -/** Do nothing */ -#define uap_le16_to_cpu(x) x -/** Do nothing */ -#define uap_le32_to_cpu(x) x -/** Do nothing */ -#define uap_le64_to_cpu(x) x -/** Do nothing */ -#define uap_cpu_to_le16(x) x -/** Do nothing */ -#define uap_cpu_to_le32(x) x -/** Do nothing */ -#define uap_cpu_to_le64(x) x - -/** Do nothing */ -#define endian_convert_request_header(x) -/** Do nothing */ -#define endian_convert_response_header(x) -/** Do nothing */ -#define endian_convert_tlv_header_out(x) -/** Do nothing */ -#define endian_convert_tlv_header_in(x) -#endif /* BIG_ENDIAN */ - -/** uAP application version string */ -#define UAP_VERSION "1.12" -/** Host Command ioctl number */ -#define UAPHOSTCMD (SIOCDEVPRIVATE + 1) -/** Private command ID to Power Mode */ -#define UAP_POWER_MODE (SIOCDEVPRIVATE + 3) - -/** Default device name */ -#define DEFAULT_DEV_NAME "uap0" - -/** Success */ -#define UAP_SUCCESS 1 -/** Failure */ -#define UAP_FAILURE 0 -/** MAC BROADCAST */ -#define UAP_RET_MAC_BROADCAST 0x1FF -/** MAC MULTICAST */ -#define UAP_RET_MAC_MULTICAST 0x1FE - -/** Command is successful */ -#define CMD_SUCCESS 0 -/** Command fails */ -#define CMD_FAILURE -1 - -/** BSS start error : Invalid parameters */ -#define BSS_FAILURE_START_INVAL -2 -/** BSS start error : BSS already started */ -#define BSS_FAILURE_START_REDUNDANT -3 - -/** BSS stop error : BSS already stopped */ -#define BSS_FAILURE_STOP_REDUNDANT -2 -/** BSS stop error : No active BSS */ -#define BSS_FAILURE_STOP_INVAL -3 - -/** Maximum line length for config file */ -#define MAX_LINE_LENGTH 240 -/** Maximum command length */ -#define MAX_CMD_LENGTH 100 -/** Size of command buffer */ -#define MRVDRV_SIZE_OF_CMD_BUFFER (2 * 1024) -/** Maximum number of clients supported by AP */ -#define MAX_NUM_CLIENTS 16 -/** Maximum number of MAC addresses for one-shot filter modifications */ -#define MAX_MAC_ONESHOT_FILTER 16 -/** Maximum SSID length */ -#define MAX_SSID_LENGTH 32 -/** Maximum SSID length */ -#define MIN_SSID_LENGTH 1 -/** Maximum WPA passphrase length */ -#define MAX_WPA_PASSPHRASE_LENGTH 64 -/** Minimum WPA passphrase length */ -#define MIN_WPA_PASSPHRASE_LENGTH 8 -/** Maximum data rates */ -#define MAX_DATA_RATES 14 -/** Maximum length of lines in configuration file */ -#define MAX_CONFIG_LINE 240 -/** MSB bit is set if its a basic rate */ -#define BASIC_RATE_SET_BIT 0x80 -/** Maximum group key timer */ -#define MAX_GRP_TIMER 86400 -/** Maximum Retry Limit */ -#define MAX_RETRY_LIMIT 14 - -/** Maximum TX Power Limit */ -#define MAX_TX_POWER 20 -/** Minimum TX Power Limit */ -#define MIN_TX_POWER 0 - -/** Maximum channels */ -#define MAX_CHANNELS 14 -/** Maximum RTS threshold */ -#define MAX_RTS_THRESHOLD 2347 - -/** Maximum fragmentation threshold */ -#define MAX_FRAG_THRESHOLD 2346 -/** Minimum fragmentation threshold */ -#define MIN_FRAG_THRESHOLD 256 - -/** Maximum stage out time */ -#define MAX_STAGE_OUT_TIME 864000 -/** Minimum stage out time */ -#define MIN_STAGE_OUT_TIME 300 - -/** Maximum DTIM period */ -#define MAX_DTIM_PERIOD 100 - -/** Maximum BEACON period */ -#define MAX_BEACON_PERIOD 4000 - -/** Minimum BEACON period */ -#define MIN_BEACON_PERIOD 50 - -/** Maximum IE buffer length */ -#define MAX_IE_BUFFER_LEN 256 - -/** Maximum custom IE count */ -#define MAX_CUSTOM_IE_COUNT 4 - -/** Maximum number of rates allowed at a time */ -#define MAX_RATES 12 - -/** Default wait period in seconds */ -#define DEFAULT_WAIT_TIME 3 - -#ifdef __GNUC__ -/** Structure packing begins */ -#define PACK_START -/** Structure packeing end */ -#define PACK_END __attribute__ ((packed)) -#else -/** Structure packing begins */ -#define PACK_START __packed -/** Structure packeing end */ -#define PACK_END -#endif - -#ifndef ETH_ALEN -/** MAC address length */ -#define ETH_ALEN 6 -#endif - -/** Action field value : get */ -#define ACTION_GET 0 -/** Action field value : set */ -#define ACTION_SET 1 -/** - * Hex or Decimal to Integer - * @param num string to convert into decimal or hex - */ -#define A2HEXDECIMAL(num) \ - (strncasecmp("0x", (num), 2)?(unsigned int) strtoll((num),NULL,0):a2hex((num)))\ - -/** - * Check of decimal or hex string - * @param num string - */ -#define IS_HEX_OR_DIGIT(num) \ - (strncasecmp("0x", (num), 2)?ISDIGIT((num)):ishexstring((num)))\ - -/** Find minimum value */ -#ifndef MIN -#define MIN(a, b) ((a) < (b) ? (a) : (b)) -#endif /* MIN */ - -/** Character, 1 byte */ -typedef char s8; -/** Unsigned character, 1 byte */ -typedef unsigned char u8; - -/** Short integer */ -typedef signed short s16; -/** Unsigned short integer */ -typedef unsigned short u16; - -/** Long integer */ -typedef signed long s32; -/** Unsigned long integer */ -typedef unsigned long u32; - -/** Valid Input Commands */ -typedef enum -{ - RDEEPROM, - SCANCHANNELS, - TXPOWER, - PROTOCOL, - CHANNEL, - RATE, - BROADCASTSSID, - RTSTHRESH, - FRAGTHRESH, - DTIMPERIOD, - RADIOCONTROL, - TXDATARATE, - MCBCDATARATE, - PKTFWD, - STAAGEOUTTIMER, - AUTHMODE, - GROUPREKEYTIMER, - MAXSTANUM, - BEACONPERIOD, - RETRYLIMIT, - RSNREPLAYPROT, - COEX_COMM_BITMAP, - COEX_PROTECTION, - COEX_SCO_ACL_FREQ, - COEX_ACL_ENABLED, - COEX_ACL_BT_TIME, - COEX_ACL_WLAN_TIME, -} valid_inputs; - -/** Message verbosity level */ -enum -{ MSG_NONE, MSG_DEBUG, MSG_ALL }; - -/** oids_table */ -typedef struct -{ - /** oid type */ - u16 type; - /** oid len */ - u16 len; - /** oid name */ - char *name; -} oids_table; - -/** 4 byte header to store buf len*/ -#define BUF_HEADER_SIZE 4 - -/** AP CMD header */ -#define APCMDHEADER /** Buf Size */ \ - u32 BufSize; \ - /** CmdCode */ \ - u16 CmdCode; \ - /** Size */ \ - u16 Size; \ - /** SeqNum */ \ - u16 SeqNum; \ - /** Result */ \ - s16 Result - -/** TLV header */ -#define TLVHEADER /** Tag */ \ - u16 Tag; \ - /** Length */ \ - u16 Length - -/* TLV Definitions */ - -/** TLV buffer header*/ -typedef PACK_START struct _TLVBUF_HEADER -{ - /** Header type */ - u16 Type; - /** Header length */ - u16 Len; - /** Data */ - u8 Data[0]; -} PACK_END TLVBUF_HEADER; - -/** Band config ACS mode */ -#define BAND_CONFIG_ACS_MODE 0x40 - -/** TLV buffer : Channel Config */ -typedef PACK_START struct _TLVBUF_CHANNEL_CONFIG -{ - /** Header */ - TLVHEADER; - /** Band Configuration - * - * [7-6] Channel Selection Mode; 00 manual, 01 ACS - * [3-2] Channel Width; 00 20 MHz - * [1-0] Band Info; 00 2.4 GHz - */ - u8 BandConfigType; - /** Channel number */ - u8 ChanNumber; -} PACK_END TLVBUF_CHANNEL_CONFIG; - -/** Channel List Entry */ -typedef PACK_START struct _CHANNEL_LIST -{ - /** Band Config */ - u8 BandConfigType; - /** Channel Number */ - u8 ChanNumber; - /** Reserved */ - u8 Reserved1; - /** Reserved */ - u16 Reserved2; - /** Reserved */ - u16 Reserved3; -} PACK_END CHANNEL_LIST; - -/** TLV buffer : Channel List */ -typedef PACK_START struct _TLVBUF_CHANNEL_LIST -{ - /** Header */ - TLVHEADER; - /** Channel List */ - CHANNEL_LIST ChanList[0]; -} PACK_END TLVBUF_CHANNEL_LIST; - -/** TLV buffer : AP MAC address */ -typedef PACK_START struct _TLVBUF_AP_MAC_ADDRESS -{ - /** Header */ - TLVHEADER; - /** AP MAC address */ - u8 ApMacAddr[ETH_ALEN]; -} PACK_END TLVBUF_AP_MAC_ADDRESS; - -/** TLV buffer : SSID */ -typedef PACK_START struct _TLVBUF_SSID -{ - /** Header */ - TLVHEADER; - /** SSID */ - u8 Ssid[0]; -} PACK_END TLVBUF_SSID; - -/** TLV buffer : Beacon period */ -typedef PACK_START struct _TLVBUF_BEACON_PERIOD -{ - /** Header */ - TLVHEADER; - /** Beacon period */ - u16 BeaconPeriod_ms; -} PACK_END TLVBUF_BEACON_PERIOD; - -/** TLV buffer : DTIM period */ -typedef PACK_START struct _TLVBUF_DTIM_PERIOD -{ - /** Header */ - TLVHEADER; - /** DTIM period */ - u8 DtimPeriod; -} PACK_END TLVBUF_DTIM_PERIOD; - -/** TLV buffer : Channel */ -typedef PACK_START struct _TLVBUF_PHYPARAMDSSET -{ - /** Header */ - TLVHEADER; - /** Channel */ - u8 Channel; -} PACK_END TLVBUF_PHYPARAMDSSET; - -/** TLV buffer : Operational rates */ -typedef PACK_START struct _TLVBUF_RATES -{ - /** Header */ - TLVHEADER; - /** Operational rates */ - u8 OperationalRates[0]; -} PACK_END TLVBUF_RATES; - -/** TLV buffer : Tx power */ -typedef PACK_START struct _TLVBUF_TX_POWER -{ - /** Header */ - TLVHEADER; - /** Tx power in dBm */ - u8 TxPower_dBm; -} PACK_END TLVBUF_TX_POWER; - -/** TLV buffer : SSID broadcast control */ -typedef PACK_START struct _TLVBUF_BCAST_SSID_CTL -{ - /** Header */ - TLVHEADER; - /** SSID broadcast control flag */ - u8 BcastSsidCtl; -} PACK_END TLVBUF_BCAST_SSID_CTL; - -/** TLV buffer : RSN replay protection */ -typedef PACK_START struct _tlvbuf_rsn_replay_prot -{ - /** Header */ - TLVHEADER; - /** RSN replay protection control flag */ - u8 rsn_replay_prot; -} PACK_END tlvbuf_rsn_replay_prot; - -/** TLV buffer : Preamble control */ -typedef PACK_START struct _TLVBUF_PREAMBLE_CTL -{ - /** Header */ - TLVHEADER; - /** Preamble type */ - u8 PreambleType; -} PACK_END TLVBUF_PREAMBLE_CTL; - -/** TLV buffer : Antenna control */ -typedef PACK_START struct _TLVBUF_ANTENNA_CTL -{ - /** Header */ - TLVHEADER; - /** Antenna type */ - u8 WhichAntenna; - /** Antenna mode */ - u8 AntennaMode; -} PACK_END TLVBUF_ANTENNA_CTL; - -/** TLV buffer : RTS threshold */ -typedef PACK_START struct _TLVBUF_RTS_THRESHOLD -{ - /** Header */ - TLVHEADER; - /** RTS threshold */ - u16 RtsThreshold; -} PACK_END TLVBUF_RTS_THRESHOLD; - -/** TLV buffer : Radio control */ -typedef PACK_START struct _TLVBUF_RADIO_CTL -{ - /** Header */ - TLVHEADER; - /** Radio control flag */ - u8 RadioCtl; -} PACK_END TLVBUF_RADIO_CTL; - -/** TLV buffer : Tx data rate */ -typedef PACK_START struct _TLVBUF_TX_DATA_RATE -{ - /** Header */ - TLVHEADER; - /** Tx data rate */ - u16 TxDataRate; -} PACK_END TLVBUF_TX_DATA_RATE; - -/** TLV buffer : MCBC Data Rate */ -typedef PACK_START struct _TLVBUF_MCBC_DATA_RATE -{ - /** Header */ - TLVHEADER; - /** MCBC data rate */ - u16 MCBCdatarate; -} PACK_END TLVBUF_MCBC_DATA_RATE; - -/** TLV buffer : Packet forward control */ -typedef PACK_START struct _TLVBUF_PKT_FWD_CTL -{ - /** Header */ - TLVHEADER; - /** Packet forwarding control flag */ - u8 PktFwdCtl; -} PACK_END TLVBUF_PKT_FWD_CTL; - -/** TLV buffer : STA information */ -typedef PACK_START struct _TLVBUF_STA_INFO -{ - /** Header */ - TLVHEADER; - /** STA MAC address */ - u8 MacAddress[ETH_ALEN]; - /** Power mfg status */ - u8 PowerMfgStatus; - /** RSSI */ - s8 Rssi; -} PACK_END TLVBUF_STA_INFO; - -/** TLV buffer : STA MAC address filtering control */ -typedef PACK_START struct _TLVBUF_STA_MAC_ADDR_FILTER -{ - /** Header */ - TLVHEADER; - /** Filter mode */ - u8 FilterMode; - /** Number of STA MACs */ - u8 Count; - /** STA MAC addresses buffer */ - u8 MacAddress[0]; -} PACK_END TLVBUF_STA_MAC_ADDR_FILTER; - -/** TLV buffer : STA ageout timer */ -typedef PACK_START struct _TLVBUF_STA_AGEOUT_TIMER -{ - /** Header */ - TLVHEADER; - /** STA ageout timer in ms */ - u32 StaAgeoutTimer_ms; -} PACK_END TLVBUF_STA_AGEOUT_TIMER; - -/** TLV buffer : max station number */ -typedef PACK_START struct _TLVBUF_MAX_STA_NUM -{ - /** Header */ - TLVHEADER; - /** max station number */ - u16 Max_sta_num; -} PACK_END TLVBUF_MAX_STA_NUM; - -/** TLV buffer : retry limit */ -typedef PACK_START struct _TLVBUF_RETRY_LIMIT -{ - /** Header */ - TLVHEADER; - /** retry limit */ - u8 retry_limit; -} PACK_END TLVBUF_RETRY_LIMIT; - -/* Bitmap for protocol to use */ -/** No security */ -#define PROTOCOL_NO_SECURITY 1 -/** Static WEP */ -#define PROTOCOL_STATIC_WEP 2 -/** WPA */ -#define PROTOCOL_WPA 8 -/** WPA2 */ -#define PROTOCOL_WPA2 32 -/** WP2 Mixed */ -#define PROTOCOL_WPA2_MIXED 40 - -/* Bitmap for unicast/bcast cipher type */ -/** None */ -#define CIPHER_NONE 0 -/** WEP 40 */ -#define CIPHER_WEP_40 1 -/** WEP 104 */ -#define CIPHER_WEP_104 2 -/** TKIP */ -#define CIPHER_TKIP 4 -/** AES CCMP */ -#define CIPHER_AES_CCMP 8 -/** valid cipher bitmap */ -#define CIPHER_BITMAP 0x0c - -/** TLV buffer : Authentication Mode */ -typedef PACK_START struct _TLVBUF_AUTH_MODE -{ - /** Header */ - TLVHEADER; - /** Authentication Mode */ - u8 AuthMode; -} PACK_END TLVBUF_AUTH_MODE; - -/** TLV buffer : Security Protocol */ -typedef PACK_START struct _TLVBUF_PROTOCOL -{ - /** Header */ - TLVHEADER; - /** Security protocol */ - u16 Protocol; -} PACK_END TLVBUF_PROTOCOL; - -/** TLV buffer : cipher */ -typedef PACK_START struct _TLVBUF_CIPHER -{ - /** Header */ - TLVHEADER; - /** Pairwise cipher */ - u8 PairwiseCipher; - /** Group cipher */ - u8 GroupCipher; -} PACK_END TLVBUF_CIPHER; - -/** TLV buffer : Group re-key time */ -typedef PACK_START struct _TLVBUF_GROUP_REKEY_TIMER -{ - /** Header */ - TLVHEADER; - /** Group rekey time in seconds */ - u32 GroupRekeyTime_sec; -} PACK_END TLVBUF_GROUP_REKEY_TIMER; - -/** Key_mgmt_psk */ -#define KEY_MGMT_NONE 0x04 -/** Key_mgmt_none */ -#define KEY_MGMT_PSK 0x02 - -/** TLV buffer : KeyMgmt */ -typedef PACK_START struct _TLVBUF_AKMP -{ - /** Header */ - TLVHEADER; - /** KeyMgmt */ - u16 KeyMgmt; -} PACK_END TLVBUF_AKMP; - -/** TLV buffer : Single WEP key */ -typedef PACK_START struct _TLVBUF_WEP_KEY -{ - /** Header */ - TLVHEADER; - /** Key index */ - u8 KeyIndex; - /** Default key flag */ - u8 IsDefault; - /** Key */ - u8 Key[0]; -} PACK_END TLVBUF_WEP_KEY; - -/** custom IE */ -typedef PACK_START struct _custom_ie -{ - /** IE Index */ - u16 ie_index; - /** Mgmt Subtype Mask */ - u16 mgmt_subtype_mask; - /** IE Length */ - u16 ie_length; - /** IE buffer */ - u8 ie_buffer[0]; -} PACK_END custom_ie; - -/** TLV buffer : custom IE */ -typedef PACK_START struct _tlvbuf_custom_ie -{ - /** Header */ - TLVHEADER; - /** custom IE data */ - custom_ie ie_data[0]; -} PACK_END tlvbuf_custom_ie; - -/** TLV buffer : WPA passphrase */ -typedef PACK_START struct _TLVBUF_WPA_PASSPHRASE -{ - /** Header */ - TLVHEADER; - /** WPA passphrase */ - u8 Passphrase[0]; -} PACK_END TLVBUF_WPA_PASSPHRASE; - -/** TLV buffer : Fragmentation threshold */ -typedef PACK_START struct _TLVBUF_FRAG_THRESHOLD -{ - /** Header */ - TLVHEADER; - /** Fragmentation threshold */ - u16 FragThreshold; -} PACK_END TLVBUF_FRAG_THRESHOLD; - -/* APCMD definitions */ -/** APCMD buffer */ -typedef PACK_START struct _APCMDBUF -{ - /** Header */ - APCMDHEADER; -} -PACK_END APCMDBUF; - -/** APCMD header length */ -#define APCMDHEADERLEN (sizeof(APCMDBUF)) - -/** APCMD buffer : sys_info request */ -typedef PACK_START struct _APCMDBUF_SYS_INFO_REQUEST -{ - /** Header */ - APCMDHEADER; -} PACK_END APCMDBUF_SYS_INFO_REQUEST; - -/** APCMD buffer : sys_info response */ -typedef PACK_START struct _APCMDBUF_SYS_INFO_RESPONSE -{ - /** Header */ - APCMDHEADER; - /** System information buffer */ - u8 SysInfo[64]; -} PACK_END APCMDBUF_SYS_INFO_RESPONSE; - -/** APCMD buffer : sys_reset */ -typedef PACK_START struct _APCMDBUF_SYS_RESET -{ - /** Header */ - APCMDHEADER; -} PACK_END APCMDBUF_SYS_RESET; - -/** APCMD buffer : sys_configure */ -typedef PACK_START struct _APCMDBUF_SYS_CONFIGURE -{ - /** Header */ - APCMDHEADER; - /** Action : GET or SET */ - u16 Action; -} PACK_END APCMDBUF_SYS_CONFIGURE; - -/** APCMD buffer : SNMP MIB */ -typedef PACK_START struct _APCMDBUF_SNMP_MIB -{ - /** Header */ - APCMDHEADER; - /** Action : GET or SET */ - u16 Action; -} PACK_END APCMDBUF_SNMP_MIB; -/** APCMD buffer : bss_start */ -typedef PACK_START struct _APCMDBUF_BSS_START -{ - /** Header */ - APCMDHEADER; -} PACK_END APCMDBUF_BSS_START; - -/** APCMD buffer : bss_stop */ -typedef PACK_START struct _APCMDBUF_BSS_STOP -{ - /** Header */ - APCMDHEADER; -} PACK_END APCMDBUF_BSS_STOP; - -/** APCMD buffer : sta_list request */ -typedef PACK_START struct _APCMDBUF_STA_LIST_REQUEST -{ - /** Header */ - APCMDHEADER; -} PACK_END APCMDBUF_STA_LIST_REQUEST; - -/** APCMD buffer : sta_list response */ -typedef PACK_START struct _APCMDBUF_STA_LIST_RESPONSE -{ - /** Header */ - APCMDHEADER; - /** Number of STAs */ - u16 StaCount; - /** STA information TLVs */ - TLVBUF_STA_INFO StaList[0]; -} PACK_END APCMDBUF_STA_LIST_RESPONSE; - -/** APCMD buffer : sta_deauth */ -typedef PACK_START struct _APCMDBUF_STA_DEAUTH -{ - /** Header */ - APCMDHEADER; - /** STA MAC address to deauthenticate */ - u8 StaMacAddress[ETH_ALEN]; - /** Reason Code */ - u16 ReasonCode; -} PACK_END APCMDBUF_STA_DEAUTH; - -/** TLV : BT Coex common configuration */ -typedef PACK_START struct _tlvbuf_coex_common_cfg -{ - /** Header */ - TLVHEADER; - /** Configuration bitmap */ - u32 config_bitmap; - /** Reserved */ - u32 reserved[4]; -} PACK_END tlvbuf_coex_common_cfg; - -/** TLV : BT Coex SCO configuration */ -typedef PACK_START struct _tlvbuf_coex_sco_cfg -{ - /** Header */ - TLVHEADER; - /** Qtime protection */ - u16 protection_qtime[4]; - /** Rate protection */ - u16 protection_rate; - /** ACL frequency */ - u16 acl_frequency; - /** Reserved */ - u32 reserved[4]; -} PACK_END tlvbuf_coex_sco_cfg; - -/** TLV : BT Coex ACL configuration */ -typedef PACK_START struct _tlvbuf_coex_acl_cfg -{ - /** Header */ - TLVHEADER; - /** Enabled or not */ - u16 enabled; - /** BT time */ - u16 bt_time; - /** Wlan time */ - u16 wlan_time; - /** Rate protection */ - u16 protection_rate; - /** Reserved */ - u32 reserved[4]; -} PACK_END tlvbuf_coex_acl_cfg; - -/** TLV : BT Coex statistics */ -typedef PACK_START struct _tlvbuf_coex_stats -{ - /** Header */ - TLVHEADER; - /** Null not sent */ - u32 null_not_sent; - /** Null queued */ - u32 null_queued; - /** Null not queued */ - u32 null_not_queued; - /** CF end queued */ - u32 cf_end_queued; - /** CF end not queued */ - u32 cf_end_not_queued; - /** Null allocation failures */ - u32 null_alloc_fail; - /** CF end allocation failures */ - u32 cf_end_alloc_fail; - /** Reserved */ - u32 reserved[8]; -} PACK_END tlvbuf_coex_stats; - -/** APCMD buffer : BT Coex API extension */ -typedef PACK_START struct _apcmdbuf_coex_config -{ - /** Header */ - APCMDHEADER; - /** Action : GET or SET */ - u16 action; - /** Reserved for alignment */ - u16 coex_reserved; - /** TLV buffer */ - u8 tlv_buffer[0]; -} PACK_END apcmdbuf_coex_config; - -/** Reg TYPE*/ -enum reg_commands -{ - CMD_MAC = 0, - CMD_BBP, - CMD_RF -}; - -/** APCMD buffer: Regrdwr */ -typedef PACK_START struct _APCMDBUF_REG_RDWR -{ - /** Header */ - APCMDHEADER; - /** Read or Write */ - u16 Action; - /** Register offset */ - u16 Offset; - /** Value */ - u32 Value; -} PACK_END APCMDBUF_REG_RDWR; - -/** sub-band type */ -typedef PACK_START struct _IEEEtypes_SubbandSet -{ - u8 FirstChan; /**< First channel */ - u8 NoOfChan; /**< Number of channels */ - u8 MaxTxPwr; /**< Maximum Tx power */ -} PACK_END IEEEtypes_SubbandSet_t; - -/** country code length used for 802.11D */ -#define COUNTRY_CODE_LEN 3 - -/** MAX domain SUB-BAND*/ -#define MAX_SUB_BANDS 40 - -/** Max Multi Domain Entries for G */ -#define MaxMultiDomainCapabilityEntryG 1 - -/** Max Multi Domain Entries for A */ -#define MaxMultiDomainCapabilityEntryA 31 - -/** Country code and Sub-band */ -typedef PACK_START struct domain_param -{ - TLVHEADER; - u8 CountryCode[COUNTRY_CODE_LEN]; /**< Country code */ - IEEEtypes_SubbandSet_t Subband[0]; /**< Set of subbands */ -} PACK_END domain_param_t; - -/** HostCmd_CFG_80211D */ -typedef PACK_START struct _APCMDBUF_CFG_80211D -{ - /** Header */ - APCMDHEADER; - /** Action */ - u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */ - /** Domain parameters */ - domain_param_t Domain; -} PACK_END APCMDBUF_CFG_80211D; - -/** HostCmd_MEM_ACCESS */ -typedef PACK_START struct _APCMDBUF_MEM_ACCESS -{ - /** Header */ - APCMDHEADER; - /** Action */ - u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */ - /** Reserved field */ - u16 Reserved; - /** Address */ - u32 Address; - /** Value */ - u32 Value; -} PACK_END APCMDBUF_MEM_ACCESS; - -/** HostCmd_EEPROM_ACCESS */ -typedef PACK_START struct _APCMDBUF_EEPROM_ACCESS -{ - /** Header */ - APCMDHEADER; - /** Action */ - u16 Action; /* 0 = ACT_GET; */ - /** Reserved field */ - u16 Offset; /* Multiples of 4 */ - /** Address */ - u16 ByteCount; /* Multiples of 4 */ - /** Value */ - u8 Value[1]; -} PACK_END APCMDBUF_EEPROM_ACCESS; - -/** Max EEPROM length */ -#define MAX_EEPROM_LEN 20 - -/**subcmd id for glbal flag */ -#define DEBUG_SUBCOMMAND_GMODE 1 -/**subcmd id for Majorid mask */ -#define DEBUG_SUBCOMMAND_MAJOREVTMASK 2 -/**subcmd id to trigger a scan */ -#define DEBUG_SUBCOMMAND_CHANNEL_SCAN 3 - -/** Channel scan entry for each channel */ -typedef PACK_START struct _CHANNEL_SCAN_ENTRY_T -{ - /** Channel Number */ - u8 chan_num; - /** Number of APs */ - u8 num_of_aps; - /** CCA count */ - u32 CCA_count; - /** Duration */ - u32 duration; - /** Channel weight */ - u32 channel_weight; -} PACK_END CHANNEL_SCAN_ENTRY_T; - -/** Channel scan entry */ -typedef PACK_START struct _CHANNEL_SCAN_ENTRY -{ - /** Number of channels */ - u8 numChannels; - /** Channel scan entry */ - CHANNEL_SCAN_ENTRY_T cst[0]; -} PACK_END CHANNEL_SCAN_ENTRY; - -/** debugConfig_t */ -typedef PACK_START union -{ - /** used in all new debug commands */ - u32 value; - /** used in DEBUG_SUBCOMMAND_GMODE */ - u8 globalDebugMode; - /** used in DEBUG_SUBCOMMAND_MAJOREVTMASK */ - u32 debugMajorIdMask; - /** used in DEBUG_SUBCOMMAND_CHANNEL_SCAN */ - CHANNEL_SCAN_ENTRY cs_entry; -} PACK_END debugConfig_t; - -/** HostCmd_SYS_DEBUG */ -typedef PACK_START struct _APCMDBUF_SYS_DEBUG -{ - /** Header */ - APCMDHEADER; - /** Action */ - u16 Action; /* 0 = ACT_GET; 1 = ACT_SET; */ - /** Sub command */ - u32 subcmd; - /** debug parameter */ - debugConfig_t debugConfig; -} PACK_END APCMDBUF_SYS_DEBUG; - -/** HostCmd_CFG_DATA */ -typedef PACK_START struct _APCMDBUF_CFG_DATA -{ - /** Header */ - APCMDHEADER; - /** Action */ - u16 action; - /** Type */ - u16 type; - /** Data length */ - u16 data_len; - /** Data */ - u8 data[0]; -} PACK_END APCMDBUF_CFG_DATA; - -/** Maximum size of set/get configurations */ -#define MAX_CFG_DATA_SIZE 2000 /* less than - MRVDRV_SIZE_OF_CMD_BUFFER */ - -/** Host Command ID bit mask (bit 11:0) */ -#define HostCmd_CMD_ID_MASK 0x0fff -/** APCMD response check */ -#define APCMD_RESP_CHECK 0x8000 - -/* AP CMD IDs */ -/** APCMD : sys_info */ -#define APCMD_SYS_INFO 0x00ae -/** APCMD : sys_reset */ -#define APCMD_SYS_RESET 0x00af -/** APCMD : sys_configure */ -#define APCMD_SYS_CONFIGURE 0x00b0 -/** APCMD : bss_start */ -#define APCMD_BSS_START 0x00b1 -/** APCMD : bss_stop */ -#define APCMD_BSS_STOP 0x00b2 -/** APCMD : sta_list */ -#define APCMD_STA_LIST 0x00b3 -/** APCMD : sta_deauth */ -#define APCMD_STA_DEAUTH 0x00b5 -/** SNMP MIB SET/GET */ -#define HostCmd_SNMP_MIB 0x0016 -/** Read/Write Mac register */ -#define HostCmd_CMD_MAC_REG_ACCESS 0x0019 -/** Read/Write BBP register */ -#define HostCmd_CMD_BBP_REG_ACCESS 0x001a -/** Read/Write RF register */ -#define HostCmd_CMD_RF_REG_ACCESS 0x001b -/** Host Command ID : EEPROM access */ -#define HostCmd_EEPROM_ACCESS 0x0059 -/** Host Command ID : Memory access */ -#define HostCmd_CMD_MEM_ACCESS 0x0086 -/** Host Command ID : 802.11D configuration */ -#define HostCmd_CMD_802_11D_DOMAIN_INFO 0x005b -/** Host Command ID : Configuration data */ -#define HostCmd_CMD_CFG_DATA 0x008f -/** Host Command ID: SYS_DEBUG */ -#define APCMD_SYS_DEBUG 0x00db - -/** Host Command ID: ROBUST_COEX */ -#define HostCmd_ROBUST_COEX 0x00e0 - -/** Oid for 802.11D enable/disable */ -#define OID_80211D_ENABLE 0x0009 - -/* TLV IDs */ -/** TLV : Base */ -#define PROPRIETARY_TLV_BASE_ID 0x0100 - -/**TLV: Domain type */ -#define TLV_TYPE_DOMAIN 0x0007 - -/** TLV : SSID */ -#define MRVL_SSID_TLV_ID 0x0000 -/** TLV : Operational rates */ -#define MRVL_RATES_TLV_ID 0x0001 -/** TLV : Channel */ -#define MRVL_PHYPARAMDSSET_TLV_ID 0x0003 -/** TLV type : Scan Channels list */ -#define MRVL_CHANNELLIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 1) -/** TLV type : Authentication type */ -#define MRVL_AUTH_TLV_ID (PROPRIETARY_TLV_BASE_ID + 31) -/** TLV Id : Channel Config */ -#define MRVL_CHANNELCONFIG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 42) -/** TLV : AP MAC address */ -#define MRVL_AP_MAC_ADDRESS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 43) -/** TLV : Beacon period */ -#define MRVL_BEACON_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 44) -/** TLV : DTIM period */ -#define MRVL_DTIM_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 45) -/** TLV : Tx power */ -#define MRVL_TX_POWER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 47) -/** TLV : SSID broadcast control */ -#define MRVL_BCAST_SSID_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 48) -/** TLV : Preamble control */ -#define MRVL_PREAMBLE_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 49) -/** TLV : Antenna control */ -#define MRVL_ANTENNA_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 50) -/** TLV : RTS threshold */ -#define MRVL_RTS_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 51) -/** TLV : Radio control */ -#define MRVL_RADIO_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 52) -/** TLV : Tx data rate */ -#define MRVL_TX_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 53) -/** TLV : Packet forwarding control */ -#define MRVL_PKT_FWD_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 54) -/** TLV : STA information */ -#define MRVL_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 55) -/** TLV : STA MAC address filter */ -#define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 56) -/** TLV : STA ageout timer */ -#define MRVL_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 57) -/** TLV : WEP keys */ -#define MRVL_WEP_KEY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 59) -/** TLV : WPA passphrase */ -#define MRVL_WPA_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 60) -/** TLV type : protocol TLV */ -#define MRVL_PROTOCOL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 64) -/** TLV type : AKMP TLV */ -#define MRVL_AKMP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 65) -/** TLV type : Cipher TLV */ -#define MRVL_CIPHER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 66) -/** TLV : Fragment threshold */ -#define MRVL_FRAG_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 70) -/** TLV : Group rekey timer */ -#define MRVL_GRP_REKEY_TIME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 71) -/**TLV: Max Station number */ -#define MRVL_MAX_STA_CNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 85) -/**TLV: Retry limit */ -#define MRVL_RETRY_LIMIT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 93) -/**TLV: MCBC data rate */ -#define MRVL_MCBC_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 98) -/**TLV: RSN replay protection */ -#define MRVL_RSN_REPLAY_PROT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 100) -/** TLV: Management IE list */ -#define MRVL_MGMT_IE_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 105) -/** TLV : Coex common configuration */ -#define MRVL_BT_COEX_COMMON_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 108) -/** TLV : Coex SCO configuration */ -#define MRVL_BT_COEX_SCO_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 109) -/** TLV : Coex ACL configuration */ -#define MRVL_BT_COEX_ACL_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 110) -/** TLV : Coex stats configuration */ -#define MRVL_BT_COEX_STATS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 111) - -/** sleep_param */ -typedef struct _ps_sleep_param -{ - /** control bitmap */ - u32 ctrl_bitmap; - /** minimum sleep period (micro second) */ - u32 min_sleep; - /** maximum sleep period (micro second) */ - u32 max_sleep; -} ps_sleep_param; - -/** inactivity sleep_param */ -typedef struct _inact_sleep_param -{ - /** inactivity timeout (micro second) */ - u32 inactivity_to; - /** miniumu awake period (micro second) */ - u32 min_awake; - /** maximum awake period (micro second) */ - u32 max_awake; -} inact_sleep_param; - -/** flag for ps mode */ -#define PS_FLAG_PS_MODE 1 -/** flag for sleep param */ -#define PS_FLAG_SLEEP_PARAM 2 -/** flag for inactivity sleep param */ -#define PS_FLAG_INACT_SLEEP_PARAM 4 - -/** Disable power mode */ -#define PS_MODE_DISABLE 0 -/** Enable periodic dtim ps */ -#define PS_MODE_PERIODIC_DTIM 1 -/** Enable inactivity ps */ -#define PS_MODE_INACTIVITY 2 - -/** sleep parameter */ -#define SLEEP_PARAMETER 1 -/** inactivity sleep parameter */ -#define INACTIVITY_SLEEP_PARAMETER 2 - -/** sleep parameter : lower limit in micro-sec */ -#define PS_SLEEP_PARAM_MIN 5000 -/** sleep parameter : upper limit in micro-sec */ -#define PS_SLEEP_PARAM_MAX 32000 -/** power save awake period minimum value in micro-sec */ -#define PS_AWAKE_PERIOD_MIN 10 - -/** ps_mgmt */ -typedef struct _ps_mgmt -{ - /** flags for valid field */ - u16 flags; - /** power mode */ - u16 ps_mode; - /** sleep param */ - ps_sleep_param sleep_param; - /** inactivity sleep param */ - inact_sleep_param inact_param; -} ps_mgmt; - -/** Function Prototype Declaration */ -int mac2raw(char *mac, u8 * raw); -void print_mac(u8 * raw); -int uap_ioctl(u8 * cmd, u16 * size, u16 buf_size); -void print_auth(TLVBUF_AUTH_MODE * tlv); -void print_tlv(u8 * buf, u16 len); -void print_cipher(TLVBUF_CIPHER * tlv); -void print_rate(TLVBUF_RATES * tlv); -int string2raw(char *str, unsigned char *raw); -void print_mac_filter(TLVBUF_STA_MAC_ADDR_FILTER * tlv); -int ishexstring(void *hex); -inline int ISDIGIT(char *x); -unsigned int a2hex(char *s); -int fparse_for_hex(FILE * fp, u8 * dst); -int is_input_valid(valid_inputs cmd, int argc, char *argv[]); -int is_cipher_valid(int pairwisecipher, int groupcipher); -int get_sys_cfg_rates(u8 * rates); -int is_tx_rate_valid(u8 rate); -int is_mcbc_rate_valid(u8 rate); -void hexdump_data(char *prompt, void *p, int len, char delim); -unsigned char hexc2bin(char chr); -#endif /* _UAP_H */ |