1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The 802.11 subsystems – for kernel developers</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="next" href="cfg80211-developers-guide.html" title="The cfg80211 subsystem"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The 802.11 subsystems – for kernel developers</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="cfg80211-developers-guide.html">Next</a></td></tr></table><hr></div><div class="set" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id-1"></a>The 802.11 subsystems – for kernel developers</h1></div><div><h2 class="subtitle">
2      Explaining wireless 802.11 networking in the Linux kernel
3    </h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Berg</span></h3><div class="affiliation"><div class="address"><p><code class="email">&lt;<a class="email" href="mailto:johannes@sipsolutions.net">johannes@sipsolutions.net</a>&gt;</code></p></div></div></div></div></div><div><p class="copyright">Copyright © 2007-2009 Johannes Berg</p></div><div><div class="legalnotice"><a name="id-1.1.5"></a><p>
4        This documentation is free software; you can redistribute
5        it and/or modify it under the terms of the GNU General Public
6        License version 2 as published by the Free Software Foundation.
7      </p><p>
8        This documentation is distributed in the hope that it will be
9        useful, but WITHOUT ANY WARRANTY; without even the implied
10        warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11        See the GNU General Public License for more details.
12      </p><p>
13        You should have received a copy of the GNU General Public
14        License along with this documentation; if not, write to the Free
15        Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
16        MA 02111-1307 USA
17      </p><p>
18        For more details see the file COPYING in the source
19        distribution of Linux.
20      </p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>
21        These books attempt to give a description of the
22        various subsystems that play a role in 802.11 wireless
23        networking in Linux. Since these books are for kernel
24        developers they attempts to document the structures
25        and functions used in the kernel as well as giving a
26        higher-level overview.
27      </p><p>
28	The reader is expected to be familiar with the 802.11
29	standard as published by the IEEE in 802.11-2007 (or
30	possibly later versions). References to this standard
31	will be given as "802.11-2007 8.1.5".
32      </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="book"><a href="cfg80211-developers-guide.html">The cfg80211 subsystem</a></span></dt><dd><dl><dt><span class="chapter"><a href="bk01ch01.html">1. Device registration</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-enum-ieee80211-band.html"><span class="phrase">enum ieee80211_band</span></a></span><span class="refpurpose"> — 
33  supported frequency bands
34 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-channel-flags.html"><span class="phrase">enum ieee80211_channel_flags</span></a></span><span class="refpurpose"> — 
35  channel flags
36 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-channel.html"><span class="phrase">struct ieee80211_channel</span></a></span><span class="refpurpose"> — 
37  channel definition
38 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-rate-flags.html"><span class="phrase">enum ieee80211_rate_flags</span></a></span><span class="refpurpose"> — 
39  rate flags
40 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-rate.html"><span class="phrase">struct ieee80211_rate</span></a></span><span class="refpurpose"> — 
41  bitrate definition
42 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-sta-ht-cap.html"><span class="phrase">struct ieee80211_sta_ht_cap</span></a></span><span class="refpurpose"> — 
43  STA's HT capabilities
44 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-supported-band.html"><span class="phrase">struct ieee80211_supported_band</span></a></span><span class="refpurpose"> — 
45  frequency band definition
46 </span></dt><dt><span class="refentrytitle"><a href="API-enum-cfg80211-signal-type.html"><span class="phrase">enum cfg80211_signal_type</span></a></span><span class="refpurpose"> — 
47  signal type
48 </span></dt><dt><span class="refentrytitle"><a href="API-enum-wiphy-params-flags.html"><span class="phrase">enum wiphy_params_flags</span></a></span><span class="refpurpose"> — 
49  set_wiphy_params bitfield values
50 </span></dt><dt><span class="refentrytitle"><a href="API-enum-wiphy-flags.html"><span class="phrase">enum wiphy_flags</span></a></span><span class="refpurpose"> — 
51  wiphy capability flags
52 </span></dt><dt><span class="refentrytitle"><a href="API-struct-wiphy.html"><span class="phrase">struct wiphy</span></a></span><span class="refpurpose"> — 
53  wireless hardware description
54 </span></dt><dt><span class="refentrytitle"><a href="API-struct-wireless-dev.html"><span class="phrase">struct wireless_dev</span></a></span><span class="refpurpose"> — 
55  wireless device state
56 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-new.html"><span class="phrase">wiphy_new</span></a></span><span class="refpurpose"> — 
57  create a new wiphy for use with cfg80211
58 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-register.html"><span class="phrase">wiphy_register</span></a></span><span class="refpurpose"> — 
59  register a wiphy with cfg80211
60 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-unregister.html"><span class="phrase">wiphy_unregister</span></a></span><span class="refpurpose"> — 
61  deregister a wiphy from cfg80211
62 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-free.html"><span class="phrase">wiphy_free</span></a></span><span class="refpurpose"> — 
63  free wiphy
64 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-name.html"><span class="phrase">wiphy_name</span></a></span><span class="refpurpose"> — 
65  get wiphy name
66 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-dev.html"><span class="phrase">wiphy_dev</span></a></span><span class="refpurpose"> — 
67  get wiphy dev pointer
68 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-priv.html"><span class="phrase">wiphy_priv</span></a></span><span class="refpurpose"> — 
69  return priv from wiphy
70 </span></dt><dt><span class="refentrytitle"><a href="API-priv-to-wiphy.html"><span class="phrase">priv_to_wiphy</span></a></span><span class="refpurpose"> — 
71  return the wiphy containing the priv
72 </span></dt><dt><span class="refentrytitle"><a href="API-set-wiphy-dev.html"><span class="phrase">set_wiphy_dev</span></a></span><span class="refpurpose"> — 
73  set device pointer for wiphy
74 </span></dt><dt><span class="refentrytitle"><a href="API-wdev-priv.html"><span class="phrase">wdev_priv</span></a></span><span class="refpurpose"> — 
75  return wiphy priv from wireless_dev
76 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-iface-limit.html"><span class="phrase">struct ieee80211_iface_limit</span></a></span><span class="refpurpose"> — 
77  limit on certain interface types
78 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-iface-combination.html"><span class="phrase">struct ieee80211_iface_combination</span></a></span><span class="refpurpose"> — 
79  possible interface combination
80 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-check-combinations.html"><span class="phrase">cfg80211_check_combinations</span></a></span><span class="refpurpose"> — 
81  check interface combinations
82 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch02.html">2. Actions and configuration</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-cfg80211-ops.html"><span class="phrase">struct cfg80211_ops</span></a></span><span class="refpurpose"> — 
83  backend description for wireless configuration
84 </span></dt><dt><span class="refentrytitle"><a href="API-struct-vif-params.html"><span class="phrase">struct vif_params</span></a></span><span class="refpurpose"> — 
85  describes virtual interface parameters
86 </span></dt><dt><span class="refentrytitle"><a href="API-struct-key-params.html"><span class="phrase">struct key_params</span></a></span><span class="refpurpose"> — 
87  key information
88 </span></dt><dt><span class="refentrytitle"><a href="API-enum-survey-info-flags.html"><span class="phrase">enum survey_info_flags</span></a></span><span class="refpurpose"> — 
89  survey information flags
90 </span></dt><dt><span class="refentrytitle"><a href="API-struct-survey-info.html"><span class="phrase">struct survey_info</span></a></span><span class="refpurpose"> — 
91  channel survey response
92 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-beacon-data.html"><span class="phrase">struct cfg80211_beacon_data</span></a></span><span class="refpurpose"> — 
93  beacon data
94 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-ap-settings.html"><span class="phrase">struct cfg80211_ap_settings</span></a></span><span class="refpurpose"> — 
95  AP configuration
96 </span></dt><dt><span class="refentrytitle"><a href="API-struct-station-parameters.html"><span class="phrase">struct station_parameters</span></a></span><span class="refpurpose"> — 
97  station parameters
98 </span></dt><dt><span class="refentrytitle"><a href="API-enum-rate-info-flags.html"><span class="phrase">enum rate_info_flags</span></a></span><span class="refpurpose"> — 
99  bitrate info flags
100 </span></dt><dt><span class="refentrytitle"><a href="API-struct-rate-info.html"><span class="phrase">struct rate_info</span></a></span><span class="refpurpose"> — 
101  bitrate information
102 </span></dt><dt><span class="refentrytitle"><a href="API-struct-station-info.html"><span class="phrase">struct station_info</span></a></span><span class="refpurpose"> — 
103  station information
104 </span></dt><dt><span class="refentrytitle"><a href="API-enum-monitor-flags.html"><span class="phrase">enum monitor_flags</span></a></span><span class="refpurpose"> — 
105  monitor flags
106 </span></dt><dt><span class="refentrytitle"><a href="API-enum-mpath-info-flags.html"><span class="phrase">enum mpath_info_flags</span></a></span><span class="refpurpose"> — 
107  mesh path information flags
108 </span></dt><dt><span class="refentrytitle"><a href="API-struct-mpath-info.html"><span class="phrase">struct mpath_info</span></a></span><span class="refpurpose"> — 
109  mesh path information
110 </span></dt><dt><span class="refentrytitle"><a href="API-struct-bss-parameters.html"><span class="phrase">struct bss_parameters</span></a></span><span class="refpurpose"> — 
111  BSS parameters
112 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-txq-params.html"><span class="phrase">struct ieee80211_txq_params</span></a></span><span class="refpurpose"> — 
113  TX queue parameters
114 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-crypto-settings.html"><span class="phrase">struct cfg80211_crypto_settings</span></a></span><span class="refpurpose"> — 
115  Crypto settings
116 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-auth-request.html"><span class="phrase">struct cfg80211_auth_request</span></a></span><span class="refpurpose"> — 
117  Authentication request data
118 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-assoc-request.html"><span class="phrase">struct cfg80211_assoc_request</span></a></span><span class="refpurpose"> — 
119  (Re)Association request data
120 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-deauth-request.html"><span class="phrase">struct cfg80211_deauth_request</span></a></span><span class="refpurpose"> — 
121  Deauthentication request data
122 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-disassoc-request.html"><span class="phrase">struct cfg80211_disassoc_request</span></a></span><span class="refpurpose"> — 
123  Disassociation request data
124 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-ibss-params.html"><span class="phrase">struct cfg80211_ibss_params</span></a></span><span class="refpurpose"> — 
125  IBSS parameters
126 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-connect-params.html"><span class="phrase">struct cfg80211_connect_params</span></a></span><span class="refpurpose"> — 
127  Connection parameters
128 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-pmksa.html"><span class="phrase">struct cfg80211_pmksa</span></a></span><span class="refpurpose"> — 
129  PMK Security Association
130 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-rx-mlme-mgmt.html"><span class="phrase">cfg80211_rx_mlme_mgmt</span></a></span><span class="refpurpose"> — 
131  notification of processed MLME management frame
132 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-auth-timeout.html"><span class="phrase">cfg80211_auth_timeout</span></a></span><span class="refpurpose"> — 
133  notification of timed out authentication
134 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-rx-assoc-resp.html"><span class="phrase">cfg80211_rx_assoc_resp</span></a></span><span class="refpurpose"> — 
135  notification of processed association response
136 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-assoc-timeout.html"><span class="phrase">cfg80211_assoc_timeout</span></a></span><span class="refpurpose"> — 
137  notification of timed out association
138 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-tx-mlme-mgmt.html"><span class="phrase">cfg80211_tx_mlme_mgmt</span></a></span><span class="refpurpose"> — 
139  notification of transmitted deauth/disassoc frame
140 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-ibss-joined.html"><span class="phrase">cfg80211_ibss_joined</span></a></span><span class="refpurpose"> — 
141  notify cfg80211 that device joined an IBSS
142 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-connect-result.html"><span class="phrase">cfg80211_connect_result</span></a></span><span class="refpurpose"> — 
143  notify cfg80211 of connection result
144 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-roamed.html"><span class="phrase">cfg80211_roamed</span></a></span><span class="refpurpose"> — 
145  notify cfg80211 of roaming
146 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-disconnected.html"><span class="phrase">cfg80211_disconnected</span></a></span><span class="refpurpose"> — 
147  notify cfg80211 that connection was dropped
148 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-ready-on-channel.html"><span class="phrase">cfg80211_ready_on_channel</span></a></span><span class="refpurpose"> — 
149  notification of remain_on_channel start
150 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-remain-on-channel-expired.html"><span class="phrase">cfg80211_remain_on_channel_expired</span></a></span><span class="refpurpose"> — 
151  remain_on_channel duration expired
152 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-new-sta.html"><span class="phrase">cfg80211_new_sta</span></a></span><span class="refpurpose"> — 
153  notify userspace about station
154 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-rx-mgmt.html"><span class="phrase">cfg80211_rx_mgmt</span></a></span><span class="refpurpose"> — 
155  notification of received, unprocessed management frame
156 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-mgmt-tx-status.html"><span class="phrase">cfg80211_mgmt_tx_status</span></a></span><span class="refpurpose"> — 
157  notification of TX status for management frame
158 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-cqm-rssi-notify.html"><span class="phrase">cfg80211_cqm_rssi_notify</span></a></span><span class="refpurpose"> — 
159  connection quality monitoring rssi event
160 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-cqm-pktloss-notify.html"><span class="phrase">cfg80211_cqm_pktloss_notify</span></a></span><span class="refpurpose"> — 
161  notify userspace about packetloss to peer
162 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-michael-mic-failure.html"><span class="phrase">cfg80211_michael_mic_failure</span></a></span><span class="refpurpose"> — 
163  notification of Michael MIC failure (TKIP)
164 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch03.html">3. Scanning and BSS list handling</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-cfg80211-ssid.html"><span class="phrase">struct cfg80211_ssid</span></a></span><span class="refpurpose"> — 
165  SSID description
166 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-scan-request.html"><span class="phrase">struct cfg80211_scan_request</span></a></span><span class="refpurpose"> — 
167  scan request description
168 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-scan-done.html"><span class="phrase">cfg80211_scan_done</span></a></span><span class="refpurpose"> — 
169  notify that scan finished
170 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-bss.html"><span class="phrase">struct cfg80211_bss</span></a></span><span class="refpurpose"> — 
171  BSS description
172 </span></dt><dt><span class="refentrytitle"><a href="API-struct-cfg80211-inform-bss.html"><span class="phrase">struct cfg80211_inform_bss</span></a></span><span class="refpurpose"> — 
173  BSS inform data
174 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-inform-bss-frame-data.html"><span class="phrase">cfg80211_inform_bss_frame_data</span></a></span><span class="refpurpose"> — 
175  inform cfg80211 of a received BSS frame
176 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-inform-bss-data.html"><span class="phrase">cfg80211_inform_bss_data</span></a></span><span class="refpurpose"> — 
177  inform cfg80211 of a new BSS
178 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-unlink-bss.html"><span class="phrase">cfg80211_unlink_bss</span></a></span><span class="refpurpose"> — 
179  unlink BSS from internal data structures
180 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-find-ie.html"><span class="phrase">cfg80211_find_ie</span></a></span><span class="refpurpose"> — 
181  find information element in data
182 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-bss-get-ie.html"><span class="phrase">ieee80211_bss_get_ie</span></a></span><span class="refpurpose"> — 
183  find IE with given ID
184 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch04.html">4. Utility functions</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-channel-to-frequency.html"><span class="phrase">ieee80211_channel_to_frequency</span></a></span><span class="refpurpose"> — 
185  convert channel number to frequency
186 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-frequency-to-channel.html"><span class="phrase">ieee80211_frequency_to_channel</span></a></span><span class="refpurpose"> — 
187  convert frequency to channel number
188 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-channel.html"><span class="phrase">ieee80211_get_channel</span></a></span><span class="refpurpose"> — 
189  get channel struct from wiphy for specified frequency
190 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-response-rate.html"><span class="phrase">ieee80211_get_response_rate</span></a></span><span class="refpurpose"> — 
191  get basic rate for a given rate
192 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-hdrlen.html"><span class="phrase">ieee80211_hdrlen</span></a></span><span class="refpurpose"> — 
193  get header length in bytes from frame control
194 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-hdrlen-from-skb.html"><span class="phrase">ieee80211_get_hdrlen_from_skb</span></a></span><span class="refpurpose"> — 
195  get header length from data
196 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-radiotap-iterator.html"><span class="phrase">struct ieee80211_radiotap_iterator</span></a></span><span class="refpurpose"> — 
197  tracks walk thru present radiotap args
198 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch05.html">5. Data path helpers</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-data-to-8023.html"><span class="phrase">ieee80211_data_to_8023</span></a></span><span class="refpurpose"> — 
199  convert an 802.11 data frame to 802.3
200 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-data-from-8023.html"><span class="phrase">ieee80211_data_from_8023</span></a></span><span class="refpurpose"> — 
201  convert an 802.3 frame to 802.11
202 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-amsdu-to-8023s.html"><span class="phrase">ieee80211_amsdu_to_8023s</span></a></span><span class="refpurpose"> — 
203  decode an IEEE 802.11n A-MSDU frame
204 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-classify8021d.html"><span class="phrase">cfg80211_classify8021d</span></a></span><span class="refpurpose"> — 
205  determine the 802.1p/1d tag for a data frame
206 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch06.html">6. Regulatory enforcement infrastructure</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-regulatory-hint.html"><span class="phrase">regulatory_hint</span></a></span><span class="refpurpose"> — 
207  driver hint to the wireless core a regulatory domain
208 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-apply-custom-regulatory.html"><span class="phrase">wiphy_apply_custom_regulatory</span></a></span><span class="refpurpose"> — 
209  apply a custom driver regulatory domain
210 </span></dt><dt><span class="refentrytitle"><a href="API-freq-reg-info.html"><span class="phrase">freq_reg_info</span></a></span><span class="refpurpose"> — 
211  get regulatory information for the given frequency
212 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch07.html">7. RFkill integration</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-wiphy-rfkill-set-hw-state.html"><span class="phrase">wiphy_rfkill_set_hw_state</span></a></span><span class="refpurpose"> — 
213  notify cfg80211 about hw block state
214 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-rfkill-start-polling.html"><span class="phrase">wiphy_rfkill_start_polling</span></a></span><span class="refpurpose"> — 
215  start polling rfkill
216 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-rfkill-stop-polling.html"><span class="phrase">wiphy_rfkill_stop_polling</span></a></span><span class="refpurpose"> — 
217  stop polling rfkill
218 </span></dt></dl></dd><dt><span class="chapter"><a href="bk01ch08.html">8. Test mode</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-cfg80211-testmode-alloc-reply-skb.html"><span class="phrase">cfg80211_testmode_alloc_reply_skb</span></a></span><span class="refpurpose"> — 
219  allocate testmode reply
220 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-testmode-reply.html"><span class="phrase">cfg80211_testmode_reply</span></a></span><span class="refpurpose"> — 
221  send the reply skb
222 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-testmode-alloc-event-skb.html"><span class="phrase">cfg80211_testmode_alloc_event_skb</span></a></span><span class="refpurpose"> — 
223  allocate testmode event
224 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-testmode-event.html"><span class="phrase">cfg80211_testmode_event</span></a></span><span class="refpurpose"> — 
225  send the event
226 </span></dt></dl></dd></dl></dd><dt><span class="book"><a href="mac80211-developers-guide.html">The mac80211 subsystem</a></span></dt><dd><dl><dt><span class="part"><a href="bk02pt01.html">I. The basic mac80211 driver interface</a></span></dt><dd><dl><dt><span class="chapter"><a href="basics.html">1. Basic hardware handling</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-hw.html"><span class="phrase">struct ieee80211_hw</span></a></span><span class="refpurpose"> — 
227  hardware information and state
228 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-hw-flags.html"><span class="phrase">enum ieee80211_hw_flags</span></a></span><span class="refpurpose"> — 
229  hardware flags
230 </span></dt><dt><span class="refentrytitle"><a href="API-SET-IEEE80211-DEV.html"><span class="phrase">SET_IEEE80211_DEV</span></a></span><span class="refpurpose"> — 
231  set device for 802.11 hardware
232 </span></dt><dt><span class="refentrytitle"><a href="API-SET-IEEE80211-PERM-ADDR.html"><span class="phrase">SET_IEEE80211_PERM_ADDR</span></a></span><span class="refpurpose"> — 
233  set the permanent MAC address for 802.11 hardware
234 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-ops.html"><span class="phrase">struct ieee80211_ops</span></a></span><span class="refpurpose"> — 
235  callbacks from mac80211 to the driver
236 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-alloc-hw.html"><span class="phrase">ieee80211_alloc_hw</span></a></span><span class="refpurpose"> — 
237  Allocate a new hardware device
238 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-register-hw.html"><span class="phrase">ieee80211_register_hw</span></a></span><span class="refpurpose"> — 
239  Register hardware device
240 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-unregister-hw.html"><span class="phrase">ieee80211_unregister_hw</span></a></span><span class="refpurpose"> — 
241  Unregister a hardware device
242 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-free-hw.html"><span class="phrase">ieee80211_free_hw</span></a></span><span class="refpurpose"> — 
243  free hardware descriptor
244 </span></dt></dl></dd><dt><span class="chapter"><a href="phy-handling.html">2. PHY configuration</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-conf.html"><span class="phrase">struct ieee80211_conf</span></a></span><span class="refpurpose"> — 
245  configuration of the device
246 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-conf-flags.html"><span class="phrase">enum ieee80211_conf_flags</span></a></span><span class="refpurpose"> — 
247  configuration flags
248 </span></dt></dl></dd><dt><span class="chapter"><a href="iface-handling.html">3. Virtual interfaces</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-vif.html"><span class="phrase">struct ieee80211_vif</span></a></span><span class="refpurpose"> — 
249  per-interface data
250 </span></dt></dl></dd><dt><span class="chapter"><a href="rx-tx.html">4. Receive and transmit processing</a></span></dt><dd><dl><dt><span class="sect1"><a href="rx-tx.html#id-1.3.3.6.2">what should be here</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s02.html">Frame format</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s03.html">Packet alignment</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s04.html">Calling into mac80211 from interrupts</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s05.html">functions/definitions</a></span></dt></dl></dd><dt><span class="chapter"><a href="filters.html">5. Frame filtering</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-enum-ieee80211-filter-flags.html"><span class="phrase">enum ieee80211_filter_flags</span></a></span><span class="refpurpose"> — 
251  hardware filter flags
252 </span></dt></dl></dd><dt><span class="chapter"><a href="workqueue.html">6. The mac80211 workqueue</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-queue-work.html"><span class="phrase">ieee80211_queue_work</span></a></span><span class="refpurpose"> — 
253  add work onto the mac80211 workqueue
254 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-queue-delayed-work.html"><span class="phrase">ieee80211_queue_delayed_work</span></a></span><span class="refpurpose"> — 
255  add work onto the mac80211 workqueue
256 </span></dt></dl></dd></dl></dd><dt><span class="part"><a href="advanced.html">II. Advanced driver interface</a></span></dt><dd><dl><dt><span class="chapter"><a href="led-support.html">7. LED support</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-get-tx-led-name.html"><span class="phrase">ieee80211_get_tx_led_name</span></a></span><span class="refpurpose"> — 
257  get name of TX LED
258 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-rx-led-name.html"><span class="phrase">ieee80211_get_rx_led_name</span></a></span><span class="refpurpose"> — 
259  get name of RX LED
260 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-assoc-led-name.html"><span class="phrase">ieee80211_get_assoc_led_name</span></a></span><span class="refpurpose"> — 
261  get name of association LED
262 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-radio-led-name.html"><span class="phrase">ieee80211_get_radio_led_name</span></a></span><span class="refpurpose"> — 
263  get name of radio LED
264 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-tpt-blink.html"><span class="phrase">struct ieee80211_tpt_blink</span></a></span><span class="refpurpose"> — 
265  throughput blink description
266 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-tpt-led-trigger-flags.html"><span class="phrase">enum ieee80211_tpt_led_trigger_flags</span></a></span><span class="refpurpose"> — 
267  throughput trigger flags
268 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-create-tpt-led-trigger.html"><span class="phrase">ieee80211_create_tpt_led_trigger</span></a></span><span class="refpurpose"> — 
269  create throughput LED trigger
270 </span></dt></dl></dd><dt><span class="chapter"><a href="hardware-crypto-offload.html">8. Hardware crypto acceleration</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-enum-set-key-cmd.html"><span class="phrase">enum set_key_cmd</span></a></span><span class="refpurpose"> — 
271  key command
272 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-key-conf.html"><span class="phrase">struct ieee80211_key_conf</span></a></span><span class="refpurpose"> — 
273  key information
274 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-key-flags.html"><span class="phrase">enum ieee80211_key_flags</span></a></span><span class="refpurpose"> — 
275  key flags
276 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-tkip-p1k.html"><span class="phrase">ieee80211_get_tkip_p1k</span></a></span><span class="refpurpose"> — 
277  get a TKIP phase 1 key
278 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-tkip-p1k-iv.html"><span class="phrase">ieee80211_get_tkip_p1k_iv</span></a></span><span class="refpurpose"> — 
279  get a TKIP phase 1 key for IV32
280 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-get-tkip-p2k.html"><span class="phrase">ieee80211_get_tkip_p2k</span></a></span><span class="refpurpose"> — 
281  get a TKIP phase 2 key
282 </span></dt></dl></dd><dt><span class="chapter"><a href="powersave.html">9. Powersave support</a></span></dt><dt><span class="chapter"><a href="beacon-filter.html">10. Beacon filter support</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-beacon-loss.html"><span class="phrase">ieee80211_beacon_loss</span></a></span><span class="refpurpose"> — 
283  inform hardware does not receive beacons
284 </span></dt></dl></dd><dt><span class="chapter"><a href="qos.html">11. Multiple queues and QoS support</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-tx-queue-params.html"><span class="phrase">struct ieee80211_tx_queue_params</span></a></span><span class="refpurpose"> — 
285  transmit queue configuration
286 </span></dt></dl></dd><dt><span class="chapter"><a href="AP.html">12. Access point mode support</a></span></dt><dd><dl><dt><span class="section"><a href="AP.html#ps-client">support for powersaving clients</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-get-buffered-bc.html"><span class="phrase">ieee80211_get_buffered_bc</span></a></span><span class="refpurpose"> — 
287  accessing buffered broadcast and multicast frames
288 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-beacon-get.html"><span class="phrase">ieee80211_beacon_get</span></a></span><span class="refpurpose"> — 
289  beacon generation function
290 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-sta-eosp.html"><span class="phrase">ieee80211_sta_eosp</span></a></span><span class="refpurpose"> — 
291  notify mac80211 about end of SP
292 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-frame-release-type.html"><span class="phrase">enum ieee80211_frame_release_type</span></a></span><span class="refpurpose"> — 
293  frame release reason
294 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-sta-ps-transition.html"><span class="phrase">ieee80211_sta_ps_transition</span></a></span><span class="refpurpose"> — 
295  PS transition for connected sta
296 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-sta-ps-transition-ni.html"><span class="phrase">ieee80211_sta_ps_transition_ni</span></a></span><span class="refpurpose"> — 
297  PS transition for connected sta (in process context)
298 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-sta-set-buffered.html"><span class="phrase">ieee80211_sta_set_buffered</span></a></span><span class="refpurpose"> — 
299  inform mac80211 about driver-buffered frames
300 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-sta-block-awake.html"><span class="phrase">ieee80211_sta_block_awake</span></a></span><span class="refpurpose"> — 
301  block station from waking up
302 </span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="multi-iface.html">13. Supporting multiple virtual interfaces</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-iterate-active-interfaces.html"><span class="phrase">ieee80211_iterate_active_interfaces</span></a></span><span class="refpurpose"> — 
303  iterate active interfaces
304 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-iterate-active-interfaces-atomic.html"><span class="phrase">ieee80211_iterate_active_interfaces_atomic</span></a></span><span class="refpurpose"> — 
305  iterate active interfaces
306 </span></dt></dl></dd><dt><span class="chapter"><a href="station-handling.html">14. Station handling</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-sta.html"><span class="phrase">struct ieee80211_sta</span></a></span><span class="refpurpose"> — 
307  station table entry
308 </span></dt><dt><span class="refentrytitle"><a href="API-enum-sta-notify-cmd.html"><span class="phrase">enum sta_notify_cmd</span></a></span><span class="refpurpose"> — 
309  sta notify command
310 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-find-sta.html"><span class="phrase">ieee80211_find_sta</span></a></span><span class="refpurpose"> — 
311  find a station
312 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-find-sta-by-ifaddr.html"><span class="phrase">ieee80211_find_sta_by_ifaddr</span></a></span><span class="refpurpose"> — 
313  find a station on hardware
314 </span></dt></dl></dd><dt><span class="chapter"><a href="hardware-scan-offload.html">15. Hardware scan offload</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-scan-completed.html"><span class="phrase">ieee80211_scan_completed</span></a></span><span class="refpurpose"> — 
315  completed hardware scan
316 </span></dt></dl></dd><dt><span class="chapter"><a href="aggregation.html">16. Aggregation</a></span></dt><dd><dl><dt><span class="sect1"><a href="aggregation.html#id-1.3.4.12.2">TX A-MPDU aggregation</a></span></dt><dt><span class="sect1"><a href="bk02pt02ch16s02.html">RX A-MPDU aggregation</a></span></dt></dl></dd><dt><span class="chapter"><a href="smps.html">17. Spatial Multiplexing Powersave (SMPS)</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-request-smps.html"><span class="phrase">ieee80211_request_smps</span></a></span><span class="refpurpose"> — 
317  request SM PS transition
318 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-smps-mode.html"><span class="phrase">enum ieee80211_smps_mode</span></a></span><span class="refpurpose"> — 
319  spatial multiplexing power save mode
320 </span></dt></dl></dd></dl></dd><dt><span class="part"><a href="rate-control.html">III. Rate control interface</a></span></dt><dd><dl><dt><span class="chapter"><a href="ratecontrol-api.html">18. Rate Control API</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-start-tx-ba-session.html"><span class="phrase">ieee80211_start_tx_ba_session</span></a></span><span class="refpurpose"> — 
321  Start a tx Block Ack session.
322 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-start-tx-ba-cb-irqsafe.html"><span class="phrase">ieee80211_start_tx_ba_cb_irqsafe</span></a></span><span class="refpurpose"> — 
323  low level driver ready to aggregate.
324 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-stop-tx-ba-session.html"><span class="phrase">ieee80211_stop_tx_ba_session</span></a></span><span class="refpurpose"> — 
325  Stop a Block Ack session.
326 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-stop-tx-ba-cb-irqsafe.html"><span class="phrase">ieee80211_stop_tx_ba_cb_irqsafe</span></a></span><span class="refpurpose"> — 
327  low level driver ready to stop aggregate.
328 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-rate-control-changed.html"><span class="phrase">enum ieee80211_rate_control_changed</span></a></span><span class="refpurpose"> — 
329  flags to indicate what changed
330 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-tx-rate-control.html"><span class="phrase">struct ieee80211_tx_rate_control</span></a></span><span class="refpurpose"> — 
331  rate control information for/from RC algo
332 </span></dt><dt><span class="refentrytitle"><a href="API-rate-control-send-low.html"><span class="phrase">rate_control_send_low</span></a></span><span class="refpurpose"> — 
333  helper for drivers for management/no-ack frames
334 </span></dt></dl></dd></dl></dd><dt><span class="part"><a href="internal.html">IV. Internals</a></span></dt><dd><dl><dt><span class="chapter"><a href="key-handling.html">19. Key handling</a></span></dt><dd><dl><dt><span class="sect1"><a href="key-handling.html#id-1.3.6.3.2">Key handling basics</a></span></dt><dt><span class="sect1"><a href="bk02pt04ch19s02.html">MORE TBD</a></span></dt></dl></dd><dt><span class="chapter"><a href="rx-processing.html">20. Receive processing</a></span></dt><dt><span class="chapter"><a href="tx-processing.html">21. Transmit processing</a></span></dt><dt><span class="chapter"><a href="sta-info.html">22. Station info handling</a></span></dt><dd><dl><dt><span class="sect1"><a href="sta-info.html#id-1.3.6.6.2">Programming information</a></span></dt><dt><span class="sect1"><a href="bk02pt04ch22s02.html">STA information lifetime rules</a></span></dt></dl></dd><dt><span class="chapter"><a href="aggregation-internals.html">23. Aggregation</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-sta-ampdu-mlme.html"><span class="phrase">struct sta_ampdu_mlme</span></a></span><span class="refpurpose"> — 
335  STA aggregation information.
336 </span></dt><dt><span class="refentrytitle"><a href="API-struct-tid-ampdu-tx.html"><span class="phrase">struct tid_ampdu_tx</span></a></span><span class="refpurpose"> — 
337  TID aggregation information (Tx).
338 </span></dt><dt><span class="refentrytitle"><a href="API-struct-tid-ampdu-rx.html"><span class="phrase">struct tid_ampdu_rx</span></a></span><span class="refpurpose"> — 
339  TID aggregation information (Rx).
340 </span></dt></dl></dd><dt><span class="chapter"><a href="synchronisation.html">24. Synchronisation</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="cfg80211-developers-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> The cfg80211 subsystem</td></tr></table></div></body></html>
341