1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>The cfg80211 subsystem</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><meta name="description" content=" cfg80211 is the configuration API for 802.11 devices in Linux. It bridges userspace and drivers, and offers some utility functionality associated with 802.11. cfg80211 must, directly or indirectly via mac80211, be used by all modern wireless drivers in Linux, so that they offer a consistent API through nl80211. For backward compatibility, cfg80211 also offers wireless extensions to userspace, but hides them from drivers completely. Additionally, cfg80211 contains code to help enforce regulatory spectrum use restrictions."><link rel="home" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="up" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="prev" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="next" href="bk01ch01.html" title="Chapter 1. Device registration"></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 cfg80211 subsystem</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="bk01ch01.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="cfg80211-developers-guide"></a>The cfg80211 subsystem</h1></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p> 2 </p><p> 3 cfg80211 is the configuration API for 802.11 devices in Linux. It bridges 4 userspace and drivers, and offers some utility functionality associated 5 with 802.11. cfg80211 must, directly or indirectly via mac80211, be used 6 by all modern wireless drivers in Linux, so that they offer a consistent 7 API through nl80211. For backward compatibility, cfg80211 also offers 8 wireless extensions to userspace, but hides them from drivers completely. 9 </p><p> 10 Additionally, cfg80211 contains code to help enforce regulatory spectrum 11 use restrictions. 12</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><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"> — 13 supported frequency bands 14 </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"> — 15 channel flags 16 </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"> — 17 channel definition 18 </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"> — 19 rate flags 20 </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"> — 21 bitrate definition 22 </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"> — 23 STA's HT capabilities 24 </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"> — 25 frequency band definition 26 </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"> — 27 signal type 28 </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"> — 29 set_wiphy_params bitfield values 30 </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"> — 31 wiphy capability flags 32 </span></dt><dt><span class="refentrytitle"><a href="API-struct-wiphy.html"><span class="phrase">struct wiphy</span></a></span><span class="refpurpose"> — 33 wireless hardware description 34 </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"> — 35 wireless device state 36 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-new.html"><span class="phrase">wiphy_new</span></a></span><span class="refpurpose"> — 37 create a new wiphy for use with cfg80211 38 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-register.html"><span class="phrase">wiphy_register</span></a></span><span class="refpurpose"> — 39 register a wiphy with cfg80211 40 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-unregister.html"><span class="phrase">wiphy_unregister</span></a></span><span class="refpurpose"> — 41 deregister a wiphy from cfg80211 42 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-free.html"><span class="phrase">wiphy_free</span></a></span><span class="refpurpose"> — 43 free wiphy 44 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-name.html"><span class="phrase">wiphy_name</span></a></span><span class="refpurpose"> — 45 get wiphy name 46 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-dev.html"><span class="phrase">wiphy_dev</span></a></span><span class="refpurpose"> — 47 get wiphy dev pointer 48 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-priv.html"><span class="phrase">wiphy_priv</span></a></span><span class="refpurpose"> — 49 return priv from wiphy 50 </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"> — 51 return the wiphy containing the priv 52 </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"> — 53 set device pointer for wiphy 54 </span></dt><dt><span class="refentrytitle"><a href="API-wdev-priv.html"><span class="phrase">wdev_priv</span></a></span><span class="refpurpose"> — 55 return wiphy priv from wireless_dev 56 </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"> — 57 limit on certain interface types 58 </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"> — 59 possible interface combination 60 </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"> — 61 check interface combinations 62 </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"> — 63 backend description for wireless configuration 64 </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"> — 65 describes virtual interface parameters 66 </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"> — 67 key information 68 </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"> — 69 survey information flags 70 </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"> — 71 channel survey response 72 </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"> — 73 beacon data 74 </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"> — 75 AP configuration 76 </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"> — 77 station parameters 78 </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"> — 79 bitrate info flags 80 </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"> — 81 bitrate information 82 </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"> — 83 station information 84 </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"> — 85 monitor flags 86 </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"> — 87 mesh path information flags 88 </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"> — 89 mesh path information 90 </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"> — 91 BSS parameters 92 </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"> — 93 TX queue parameters 94 </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"> — 95 Crypto settings 96 </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"> — 97 Authentication request data 98 </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"> — 99 (Re)Association request data 100 </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"> — 101 Deauthentication request data 102 </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"> — 103 Disassociation request data 104 </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"> — 105 IBSS parameters 106 </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"> — 107 Connection parameters 108 </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"> — 109 PMK Security Association 110 </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"> — 111 notification of processed MLME management frame 112 </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"> — 113 notification of timed out authentication 114 </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"> — 115 notification of processed association response 116 </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"> — 117 notification of timed out association 118 </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"> — 119 notification of transmitted deauth/disassoc frame 120 </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"> — 121 notify cfg80211 that device joined an IBSS 122 </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"> — 123 notify cfg80211 of connection result 124 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-roamed.html"><span class="phrase">cfg80211_roamed</span></a></span><span class="refpurpose"> — 125 notify cfg80211 of roaming 126 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-disconnected.html"><span class="phrase">cfg80211_disconnected</span></a></span><span class="refpurpose"> — 127 notify cfg80211 that connection was dropped 128 </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"> — 129 notification of remain_on_channel start 130 </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"> — 131 remain_on_channel duration expired 132 </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"> — 133 notify userspace about station 134 </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"> — 135 notification of received, unprocessed management frame 136 </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"> — 137 notification of TX status for management frame 138 </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"> — 139 connection quality monitoring rssi event 140 </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"> — 141 notify userspace about packetloss to peer 142 </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"> — 143 notification of Michael MIC failure (TKIP) 144 </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"> — 145 SSID description 146 </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"> — 147 scan request description 148 </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"> — 149 notify that scan finished 150 </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"> — 151 BSS description 152 </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"> — 153 inform cfg80211 of a received BSS frame 154 </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"> — 155 inform cfg80211 of a new BSS 156 </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"> — 157 unlink BSS from internal data structures 158 </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"> — 159 find information element in data 160 </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"> — 161 find IE with given ID 162 </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"> — 163 convert channel number to frequency 164 </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"> — 165 convert frequency to channel number 166 </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"> — 167 get channel struct from wiphy for specified frequency 168 </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"> — 169 get basic rate for a given rate 170 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-hdrlen.html"><span class="phrase">ieee80211_hdrlen</span></a></span><span class="refpurpose"> — 171 get header length in bytes from frame control 172 </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"> — 173 get header length from data 174 </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"> — 175 tracks walk thru present radiotap args 176 </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"> — 177 convert an 802.11 data frame to 802.3 178 </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"> — 179 convert an 802.3 frame to 802.11 180 </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"> — 181 decode an IEEE 802.11n A-MSDU frame 182 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-classify8021d.html"><span class="phrase">cfg80211_classify8021d</span></a></span><span class="refpurpose"> — 183 determine the 802.1p/1d tag for a data frame 184 </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"> — 185 driver hint to the wireless core a regulatory domain 186 </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"> — 187 apply a custom driver regulatory domain 188 </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"> — 189 get regulatory information for the given frequency 190 </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"> — 191 notify cfg80211 about hw block state 192 </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"> — 193 start polling rfkill 194 </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"> — 195 stop polling rfkill 196 </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"> — 197 allocate testmode reply 198 </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"> — 199 send the reply skb 200 </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"> — 201 allocate testmode event 202 </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"> — 203 send the event 204 </span></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="bk01ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The 802.11 subsystems – for kernel developers </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Device registration</td></tr></table></div></body></html> 205