Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | /*
* Copyright (c) 2010 Broadcom Corporation
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _802_11_H_
#define _802_11_H_
#include <linux/if_ether.h>
#define DOT11_A3_HDR_LEN 24
#define DOT11_A4_HDR_LEN 30
#define DOT11_MAC_HDR_LEN DOT11_A3_HDR_LEN
#define DOT11_ICV_AES_LEN 8
#define DOT11_QOS_LEN 2
#define DOT11_IV_MAX_LEN 8
#define DOT11_DEFAULT_RTS_LEN 2347
#define DOT11_MIN_FRAG_LEN 256
#define DOT11_MAX_FRAG_LEN 2346
#define DOT11_DEFAULT_FRAG_LEN 2346
#define DOT11_MIN_BEACON_PERIOD 1
#define DOT11_MAX_BEACON_PERIOD 0xFFFF
#define DOT11_MIN_DTIM_PERIOD 1
#define DOT11_MAX_DTIM_PERIOD 0xFF
#define DOT11_OUI_LEN 3
#define DOT11_RTS_LEN 16
#define DOT11_CTS_LEN 10
#define DOT11_ACK_LEN 10
#define DOT11_BA_BITMAP_LEN 128
#define DOT11_BA_LEN 4
#define WME_OUI "\x00\x50\xf2"
#define WME_VER 1
#define WME_TYPE 2
#define WME_SUBTYPE_PARAM_IE 1
#define AC_BE 0
#define AC_BK 1
#define AC_VI 2
#define AC_VO 3
#define AC_COUNT 4
typedef u8 ac_bitmap_t;
#define AC_BITMAP_ALL 0xf
#define AC_BITMAP_TST(ab, ac) (((ab) & (1 << (ac))) != 0)
struct edcf_acparam {
u8 ACI;
u8 ECW;
u16 TXOP;
} __attribute__((packed));
typedef struct edcf_acparam edcf_acparam_t;
struct wme_param_ie {
u8 oui[3];
u8 type;
u8 subtype;
u8 version;
u8 qosinfo;
u8 rsvd;
edcf_acparam_t acparam[AC_COUNT];
} __attribute__((packed));
typedef struct wme_param_ie wme_param_ie_t;
#define WME_PARAM_IE_LEN 24
#define EDCF_AIFSN_MIN 1
#define EDCF_AIFSN_MAX 15
#define EDCF_AIFSN_MASK 0x0f
#define EDCF_ACM_MASK 0x10
#define EDCF_ACI_MASK 0x60
#define EDCF_ACI_SHIFT 5
#define EDCF_ECW2CW(exp) ((1 << (exp)) - 1)
#define EDCF_ECWMIN_MASK 0x0f
#define EDCF_ECWMAX_MASK 0xf0
#define EDCF_ECWMAX_SHIFT 4
#define EDCF_TXOP2USEC(txop) ((txop) << 5)
#define EDCF_AC_BE_ACI_STA 0x03
#define EDCF_AC_BE_ECW_STA 0xA4
#define EDCF_AC_BE_TXOP_STA 0x0000
#define EDCF_AC_BK_ACI_STA 0x27
#define EDCF_AC_BK_ECW_STA 0xA4
#define EDCF_AC_BK_TXOP_STA 0x0000
#define EDCF_AC_VI_ACI_STA 0x42
#define EDCF_AC_VI_ECW_STA 0x43
#define EDCF_AC_VI_TXOP_STA 0x005e
#define EDCF_AC_VO_ACI_STA 0x62
#define EDCF_AC_VO_ECW_STA 0x32
#define EDCF_AC_VO_TXOP_STA 0x002f
#define EDCF_AC_VO_TXOP_AP 0x002f
#define SEQNUM_SHIFT 4
#define SEQNUM_MAX 0x1000
#define FRAGNUM_MASK 0xF
#define DOT11_MNG_RSN_ID 48
#define DOT11_MNG_WPA_ID 221
#define DOT11_MNG_VS_ID 221
#define DOT11_BSSTYPE_INFRASTRUCTURE 0
#define DOT11_BSSTYPE_ANY 2
#define DOT11_SCANTYPE_ACTIVE 0
#define PREN_PREAMBLE 24
#define PREN_MM_EXT 12
#define PREN_PREAMBLE_EXT 4
#define RIFS_11N_TIME 2
#define APHY_SLOT_TIME 9
#define APHY_SIFS_TIME 16
#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
#define BPHY_SLOT_TIME 20
#define BPHY_SIFS_TIME 10
#define BPHY_PLCP_TIME 192
#define BPHY_PLCP_SHORT_TIME 96
#define DOT11_OFDM_SIGNAL_EXTENSION 6
#define PHY_CWMAX 1023
#define DOT11_MAXNUMFRAGS 16
typedef struct d11cnt {
u32 txfrag;
u32 txmulti;
u32 txfail;
u32 txretry;
u32 txretrie;
u32 rxdup;
u32 txrts;
u32 txnocts;
u32 txnoack;
u32 rxfrag;
u32 rxmulti;
u32 rxcrc;
u32 txfrmsnt;
u32 rxundec;
} d11cnt_t;
#define MCSSET_LEN 16
#define HT_CAP_IE_LEN 26
#define HT_CAP_RX_STBC_NO 0x0
#define HT_CAP_RX_STBC_ONE_STREAM 0x1
#define AMPDU_MAX_MPDU_DENSITY IEEE80211_HT_MPDU_DENSITY_16
#define AMPDU_DELIMITER_LEN 4
#define DOT11N_TXBURST 0x0008
#define WPA_VERSION 1
#define WPA_OUI "\x00\x50\xF2"
#define WFA_OUI "\x00\x50\xF2"
#define WFA_OUI_LEN 3
#define WFA_OUI_TYPE_WPA 1
#define RSN_AKM_NONE 0
#define RSN_AKM_UNSPECIFIED 1
#define RSN_AKM_PSK 2
#define DOT11_MAX_DEFAULT_KEYS 4
#define DOT11_WPA_KEY_RSC_LEN 8
#define BRCM_OUI "\x00\x10\x18"
#endif /* _802_11_H_ */
|