home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / wlan / p80211mgmt.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  17.4 KB  |  576 lines

  1. /* src/include/wlan/p80211mgmt.h
  2. *
  3. * Macros, types, and functions to handle 802.11 mgmt frames
  4. *
  5. * Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
  6. * --------------------------------------------------------------------
  7. *
  8. * linux-wlan
  9. *
  10. *   The contents of this file are subject to the Mozilla Public
  11. *   License Version 1.1 (the "License"); you may not use this file
  12. *   except in compliance with the License. You may obtain a copy of
  13. *   the License at http://www.mozilla.org/MPL/
  14. *
  15. *   Software distributed under the License is distributed on an "AS
  16. *   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  17. *   implied. See the License for the specific language governing
  18. *   rights and limitations under the License.
  19. *
  20. *   Alternatively, the contents of this file may be used under the
  21. *   terms of the GNU Public License version 2 (the "GPL"), in which
  22. *   case the provisions of the GPL are applicable instead of the
  23. *   above.  If you wish to allow the use of your version of this file
  24. *   only under the terms of the GPL and not to allow others to use
  25. *   your version of this file under the MPL, indicate your decision
  26. *   by deleting the provisions above and replace them with the notice
  27. *   and other provisions required by the GPL.  If you do not delete
  28. *   the provisions above, a recipient may use your version of this
  29. *   file under either the MPL or the GPL.
  30. *
  31. * --------------------------------------------------------------------
  32. *
  33. * Inquiries regarding the linux-wlan Open Source project can be
  34. * made directly to:
  35. *
  36. * AbsoluteValue Systems Inc.
  37. * info@linux-wlan.com
  38. * http://www.linux-wlan.com
  39. *
  40. * --------------------------------------------------------------------
  41. *
  42. * Portions of the development of this software were funded by 
  43. * Intersil Corporation as part of PRISM(R) chipset product development.
  44. *
  45. * --------------------------------------------------------------------
  46. *
  47. * This file declares the constants and types used in the interface
  48. * between a wlan driver and the user mode utilities.
  49. *
  50. * Notes: 
  51. *  - Constant values are always in HOST byte order.  To assign
  52. *    values to multi-byte fields they _must_ be converted to
  53. *    ieee byte order.  To retrieve multi-byte values from incoming
  54. *    frames, they must be converted to host order.
  55. *
  56. *  - The len member of the frame structure does NOT!!! include
  57. *    the MAC CRC.  Therefore, the len field on rx'd frames should
  58. *    have 4 subtracted from it.
  59. *
  60. * All functions declared here are implemented in p80211.c
  61. *
  62. * The types, macros, and functions defined here are primarily
  63. * used for encoding and decoding management frames.  They are
  64. * designed to follow these patterns of use:
  65. *
  66. * DECODE:
  67. * 1) a frame of length len is received into buffer b
  68. * 2) using the hdr structure and macros, we determine the type
  69. * 3) an appropriate mgmt frame structure, mf, is allocated and zeroed
  70. * 4) mf.hdr = b
  71. *    mf.buf = b
  72. *    mf.len = len
  73. * 5) call mgmt_decode( mf )
  74. * 6) the frame field pointers in mf are now set.  Note that any 
  75. *    multi-byte frame field values accessed using the frame field 
  76. *    pointers are in ieee byte order and will have to be converted
  77. *    to host order.
  78. *
  79. * ENCODE:
  80. * 1) Library client allocates buffer space for maximum length
  81. *    frame of the desired type
  82. * 2) Library client allocates a mgmt frame structure, called mf, 
  83. *    of the desired type
  84. * 3) Set the following:
  85. *    mf.type = <desired type>
  86. *    mf.buf = <allocated buffer address>
  87. * 4) call mgmt_encode( mf )
  88. * 5) all of the fixed field pointers and fixed length information element
  89. *    pointers in mf are now set to their respective locations in the 
  90. *    allocated space (fortunately, all variable length information elements
  91. *    fall at the end of their respective frames).
  92. * 5a) The length field is set to include the last of the fixed and fixed
  93. *     length fields.  It may have to be updated for optional or variable 
  94. *     length information elements.
  95. * 6) Optional and variable length information elements are special cases 
  96. *    and must be handled individually by the client code.
  97. * --------------------------------------------------------------------
  98. */
  99.  
  100. #ifndef _P80211MGMT_H
  101. #define _P80211MGMT_H
  102.  
  103. /*================================================================*/
  104. /* System Includes */
  105.  
  106. /*================================================================*/
  107. /* Project Includes */
  108.  
  109. #ifndef  _WLAN_COMPAT_H
  110. #include <wlan_compat.h>
  111. #endif
  112.  
  113. #ifndef  _P80211HDR_H
  114. #include <p80211hdr.h>
  115. #endif
  116.  
  117.  
  118. /*================================================================*/
  119. /* Constants */
  120.  
  121. /*-- Information Element IDs --------------------*/
  122. #define WLAN_EID_SSID        0
  123. #define WLAN_EID_SUPP_RATES    1
  124. #define WLAN_EID_FH_PARMS    2
  125. #define WLAN_EID_DS_PARMS    3
  126. #define WLAN_EID_CF_PARMS    4
  127. #define WLAN_EID_TIM        5
  128. #define WLAN_EID_IBSS_PARMS    6
  129. /*-- values 7-15 reserved --*/
  130. #define WLAN_EID_CHALLENGE    16
  131. /*-- values 17-31 reserved for challenge text extension --*/
  132. /*-- values 32-255 reserved --*/
  133.  
  134. /*-- Reason Codes -------------------------------*/
  135. #define WLAN_MGMT_REASON_RSVD            0    
  136. #define WLAN_MGMT_REASON_UNSPEC            1
  137. #define WLAN_MGMT_REASON_PRIOR_AUTH_INVALID    2
  138. #define WLAN_MGMT_REASON_DEAUTH_LEAVING        3
  139. #define WLAN_MGMT_REASON_DISASSOC_INACTIVE    4
  140. #define WLAN_MGMT_REASON_DISASSOC_AP_BUSY    5
  141. #define WLAN_MGMT_REASON_CLASS2_NONAUTH        6
  142. #define WLAN_MGMT_REASON_CLASS3_NONASSOC    7
  143. #define WLAN_MGMT_REASON_DISASSOC_STA_HASLEFT    8
  144. #define WLAN_MGMT_REASON_CANT_ASSOC_NONAUTH    9
  145.  
  146. /*-- Status Codes -------------------------------*/
  147. #define WLAN_MGMT_STATUS_SUCCESS        0
  148. #define WLAN_MGMT_STATUS_UNSPEC_FAILURE        1
  149. #define WLAN_MGMT_STATUS_CAPS_UNSUPPORTED    10
  150. #define WLAN_MGMT_STATUS_REASSOC_NO_ASSOC    11
  151. #define WLAN_MGMT_STATUS_ASSOC_DENIED_UNSPEC    12
  152. #define WLAN_MGMT_STATUS_UNSUPPORTED_AUTHALG    13
  153. #define WLAN_MGMT_STATUS_RX_AUTH_NOSEQ        14
  154. #define WLAN_MGMT_STATUS_CHALLENGE_FAIL        15
  155. #define WLAN_MGMT_STATUS_AUTH_TIMEOUT        16
  156. #define WLAN_MGMT_STATUS_ASSOC_DENIED_BUSY    17
  157. #define WLAN_MGMT_STATUS_ASSOC_DENIED_RATES    18
  158.   /* p80211b additions */
  159. #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOSHORT    19
  160. #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOPBCC    20
  161. #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOAGILITY    21
  162.  
  163.  
  164.  
  165. /*-- Auth Algorithm Field ---------------------------*/
  166. #define WLAN_AUTH_ALG_OPENSYSTEM        0
  167. #define WLAN_AUTH_ALG_SHAREDKEY            1
  168.  
  169. /*-- Management Frame Field Offsets -------------*/
  170. /* Note: Not all fields are listed because of variable lengths,   */
  171. /*       see the code in p80211.c to see how we search for fields */
  172. /* Note: These offsets are from the start of the frame data       */
  173.  
  174. #define WLAN_BEACON_OFF_TS            0
  175. #define WLAN_BEACON_OFF_BCN_INT            8
  176. #define WLAN_BEACON_OFF_CAPINFO            10
  177. #define WLAN_BEACON_OFF_SSID            12
  178.  
  179. #define WLAN_DISASSOC_OFF_REASON        0
  180.  
  181. #define WLAN_ASSOCREQ_OFF_CAP_INFO        0
  182. #define WLAN_ASSOCREQ_OFF_LISTEN_INT        2
  183. #define WLAN_ASSOCREQ_OFF_SSID            4
  184.  
  185. #define WLAN_ASSOCRESP_OFF_CAP_INFO        0
  186. #define WLAN_ASSOCRESP_OFF_STATUS        2
  187. #define WLAN_ASSOCRESP_OFF_AID            4
  188. #define WLAN_ASSOCRESP_OFF_SUPP_RATES        6
  189.  
  190. #define WLAN_REASSOCREQ_OFF_CAP_INFO        0
  191. #define WLAN_REASSOCREQ_OFF_LISTEN_INT        2
  192. #define WLAN_REASSOCREQ_OFF_CURR_AP        4
  193. #define WLAN_REASSOCREQ_OFF_SSID        10
  194.  
  195. #define WLAN_REASSOCRESP_OFF_CAP_INFO        0
  196. #define WLAN_REASSOCRESP_OFF_STATUS        2
  197. #define WLAN_REASSOCRESP_OFF_AID        4
  198. #define WLAN_REASSOCRESP_OFF_SUPP_RATES        6
  199.  
  200. #define WLAN_PROBEREQ_OFF_SSID            0
  201.  
  202. #define WLAN_PROBERESP_OFF_TS            0
  203. #define WLAN_PROBERESP_OFF_BCN_INT        8
  204. #define WLAN_PROBERESP_OFF_CAP_INFO        10
  205. #define WLAN_PROBERESP_OFF_SSID            12
  206.  
  207. #define WLAN_AUTHEN_OFF_AUTH_ALG        0
  208. #define WLAN_AUTHEN_OFF_AUTH_SEQ        2
  209. #define WLAN_AUTHEN_OFF_STATUS            4
  210. #define WLAN_AUTHEN_OFF_CHALLENGE        6
  211.  
  212. #define WLAN_DEAUTHEN_OFF_REASON        0
  213.  
  214.  
  215. /*================================================================*/
  216. /* Macros */
  217.  
  218. /*-- Capability Field ---------------------------*/
  219. #define WLAN_GET_MGMT_CAP_INFO_ESS(n)        ((n) & BIT0)
  220. #define WLAN_GET_MGMT_CAP_INFO_IBSS(n)        (((n) & BIT1) >> 1)
  221. #define WLAN_GET_MGMT_CAP_INFO_CFPOLLABLE(n)    (((n) & BIT2) >> 2)
  222. #define WLAN_GET_MGMT_CAP_INFO_CFPOLLREQ(n)    (((n) & BIT3) >> 3)
  223. #define WLAN_GET_MGMT_CAP_INFO_PRIVACY(n)    (((n) & BIT4) >> 4)
  224.   /* p80211b additions */
  225. #define WLAN_GET_MGMT_CAP_INFO_SHORT(n)        (((n) & BIT5) >> 5)
  226. #define WLAN_GET_MGMT_CAP_INFO_PBCC(n)        (((n) & BIT6) >> 6)
  227. #define WLAN_GET_MGMT_CAP_INFO_AGILITY(n)    (((n) & BIT7) >> 7)
  228.  
  229. #define WLAN_SET_MGMT_CAP_INFO_ESS(n)        (n)
  230. #define WLAN_SET_MGMT_CAP_INFO_IBSS(n)        ((n) << 1)
  231. #define WLAN_SET_MGMT_CAP_INFO_CFPOLLABLE(n)    ((n) << 2)
  232. #define WLAN_SET_MGMT_CAP_INFO_CFPOLLREQ(n)    ((n) << 3)
  233. #define WLAN_SET_MGMT_CAP_INFO_PRIVACY(n)    ((n) << 4)
  234.   /* p80211b additions */
  235. #define WLAN_SET_MGMT_CAP_INFO_SHORT(n)        ((n) << 5)
  236. #define WLAN_SET_MGMT_CAP_INFO_PBCC(n)        ((n) << 6)
  237. #define WLAN_SET_MGMT_CAP_INFO_AGILITY(n)    ((n) << 7)
  238.  
  239.  
  240. /*================================================================*/
  241. /* Types */
  242.  
  243. /*-- Information Element Types --------------------*/
  244. /* prototype structure, all IEs start with these members */
  245.  
  246. typedef struct wlan_ie
  247. {
  248.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  249.     UINT8    len        __WLAN_ATTRIB_PACK__;
  250. } __WLAN_ATTRIB_PACK__ wlan_ie_t;
  251.  
  252. /*-- Service Set Identity (SSID)  -----------------*/
  253. typedef struct wlan_ie_ssid
  254. {
  255.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  256.     UINT8    len        __WLAN_ATTRIB_PACK__;
  257.     UINT8    ssid[1]        __WLAN_ATTRIB_PACK__;  /* may be zero, ptrs may overlap */
  258. } __WLAN_ATTRIB_PACK__ wlan_ie_ssid_t;
  259.  
  260. /*-- Supported Rates  -----------------------------*/
  261. typedef struct wlan_ie_supp_rates
  262. {
  263.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  264.     UINT8    len        __WLAN_ATTRIB_PACK__;
  265.     UINT8    rates[1]    __WLAN_ATTRIB_PACK__;  /* had better be at LEAST one! */
  266. } __WLAN_ATTRIB_PACK__ wlan_ie_supp_rates_t;
  267.  
  268. /*-- FH Parameter Set  ----------------------------*/
  269. typedef struct wlan_ie_fh_parms
  270. {
  271.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  272.     UINT8    len        __WLAN_ATTRIB_PACK__;
  273.     UINT16    dwell        __WLAN_ATTRIB_PACK__;
  274.     UINT8    hopset        __WLAN_ATTRIB_PACK__;
  275.     UINT8    hoppattern    __WLAN_ATTRIB_PACK__;
  276.     UINT8    hopindex    __WLAN_ATTRIB_PACK__;
  277. } __WLAN_ATTRIB_PACK__ wlan_ie_fh_parms_t;
  278.  
  279. /*-- DS Parameter Set  ----------------------------*/
  280. typedef struct wlan_ie_ds_parms
  281. {
  282.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  283.     UINT8    len        __WLAN_ATTRIB_PACK__;
  284.     UINT8    curr_ch        __WLAN_ATTRIB_PACK__;
  285. } __WLAN_ATTRIB_PACK__ wlan_ie_ds_parms_t;
  286.  
  287. /*-- CF Parameter Set  ----------------------------*/
  288.  
  289. typedef struct wlan_ie_cf_parms
  290. {
  291.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  292.     UINT8    len        __WLAN_ATTRIB_PACK__;
  293.     UINT8    cfp_cnt        __WLAN_ATTRIB_PACK__;
  294.     UINT8    cfp_period    __WLAN_ATTRIB_PACK__;
  295.     UINT16    cfp_maxdur    __WLAN_ATTRIB_PACK__;
  296.     UINT16    cfp_durremaining    __WLAN_ATTRIB_PACK__;
  297. } __WLAN_ATTRIB_PACK__ wlan_ie_cf_parms_t;
  298.  
  299. /*-- TIM ------------------------------------------*/
  300. typedef struct wlan_ie_tim
  301. {
  302.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  303.     UINT8    len        __WLAN_ATTRIB_PACK__;
  304.     UINT8    dtim_cnt    __WLAN_ATTRIB_PACK__;
  305.     UINT8    dtim_period    __WLAN_ATTRIB_PACK__;
  306.     UINT8    bitmap_ctl    __WLAN_ATTRIB_PACK__;
  307.     UINT8    virt_bm[1]    __WLAN_ATTRIB_PACK__;
  308. } __WLAN_ATTRIB_PACK__ wlan_ie_tim_t;
  309.  
  310. /*-- IBSS Parameter Set ---------------------------*/
  311. typedef struct wlan_ie_ibss_parms
  312. {
  313.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  314.     UINT8    len        __WLAN_ATTRIB_PACK__;
  315.     UINT16    atim_win    __WLAN_ATTRIB_PACK__;
  316. } __WLAN_ATTRIB_PACK__ wlan_ie_ibss_parms_t;
  317.  
  318. /*-- Challenge Text  ------------------------------*/
  319. typedef struct wlan_ie_challenge
  320. {
  321.     UINT8    eid        __WLAN_ATTRIB_PACK__;
  322.     UINT8    len        __WLAN_ATTRIB_PACK__;
  323.     UINT8    challenge[1]    __WLAN_ATTRIB_PACK__;
  324. } __WLAN_ATTRIB_PACK__ wlan_ie_challenge_t;
  325.  
  326. /*-------------------------------------------------*/
  327. /*  Frame Types  */
  328.  
  329. /* prototype structure, all mgmt frame types will start with these members */
  330. typedef struct wlan_fr_mgmt
  331. {
  332.     UINT16            type;
  333.     UINT16            len;    /* DOES NOT include CRC !!!!*/
  334.     UINT8            *buf;
  335.     p80211_hdr_t        *hdr;
  336.     /* used for target specific data, skb in Linux */
  337.     void            *priv;    
  338.     /*-- fixed fields -----------*/
  339.     /*-- info elements ----------*/
  340. } wlan_fr_mgmt_t;
  341.  
  342. /*-- Beacon ---------------------------------------*/
  343. typedef struct wlan_fr_beacon
  344. {
  345.     UINT16            type;
  346.     UINT16            len;
  347.     UINT8            *buf;
  348.     p80211_hdr_t        *hdr;
  349.     /* used for target specific data, skb in Linux */
  350.     void            *priv;
  351.     /*-- fixed fields -----------*/
  352.     UINT64            *ts;
  353.     UINT16            *bcn_int;
  354.     UINT16            *cap_info;
  355.     /*-- info elements ----------*/
  356.     wlan_ie_ssid_t        *ssid;
  357.     wlan_ie_supp_rates_t    *supp_rates;
  358.     wlan_ie_fh_parms_t    *fh_parms;
  359.     wlan_ie_ds_parms_t    *ds_parms;
  360.     wlan_ie_cf_parms_t    *cf_parms;
  361.     wlan_ie_ibss_parms_t    *ibss_parms;
  362.     wlan_ie_tim_t        *tim;
  363.  
  364. } wlan_fr_beacon_t;
  365.  
  366.  
  367. /*-- IBSS ATIM ------------------------------------*/
  368. typedef struct wlan_fr_ibssatim
  369. {
  370.     UINT16            type;
  371.     UINT16            len;
  372.     UINT8*            buf;
  373.     p80211_hdr_t        *hdr;
  374.     /* used for target specific data, skb in Linux */    
  375.     void            *priv;
  376.  
  377.     /*-- fixed fields -----------*/
  378.     /*-- info elements ----------*/
  379.  
  380.     /* this frame type has a null body */
  381.  
  382. } wlan_fr_ibssatim_t;
  383.  
  384. /*-- Disassociation -------------------------------*/
  385. typedef struct wlan_fr_disassoc
  386. {
  387.     UINT16            type;
  388.     UINT16            len;
  389.     UINT8            *buf;
  390.     p80211_hdr_t        *hdr;
  391.     /* used for target specific data, skb in Linux */    
  392.     void            *priv;
  393.     /*-- fixed fields -----------*/
  394.     UINT16            *reason;
  395.  
  396.     /*-- info elements ----------*/
  397.  
  398. } wlan_fr_disassoc_t;
  399.  
  400. /*-- Association Request --------------------------*/
  401. typedef struct wlan_fr_assocreq
  402. {
  403.     UINT16            type;
  404.     UINT16            len;
  405.     UINT8*            buf;
  406.     p80211_hdr_t        *hdr;
  407.     /* used for target specific data, skb in Linux */    
  408.     void            *priv;
  409.     /*-- fixed fields -----------*/
  410.     UINT16            *cap_info;
  411.     UINT16            *listen_int;
  412.     /*-- info elements ----------*/
  413.     wlan_ie_ssid_t        *ssid;
  414.     wlan_ie_supp_rates_t    *supp_rates;
  415.  
  416. } wlan_fr_assocreq_t;
  417.  
  418. /*-- Association Response -------------------------*/
  419. typedef struct wlan_fr_assocresp
  420. {
  421.     UINT16            type;
  422.     UINT16            len;
  423.     UINT8            *buf;
  424.     p80211_hdr_t        *hdr;
  425.     /* used for target specific data, skb in Linux */
  426.     void            *priv;
  427.     /*-- fixed fields -----------*/
  428.     UINT16            *cap_info;
  429.     UINT16            *status;
  430.     UINT16            *aid;
  431.     /*-- info elements ----------*/
  432.     wlan_ie_supp_rates_t    *supp_rates;
  433.  
  434. } wlan_fr_assocresp_t;
  435.  
  436. /*-- Reassociation Request ------------------------*/
  437. typedef struct wlan_fr_reassocreq
  438. {
  439.     UINT16            type;
  440.     UINT16            len;
  441.     UINT8            *buf;
  442.     p80211_hdr_t        *hdr;
  443.     /* used for target specific data, skb in Linux */
  444.     void            *priv;
  445.     /*-- fixed fields -----------*/
  446.     UINT16            *cap_info;
  447.     UINT16            *listen_int;
  448.     UINT8            *curr_ap;
  449.     /*-- info elements ----------*/
  450.     wlan_ie_ssid_t        *ssid;
  451.     wlan_ie_supp_rates_t    *supp_rates;
  452.  
  453. } wlan_fr_reassocreq_t;
  454.  
  455. /*-- Reassociation Response -----------------------*/
  456. typedef struct wlan_fr_reassocresp
  457. {
  458.     UINT16            type;
  459.     UINT16            len;
  460.     UINT8            *buf;
  461.     p80211_hdr_t        *hdr;
  462.     /* used for target specific data, skb in Linux */
  463.     void            *priv;
  464.     /*-- fixed fields -----------*/
  465.     UINT16            *cap_info;
  466.     UINT16            *status;
  467.     UINT16            *aid;
  468.     /*-- info elements ----------*/
  469.     wlan_ie_supp_rates_t    *supp_rates;
  470.  
  471. } wlan_fr_reassocresp_t;
  472.  
  473. /*-- Probe Request --------------------------------*/
  474. typedef struct wlan_fr_probereq
  475. {
  476.     UINT16            type;
  477.     UINT16            len;
  478.     UINT8            *buf;
  479.     p80211_hdr_t        *hdr;
  480.     /* used for target specific data, skb in Linux */
  481.     void            *priv;
  482.     /*-- fixed fields -----------*/
  483.     /*-- info elements ----------*/
  484.     wlan_ie_ssid_t        *ssid;
  485.     wlan_ie_supp_rates_t    *supp_rates;
  486.  
  487. } wlan_fr_probereq_t;
  488.  
  489. /*-- Probe Response -------------------------------*/
  490. typedef struct wlan_fr_proberesp
  491. {
  492.     UINT16            type;
  493.     UINT16            len;
  494.     UINT8            *buf;
  495.     p80211_hdr_t        *hdr;
  496.     /* used for target specific data, skb in Linux */
  497.     void            *priv;
  498.     /*-- fixed fields -----------*/
  499.     UINT64            *ts;
  500.     UINT16            *bcn_int;
  501.     UINT16            *cap_info;
  502.     /*-- info elements ----------*/
  503.     wlan_ie_ssid_t        *ssid;
  504.     wlan_ie_supp_rates_t    *supp_rates;
  505.     wlan_ie_fh_parms_t    *fh_parms;
  506.     wlan_ie_ds_parms_t    *ds_parms;
  507.     wlan_ie_cf_parms_t    *cf_parms;
  508.     wlan_ie_ibss_parms_t    *ibss_parms;
  509. } wlan_fr_proberesp_t;
  510.  
  511. /*-- Authentication -------------------------------*/
  512. typedef struct wlan_fr_authen
  513. {
  514.     UINT16            type;
  515.     UINT16            len;
  516.     UINT8            *buf;
  517.     p80211_hdr_t        *hdr;
  518.     /* used for target specific data, skb in Linux */
  519.     void            *priv;
  520.     /*-- fixed fields -----------*/
  521.     UINT16            *auth_alg;
  522.     UINT16            *auth_seq;
  523.     UINT16            *status;
  524.     /*-- info elements ----------*/
  525.     wlan_ie_challenge_t    *challenge;
  526.  
  527. } wlan_fr_authen_t;
  528.  
  529. /*-- Deauthenication -----------------------------*/
  530. typedef struct wlan_fr_deauthen
  531. {
  532.     UINT16            type;
  533.     UINT16            len;
  534.     UINT8            *buf;
  535.     p80211_hdr_t        *hdr;
  536.     /* used for target specific data, skb in Linux */
  537.     void            *priv;
  538.     /*-- fixed fields -----------*/
  539.     UINT16            *reason;
  540.  
  541.     /*-- info elements ----------*/
  542.  
  543. } wlan_fr_deauthen_t;
  544.  
  545.  
  546. /*================================================================*/
  547. /* Extern Declarations */
  548.  
  549.  
  550. /*================================================================*/
  551. /* Function Declarations */
  552.  
  553. void wlan_mgmt_encode_beacon( wlan_fr_beacon_t  *f );
  554. void wlan_mgmt_decode_beacon( wlan_fr_beacon_t  *f );
  555. void wlan_mgmt_encode_disassoc( wlan_fr_disassoc_t  *f );
  556. void wlan_mgmt_decode_disassoc( wlan_fr_disassoc_t  *f );
  557. void wlan_mgmt_encode_assocreq( wlan_fr_assocreq_t  *f );
  558. void wlan_mgmt_decode_assocreq( wlan_fr_assocreq_t  *f );
  559. void wlan_mgmt_encode_assocresp( wlan_fr_assocresp_t  *f );
  560. void wlan_mgmt_decode_assocresp( wlan_fr_assocresp_t  *f );
  561. void wlan_mgmt_encode_reassocreq( wlan_fr_reassocreq_t  *f );
  562. void wlan_mgmt_decode_reassocreq( wlan_fr_reassocreq_t  *f );
  563. void wlan_mgmt_encode_reassocresp( wlan_fr_reassocresp_t  *f );
  564. void wlan_mgmt_decode_reassocresp( wlan_fr_reassocresp_t  *f );
  565. void wlan_mgmt_encode_probereq( wlan_fr_probereq_t  *f );
  566. void wlan_mgmt_decode_probereq( wlan_fr_probereq_t  *f );
  567. void wlan_mgmt_encode_proberesp( wlan_fr_proberesp_t  *f );
  568. void wlan_mgmt_decode_proberesp( wlan_fr_proberesp_t  *f );
  569. void wlan_mgmt_encode_authen( wlan_fr_authen_t  *f );
  570. void wlan_mgmt_decode_authen( wlan_fr_authen_t  *f );
  571. void wlan_mgmt_encode_deauthen( wlan_fr_deauthen_t  *f );
  572. void wlan_mgmt_decode_deauthen( wlan_fr_deauthen_t  *f );
  573.  
  574.  
  575. #endif /* _P80211MGMT_H */
  576.