move old kamikaze out of trunk - will put buildroot-ng in there as soon as all the...
[openwrt/staging/dedeckeh.git] / openwrt / target / linux / package / base-files / include / proto / 802.11.h
diff --git a/openwrt/target/linux/package/base-files/include/proto/802.11.h b/openwrt/target/linux/package/base-files/include/proto/802.11.h
deleted file mode 100644 (file)
index ea57850..0000000
+++ /dev/null
@@ -1,852 +0,0 @@
-/*
- * Copyright 2004, Broadcom Corporation      
- * All Rights Reserved.      
- *       
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY      
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM      
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS      
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.      
- *
- * Fundamental types and constants relating to 802.11 
- *
- * $Id$
- */
-
-#ifndef _802_11_H_
-#define _802_11_H_
-
-#ifndef _TYPEDEFS_H_
-#include <typedefs.h>
-#endif
-
-#ifndef _NET_ETHERNET_H_
-#include <proto/ethernet.h>
-#endif
-
-/* enable structure packing */
-#if !defined(__GNUC__)
-#pragma pack(1)
-#endif
-
-/* some platforms require stronger medicine */
-#if defined(__GNUC__)
-#define        PACKED  __attribute__((packed))
-#else
-#define        PACKED
-#endif
-
-
-#define DOT11_TU_TO_US                 1024    /* 802.11 Time Unit is 1024 microseconds */
-
-/* Generic 802.11 frame constants */
-#define DOT11_A3_HDR_LEN               24
-#define DOT11_A4_HDR_LEN               30
-#define DOT11_MAC_HDR_LEN              DOT11_A3_HDR_LEN
-#define DOT11_FCS_LEN                  4
-#define DOT11_ICV_LEN                  4
-#define DOT11_ICV_AES_LEN              8
-#define DOT11_QOS_LEN                  2
-
-#define DOT11_KEY_INDEX_SHIFT          6
-#define DOT11_IV_LEN                   4
-#define DOT11_IV_TKIP_LEN              8
-#define DOT11_IV_AES_OCB_LEN           4
-#define DOT11_IV_AES_CCM_LEN           8
-
-/* Includes MIC */
-#define DOT11_MAX_MPDU_BODY_LEN                2304
-/* A4 header + QoS + CCMP + PDU + ICV + FCS = 2352 */
-#define DOT11_MAX_MPDU_LEN             (DOT11_A4_HDR_LEN + \
-                                        DOT11_QOS_LEN + \
-                                        DOT11_IV_AES_CCM_LEN + \
-                                        DOT11_MAX_MPDU_BODY_LEN + \
-                                        DOT11_ICV_LEN + \
-                                        DOT11_FCS_LEN)
-
-#define DOT11_MAX_SSID_LEN             32
-
-/* dot11RTSThreshold */
-#define DOT11_DEFAULT_RTS_LEN          2347
-#define DOT11_MAX_RTS_LEN              2347
-
-/* dot11FragmentationThreshold */
-#define DOT11_MIN_FRAG_LEN             256
-#define DOT11_MAX_FRAG_LEN             2346    /* Max frag is also limited by aMPDUMaxLength of the attached PHY */
-#define DOT11_DEFAULT_FRAG_LEN         2346
-
-/* dot11BeaconPeriod */
-#define DOT11_MIN_BEACON_PERIOD                1
-#define DOT11_MAX_BEACON_PERIOD                0xFFFF
-
-/* dot11DTIMPeriod */
-#define DOT11_MIN_DTIM_PERIOD          1
-#define DOT11_MAX_DTIM_PERIOD          0xFF
-
-/* 802.2 LLC/SNAP header used by 802.11 per 802.1H */
-#define DOT11_LLC_SNAP_HDR_LEN 8
-#define DOT11_OUI_LEN                  3
-struct dot11_llc_snap_header {
-       uint8   dsap;                           /* always 0xAA */
-       uint8   ssap;                           /* always 0xAA */
-       uint8   ctl;                            /* always 0x03 */
-       uint8   oui[DOT11_OUI_LEN];             /* RFC1042: 0x00 0x00 0x00
-                                                  Bridge-Tunnel: 0x00 0x00 0xF8 */
-       uint16  type;                           /* ethertype */
-} PACKED;
-
-/* RFC1042 header used by 802.11 per 802.1H */
-#define RFC1042_HDR_LEN                        (ETHER_HDR_LEN + DOT11_LLC_SNAP_HDR_LEN)
-
-/* Generic 802.11 MAC header */
-/*
- * N.B.: This struct reflects the full 4 address 802.11 MAC header.
- *              The fields are defined such that the shorter 1, 2, and 3
- *              address headers just use the first k fields.
- */
-struct dot11_header {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       a1;             /* address 1 */
-       struct ether_addr       a2;             /* address 2 */
-       struct ether_addr       a3;             /* address 3 */
-       uint16                  seq;            /* sequence control */
-       struct ether_addr       a4;             /* address 4 */
-} PACKED;
-
-/* Control frames */
-
-struct dot11_rts_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-       struct ether_addr       ta;             /* transmitter address */
-} PACKED;
-#define        DOT11_RTS_LEN           16
-
-struct dot11_cts_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-} PACKED;
-#define        DOT11_CTS_LEN           10
-
-struct dot11_ack_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-} PACKED;
-#define        DOT11_ACK_LEN           10
-
-struct dot11_ps_poll_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* AID */
-       struct ether_addr       bssid;          /* receiver address, STA in AP */
-       struct ether_addr       ta;             /* transmitter address */
-} PACKED;
-#define        DOT11_PS_POLL_LEN       16
-
-struct dot11_cf_end_frame {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       ra;             /* receiver address */
-       struct ether_addr       bssid;          /* transmitter address, STA in AP */
-} PACKED;
-#define        DOT11_CS_END_LEN        16
-
-/* Management frame header */
-struct dot11_management_header {
-       uint16                  fc;             /* frame control */
-       uint16                  durid;          /* duration/ID */
-       struct ether_addr       da;             /* receiver address */
-       struct ether_addr       sa;             /* transmitter address */
-       struct ether_addr       bssid;          /* BSS ID */
-       uint16                  seq;            /* sequence control */
-} PACKED;
-#define        DOT11_MGMT_HDR_LEN      24
-
-/* Management frame payloads */
-
-struct dot11_bcn_prb {
-       uint32                  timestamp[2];
-       uint16                  beacon_interval;
-       uint16                  capability;
-} PACKED;
-#define        DOT11_BCN_PRB_LEN       12
-
-struct dot11_auth {
-       uint16                  alg;            /* algorithm */
-       uint16                  seq;            /* sequence control */
-       uint16                  status;         /* status code */
-} PACKED;
-#define DOT11_AUTH_FIXED_LEN   6               /* length of auth frame without challenge info elt */
-
-struct dot11_assoc_req {
-       uint16                  capability;     /* capability information */
-       uint16                  listen;         /* listen interval */
-} PACKED;
-
-struct dot11_assoc_resp {
-       uint16                  capability;     /* capability information */
-       uint16                  status;         /* status code */
-       uint16                  aid;            /* association ID */
-} PACKED;
-
-struct dot11_action_measure {
-       uint8   category;
-       uint8   action;
-       uint8   token;
-       uint8   data[1];
-} PACKED;
-#define DOT11_ACTION_MEASURE_LEN       3
-
-/**************
-  802.11h related definitions.
-**************/
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 power;
-} dot11_power_cnst_t;
-
-typedef struct {
-       uint8 min;
-       uint8 max;
-} dot11_power_cap_t;
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 tx_pwr;
-       uint8 margin;
-} dot11_tpc_rep_t;
-#define DOT11_MNG_IE_TPC_REPORT_LEN    2       /* length of IE data, not including 2 byte header */
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 first_channel;
-       uint8 num_channels;
-} dot11_supp_channels_t;
-
-struct dot11_channel_switch {
-       uint8 id;
-       uint8 len;
-       uint8 mode;
-       uint8 channel;
-       uint8 count;
-}  PACKED;
-typedef struct dot11_channel_switch dot11_channel_switch_t;
-
-/* 802.11h Measurement Request/Report IEs */
-/* Measurement Type field */
-#define DOT11_MEASURE_TYPE_BASIC       0
-#define DOT11_MEASURE_TYPE_CCA                 1
-#define DOT11_MEASURE_TYPE_RPI         2
-
-/* Measurement Mode field */
-
-/* Measurement Request Modes */
-#define DOT11_MEASURE_MODE_ENABLE      (1<<1)
-#define DOT11_MEASURE_MODE_REQUEST     (1<<2)
-#define DOT11_MEASURE_MODE_REPORT      (1<<3)
-/* Measurement Report Modes */
-#define DOT11_MEASURE_MODE_LATE        (1<<0)
-#define DOT11_MEASURE_MODE_INCAPABLE   (1<<1)
-#define DOT11_MEASURE_MODE_REFUSED     (1<<2)
-/* Basic Measurement Map bits */
-#define DOT11_MEASURE_BASIC_MAP_BSS    ((uint8)(1<<0))
-#define DOT11_MEASURE_BASIC_MAP_OFDM   ((uint8)(1<<1))
-#define DOT11_MEASURE_BASIC_MAP_UKNOWN ((uint8)(1<<2))
-#define DOT11_MEASURE_BASIC_MAP_RADAR  ((uint8)(1<<3))
-#define DOT11_MEASURE_BASIC_MAP_UNMEAS ((uint8)(1<<4))
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 token;
-       uint8 mode;
-       uint8 type;
-       uint8 channel;
-       uint8 start_time[8];
-       uint16 duration;
-} dot11_meas_req_t;
-#define DOT11_MNG_IE_MREQ_LEN 14
-/* length of Measure Request IE data not including variable len */
-#define DOT11_MNG_IE_MREQ_FIXED_LEN 3
-
-struct dot11_meas_rep {
-       uint8 id;
-       uint8 len;
-       uint8 token;
-       uint8 mode;
-       uint8 type;
-       union 
-       {
-               struct {
-                       uint8 channel;
-                       uint8 start_time[8];
-                       uint16 duration;
-                       uint8 map;
-               } PACKED basic;
-               uint8 data[1];
-       } PACKED rep;
-} PACKED;
-typedef struct dot11_meas_rep dot11_meas_rep_t;
-
-/* length of Measure Report IE data not including variable len */
-#define DOT11_MNG_IE_MREP_FIXED_LEN    3
-
-struct dot11_meas_rep_basic {
-       uint8 channel;
-       uint8 start_time[8];
-       uint16 duration;
-       uint8 map;
-} PACKED;
-typedef struct dot11_meas_rep_basic dot11_meas_rep_basic_t;
-#define DOT11_MEASURE_BASIC_REP_LEN    12
-
-struct dot11_quiet {
-       uint8 id;
-       uint8 len;
-       uint8 count;    /* TBTTs until beacon interval in quiet starts */
-       uint8 period;   /* Beacon intervals between periodic quiet periods ? */
-       uint16 duration;/* Length of quiet period, in TU's */
-       uint16 offset;  /* TU's offset from TBTT in Count field */
-} PACKED;
-typedef struct dot11_quiet dot11_quiet_t;
-
-typedef struct {
-       uint8 channel;
-       uint8 map;
-} chan_map_tuple_t;
-
-typedef struct {
-       uint8 id;
-       uint8 len;
-       uint8 eaddr[ETHER_ADDR_LEN];
-       uint8 interval;
-       chan_map_tuple_t map[1];
-} dot11_ibss_dfs_t;
-
-/* WME Elements */
-#define WME_OUI                        "\x00\x50\xf2"
-#define WME_VER                        1
-#define WME_TYPE               2
-#define WME_SUBTYPE_IE         0       /* Information Element */
-#define WME_SUBTYPE_PARAM_IE   1       /* Parameter Element */
-#define WME_SUBTYPE_TSPEC      2       /* Traffic Specification */
-
-/* WME Access Category Indices (ACIs) */
-#define AC_BE                  0       /* Best Effort */
-#define AC_BK                  1       /* Background */
-#define AC_VI                  2       /* Video */
-#define AC_VO                  3       /* Voice */
-#define AC_MAX                 4
-
-/* WME Information Element (IE) */
-struct wme_ie {
-       uint8 oui[3];
-       uint8 type;
-       uint8 subtype;
-       uint8 version;
-       uint8 acinfo;
-} PACKED;
-typedef struct wme_ie wme_ie_t;
-#define WME_IE_LEN 7
-
-struct wme_acparam {
-       uint8   ACI;
-       uint8   ECW;
-       uint16  TXOP;           /* stored in network order (ls octet first) */
-} PACKED;
-typedef struct wme_acparam wme_acparam_t;
-
-/* WME Parameter Element (PE) */
-struct wme_params {
-       uint8 oui[3];
-       uint8 type;
-       uint8 subtype;
-       uint8 version;
-       uint8 acinfo;
-       uint8 rsvd;
-       wme_acparam_t acparam[4];
-} PACKED;
-typedef struct wme_params wme_params_t;
-#define WME_PARAMS_IE_LEN      24
-
-/* acinfo */
-#define WME_COUNT_MASK         0x0f
-/* ACI */
-#define WME_AIFS_MASK  0x0f
-#define WME_ACM_MASK   0x10
-#define WME_ACI_MASK   0x60
-#define WME_ACI_SHIFT  5
-/* ECW */
-#define WME_CWMIN_MASK 0x0f
-#define WME_CWMAX_MASK 0xf0
-#define WME_CWMAX_SHIFT        4
-
-#define WME_TXOP_UNITS 32
-
-/* WME Traffic Specification (TSPEC) element */
-#define WME_SUBTYPE_TSPEC 2
-#define WME_TSPEC_HDR_LEN              2
-#define WME_TSPEC_BODY_OFF             2
-struct wme_tspec {
-       uint8 oui[DOT11_OUI_LEN];       /* WME_OUI */
-       uint8 type;                     /* WME_TYPE */
-       uint8 subtype;                  /* WME_SUBTYPE_TSPEC */
-       uint8 version;                  /* WME_VERSION */
-       uint16 ts_info;                 /* TS Info */
-       uint16 nom_msdu_size;           /* (Nominal or fixed) MSDU Size (bytes) */
-       uint16 max_msdu_size;           /* Maximum MSDU Size (bytes) */
-       uint32 min_service_interval;    /* Minimum Service Interval (us) */
-       uint32 max_service_interval;    /* Maximum Service Interval (us) */
-       uint32 inactivity_interval;     /* Inactivity Interval (us) */
-       uint32 service_start;           /* Service Start Time (us) */
-       uint32 min_rate;                /* Minimum Data Rate (bps) */
-       uint32 mean_rate;               /* Mean Data Rate (bps) */
-       uint32 max_burst_size;          /* Maximum Burst Size (bytes) */
-       uint32 min_phy_rate;            /* Minimum PHY Rate (bps) */
-       uint32 peak_rate;               /* Peak Data Rate (bps) */
-       uint32 delay_bound;             /* Delay Bound (us) */
-       uint16 surplus_bandwidth;       /* Surplus Bandwidth Allowance Factor */
-       uint16 medium_time;             /* Medium Time (32 us/s periods) */
-} PACKED;
-typedef struct wme_tspec wme_tspec_t;
-#define WME_TSPEC_LEN 56               /* not including 2-byte header */
-
-/* ts_info */
-/* 802.1D priority is duplicated - bits 13-11 AND bits 3-1 */
-#define TS_INFO_PRIO_SHIFT_HI          11
-#define TS_INFO_PRIO_MASK_HI           (0x7 << TS_INFO_PRIO_SHIFT_HI)
-#define TS_INFO_PRIO_SHIFT_LO          1
-#define TS_INFO_PRIO_MASK_LO           (0x7 << TS_INFO_PRIO_SHIFT_LO)
-#define TS_INFO_CONTENTION_SHIFT       7
-#define TS_INFO_CONTENTION_MASK                (0x1 << TS_INFO_CONTENTION_SHIFT)
-#define TS_INFO_DIRECTION_SHIFT                5
-#define TS_INFO_DIRECTION_MASK         (0x3 << TS_INFO_DIRECTION_SHIFT)
-#define TS_INFO_UPLINK                 (0 << TS_INFO_DIRECTION_SHIFT)
-#define TS_INFO_DOWNLINK               (1 << TS_INFO_DIRECTION_SHIFT)
-#define TS_INFO_BIDIRECTIONAL          (3 << TS_INFO_DIRECTION_SHIFT)
-
-/* nom_msdu_size */
-#define FIXED_MSDU_SIZE 0x8000         /* MSDU size is fixed */
-#define MSDU_SIZE_MASK 0x7fff          /* (Nominal or fixed) MSDU size */
-
-/* surplus_bandwidth */
-/* Represented as 3 bits of integer, binary point, 13 bits fraction */
-#define        INTEGER_SHIFT   13
-#define FRACTION_MASK  0x1FFF
-
-/* Management Notification Frame */
-struct dot11_management_notification {
-       uint8 category;                 /* DOT11_ACTION_NOTIFICATION */
-       uint8 action;
-       uint8 token;
-       uint8 status;
-       uint8 data[1];                  /* Elements */
-} PACKED;
-#define DOT11_MGMT_NOTIFICATION_LEN 4  /* Fixed length */
-
-/* WME Action Codes */
-#define WME_SETUP_REQUEST      0
-#define WME_SETUP_RESPONSE     1
-#define WME_TEARDOWN           2
-
-/* WME Setup Response Status Codes */
-#define WME_ADMISSION_ACCEPTED 0
-#define WME_INVALID_PARAMETERS 1
-#define WME_ADMISSION_REFUSED  3
-
-/* Macro to take a pointer to a beacon or probe response
- * header and return the char* pointer to the SSID info element
- */
-#define BCN_PRB_SSID(hdr) ((char*)(hdr) + DOT11_MGMT_HDR_LEN + DOT11_BCN_PRB_LEN)
-
-/* Authentication frame payload constants */
-#define DOT11_OPEN_SYSTEM      0
-#define DOT11_SHARED_KEY       1
-#define DOT11_CHALLENGE_LEN    128
-
-/* Frame control macros */
-#define FC_PVER_MASK           0x3
-#define FC_PVER_SHIFT          0
-#define FC_TYPE_MASK           0xC
-#define FC_TYPE_SHIFT          2
-#define FC_SUBTYPE_MASK                0xF0
-#define FC_SUBTYPE_SHIFT       4
-#define FC_TODS                        0x100
-#define FC_TODS_SHIFT          8
-#define FC_FROMDS              0x200
-#define FC_FROMDS_SHIFT                9
-#define FC_MOREFRAG            0x400
-#define FC_MOREFRAG_SHIFT      10
-#define FC_RETRY               0x800
-#define FC_RETRY_SHIFT         11
-#define FC_PM                  0x1000
-#define FC_PM_SHIFT            12
-#define FC_MOREDATA            0x2000
-#define FC_MOREDATA_SHIFT      13
-#define FC_WEP                 0x4000
-#define FC_WEP_SHIFT           14
-#define FC_ORDER               0x8000
-#define FC_ORDER_SHIFT         15
-
-/* sequence control macros */
-#define SEQNUM_SHIFT           4
-#define FRAGNUM_MASK           0xF
-
-/* Frame Control type/subtype defs */
-
-/* FC Types */
-#define FC_TYPE_MNG            0
-#define FC_TYPE_CTL            1
-#define FC_TYPE_DATA           2
-
-/* Management Subtypes */
-#define FC_SUBTYPE_ASSOC_REQ           0
-#define FC_SUBTYPE_ASSOC_RESP          1
-#define FC_SUBTYPE_REASSOC_REQ         2
-#define FC_SUBTYPE_REASSOC_RESP                3
-#define FC_SUBTYPE_PROBE_REQ           4
-#define FC_SUBTYPE_PROBE_RESP          5
-#define FC_SUBTYPE_BEACON              8
-#define FC_SUBTYPE_ATIM                        9
-#define FC_SUBTYPE_DISASSOC            10
-#define FC_SUBTYPE_AUTH                        11
-#define FC_SUBTYPE_DEAUTH              12
-#define FC_SUBTYPE_ACTION              13
-
-/* Control Subtypes */
-#define FC_SUBTYPE_PS_POLL             10
-#define FC_SUBTYPE_RTS                 11
-#define FC_SUBTYPE_CTS                 12
-#define FC_SUBTYPE_ACK                 13
-#define FC_SUBTYPE_CF_END              14
-#define FC_SUBTYPE_CF_END_ACK          15
-
-/* Data Subtypes */
-#define FC_SUBTYPE_DATA                        0
-#define FC_SUBTYPE_DATA_CF_ACK         1
-#define FC_SUBTYPE_DATA_CF_POLL                2
-#define FC_SUBTYPE_DATA_CF_ACK_POLL    3
-#define FC_SUBTYPE_NULL                        4
-#define FC_SUBTYPE_CF_ACK              5
-#define FC_SUBTYPE_CF_POLL             6
-#define FC_SUBTYPE_CF_ACK_POLL         7
-#define FC_SUBTYPE_QOS_DATA            8
-#define FC_SUBTYPE_QOS_NULL            12
-
-/* type-subtype combos */
-#define FC_KIND_MASK           (FC_TYPE_MASK | FC_SUBTYPE_MASK)
-
-#define FC_KIND(t, s) (((t) << FC_TYPE_SHIFT) | ((s) << FC_SUBTYPE_SHIFT))
-
-#define FC_ASSOC_REQ   FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_ASSOC_REQ)
-#define FC_ASSOC_RESP  FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_ASSOC_RESP)
-#define FC_REASSOC_REQ FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_REASSOC_REQ)
-#define FC_REASSOC_RESP        FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_REASSOC_RESP)
-#define FC_PROBE_REQ   FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_PROBE_REQ)
-#define FC_PROBE_RESP  FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_PROBE_RESP)
-#define FC_BEACON      FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_BEACON)
-#define FC_DISASSOC    FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_DISASSOC)
-#define FC_AUTH                FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_AUTH)
-#define FC_DEAUTH      FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_DEAUTH)
-#define FC_ACTION      FC_KIND(FC_TYPE_MNG, FC_SUBTYPE_ACTION)
-
-#define FC_PS_POLL     FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_PS_POLL)
-#define FC_RTS         FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_RTS)
-#define FC_CTS         FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_CTS)
-#define FC_ACK         FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_ACK)
-#define FC_CF_END      FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_CF_END)
-#define FC_CF_END_ACK  FC_KIND(FC_TYPE_CTL, FC_SUBTYPE_CF_END_ACK)
-
-#define FC_DATA                FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_DATA)
-#define FC_NULL_DATA   FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_NULL)
-#define FC_DATA_CF_ACK FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_DATA_CF_ACK)
-#define FC_QOS_DATA    FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_QOS_DATA)
-#define FC_QOS_NULL    FC_KIND(FC_TYPE_DATA, FC_SUBTYPE_QOS_NULL)
-
-/* QoS Control Field */
-
-/* 802.1D Tag */
-#define QOS_PRIO_SHIFT         0
-#define QOS_PRIO_MASK          0x0007
-#define QOS_PRIO(qos)          (((qos) & QOS_PRIO_MASK) >> QOS_PRIO_SHIFT)
-
-/* Ack Policy (0 means Acknowledge) */
-#define QOS_ACK_SHIFT          5
-#define QOS_ACK_MASK           0x0060
-#define QOS_ACK(qos)           (((qos) & QOS_ACK_MASK) >> QOS_ACK_SHIFT)
-
-/* Management Frames */
-
-/* Management Frame Constants */
-
-/* Fixed fields */
-#define DOT11_MNG_AUTH_ALGO_LEN                2
-#define DOT11_MNG_AUTH_SEQ_LEN         2
-#define DOT11_MNG_BEACON_INT_LEN       2
-#define DOT11_MNG_CAP_LEN              2
-#define DOT11_MNG_AP_ADDR_LEN          6
-#define DOT11_MNG_LISTEN_INT_LEN       2
-#define DOT11_MNG_REASON_LEN           2
-#define DOT11_MNG_AID_LEN              2
-#define DOT11_MNG_STATUS_LEN           2
-#define DOT11_MNG_TIMESTAMP_LEN                8
-
-/* DUR/ID field in assoc resp is 0xc000 | AID */
-#define DOT11_AID_MASK                 0x3fff
-
-/* Reason Codes */
-#define DOT11_RC_RESERVED                      0
-#define DOT11_RC_UNSPECIFIED                   1       /* Unspecified reason */
-#define DOT11_RC_AUTH_INVAL                    2       /* Previous authentication no longer valid */
-#define DOT11_RC_DEAUTH_LEAVING                        3       /* Deauthenticated because sending station is
-                                                          leaving (or has left) IBSS or ESS */
-#define DOT11_RC_INACTIVITY                    4       /* Disassociated due to inactivity */
-#define DOT11_RC_BUSY                          5       /* Disassociated because AP is unable to handle
-                                                          all currently associated stations */
-#define DOT11_RC_INVAL_CLASS_2                 6       /* Class 2 frame received from
-                                                          nonauthenticated station */
-#define DOT11_RC_INVAL_CLASS_3                 7       /* Class 3 frame received from
-                                                          nonassociated station */
-#define DOT11_RC_DISASSOC_LEAVING              8       /* Disassociated because sending station is
-                                                          leaving (or has left) BSS */
-#define DOT11_RC_NOT_AUTH                      9       /* Station requesting (re)association is
-                                                          not authenticated with responding station */
-#define DOT11_RC_MAX                           23      /* Reason codes > 23 are reserved */
-
-/* Status Codes */
-#define DOT11_STATUS_SUCCESS                   0       /* Successful */
-#define DOT11_STATUS_FAILURE                   1       /* Unspecified failure */
-#define DOT11_STATUS_CAP_MISMATCH              10      /* Cannot support all requested capabilities
-                                                          in the Capability Information field */
-#define DOT11_STATUS_REASSOC_FAIL              11      /* Reassociation denied due to inability to
-                                                          confirm that association exists */
-#define DOT11_STATUS_ASSOC_FAIL                        12      /* Association denied due to reason outside
-                                                          the scope of this standard */
-#define DOT11_STATUS_AUTH_MISMATCH             13      /* Responding station does not support the
-                                                          specified authentication algorithm */
-#define DOT11_STATUS_AUTH_SEQ                  14      /* Received an Authentication frame with
-                                                          authentication transaction sequence number
-                                                          out of expected sequence */
-#define DOT11_STATUS_AUTH_CHALLENGE_FAIL       15      /* Authentication rejected because of challenge failure */
-#define DOT11_STATUS_AUTH_TIMEOUT              16      /* Authentication rejected due to timeout waiting
-                                                          for next frame in sequence */
-#define DOT11_STATUS_ASSOC_BUSY_FAIL           17      /* Association denied because AP is unable to
-                                                          handle additional associated stations */
-#define DOT11_STATUS_ASSOC_RATE_MISMATCH       18      /* Association denied due to requesting station
-                                                          not supporting all of the data rates in the
-                                                          BSSBasicRateSet parameter */
-#define DOT11_STATUS_ASSOC_SHORT_REQUIRED      19      /* Association denied due to requesting station
-                                                          not supporting the Short Preamble option */
-#define DOT11_STATUS_ASSOC_PBCC_REQUIRED       20      /* Association denied due to requesting station
-                                                          not supporting the PBCC Modulation option */
-#define DOT11_STATUS_ASSOC_AGILITY_REQUIRED    21      /* Association denied due to requesting station
-                                                          not supporting the Channel Agility option */
-#define DOT11_STATUS_ASSOC_SPECTRUM_REQUIRED   22      /* Association denied because Spectrum Management 
-                                                          capability is required. */
-#define DOT11_STATUS_ASSOC_BAD_POWER_CAP       23      /* Association denied because the info in the 
-                                                          Power Cap element is unacceptable. */
-#define DOT11_STATUS_ASSOC_BAD_SUP_CHANNELS    24      /* Association denied because the info in the 
-                                                          Supported Channel element is unacceptable */
-#define DOT11_STATUS_ASSOC_SHORTSLOT_REQUIRED  25      /* Association denied due to requesting station
-                                                          not supporting the Short Slot Time option */
-#define DOT11_STATUS_ASSOC_ERPBCC_REQUIRED     26      /* Association denied due to requesting station
-                                                          not supporting the ER-PBCC Modulation option */
-#define DOT11_STATUS_ASSOC_DSSOFDM_REQUIRED    27      /* Association denied due to requesting station
-                                                          not supporting the DSS-OFDM option */
-
-/* Info Elts, length of INFORMATION portion of Info Elts */
-#define DOT11_MNG_DS_PARAM_LEN                 1
-#define DOT11_MNG_IBSS_PARAM_LEN               2
-
-/* TIM Info element has 3 bytes fixed info in INFORMATION field,
- * followed by 1 to 251 bytes of Partial Virtual Bitmap */
-#define DOT11_MNG_TIM_FIXED_LEN                        3
-#define DOT11_MNG_TIM_DTIM_COUNT               0
-#define DOT11_MNG_TIM_DTIM_PERIOD              1
-#define DOT11_MNG_TIM_BITMAP_CTL               2
-#define DOT11_MNG_TIM_PVB                      3
-
-/* TLV defines */
-#define TLV_TAG_OFF            0
-#define TLV_LEN_OFF            1
-#define TLV_HDR_LEN            2
-#define TLV_BODY_OFF           2
-
-/* Management Frame Information Element IDs */
-#define DOT11_MNG_SSID_ID                      0
-#define DOT11_MNG_RATES_ID                     1
-#define DOT11_MNG_FH_PARMS_ID                  2
-#define DOT11_MNG_DS_PARMS_ID                  3
-#define DOT11_MNG_CF_PARMS_ID                  4
-#define DOT11_MNG_TIM_ID                       5
-#define DOT11_MNG_IBSS_PARMS_ID                        6
-#define DOT11_MNG_COUNTRY_ID                   7
-#define DOT11_MNG_HOPPING_PARMS_ID             8
-#define DOT11_MNG_HOPPING_TABLE_ID             9
-#define DOT11_MNG_REQUEST_ID                   10
-#define DOT11_MNG_CHALLENGE_ID                 16
-#define DOT11_MNG_PWR_CONSTRAINT_ID            32    /* 11H PowerConstraint    */
-#define DOT11_MNG_PWR_CAP_ID                   33    /* 11H PowerCapability    */
-#define DOT11_MNG_TPC_REQUEST_ID               34    /* 11H TPC Request        */
-#define DOT11_MNG_TPC_REPORT_ID                        35    /* 11H TPC Report         */
-#define DOT11_MNG_SUPP_CHANNELS_ID             36    /* 11H Supported Channels */
-#define DOT11_MNG_CHANNEL_SWITCH_ID            37    /* 11H ChannelSwitch Announcement*/
-#define DOT11_MNG_MEASURE_REQUEST_ID           38    /* 11H MeasurementRequest */
-#define DOT11_MNG_MEASURE_REPORT_ID            39    /* 11H MeasurementReport  */
-#define DOT11_MNG_QUIET_ID                     40    /* 11H Quiet              */
-#define DOT11_MNG_IBSS_DFS_ID                  41    /* 11H IBSS_DFS           */
-#define DOT11_MNG_ERP_ID                       42
-#define DOT11_MNG_NONERP_ID                    47
-#define DOT11_MNG_EXT_RATES_ID                 50
-#define DOT11_MNG_WPA_ID                       221
-#define DOT11_MNG_PROPR_ID                     221
-
-/* ERP info element bit values */
-#define DOT11_MNG_ERP_LEN                      1       /* ERP is currently 1 byte long */
-#define DOT11_MNG_NONERP_PRESENT               0x01    /* NonERP (802.11b) STAs are present in the BSS */
-#define DOT11_MNG_USE_PROTECTION               0x02    /* Use protection mechanisms for ERP-OFDM frames */
-#define DOT11_MNG_BARKER_PREAMBLE              0x04    /* Short Preambles: 0 == allowed, 1 == not allowed */
-
-/* Capability Information Field */
-#define DOT11_CAP_ESS                          0x0001
-#define DOT11_CAP_IBSS                         0x0002
-#define DOT11_CAP_POLLABLE                     0x0004
-#define DOT11_CAP_POLL_RQ                      0x0008
-#define DOT11_CAP_PRIVACY                      0x0010
-#define DOT11_CAP_SHORT                                0x0020
-#define DOT11_CAP_PBCC                         0x0040
-#define DOT11_CAP_AGILITY                      0x0080
-#define DOT11_CAP_SPECTRUM                     0x0100
-#define DOT11_CAP_SHORTSLOT                    0x0400
-#define DOT11_CAP_CCK_OFDM                     0x2000
-
-/* Action Frame Constants */
-#define DOT11_ACTION_CAT_ERR_MASK      0x80
-#define DOT11_ACTION_CAT_SPECT_MNG     0x00
-#define DOT11_ACTION_NOTIFICATION      0x11    /* 17 */
-
-#define DOT11_ACTION_ID_M_REQ          0
-#define DOT11_ACTION_ID_M_REP          1
-#define DOT11_ACTION_ID_TPC_REQ                2
-#define DOT11_ACTION_ID_TPC_REP                3
-#define DOT11_ACTION_ID_CHANNEL_SWITCH 4
-
-/* MLME Enumerations */
-#define DOT11_BSSTYPE_INFRASTRUCTURE           0
-#define DOT11_BSSTYPE_INDEPENDENT              1
-#define DOT11_BSSTYPE_ANY                      2
-#define DOT11_SCANTYPE_ACTIVE                  0
-#define DOT11_SCANTYPE_PASSIVE                 1
-
-/* 802.11 A PHY constants */
-#define APHY_SLOT_TIME         9
-#define APHY_SIFS_TIME         16
-#define APHY_DIFS_TIME         (APHY_SIFS_TIME + (2 * APHY_SLOT_TIME))
-#define APHY_PREAMBLE_TIME     16
-#define APHY_SIGNAL_TIME       4
-#define APHY_SYMBOL_TIME       4
-#define APHY_SERVICE_NBITS     16
-#define APHY_TAIL_NBITS                6
-#define        APHY_CWMIN              15
-
-/* 802.11 B PHY constants */
-#define BPHY_SLOT_TIME         20
-#define BPHY_SIFS_TIME         10
-#define BPHY_DIFS_TIME         50
-#define BPHY_PLCP_TIME         192
-#define BPHY_PLCP_SHORT_TIME   96
-#define        BPHY_CWMIN              31
-
-/* 802.11 G constants */
-#define DOT11_OFDM_SIGNAL_EXTENSION    6
-
-#define PHY_CWMAX              1023
-
-#define        DOT11_MAXNUMFRAGS       16      /* max # fragments per MSDU */
-
-/* dot11Counters Table - 802.11 spec., Annex D */
-typedef struct d11cnt {
-       uint32          txfrag;         /* dot11TransmittedFragmentCount */
-       uint32          txmulti;        /* dot11MulticastTransmittedFrameCount */
-       uint32          txfail;         /* dot11FailedCount */
-       uint32          txretry;        /* dot11RetryCount */
-       uint32          txretrie;       /* dot11MultipleRetryCount */
-       uint32          rxdup;          /* dot11FrameduplicateCount */
-       uint32          txrts;          /* dot11RTSSuccessCount */
-       uint32          txnocts;        /* dot11RTSFailureCount */
-       uint32          txnoack;        /* dot11ACKFailureCount */
-       uint32          rxfrag;         /* dot11ReceivedFragmentCount */
-       uint32          rxmulti;        /* dot11MulticastReceivedFrameCount */
-       uint32          rxcrc;          /* dot11FCSErrorCount */
-       uint32          txfrmsnt;       /* dot11TransmittedFrameCount */
-       uint32          rxundec;        /* dot11WEPUndecryptableCount */
-} d11cnt_t;
-
-/* BRCM OUI */
-#define BRCM_OUI               "\x00\x10\x18"
-
-/* BRCM info element */
-struct brcm_ie {
-       uchar   id;             
-       uchar   len;   
-       uchar   oui[3];
-       uchar   ver;
-       uchar   assoc;          /*  # of assoc STAs */
-       uchar   flags;          /* misc flags */
-} PACKED;
-#define BRCM_IE_LEN            8
-typedef        struct brcm_ie brcm_ie_t;
-#define BRCM_IE_VER            1
-
-/* brcm_ie flags */
-#define        BRF_ABCAP               0x1     /* afterburner capable */
-#define        BRF_ABRQRD              0x2     /* afterburner requested */
-
-/* WPA definitions */
-#define WPA_VERSION            1
-#define WPA_OUI                        "\x00\x50\xF2"
-
-#define WPA_OUI_LEN    3
-
-/* WPA authentication modes */
-#define WPA_AUTH_NONE          0       /* None */
-#define WPA_AUTH_UNSPECIFIED   1       /* Unspecified authentication over 802.1X: default for WPA */
-#define WPA_AUTH_PSK           2       /* Pre-shared Key over 802.1X */
-#define WPA_AUTH_DISABLED      255     /* Legacy (i.e., non-WPA) */
-                                
-#define IS_WPA_AUTH(auth)      ((auth) == WPA_AUTH_NONE || \
-                                (auth) == WPA_AUTH_UNSPECIFIED || \
-                                (auth) == WPA_AUTH_PSK)
-
-
-/* Key related defines */
-#define DOT11_MAX_DEFAULT_KEYS 4       /* number of default keys */
-#define DOT11_MAX_KEY_SIZE     32      /* max size of any key */
-#define DOT11_MAX_IV_SIZE      16      /* max size of any IV */
-#define DOT11_EXT_IV_FLAG      (1<<5)  /* flag to indicate IV is > 4 bytes */
-
-#define WEP1_KEY_SIZE          5       /* max size of any WEP key */
-#define WEP1_KEY_HEX_SIZE      10      /* size of WEP key in hex. */
-#define WEP128_KEY_SIZE                13      /* max size of any WEP key */
-#define WEP128_KEY_HEX_SIZE    26      /* size of WEP key in hex. */
-#define TKIP_MIC_SIZE          8       /* size of TKIP MIC */
-#define TKIP_EOM_SIZE          7       /* max size of TKIP EOM */
-#define TKIP_EOM_FLAG          0x5a    /* TKIP EOM flag byte */
-#define TKIP_KEY_SIZE          32      /* size of any TKIP key */
-#define TKIP_MIC_AUTH_TX       16      /* offset to Authenticator MIC TX key */
-#define TKIP_MIC_AUTH_RX       24      /* offset to Authenticator MIC RX key */
-#define TKIP_MIC_SUP_RX                16      /* offset to Supplicant MIC RX key */
-#define TKIP_MIC_SUP_TX                24      /* offset to Supplicant MIC TX key */
-#define AES_KEY_SIZE           16      /* size of AES key */
-
-#undef PACKED
-#if !defined(__GNUC__)
-#pragma pack()
-#endif
-
-#endif /* _802_11_H_ */