2 * This header file contains definition for global types
7 #include <linux/if_ether.h>
8 #include <asm/byteorder.h>
10 /** IEEE type definitions */
11 enum ieeetypes_elementid {
23 EXTENDED_SUPPORTED_RATES = 50,
25 VENDOR_SPECIFIC_221 = 221,
31 } __attribute__ ((packed));
33 #define CAPINFO_MASK (~(0x00da))
35 struct ieeetypes_cfparamset {
40 __le16 cfpmaxduration;
41 __le16 cfpdurationremaining;
42 } __attribute__ ((packed));
45 struct ieeetypes_ibssparamset {
49 } __attribute__ ((packed));
51 union IEEEtypes_ssparamset {
52 struct ieeetypes_cfparamset cfparamset;
53 struct ieeetypes_ibssparamset ibssparamset;
54 } __attribute__ ((packed));
56 struct ieeetypes_fhparamset {
63 } __attribute__ ((packed));
65 struct ieeetypes_dsparamset {
69 } __attribute__ ((packed));
71 union ieeetypes_phyparamset {
72 struct ieeetypes_fhparamset fhparamset;
73 struct ieeetypes_dsparamset dsparamset;
74 } __attribute__ ((packed));
76 struct ieeetypes_assocrsp {
81 } __attribute__ ((packed));
83 /** TLV type ID definition */
84 #define PROPRIETARY_TLV_BASE_ID 0x0100
86 /* Terminating TLV type */
87 #define MRVL_TERMINATE_TLV_ID 0xffff
89 #define TLV_TYPE_SSID 0x0000
90 #define TLV_TYPE_RATES 0x0001
91 #define TLV_TYPE_PHY_FH 0x0002
92 #define TLV_TYPE_PHY_DS 0x0003
93 #define TLV_TYPE_CF 0x0004
94 #define TLV_TYPE_IBSS 0x0006
96 #define TLV_TYPE_DOMAIN 0x0007
98 #define TLV_TYPE_POWER_CAPABILITY 0x0021
100 #define TLV_TYPE_KEY_MATERIAL (PROPRIETARY_TLV_BASE_ID + 0)
101 #define TLV_TYPE_CHANLIST (PROPRIETARY_TLV_BASE_ID + 1)
102 #define TLV_TYPE_NUMPROBES (PROPRIETARY_TLV_BASE_ID + 2)
103 #define TLV_TYPE_RSSI_LOW (PROPRIETARY_TLV_BASE_ID + 4)
104 #define TLV_TYPE_SNR_LOW (PROPRIETARY_TLV_BASE_ID + 5)
105 #define TLV_TYPE_FAILCOUNT (PROPRIETARY_TLV_BASE_ID + 6)
106 #define TLV_TYPE_BCNMISS (PROPRIETARY_TLV_BASE_ID + 7)
107 #define TLV_TYPE_LED_GPIO (PROPRIETARY_TLV_BASE_ID + 8)
108 #define TLV_TYPE_LEDBEHAVIOR (PROPRIETARY_TLV_BASE_ID + 9)
109 #define TLV_TYPE_PASSTHROUGH (PROPRIETARY_TLV_BASE_ID + 10)
110 #define TLV_TYPE_REASSOCAP (PROPRIETARY_TLV_BASE_ID + 11)
111 #define TLV_TYPE_POWER_TBL_2_4GHZ (PROPRIETARY_TLV_BASE_ID + 12)
112 #define TLV_TYPE_POWER_TBL_5GHZ (PROPRIETARY_TLV_BASE_ID + 13)
113 #define TLV_TYPE_BCASTPROBE (PROPRIETARY_TLV_BASE_ID + 14)
114 #define TLV_TYPE_NUMSSID_PROBE (PROPRIETARY_TLV_BASE_ID + 15)
115 #define TLV_TYPE_WMMQSTATUS (PROPRIETARY_TLV_BASE_ID + 16)
116 #define TLV_TYPE_CRYPTO_DATA (PROPRIETARY_TLV_BASE_ID + 17)
117 #define TLV_TYPE_WILDCARDSSID (PROPRIETARY_TLV_BASE_ID + 18)
118 #define TLV_TYPE_TSFTIMESTAMP (PROPRIETARY_TLV_BASE_ID + 19)
119 #define TLV_TYPE_RSSI_HIGH (PROPRIETARY_TLV_BASE_ID + 22)
120 #define TLV_TYPE_SNR_HIGH (PROPRIETARY_TLV_BASE_ID + 23)
122 /** TLV related data structures*/
123 struct mrvlietypesheader {
126 } __attribute__ ((packed));
128 struct mrvlietypes_data {
129 struct mrvlietypesheader header;
131 } __attribute__ ((packed));
133 struct mrvlietypes_ratesparamset {
134 struct mrvlietypesheader header;
136 } __attribute__ ((packed));
138 struct mrvlietypes_ssidparamset {
139 struct mrvlietypesheader header;
141 } __attribute__ ((packed));
143 struct mrvlietypes_wildcardssidparamset {
144 struct mrvlietypesheader header;
147 } __attribute__ ((packed));
149 struct chanscanmode {
150 #ifdef __BIG_ENDIAN_BITFIELD
152 u8 disablechanfilt:1;
156 u8 disablechanfilt:1;
159 } __attribute__ ((packed));
161 struct chanscanparamset {
164 struct chanscanmode chanscanmode;
167 } __attribute__ ((packed));
169 struct mrvlietypes_chanlistparamset {
170 struct mrvlietypesheader header;
171 struct chanscanparamset chanscanparam[1];
172 } __attribute__ ((packed));
177 __le16 cfpmaxduration;
178 __le16 cfpdurationremaining;
179 } __attribute__ ((packed));
181 struct ibssparamset {
183 } __attribute__ ((packed));
185 struct mrvlietypes_ssparamset {
186 struct mrvlietypesheader header;
188 struct cfparamset cfparamset[1];
189 struct ibssparamset ibssparamset[1];
191 } __attribute__ ((packed));
198 } __attribute__ ((packed));
202 } __attribute__ ((packed));
204 struct mrvlietypes_phyparamset {
205 struct mrvlietypesheader header;
207 struct fhparamset fhparamset[1];
208 struct dsparamset dsparamset[1];
210 } __attribute__ ((packed));
212 struct mrvlietypes_rsnparamset {
213 struct mrvlietypesheader header;
215 } __attribute__ ((packed));
217 struct mrvlietypes_tsftimestamp {
218 struct mrvlietypesheader header;
220 } __attribute__ ((packed));
222 /** Local Power capability */
223 struct mrvlietypes_powercapability {
224 struct mrvlietypesheader header;
227 } __attribute__ ((packed));
229 struct mrvlietypes_rssithreshold {
230 struct mrvlietypesheader header;
233 } __attribute__ ((packed));
235 struct mrvlietypes_snrthreshold {
236 struct mrvlietypesheader header;
239 } __attribute__ ((packed));
241 struct mrvlietypes_failurecount {
242 struct mrvlietypesheader header;
245 } __attribute__ ((packed));
247 struct mrvlietypes_beaconsmissed {
248 struct mrvlietypesheader header;
251 } __attribute__ ((packed));
253 struct mrvlietypes_numprobes {
254 struct mrvlietypesheader header;
256 } __attribute__ ((packed));
258 struct mrvlietypes_bcastprobe {
259 struct mrvlietypesheader header;
261 } __attribute__ ((packed));
263 struct mrvlietypes_numssidprobe {
264 struct mrvlietypesheader header;
266 } __attribute__ ((packed));
271 } __attribute__ ((packed));
273 struct mrvlietypes_ledgpio {
274 struct mrvlietypesheader header;
275 struct led_pin ledpin[1];
276 } __attribute__ ((packed));
278 #endif /* _WLAN_TYPES_ */