00001 /* src/include/wlan/p80211mgmt.h 00002 * 00003 * Macros, types, and functions to handle 802.11 mgmt frames 00004 * 00005 * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. 00006 * -------------------------------------------------------------------- 00007 * 00008 * linux-wlan 00009 * 00010 * The contents of this file are subject to the Mozilla Public 00011 * License Version 1.1 (the "License"); you may not use this file 00012 * except in compliance with the License. You may obtain a copy of 00013 * the License at http://www.mozilla.org/MPL/ 00014 * 00015 * Software distributed under the License is distributed on an "AS 00016 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 00017 * implied. See the License for the specific language governing 00018 * rights and limitations under the License. 00019 * 00020 * Alternatively, the contents of this file may be used under the 00021 * terms of the GNU Public License version 2 (the "GPL"), in which 00022 * case the provisions of the GPL are applicable instead of the 00023 * above. If you wish to allow the use of your version of this file 00024 * only under the terms of the GPL and not to allow others to use 00025 * your version of this file under the MPL, indicate your decision 00026 * by deleting the provisions above and replace them with the notice 00027 * and other provisions required by the GPL. If you do not delete 00028 * the provisions above, a recipient may use your version of this 00029 * file under either the MPL or the GPL. 00030 * 00031 * -------------------------------------------------------------------- 00032 * 00033 * Inquiries regarding the linux-wlan Open Source project can be 00034 * made directly to: 00035 * 00036 * AbsoluteValue Systems Inc. 00037 * info@linux-wlan.com 00038 * http://www.linux-wlan.com 00039 * 00040 * -------------------------------------------------------------------- 00041 * 00042 * Portions of the development of this software were funded by 00043 * Intersil Corporation as part of PRISM(R) chipset product development. 00044 * 00045 * -------------------------------------------------------------------- 00046 * 00047 * This file declares the constants and types used in the interface 00048 * between a wlan driver and the user mode utilities. 00049 * 00050 * Notes: 00051 * - Constant values are always in HOST byte order. To assign 00052 * values to multi-byte fields they _must_ be converted to 00053 * ieee byte order. To retrieve multi-byte values from incoming 00054 * frames, they must be converted to host order. 00055 * 00056 * - The len member of the frame structure does NOT!!! include 00057 * the MAC CRC. Therefore, the len field on rx'd frames should 00058 * have 4 subtracted from it. 00059 * 00060 * All functions declared here are implemented in p80211.c 00061 * 00062 * The types, macros, and functions defined here are primarily 00063 * used for encoding and decoding management frames. They are 00064 * designed to follow these patterns of use: 00065 * 00066 * DECODE: 00067 * 1) a frame of length len is received into buffer b 00068 * 2) using the hdr structure and macros, we determine the type 00069 * 3) an appropriate mgmt frame structure, mf, is allocated and zeroed 00070 * 4) mf.hdr = b 00071 * mf.buf = b 00072 * mf.len = len 00073 * 5) call mgmt_decode( mf ) 00074 * 6) the frame field pointers in mf are now set. Note that any 00075 * multi-byte frame field values accessed using the frame field 00076 * pointers are in ieee byte order and will have to be converted 00077 * to host order. 00078 * 00079 * ENCODE: 00080 * 1) Library client allocates buffer space for maximum length 00081 * frame of the desired type 00082 * 2) Library client allocates a mgmt frame structure, called mf, 00083 * of the desired type 00084 * 3) Set the following: 00085 * mf.type = <desired type> 00086 * mf.buf = <allocated buffer address> 00087 * 4) call mgmt_encode( mf ) 00088 * 5) all of the fixed field pointers and fixed length information element 00089 * pointers in mf are now set to their respective locations in the 00090 * allocated space (fortunately, all variable length information elements 00091 * fall at the end of their respective frames). 00092 * 5a) The length field is set to include the last of the fixed and fixed 00093 * length fields. It may have to be updated for optional or variable 00094 * length information elements. 00095 * 6) Optional and variable length information elements are special cases 00096 * and must be handled individually by the client code. 00097 * -------------------------------------------------------------------- 00098 */ 00099 00100 #ifndef _P80211MGMT_H 00101 #define _P80211MGMT_H 00102 00103 /*================================================================*/ 00104 /* System Includes */ 00105 00106 /*================================================================*/ 00107 /* Project Includes */ 00108 00109 #ifndef _WLAN_COMPAT_H 00110 #include <wlan_compat.h> 00111 #endif 00112 00113 #ifndef _P80211HDR_H 00114 #include <p80211hdr.h> 00115 #endif 00116 00117 00118 /*================================================================*/ 00119 /* Constants */ 00120 00121 /*-- Information Element IDs --------------------*/ 00122 #define WLAN_EID_SSID 0 00123 #define WLAN_EID_SUPP_RATES 1 00124 #define WLAN_EID_FH_PARMS 2 00125 #define WLAN_EID_DS_PARMS 3 00126 #define WLAN_EID_CF_PARMS 4 00127 #define WLAN_EID_TIM 5 00128 #define WLAN_EID_IBSS_PARMS 6 00129 /*-- values 7-15 reserved --*/ 00130 #define WLAN_EID_CHALLENGE 16 00131 /*-- values 17-31 reserved for challenge text extension --*/ 00132 /*-- values 32-255 reserved --*/ 00133 00134 /*-- Reason Codes -------------------------------*/ 00135 #define WLAN_MGMT_REASON_RSVD 0 00136 #define WLAN_MGMT_REASON_UNSPEC 1 00137 #define WLAN_MGMT_REASON_PRIOR_AUTH_INVALID 2 00138 #define WLAN_MGMT_REASON_DEAUTH_LEAVING 3 00139 #define WLAN_MGMT_REASON_DISASSOC_INACTIVE 4 00140 #define WLAN_MGMT_REASON_DISASSOC_AP_BUSY 5 00141 #define WLAN_MGMT_REASON_CLASS2_NONAUTH 6 00142 #define WLAN_MGMT_REASON_CLASS3_NONASSOC 7 00143 #define WLAN_MGMT_REASON_DISASSOC_STA_HASLEFT 8 00144 #define WLAN_MGMT_REASON_CANT_ASSOC_NONAUTH 9 00145 00146 /*-- Status Codes -------------------------------*/ 00147 #define WLAN_MGMT_STATUS_SUCCESS 0 00148 #define WLAN_MGMT_STATUS_UNSPEC_FAILURE 1 00149 #define WLAN_MGMT_STATUS_CAPS_UNSUPPORTED 10 00150 #define WLAN_MGMT_STATUS_REASSOC_NO_ASSOC 11 00151 #define WLAN_MGMT_STATUS_ASSOC_DENIED_UNSPEC 12 00152 #define WLAN_MGMT_STATUS_UNSUPPORTED_AUTHALG 13 00153 #define WLAN_MGMT_STATUS_RX_AUTH_NOSEQ 14 00154 #define WLAN_MGMT_STATUS_CHALLENGE_FAIL 15 00155 #define WLAN_MGMT_STATUS_AUTH_TIMEOUT 16 00156 #define WLAN_MGMT_STATUS_ASSOC_DENIED_BUSY 17 00157 #define WLAN_MGMT_STATUS_ASSOC_DENIED_RATES 18 00158 /* p80211b additions */ 00159 #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOSHORT 19 00160 #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOPBCC 20 00161 #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOAGILITY 21 00162 00163 00164 00165 /*-- Auth Algorithm Field ---------------------------*/ 00166 #define WLAN_AUTH_ALG_OPENSYSTEM 0 00167 #define WLAN_AUTH_ALG_SHAREDKEY 1 00168 00169 /*-- Management Frame Field Offsets -------------*/ 00170 /* Note: Not all fields are listed because of variable lengths, */ 00171 /* see the code in p80211.c to see how we search for fields */ 00172 /* Note: These offsets are from the start of the frame data */ 00173 00174 #define WLAN_BEACON_OFF_TS 0 00175 #define WLAN_BEACON_OFF_BCN_INT 8 00176 #define WLAN_BEACON_OFF_CAPINFO 10 00177 #define WLAN_BEACON_OFF_SSID 12 00178 00179 #define WLAN_DISASSOC_OFF_REASON 0 00180 00181 #define WLAN_ASSOCREQ_OFF_CAP_INFO 0 00182 #define WLAN_ASSOCREQ_OFF_LISTEN_INT 2 00183 #define WLAN_ASSOCREQ_OFF_SSID 4 00184 00185 #define WLAN_ASSOCRESP_OFF_CAP_INFO 0 00186 #define WLAN_ASSOCRESP_OFF_STATUS 2 00187 #define WLAN_ASSOCRESP_OFF_AID 4 00188 #define WLAN_ASSOCRESP_OFF_SUPP_RATES 6 00189 00190 #define WLAN_REASSOCREQ_OFF_CAP_INFO 0 00191 #define WLAN_REASSOCREQ_OFF_LISTEN_INT 2 00192 #define WLAN_REASSOCREQ_OFF_CURR_AP 4 00193 #define WLAN_REASSOCREQ_OFF_SSID 10 00194 00195 #define WLAN_REASSOCRESP_OFF_CAP_INFO 0 00196 #define WLAN_REASSOCRESP_OFF_STATUS 2 00197 #define WLAN_REASSOCRESP_OFF_AID 4 00198 #define WLAN_REASSOCRESP_OFF_SUPP_RATES 6 00199 00200 #define WLAN_PROBEREQ_OFF_SSID 0 00201 00202 #define WLAN_PROBERESP_OFF_TS 0 00203 #define WLAN_PROBERESP_OFF_BCN_INT 8 00204 #define WLAN_PROBERESP_OFF_CAP_INFO 10 00205 #define WLAN_PROBERESP_OFF_SSID 12 00206 00207 #define WLAN_AUTHEN_OFF_AUTH_ALG 0 00208 #define WLAN_AUTHEN_OFF_AUTH_SEQ 2 00209 #define WLAN_AUTHEN_OFF_STATUS 4 00210 #define WLAN_AUTHEN_OFF_CHALLENGE 6 00211 00212 #define WLAN_DEAUTHEN_OFF_REASON 0 00213 00214 00215 /*================================================================*/ 00216 /* Macros */ 00217 00218 /*-- Capability Field ---------------------------*/ 00219 #define WLAN_GET_MGMT_CAP_INFO_ESS(n) ((n) & BIT0) 00220 #define WLAN_GET_MGMT_CAP_INFO_IBSS(n) (((n) & BIT1) >> 1) 00221 #define WLAN_GET_MGMT_CAP_INFO_CFPOLLABLE(n) (((n) & BIT2) >> 2) 00222 #define WLAN_GET_MGMT_CAP_INFO_CFPOLLREQ(n) (((n) & BIT3) >> 3) 00223 #define WLAN_GET_MGMT_CAP_INFO_PRIVACY(n) (((n) & BIT4) >> 4) 00224 /* p80211b additions */ 00225 #define WLAN_GET_MGMT_CAP_INFO_SHORT(n) (((n) & BIT5) >> 5) 00226 #define WLAN_GET_MGMT_CAP_INFO_PBCC(n) (((n) & BIT6) >> 6) 00227 #define WLAN_GET_MGMT_CAP_INFO_AGILITY(n) (((n) & BIT7) >> 7) 00228 00229 #define WLAN_SET_MGMT_CAP_INFO_ESS(n) (n) 00230 #define WLAN_SET_MGMT_CAP_INFO_IBSS(n) ((n) << 1) 00231 #define WLAN_SET_MGMT_CAP_INFO_CFPOLLABLE(n) ((n) << 2) 00232 #define WLAN_SET_MGMT_CAP_INFO_CFPOLLREQ(n) ((n) << 3) 00233 #define WLAN_SET_MGMT_CAP_INFO_PRIVACY(n) ((n) << 4) 00234 /* p80211b additions */ 00235 #define WLAN_SET_MGMT_CAP_INFO_SHORT(n) ((n) << 5) 00236 #define WLAN_SET_MGMT_CAP_INFO_PBCC(n) ((n) << 6) 00237 #define WLAN_SET_MGMT_CAP_INFO_AGILITY(n) ((n) << 7) 00238 00239 00240 /*================================================================*/ 00241 /* Types */ 00242 00243 /*-- Information Element Types --------------------*/ 00244 /* prototype structure, all IEs start with these members */ 00245 00246 typedef struct wlan_ie 00247 { 00248 UINT8 eid; 00249 UINT8 len; 00250 } __WLAN_ATTRIB_PACK__ wlan_ie_t; 00251 00252 /*-- Service Set Identity (SSID) -----------------*/ 00253 typedef struct wlan_ie_ssid 00254 { 00255 UINT8 eid; 00256 UINT8 len; 00257 UINT8 ssid[1]; /* may be zero, ptrs may overlap */ 00258 } __WLAN_ATTRIB_PACK__ wlan_ie_ssid_t; 00259 00260 /*-- Supported Rates -----------------------------*/ 00261 typedef struct wlan_ie_supp_rates 00262 { 00263 UINT8 eid; 00264 UINT8 len; 00265 UINT8 rates[1]; /* had better be at LEAST one! */ 00266 } __WLAN_ATTRIB_PACK__ wlan_ie_supp_rates_t; 00267 00268 /*-- FH Parameter Set ----------------------------*/ 00269 typedef struct wlan_ie_fh_parms 00270 { 00271 UINT8 eid; 00272 UINT8 len; 00273 UINT16 dwell; 00274 UINT8 hopset; 00275 UINT8 hoppattern; 00276 UINT8 hopindex; 00277 } __WLAN_ATTRIB_PACK__ wlan_ie_fh_parms_t; 00278 00279 /*-- DS Parameter Set ----------------------------*/ 00280 typedef struct wlan_ie_ds_parms 00281 { 00282 UINT8 eid; 00283 UINT8 len; 00284 UINT8 curr_ch; 00285 } __WLAN_ATTRIB_PACK__ wlan_ie_ds_parms_t; 00286 00287 /*-- CF Parameter Set ----------------------------*/ 00288 00289 typedef struct wlan_ie_cf_parms 00290 { 00291 UINT8 eid; 00292 UINT8 len; 00293 UINT8 cfp_cnt; 00294 UINT8 cfp_period; 00295 UINT16 cfp_maxdur; 00296 UINT16 cfp_durremaining; 00297 } __WLAN_ATTRIB_PACK__ wlan_ie_cf_parms_t; 00298 00299 /*-- TIM ------------------------------------------*/ 00300 typedef struct wlan_ie_tim 00301 { 00302 UINT8 eid; 00303 UINT8 len; 00304 UINT8 dtim_cnt; 00305 UINT8 dtim_period; 00306 UINT8 bitmap_ctl; 00307 UINT8 virt_bm[1]; 00308 } __WLAN_ATTRIB_PACK__ wlan_ie_tim_t; 00309 00310 /*-- IBSS Parameter Set ---------------------------*/ 00311 typedef struct wlan_ie_ibss_parms 00312 { 00313 UINT8 eid; 00314 UINT8 len; 00315 UINT16 atim_win; 00316 } __WLAN_ATTRIB_PACK__ wlan_ie_ibss_parms_t; 00317 00318 /*-- Challenge Text ------------------------------*/ 00319 typedef struct wlan_ie_challenge 00320 { 00321 UINT8 eid; 00322 UINT8 len; 00323 UINT8 challenge[1]; 00324 } __WLAN_ATTRIB_PACK__ wlan_ie_challenge_t; 00325 00326 /*-------------------------------------------------*/ 00327 /* Frame Types */ 00328 00329 /* prototype structure, all mgmt frame types will start with these members */ 00330 typedef struct wlan_fr_mgmt 00331 { 00332 UINT16 type; 00333 UINT16 len; /* DOES NOT include CRC !!!!*/ 00334 UINT8 *buf; 00335 p80211_hdr_t *hdr; 00336 /* used for target specific data, skb in Linux */ 00337 void *priv; 00338 /*-- fixed fields -----------*/ 00339 /*-- info elements ----------*/ 00340 } wlan_fr_mgmt_t; 00341 00342 /*-- Beacon ---------------------------------------*/ 00343 typedef struct wlan_fr_beacon 00344 { 00345 UINT16 type; 00346 UINT16 len; 00347 UINT8 *buf; 00348 p80211_hdr_t *hdr; 00349 /* used for target specific data, skb in Linux */ 00350 void *priv; 00351 /*-- fixed fields -----------*/ 00352 UINT64 *ts; 00353 UINT16 *bcn_int; 00354 UINT16 *cap_info; 00355 /*-- info elements ----------*/ 00356 wlan_ie_ssid_t *ssid; 00357 wlan_ie_supp_rates_t *supp_rates; 00358 wlan_ie_fh_parms_t *fh_parms; 00359 wlan_ie_ds_parms_t *ds_parms; 00360 wlan_ie_cf_parms_t *cf_parms; 00361 wlan_ie_ibss_parms_t *ibss_parms; 00362 wlan_ie_tim_t *tim; 00363 00364 } wlan_fr_beacon_t; 00365 00366 00367 /*-- IBSS ATIM ------------------------------------*/ 00368 typedef struct wlan_fr_ibssatim 00369 { 00370 UINT16 type; 00371 UINT16 len; 00372 UINT8* buf; 00373 p80211_hdr_t *hdr; 00374 /* used for target specific data, skb in Linux */ 00375 void *priv; 00376 00377 /*-- fixed fields -----------*/ 00378 /*-- info elements ----------*/ 00379 00380 /* this frame type has a null body */ 00381 00382 } wlan_fr_ibssatim_t; 00383 00384 /*-- Disassociation -------------------------------*/ 00385 typedef struct wlan_fr_disassoc 00386 { 00387 UINT16 type; 00388 UINT16 len; 00389 UINT8 *buf; 00390 p80211_hdr_t *hdr; 00391 /* used for target specific data, skb in Linux */ 00392 void *priv; 00393 /*-- fixed fields -----------*/ 00394 UINT16 *reason; 00395 00396 /*-- info elements ----------*/ 00397 00398 } wlan_fr_disassoc_t; 00399 00400 /*-- Association Request --------------------------*/ 00401 typedef struct wlan_fr_assocreq 00402 { 00403 UINT16 type; 00404 UINT16 len; 00405 UINT8* buf; 00406 p80211_hdr_t *hdr; 00407 /* used for target specific data, skb in Linux */ 00408 void *priv; 00409 /*-- fixed fields -----------*/ 00410 UINT16 *cap_info; 00411 UINT16 *listen_int; 00412 /*-- info elements ----------*/ 00413 wlan_ie_ssid_t *ssid; 00414 wlan_ie_supp_rates_t *supp_rates; 00415 00416 } wlan_fr_assocreq_t; 00417 00418 /*-- Association Response -------------------------*/ 00419 typedef struct wlan_fr_assocresp 00420 { 00421 UINT16 type; 00422 UINT16 len; 00423 UINT8 *buf; 00424 p80211_hdr_t *hdr; 00425 /* used for target specific data, skb in Linux */ 00426 void *priv; 00427 /*-- fixed fields -----------*/ 00428 UINT16 *cap_info; 00429 UINT16 *status; 00430 UINT16 *aid; 00431 /*-- info elements ----------*/ 00432 wlan_ie_supp_rates_t *supp_rates; 00433 00434 } wlan_fr_assocresp_t; 00435 00436 /*-- Reassociation Request ------------------------*/ 00437 typedef struct wlan_fr_reassocreq 00438 { 00439 UINT16 type; 00440 UINT16 len; 00441 UINT8 *buf; 00442 p80211_hdr_t *hdr; 00443 /* used for target specific data, skb in Linux */ 00444 void *priv; 00445 /*-- fixed fields -----------*/ 00446 UINT16 *cap_info; 00447 UINT16 *listen_int; 00448 UINT8 *curr_ap; 00449 /*-- info elements ----------*/ 00450 wlan_ie_ssid_t *ssid; 00451 wlan_ie_supp_rates_t *supp_rates; 00452 00453 } wlan_fr_reassocreq_t; 00454 00455 /*-- Reassociation Response -----------------------*/ 00456 typedef struct wlan_fr_reassocresp 00457 { 00458 UINT16 type; 00459 UINT16 len; 00460 UINT8 *buf; 00461 p80211_hdr_t *hdr; 00462 /* used for target specific data, skb in Linux */ 00463 void *priv; 00464 /*-- fixed fields -----------*/ 00465 UINT16 *cap_info; 00466 UINT16 *status; 00467 UINT16 *aid; 00468 /*-- info elements ----------*/ 00469 wlan_ie_supp_rates_t *supp_rates; 00470 00471 } wlan_fr_reassocresp_t; 00472 00473 /*-- Probe Request --------------------------------*/ 00474 typedef struct wlan_fr_probereq 00475 { 00476 UINT16 type; 00477 UINT16 len; 00478 UINT8 *buf; 00479 p80211_hdr_t *hdr; 00480 /* used for target specific data, skb in Linux */ 00481 void *priv; 00482 /*-- fixed fields -----------*/ 00483 /*-- info elements ----------*/ 00484 wlan_ie_ssid_t *ssid; 00485 wlan_ie_supp_rates_t *supp_rates; 00486 00487 } wlan_fr_probereq_t; 00488 00489 /*-- Probe Response -------------------------------*/ 00490 typedef struct wlan_fr_proberesp 00491 { 00492 UINT16 type; 00493 UINT16 len; 00494 UINT8 *buf; 00495 p80211_hdr_t *hdr; 00496 /* used for target specific data, skb in Linux */ 00497 void *priv; 00498 /*-- fixed fields -----------*/ 00499 UINT64 *ts; 00500 UINT16 *bcn_int; 00501 UINT16 *cap_info; 00502 /*-- info elements ----------*/ 00503 wlan_ie_ssid_t *ssid; 00504 wlan_ie_supp_rates_t *supp_rates; 00505 wlan_ie_fh_parms_t *fh_parms; 00506 wlan_ie_ds_parms_t *ds_parms; 00507 wlan_ie_cf_parms_t *cf_parms; 00508 wlan_ie_ibss_parms_t *ibss_parms; 00509 } wlan_fr_proberesp_t; 00510 00511 /*-- Authentication -------------------------------*/ 00512 typedef struct wlan_fr_authen 00513 { 00514 UINT16 type; 00515 UINT16 len; 00516 UINT8 *buf; 00517 p80211_hdr_t *hdr; 00518 /* used for target specific data, skb in Linux */ 00519 void *priv; 00520 /*-- fixed fields -----------*/ 00521 UINT16 *auth_alg; 00522 UINT16 *auth_seq; 00523 UINT16 *status; 00524 /*-- info elements ----------*/ 00525 wlan_ie_challenge_t *challenge; 00526 00527 } wlan_fr_authen_t; 00528 00529 /*-- Deauthenication -----------------------------*/ 00530 typedef struct wlan_fr_deauthen 00531 { 00532 UINT16 type; 00533 UINT16 len; 00534 UINT8 *buf; 00535 p80211_hdr_t *hdr; 00536 /* used for target specific data, skb in Linux */ 00537 void *priv; 00538 /*-- fixed fields -----------*/ 00539 UINT16 *reason; 00540 00541 /*-- info elements ----------*/ 00542 00543 } wlan_fr_deauthen_t; 00544 00545 00546 /*================================================================*/ 00547 /* Extern Declarations */ 00548 00549 00550 /*================================================================*/ 00551 /* Function Declarations */ 00552 00553 void wlan_mgmt_encode_beacon( wlan_fr_beacon_t *f ); 00554 void wlan_mgmt_decode_beacon( wlan_fr_beacon_t *f ); 00555 void wlan_mgmt_encode_disassoc( wlan_fr_disassoc_t *f ); 00556 void wlan_mgmt_decode_disassoc( wlan_fr_disassoc_t *f ); 00557 void wlan_mgmt_encode_assocreq( wlan_fr_assocreq_t *f ); 00558 void wlan_mgmt_decode_assocreq( wlan_fr_assocreq_t *f ); 00559 void wlan_mgmt_encode_assocresp( wlan_fr_assocresp_t *f ); 00560 void wlan_mgmt_decode_assocresp( wlan_fr_assocresp_t *f ); 00561 void wlan_mgmt_encode_reassocreq( wlan_fr_reassocreq_t *f ); 00562 void wlan_mgmt_decode_reassocreq( wlan_fr_reassocreq_t *f ); 00563 void wlan_mgmt_encode_reassocresp( wlan_fr_reassocresp_t *f ); 00564 void wlan_mgmt_decode_reassocresp( wlan_fr_reassocresp_t *f ); 00565 void wlan_mgmt_encode_probereq( wlan_fr_probereq_t *f ); 00566 void wlan_mgmt_decode_probereq( wlan_fr_probereq_t *f ); 00567 void wlan_mgmt_encode_proberesp( wlan_fr_proberesp_t *f ); 00568 void wlan_mgmt_decode_proberesp( wlan_fr_proberesp_t *f ); 00569 void wlan_mgmt_encode_authen( wlan_fr_authen_t *f ); 00570 void wlan_mgmt_decode_authen( wlan_fr_authen_t *f ); 00571 void wlan_mgmt_encode_deauthen( wlan_fr_deauthen_t *f ); 00572 void wlan_mgmt_decode_deauthen( wlan_fr_deauthen_t *f ); 00573 00574 00575 #endif /* _P80211MGMT_H */