1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><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="idp1109174004"></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"><<a class="email" href="mailto:johannes@sipsolutions.net">johannes@sipsolutions.net</a>></code></p></div></div></div></div></div><div><p class="copyright">Copyright © 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"> — 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-cfg80211-inform-bss-width-frame.html"><span class="phrase">cfg80211_inform_bss_width_frame</span></a></span><span class="refpurpose"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> </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> 339