Main Page | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

p80211mgmt.h

Go to the documentation of this file.
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             __WLAN_ATTRIB_PACK__;
00249         UINT8   len             __WLAN_ATTRIB_PACK__;
00250 } __WLAN_ATTRIB_PACK__ wlan_ie_t;
00251 
00252 /*-- Service Set Identity (SSID)  -----------------*/
00253 typedef struct wlan_ie_ssid
00254 {
00255         UINT8   eid             __WLAN_ATTRIB_PACK__;
00256         UINT8   len             __WLAN_ATTRIB_PACK__;
00257         UINT8   ssid[1]         __WLAN_ATTRIB_PACK__;  /* 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             __WLAN_ATTRIB_PACK__;
00264         UINT8   len             __WLAN_ATTRIB_PACK__;
00265         UINT8   rates[1]        __WLAN_ATTRIB_PACK__;  /* 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             __WLAN_ATTRIB_PACK__;
00272         UINT8   len             __WLAN_ATTRIB_PACK__;
00273         UINT16  dwell           __WLAN_ATTRIB_PACK__;
00274         UINT8   hopset          __WLAN_ATTRIB_PACK__;
00275         UINT8   hoppattern      __WLAN_ATTRIB_PACK__;
00276         UINT8   hopindex        __WLAN_ATTRIB_PACK__;
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             __WLAN_ATTRIB_PACK__;
00283         UINT8   len             __WLAN_ATTRIB_PACK__;
00284         UINT8   curr_ch         __WLAN_ATTRIB_PACK__;
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             __WLAN_ATTRIB_PACK__;
00292         UINT8   len             __WLAN_ATTRIB_PACK__;
00293         UINT8   cfp_cnt         __WLAN_ATTRIB_PACK__;
00294         UINT8   cfp_period      __WLAN_ATTRIB_PACK__;
00295         UINT16  cfp_maxdur      __WLAN_ATTRIB_PACK__;
00296         UINT16  cfp_durremaining        __WLAN_ATTRIB_PACK__;
00297 } __WLAN_ATTRIB_PACK__ wlan_ie_cf_parms_t;
00298 
00299 /*-- TIM ------------------------------------------*/
00300 typedef struct wlan_ie_tim
00301 {
00302         UINT8   eid             __WLAN_ATTRIB_PACK__;
00303         UINT8   len             __WLAN_ATTRIB_PACK__;
00304         UINT8   dtim_cnt        __WLAN_ATTRIB_PACK__;
00305         UINT8   dtim_period     __WLAN_ATTRIB_PACK__;
00306         UINT8   bitmap_ctl      __WLAN_ATTRIB_PACK__;
00307         UINT8   virt_bm[1]      __WLAN_ATTRIB_PACK__;
00308 } __WLAN_ATTRIB_PACK__ wlan_ie_tim_t;
00309 
00310 /*-- IBSS Parameter Set ---------------------------*/
00311 typedef struct wlan_ie_ibss_parms
00312 {
00313         UINT8   eid             __WLAN_ATTRIB_PACK__;
00314         UINT8   len             __WLAN_ATTRIB_PACK__;
00315         UINT16  atim_win        __WLAN_ATTRIB_PACK__;
00316 } __WLAN_ATTRIB_PACK__ wlan_ie_ibss_parms_t;
00317 
00318 /*-- Challenge Text  ------------------------------*/
00319 typedef struct wlan_ie_challenge
00320 {
00321         UINT8   eid             __WLAN_ATTRIB_PACK__;
00322         UINT8   len             __WLAN_ATTRIB_PACK__;
00323         UINT8   challenge[1]    __WLAN_ATTRIB_PACK__;
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 */

Generated on Fri Feb 25 12:02:37 2005 for WifiScanner by  doxygen 1.4.1