xref: /freebsd/sys/contrib/dev/broadcom/brcm80211/include/brcmu_wifi.h (revision b4c3e9b5b09c829b4135aff738bd2893ed052377)
1*b4c3e9b5SBjoern A. Zeeb // SPDX-License-Identifier: ISC
2*b4c3e9b5SBjoern A. Zeeb /*
3*b4c3e9b5SBjoern A. Zeeb  * Copyright (c) 2010 Broadcom Corporation
4*b4c3e9b5SBjoern A. Zeeb  */
5*b4c3e9b5SBjoern A. Zeeb 
6*b4c3e9b5SBjoern A. Zeeb #ifndef	_BRCMU_WIFI_H_
7*b4c3e9b5SBjoern A. Zeeb #define	_BRCMU_WIFI_H_
8*b4c3e9b5SBjoern A. Zeeb 
9*b4c3e9b5SBjoern A. Zeeb #include <linux/if_ether.h>		/* for ETH_ALEN */
10*b4c3e9b5SBjoern A. Zeeb #include <linux/ieee80211.h>		/* for WLAN_PMKID_LEN */
11*b4c3e9b5SBjoern A. Zeeb 
12*b4c3e9b5SBjoern A. Zeeb /*
13*b4c3e9b5SBjoern A. Zeeb  * A chanspec (u16) holds the channel number, band, bandwidth and control
14*b4c3e9b5SBjoern A. Zeeb  * sideband
15*b4c3e9b5SBjoern A. Zeeb  */
16*b4c3e9b5SBjoern A. Zeeb 
17*b4c3e9b5SBjoern A. Zeeb /* channel defines */
18*b4c3e9b5SBjoern A. Zeeb #define CH_UPPER_SB			0x01
19*b4c3e9b5SBjoern A. Zeeb #define CH_LOWER_SB			0x02
20*b4c3e9b5SBjoern A. Zeeb #define CH_EWA_VALID			0x04
21*b4c3e9b5SBjoern A. Zeeb #define CH_70MHZ_APART			14
22*b4c3e9b5SBjoern A. Zeeb #define CH_50MHZ_APART			10
23*b4c3e9b5SBjoern A. Zeeb #define CH_30MHZ_APART			6
24*b4c3e9b5SBjoern A. Zeeb #define CH_20MHZ_APART			4
25*b4c3e9b5SBjoern A. Zeeb #define CH_10MHZ_APART			2
26*b4c3e9b5SBjoern A. Zeeb #define CH_5MHZ_APART			1 /* 2G band channels are 5 Mhz apart */
27*b4c3e9b5SBjoern A. Zeeb #define CH_MIN_2G_CHANNEL		1
28*b4c3e9b5SBjoern A. Zeeb #define CH_MAX_2G_CHANNEL		14	/* Max channel in 2G band */
29*b4c3e9b5SBjoern A. Zeeb #define CH_MIN_5G_CHANNEL		34
30*b4c3e9b5SBjoern A. Zeeb 
31*b4c3e9b5SBjoern A. Zeeb /* bandstate array indices */
32*b4c3e9b5SBjoern A. Zeeb #define BAND_2G_INDEX		0	/* wlc->bandstate[x] index */
33*b4c3e9b5SBjoern A. Zeeb #define BAND_5G_INDEX		1	/* wlc->bandstate[x] index */
34*b4c3e9b5SBjoern A. Zeeb 
35*b4c3e9b5SBjoern A. Zeeb /*
36*b4c3e9b5SBjoern A. Zeeb  * max # supported channels. The max channel no is 216, this is that + 1
37*b4c3e9b5SBjoern A. Zeeb  * rounded up to a multiple of NBBY (8). DO NOT MAKE it > 255: channels are
38*b4c3e9b5SBjoern A. Zeeb  * u8's all over
39*b4c3e9b5SBjoern A. Zeeb */
40*b4c3e9b5SBjoern A. Zeeb #define	MAXCHANNEL		224
41*b4c3e9b5SBjoern A. Zeeb 
42*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CHAN_MASK		0x00ff
43*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CHAN_SHIFT		0
44*b4c3e9b5SBjoern A. Zeeb 
45*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CTL_SB_MASK		0x0300
46*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CTL_SB_SHIFT	     8
47*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CTL_SB_LOWER	0x0100
48*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CTL_SB_UPPER	0x0200
49*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_CTL_SB_NONE		0x0300
50*b4c3e9b5SBjoern A. Zeeb 
51*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BW_MASK		0x0C00
52*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BW_SHIFT		    10
53*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BW_10		0x0400
54*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BW_20		0x0800
55*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BW_40		0x0C00
56*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BW_80		0x2000
57*b4c3e9b5SBjoern A. Zeeb 
58*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BAND_MASK		0xf000
59*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BAND_SHIFT		12
60*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BAND_5G		0x1000
61*b4c3e9b5SBjoern A. Zeeb #define WL_CHANSPEC_BAND_2G		0x2000
62*b4c3e9b5SBjoern A. Zeeb #define INVCHANSPEC			255
63*b4c3e9b5SBjoern A. Zeeb 
64*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_VALID_HW		(1 << 0) /* valid with current HW */
65*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_VALID_SW		(1 << 1) /* valid with country sett. */
66*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_BAND_5G			(1 << 2) /* 5GHz-band channel */
67*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_RADAR			(1 << 3) /* radar sensitive  channel */
68*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_INACTIVE		(1 << 4) /* inactive due to radar */
69*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_PASSIVE			(1 << 5) /* channel in passive mode */
70*b4c3e9b5SBjoern A. Zeeb #define WL_CHAN_RESTRICTED		(1 << 6) /* restricted use channel */
71*b4c3e9b5SBjoern A. Zeeb 
72*b4c3e9b5SBjoern A. Zeeb /* values for band specific 40MHz capabilities  */
73*b4c3e9b5SBjoern A. Zeeb #define WLC_N_BW_20ALL			0
74*b4c3e9b5SBjoern A. Zeeb #define WLC_N_BW_40ALL			1
75*b4c3e9b5SBjoern A. Zeeb #define WLC_N_BW_20IN2G_40IN5G		2
76*b4c3e9b5SBjoern A. Zeeb 
77*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_20MHZ_BIT		BIT(0)
78*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_40MHZ_BIT		BIT(1)
79*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_80MHZ_BIT		BIT(2)
80*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_160MHZ_BIT		BIT(3)
81*b4c3e9b5SBjoern A. Zeeb 
82*b4c3e9b5SBjoern A. Zeeb /* Bandwidth capabilities */
83*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_CAP_20MHZ		(WLC_BW_20MHZ_BIT)
84*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_CAP_40MHZ		(WLC_BW_40MHZ_BIT|WLC_BW_20MHZ_BIT)
85*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_CAP_80MHZ		(WLC_BW_80MHZ_BIT|WLC_BW_40MHZ_BIT| \
86*b4c3e9b5SBjoern A. Zeeb 					 WLC_BW_20MHZ_BIT)
87*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_CAP_160MHZ		(WLC_BW_160MHZ_BIT|WLC_BW_80MHZ_BIT| \
88*b4c3e9b5SBjoern A. Zeeb 					 WLC_BW_40MHZ_BIT|WLC_BW_20MHZ_BIT)
89*b4c3e9b5SBjoern A. Zeeb #define WLC_BW_CAP_UNRESTRICTED		0xFF
90*b4c3e9b5SBjoern A. Zeeb 
91*b4c3e9b5SBjoern A. Zeeb /* band types */
92*b4c3e9b5SBjoern A. Zeeb #define	WLC_BAND_AUTO			0	/* auto-select */
93*b4c3e9b5SBjoern A. Zeeb #define	WLC_BAND_5G			1	/* 5 Ghz */
94*b4c3e9b5SBjoern A. Zeeb #define	WLC_BAND_2G			2	/* 2.4 Ghz */
95*b4c3e9b5SBjoern A. Zeeb #define	WLC_BAND_ALL			3	/* all bands */
96*b4c3e9b5SBjoern A. Zeeb 
97*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_CHANNEL(chspec)	((u8)((chspec) & WL_CHANSPEC_CHAN_MASK))
98*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_BAND(chspec)	((chspec) & WL_CHANSPEC_BAND_MASK)
99*b4c3e9b5SBjoern A. Zeeb 
100*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_CTL_SB(chspec)	((chspec) & WL_CHANSPEC_CTL_SB_MASK)
101*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_BW(chspec)	((chspec) & WL_CHANSPEC_BW_MASK)
102*b4c3e9b5SBjoern A. Zeeb 
103*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_IS10(chspec) \
104*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_BW_MASK) == WL_CHANSPEC_BW_10)
105*b4c3e9b5SBjoern A. Zeeb 
106*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_IS20(chspec) \
107*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_BW_MASK) == WL_CHANSPEC_BW_20)
108*b4c3e9b5SBjoern A. Zeeb 
109*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_IS40(chspec) \
110*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_BW_MASK) == WL_CHANSPEC_BW_40)
111*b4c3e9b5SBjoern A. Zeeb 
112*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_IS80(chspec) \
113*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_BW_MASK) == WL_CHANSPEC_BW_80)
114*b4c3e9b5SBjoern A. Zeeb 
115*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_IS5G(chspec) \
116*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_BAND_MASK) == WL_CHANSPEC_BAND_5G)
117*b4c3e9b5SBjoern A. Zeeb 
118*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_IS2G(chspec) \
119*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_BAND_MASK) == WL_CHANSPEC_BAND_2G)
120*b4c3e9b5SBjoern A. Zeeb 
121*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_SB_NONE(chspec) \
122*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_CTL_SB_MASK) == WL_CHANSPEC_CTL_SB_NONE)
123*b4c3e9b5SBjoern A. Zeeb 
124*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_SB_UPPER(chspec) \
125*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_CTL_SB_MASK) == WL_CHANSPEC_CTL_SB_UPPER)
126*b4c3e9b5SBjoern A. Zeeb 
127*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_SB_LOWER(chspec) \
128*b4c3e9b5SBjoern A. Zeeb 	(((chspec) & WL_CHANSPEC_CTL_SB_MASK) == WL_CHANSPEC_CTL_SB_LOWER)
129*b4c3e9b5SBjoern A. Zeeb 
130*b4c3e9b5SBjoern A. Zeeb #define CHSPEC_CTL_CHAN(chspec) \
131*b4c3e9b5SBjoern A. Zeeb 	((CHSPEC_SB_LOWER(chspec)) ? \
132*b4c3e9b5SBjoern A. Zeeb 	(lower_20_sb(((chspec) & WL_CHANSPEC_CHAN_MASK))) : \
133*b4c3e9b5SBjoern A. Zeeb 	(upper_20_sb(((chspec) & WL_CHANSPEC_CHAN_MASK))))
134*b4c3e9b5SBjoern A. Zeeb 
135*b4c3e9b5SBjoern A. Zeeb #define CHSPEC2BAND(chspec) (CHSPEC_IS5G(chspec) ? BRCM_BAND_5G : BRCM_BAND_2G)
136*b4c3e9b5SBjoern A. Zeeb 
137*b4c3e9b5SBjoern A. Zeeb #define CHANSPEC_STR_LEN    8
138*b4c3e9b5SBjoern A. Zeeb 
lower_20_sb(int channel)139*b4c3e9b5SBjoern A. Zeeb static inline int lower_20_sb(int channel)
140*b4c3e9b5SBjoern A. Zeeb {
141*b4c3e9b5SBjoern A. Zeeb 	return channel > CH_10MHZ_APART ? (channel - CH_10MHZ_APART) : 0;
142*b4c3e9b5SBjoern A. Zeeb }
143*b4c3e9b5SBjoern A. Zeeb 
upper_20_sb(int channel)144*b4c3e9b5SBjoern A. Zeeb static inline int upper_20_sb(int channel)
145*b4c3e9b5SBjoern A. Zeeb {
146*b4c3e9b5SBjoern A. Zeeb 	return (channel < (MAXCHANNEL - CH_10MHZ_APART)) ?
147*b4c3e9b5SBjoern A. Zeeb 	       channel + CH_10MHZ_APART : 0;
148*b4c3e9b5SBjoern A. Zeeb }
149*b4c3e9b5SBjoern A. Zeeb 
chspec_bandunit(u16 chspec)150*b4c3e9b5SBjoern A. Zeeb static inline int chspec_bandunit(u16 chspec)
151*b4c3e9b5SBjoern A. Zeeb {
152*b4c3e9b5SBjoern A. Zeeb 	return CHSPEC_IS5G(chspec) ? BAND_5G_INDEX : BAND_2G_INDEX;
153*b4c3e9b5SBjoern A. Zeeb }
154*b4c3e9b5SBjoern A. Zeeb 
ch20mhz_chspec(int channel)155*b4c3e9b5SBjoern A. Zeeb static inline u16 ch20mhz_chspec(int channel)
156*b4c3e9b5SBjoern A. Zeeb {
157*b4c3e9b5SBjoern A. Zeeb 	u16 rc = channel <= CH_MAX_2G_CHANNEL ?
158*b4c3e9b5SBjoern A. Zeeb 		 WL_CHANSPEC_BAND_2G : WL_CHANSPEC_BAND_5G;
159*b4c3e9b5SBjoern A. Zeeb 
160*b4c3e9b5SBjoern A. Zeeb 	return	(u16)((u16)channel | WL_CHANSPEC_BW_20 |
161*b4c3e9b5SBjoern A. Zeeb 		      WL_CHANSPEC_CTL_SB_NONE | rc);
162*b4c3e9b5SBjoern A. Zeeb }
163*b4c3e9b5SBjoern A. Zeeb 
next_20mhz_chan(int channel)164*b4c3e9b5SBjoern A. Zeeb static inline int next_20mhz_chan(int channel)
165*b4c3e9b5SBjoern A. Zeeb {
166*b4c3e9b5SBjoern A. Zeeb 	return channel < (MAXCHANNEL - CH_20MHZ_APART) ?
167*b4c3e9b5SBjoern A. Zeeb 	       channel + CH_20MHZ_APART : 0;
168*b4c3e9b5SBjoern A. Zeeb }
169*b4c3e9b5SBjoern A. Zeeb 
170*b4c3e9b5SBjoern A. Zeeb /* defined rate in 500kbps */
171*b4c3e9b5SBjoern A. Zeeb #define BRCM_MAXRATE	108	/* in 500kbps units */
172*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_1M	2	/* in 500kbps units */
173*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_2M	4	/* in 500kbps units */
174*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_5M5	11	/* in 500kbps units */
175*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_11M	22	/* in 500kbps units */
176*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_6M	12	/* in 500kbps units */
177*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_9M	18	/* in 500kbps units */
178*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_12M	24	/* in 500kbps units */
179*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_18M	36	/* in 500kbps units */
180*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_24M	48	/* in 500kbps units */
181*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_36M	72	/* in 500kbps units */
182*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_48M	96	/* in 500kbps units */
183*b4c3e9b5SBjoern A. Zeeb #define BRCM_RATE_54M	108	/* in 500kbps units */
184*b4c3e9b5SBjoern A. Zeeb 
185*b4c3e9b5SBjoern A. Zeeb #define BRCM_2G_25MHZ_OFFSET		5	/* 2.4GHz band channel offset */
186*b4c3e9b5SBjoern A. Zeeb 
187*b4c3e9b5SBjoern A. Zeeb #define MCSSET_LEN	16
188*b4c3e9b5SBjoern A. Zeeb 
ac_bitmap_tst(u8 bitmap,int prec)189*b4c3e9b5SBjoern A. Zeeb static inline bool ac_bitmap_tst(u8 bitmap, int prec)
190*b4c3e9b5SBjoern A. Zeeb {
191*b4c3e9b5SBjoern A. Zeeb 	return (bitmap & (1 << (prec))) != 0;
192*b4c3e9b5SBjoern A. Zeeb }
193*b4c3e9b5SBjoern A. Zeeb 
194*b4c3e9b5SBjoern A. Zeeb /* Enumerate crypto algorithms */
195*b4c3e9b5SBjoern A. Zeeb #define	CRYPTO_ALGO_OFF			0
196*b4c3e9b5SBjoern A. Zeeb #define	CRYPTO_ALGO_WEP1		1
197*b4c3e9b5SBjoern A. Zeeb #define	CRYPTO_ALGO_TKIP		2
198*b4c3e9b5SBjoern A. Zeeb #define	CRYPTO_ALGO_WEP128		3
199*b4c3e9b5SBjoern A. Zeeb #define CRYPTO_ALGO_AES_CCM		4
200*b4c3e9b5SBjoern A. Zeeb #define CRYPTO_ALGO_AES_RESERVED1	5
201*b4c3e9b5SBjoern A. Zeeb #define CRYPTO_ALGO_AES_RESERVED2	6
202*b4c3e9b5SBjoern A. Zeeb #define CRYPTO_ALGO_NALG		7
203*b4c3e9b5SBjoern A. Zeeb 
204*b4c3e9b5SBjoern A. Zeeb /* wireless security bitvec */
205*b4c3e9b5SBjoern A. Zeeb 
206*b4c3e9b5SBjoern A. Zeeb #define WEP_ENABLED		0x0001
207*b4c3e9b5SBjoern A. Zeeb #define TKIP_ENABLED		0x0002
208*b4c3e9b5SBjoern A. Zeeb #define AES_ENABLED		0x0004
209*b4c3e9b5SBjoern A. Zeeb #define WSEC_SWFLAG		0x0008
210*b4c3e9b5SBjoern A. Zeeb /* to go into transition mode without setting wep */
211*b4c3e9b5SBjoern A. Zeeb #define SES_OW_ENABLED		0x0040
212*b4c3e9b5SBjoern A. Zeeb /* MFP */
213*b4c3e9b5SBjoern A. Zeeb #define MFP_CAPABLE		0x0200
214*b4c3e9b5SBjoern A. Zeeb #define MFP_REQUIRED		0x0400
215*b4c3e9b5SBjoern A. Zeeb 
216*b4c3e9b5SBjoern A. Zeeb /* WPA authentication mode bitvec */
217*b4c3e9b5SBjoern A. Zeeb #define WPA_AUTH_DISABLED	0x0000	/* Legacy (i.e., non-WPA) */
218*b4c3e9b5SBjoern A. Zeeb #define WPA_AUTH_NONE		0x0001	/* none (IBSS) */
219*b4c3e9b5SBjoern A. Zeeb #define WPA_AUTH_UNSPECIFIED	0x0002	/* over 802.1x */
220*b4c3e9b5SBjoern A. Zeeb #define WPA_AUTH_PSK		0x0004	/* Pre-shared key */
221*b4c3e9b5SBjoern A. Zeeb #define WPA_AUTH_RESERVED1	0x0008
222*b4c3e9b5SBjoern A. Zeeb #define WPA_AUTH_RESERVED2	0x0010
223*b4c3e9b5SBjoern A. Zeeb 
224*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_RESERVED1	0x0020
225*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_UNSPECIFIED	0x0040	/* over 802.1x */
226*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_PSK		0x0080	/* Pre-shared key */
227*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_RESERVED3	0x0200
228*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_RESERVED4	0x0400
229*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_RESERVED5	0x0800
230*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_1X_SHA256	0x1000  /* 1X with SHA256 key derivation */
231*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_FT		0x4000	/* Fast BSS Transition */
232*b4c3e9b5SBjoern A. Zeeb #define WPA2_AUTH_PSK_SHA256	0x8000	/* PSK with SHA256 key derivation */
233*b4c3e9b5SBjoern A. Zeeb 
234*b4c3e9b5SBjoern A. Zeeb #define WPA3_AUTH_SAE_PSK	0x40000	/* SAE with 4-way handshake */
235*b4c3e9b5SBjoern A. Zeeb 
236*b4c3e9b5SBjoern A. Zeeb #define DOT11_DEFAULT_RTS_LEN		2347
237*b4c3e9b5SBjoern A. Zeeb #define DOT11_DEFAULT_FRAG_LEN		2346
238*b4c3e9b5SBjoern A. Zeeb 
239*b4c3e9b5SBjoern A. Zeeb #define DOT11_ICV_AES_LEN		8
240*b4c3e9b5SBjoern A. Zeeb #define DOT11_QOS_LEN			2
241*b4c3e9b5SBjoern A. Zeeb #define DOT11_IV_MAX_LEN		8
242*b4c3e9b5SBjoern A. Zeeb #define DOT11_A4_HDR_LEN		30
243*b4c3e9b5SBjoern A. Zeeb 
244*b4c3e9b5SBjoern A. Zeeb #define HT_CAP_RX_STBC_NO		0x0
245*b4c3e9b5SBjoern A. Zeeb #define HT_CAP_RX_STBC_ONE_STREAM	0x1
246*b4c3e9b5SBjoern A. Zeeb 
247*b4c3e9b5SBjoern A. Zeeb #endif				/* _BRCMU_WIFI_H_ */
248