1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>The 802.11 subsystems &#8211; 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 &#8211; 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 &#8211; for kernel developers</th></tr><tr><td width="20%" align="left">&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<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="idp1109174004"></a>The 802.11 subsystems &#8211; 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 &#169; 2007-2009 Johannes Berg</p></div><div><div class="legalnotice"><a name="idp1111562972"></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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
171  BSS description
172 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-inform-bss-width-frame.html"><span class="phrase">cfg80211_inform_bss_width_frame</span></a></span><span class="refpurpose"> &#8212; 
173  inform cfg80211 of a received BSS frame
174 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-inform-bss-width.html"><span class="phrase">cfg80211_inform_bss_width</span></a></span><span class="refpurpose"> &#8212; 
175  inform cfg80211 of a new BSS
176 </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"> &#8212; 
177  unlink BSS from internal data structures
178 </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"> &#8212; 
179  find information element in data
180 </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"> &#8212; 
181  find IE with given ID
182 </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"> &#8212; 
183  convert channel number to frequency
184 </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"> &#8212; 
185  convert frequency to channel number
186 </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"> &#8212; 
187  get channel struct from wiphy for specified frequency
188 </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"> &#8212; 
189  get basic rate for a given rate
190 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-hdrlen.html"><span class="phrase">ieee80211_hdrlen</span></a></span><span class="refpurpose"> &#8212; 
191  get header length in bytes from frame control
192 </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"> &#8212; 
193  get header length from data
194 </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"> &#8212; 
195  tracks walk thru present radiotap args
196 </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"> &#8212; 
197  convert an 802.11 data frame to 802.3
198 </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"> &#8212; 
199  convert an 802.3 frame to 802.11
200 </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"> &#8212; 
201  decode an IEEE 802.11n A-MSDU frame
202 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-classify8021d.html"><span class="phrase">cfg80211_classify8021d</span></a></span><span class="refpurpose"> &#8212; 
203  determine the 802.1p/1d tag for a data frame
204 </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"> &#8212; 
205  driver hint to the wireless core a regulatory domain
206 </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"> &#8212; 
207  apply a custom driver regulatory domain
208 </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"> &#8212; 
209  get regulatory information for the given frequency
210 </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"> &#8212; 
211  notify cfg80211 about hw block state
212 </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"> &#8212; 
213  start polling rfkill
214 </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"> &#8212; 
215  stop polling rfkill
216 </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"> &#8212; 
217  allocate testmode reply
218 </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"> &#8212; 
219  send the reply skb
220 </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"> &#8212; 
221  allocate testmode event
222 </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"> &#8212; 
223  send the event
224 </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"> &#8212; 
225  hardware information and state
226 </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"> &#8212; 
227  hardware flags
228 </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"> &#8212; 
229  set device for 802.11 hardware
230 </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"> &#8212; 
231  set the permanent MAC address for 802.11 hardware
232 </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"> &#8212; 
233  callbacks from mac80211 to the driver
234 </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"> &#8212; 
235  Allocate a new hardware device
236 </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"> &#8212; 
237  Register hardware device
238 </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"> &#8212; 
239  Unregister a hardware device
240 </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"> &#8212; 
241  free hardware descriptor
242 </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"> &#8212; 
243  configuration of the device
244 </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"> &#8212; 
245  configuration flags
246 </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"> &#8212; 
247  per-interface data
248 </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#idp1113573900">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"> &#8212; 
249  hardware filter flags
250 </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"> &#8212; 
251  add work onto the mac80211 workqueue
252 </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"> &#8212; 
253  add work onto the mac80211 workqueue
254 </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"> &#8212; 
255  get name of TX LED
256 </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"> &#8212; 
257  get name of RX LED
258 </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"> &#8212; 
259  get name of association LED
260 </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"> &#8212; 
261  get name of radio LED
262 </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"> &#8212; 
263  throughput blink description
264 </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"> &#8212; 
265  throughput trigger flags
266 </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"> &#8212; 
267  create throughput LED trigger
268 </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"> &#8212; 
269  key command
270 </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"> &#8212; 
271  key information
272 </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"> &#8212; 
273  key flags
274 </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"> &#8212; 
275  get a TKIP phase 1 key
276 </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"> &#8212; 
277  get a TKIP phase 1 key for IV32
278 </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"> &#8212; 
279  get a TKIP phase 2 key
280 </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"> &#8212; 
281  inform hardware does not receive beacons
282 </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"> &#8212; 
283  transmit queue configuration
284 </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"> &#8212; 
285  accessing buffered broadcast and multicast frames
286 </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"> &#8212; 
287  beacon generation function
288 </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"> &#8212; 
289  notify mac80211 about end of SP
290 </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"> &#8212; 
291  frame release reason
292 </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"> &#8212; 
293  PS transition for connected sta
294 </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"> &#8212; 
295  PS transition for connected sta (in process context)
296 </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"> &#8212; 
297  inform mac80211 about driver-buffered frames
298 </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"> &#8212; 
299  block station from waking up
300 </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"> &#8212; 
301  iterate active interfaces
302 </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"> &#8212; 
303  iterate active interfaces
304 </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"> &#8212; 
305  station table entry
306 </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"> &#8212; 
307  sta notify command
308 </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"> &#8212; 
309  find a station
310 </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"> &#8212; 
311  find a station on hardware
312 </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"> &#8212; 
313  completed hardware scan
314 </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#idp1114292380">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"> &#8212; 
315  request SM PS transition
316 </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"> &#8212; 
317  spatial multiplexing power save mode
318 </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"> &#8212; 
319  Start a tx Block Ack session.
320 </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"> &#8212; 
321  low level driver ready to aggregate.
322 </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"> &#8212; 
323  Stop a Block Ack session.
324 </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"> &#8212; 
325  low level driver ready to stop aggregate.
326 </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"> &#8212; 
327  flags to indicate what changed
328 </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"> &#8212; 
329  rate control information for/from RC algo
330 </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"> &#8212; 
331  helper for drivers for management/no-ack frames
332 </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#idp1114411348">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#idp1114416796">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"> &#8212; 
333  STA aggregation information.
334 </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"> &#8212; 
335  TID aggregation information (Tx).
336 </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"> &#8212; 
337  TID aggregation information (Rx).
338 </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">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="cfg80211-developers-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right" valign="top">&#160;The cfg80211 subsystem</td></tr></table></div></body></html>
339