Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'docs-4.9-2' of git://git.lwn.net/linux

Pull one more documentation update from Jonathan Corbet:
"A single commit converting the mac80211 DocBook template over to
Sphinx. Only 32 more to go..."

* tag 'docs-4.9-2' of git://git.lwn.net/linux:
docs-rst: sphinxify 802.11 documentation

+938 -619
+345
Documentation/80211/cfg80211.rst
··· 1 + ================== 2 + cfg80211 subsystem 3 + ================== 4 + 5 + Device registration 6 + =================== 7 + 8 + .. kernel-doc:: include/net/cfg80211.h 9 + :doc: Device registration 10 + 11 + .. kernel-doc:: include/net/cfg80211.h 12 + :functions: ieee80211_channel_flags 13 + 14 + .. kernel-doc:: include/net/cfg80211.h 15 + :functions: ieee80211_channel 16 + 17 + .. kernel-doc:: include/net/cfg80211.h 18 + :functions: ieee80211_rate_flags 19 + 20 + .. kernel-doc:: include/net/cfg80211.h 21 + :functions: ieee80211_rate 22 + 23 + .. kernel-doc:: include/net/cfg80211.h 24 + :functions: ieee80211_sta_ht_cap 25 + 26 + .. kernel-doc:: include/net/cfg80211.h 27 + :functions: ieee80211_supported_band 28 + 29 + .. kernel-doc:: include/net/cfg80211.h 30 + :functions: cfg80211_signal_type 31 + 32 + .. kernel-doc:: include/net/cfg80211.h 33 + :functions: wiphy_params_flags 34 + 35 + .. kernel-doc:: include/net/cfg80211.h 36 + :functions: wiphy_flags 37 + 38 + .. kernel-doc:: include/net/cfg80211.h 39 + :functions: wiphy 40 + 41 + .. kernel-doc:: include/net/cfg80211.h 42 + :functions: wireless_dev 43 + 44 + .. kernel-doc:: include/net/cfg80211.h 45 + :functions: wiphy_new 46 + 47 + .. kernel-doc:: include/net/cfg80211.h 48 + :functions: wiphy_register 49 + 50 + .. kernel-doc:: include/net/cfg80211.h 51 + :functions: wiphy_unregister 52 + 53 + .. kernel-doc:: include/net/cfg80211.h 54 + :functions: wiphy_free 55 + 56 + .. kernel-doc:: include/net/cfg80211.h 57 + :functions: wiphy_name 58 + 59 + .. kernel-doc:: include/net/cfg80211.h 60 + :functions: wiphy_dev 61 + 62 + .. kernel-doc:: include/net/cfg80211.h 63 + :functions: wiphy_priv 64 + 65 + .. kernel-doc:: include/net/cfg80211.h 66 + :functions: priv_to_wiphy 67 + 68 + .. kernel-doc:: include/net/cfg80211.h 69 + :functions: set_wiphy_dev 70 + 71 + .. kernel-doc:: include/net/cfg80211.h 72 + :functions: wdev_priv 73 + 74 + .. kernel-doc:: include/net/cfg80211.h 75 + :functions: ieee80211_iface_limit 76 + 77 + .. kernel-doc:: include/net/cfg80211.h 78 + :functions: ieee80211_iface_combination 79 + 80 + .. kernel-doc:: include/net/cfg80211.h 81 + :functions: cfg80211_check_combinations 82 + 83 + Actions and configuration 84 + ========================= 85 + 86 + .. kernel-doc:: include/net/cfg80211.h 87 + :doc: Actions and configuration 88 + 89 + .. kernel-doc:: include/net/cfg80211.h 90 + :functions: cfg80211_ops 91 + 92 + .. kernel-doc:: include/net/cfg80211.h 93 + :functions: vif_params 94 + 95 + .. kernel-doc:: include/net/cfg80211.h 96 + :functions: key_params 97 + 98 + .. kernel-doc:: include/net/cfg80211.h 99 + :functions: survey_info_flags 100 + 101 + .. kernel-doc:: include/net/cfg80211.h 102 + :functions: survey_info 103 + 104 + .. kernel-doc:: include/net/cfg80211.h 105 + :functions: cfg80211_beacon_data 106 + 107 + .. kernel-doc:: include/net/cfg80211.h 108 + :functions: cfg80211_ap_settings 109 + 110 + .. kernel-doc:: include/net/cfg80211.h 111 + :functions: station_parameters 112 + 113 + .. kernel-doc:: include/net/cfg80211.h 114 + :functions: rate_info_flags 115 + 116 + .. kernel-doc:: include/net/cfg80211.h 117 + :functions: rate_info 118 + 119 + .. kernel-doc:: include/net/cfg80211.h 120 + :functions: station_info 121 + 122 + .. kernel-doc:: include/net/cfg80211.h 123 + :functions: monitor_flags 124 + 125 + .. kernel-doc:: include/net/cfg80211.h 126 + :functions: mpath_info_flags 127 + 128 + .. kernel-doc:: include/net/cfg80211.h 129 + :functions: mpath_info 130 + 131 + .. kernel-doc:: include/net/cfg80211.h 132 + :functions: bss_parameters 133 + 134 + .. kernel-doc:: include/net/cfg80211.h 135 + :functions: ieee80211_txq_params 136 + 137 + .. kernel-doc:: include/net/cfg80211.h 138 + :functions: cfg80211_crypto_settings 139 + 140 + .. kernel-doc:: include/net/cfg80211.h 141 + :functions: cfg80211_auth_request 142 + 143 + .. kernel-doc:: include/net/cfg80211.h 144 + :functions: cfg80211_assoc_request 145 + 146 + .. kernel-doc:: include/net/cfg80211.h 147 + :functions: cfg80211_deauth_request 148 + 149 + .. kernel-doc:: include/net/cfg80211.h 150 + :functions: cfg80211_disassoc_request 151 + 152 + .. kernel-doc:: include/net/cfg80211.h 153 + :functions: cfg80211_ibss_params 154 + 155 + .. kernel-doc:: include/net/cfg80211.h 156 + :functions: cfg80211_connect_params 157 + 158 + .. kernel-doc:: include/net/cfg80211.h 159 + :functions: cfg80211_pmksa 160 + 161 + .. kernel-doc:: include/net/cfg80211.h 162 + :functions: cfg80211_rx_mlme_mgmt 163 + 164 + .. kernel-doc:: include/net/cfg80211.h 165 + :functions: cfg80211_auth_timeout 166 + 167 + .. kernel-doc:: include/net/cfg80211.h 168 + :functions: cfg80211_rx_assoc_resp 169 + 170 + .. kernel-doc:: include/net/cfg80211.h 171 + :functions: cfg80211_assoc_timeout 172 + 173 + .. kernel-doc:: include/net/cfg80211.h 174 + :functions: cfg80211_tx_mlme_mgmt 175 + 176 + .. kernel-doc:: include/net/cfg80211.h 177 + :functions: cfg80211_ibss_joined 178 + 179 + .. kernel-doc:: include/net/cfg80211.h 180 + :functions: cfg80211_connect_result 181 + 182 + .. kernel-doc:: include/net/cfg80211.h 183 + :functions: cfg80211_connect_bss 184 + 185 + .. kernel-doc:: include/net/cfg80211.h 186 + :functions: cfg80211_connect_timeout 187 + 188 + .. kernel-doc:: include/net/cfg80211.h 189 + :functions: cfg80211_roamed 190 + 191 + .. kernel-doc:: include/net/cfg80211.h 192 + :functions: cfg80211_disconnected 193 + 194 + .. kernel-doc:: include/net/cfg80211.h 195 + :functions: cfg80211_ready_on_channel 196 + 197 + .. kernel-doc:: include/net/cfg80211.h 198 + :functions: cfg80211_remain_on_channel_expired 199 + 200 + .. kernel-doc:: include/net/cfg80211.h 201 + :functions: cfg80211_new_sta 202 + 203 + .. kernel-doc:: include/net/cfg80211.h 204 + :functions: cfg80211_rx_mgmt 205 + 206 + .. kernel-doc:: include/net/cfg80211.h 207 + :functions: cfg80211_mgmt_tx_status 208 + 209 + .. kernel-doc:: include/net/cfg80211.h 210 + :functions: cfg80211_cqm_rssi_notify 211 + 212 + .. kernel-doc:: include/net/cfg80211.h 213 + :functions: cfg80211_cqm_pktloss_notify 214 + 215 + .. kernel-doc:: include/net/cfg80211.h 216 + :functions: cfg80211_michael_mic_failure 217 + 218 + Scanning and BSS list handling 219 + ============================== 220 + 221 + .. kernel-doc:: include/net/cfg80211.h 222 + :doc: Scanning and BSS list handling 223 + 224 + .. kernel-doc:: include/net/cfg80211.h 225 + :functions: cfg80211_ssid 226 + 227 + .. kernel-doc:: include/net/cfg80211.h 228 + :functions: cfg80211_scan_request 229 + 230 + .. kernel-doc:: include/net/cfg80211.h 231 + :functions: cfg80211_scan_done 232 + 233 + .. kernel-doc:: include/net/cfg80211.h 234 + :functions: cfg80211_bss 235 + 236 + .. kernel-doc:: include/net/cfg80211.h 237 + :functions: cfg80211_inform_bss 238 + 239 + .. kernel-doc:: include/net/cfg80211.h 240 + :functions: cfg80211_inform_bss_frame_data 241 + 242 + .. kernel-doc:: include/net/cfg80211.h 243 + :functions: cfg80211_inform_bss_data 244 + 245 + .. kernel-doc:: include/net/cfg80211.h 246 + :functions: cfg80211_unlink_bss 247 + 248 + .. kernel-doc:: include/net/cfg80211.h 249 + :functions: cfg80211_find_ie 250 + 251 + .. kernel-doc:: include/net/cfg80211.h 252 + :functions: ieee80211_bss_get_ie 253 + 254 + Utility functions 255 + ================= 256 + 257 + .. kernel-doc:: include/net/cfg80211.h 258 + :doc: Utility functions 259 + 260 + .. kernel-doc:: include/net/cfg80211.h 261 + :functions: ieee80211_channel_to_frequency 262 + 263 + .. kernel-doc:: include/net/cfg80211.h 264 + :functions: ieee80211_frequency_to_channel 265 + 266 + .. kernel-doc:: include/net/cfg80211.h 267 + :functions: ieee80211_get_channel 268 + 269 + .. kernel-doc:: include/net/cfg80211.h 270 + :functions: ieee80211_get_response_rate 271 + 272 + .. kernel-doc:: include/net/cfg80211.h 273 + :functions: ieee80211_hdrlen 274 + 275 + .. kernel-doc:: include/net/cfg80211.h 276 + :functions: ieee80211_get_hdrlen_from_skb 277 + 278 + .. kernel-doc:: include/net/cfg80211.h 279 + :functions: ieee80211_radiotap_iterator 280 + 281 + Data path helpers 282 + ================= 283 + 284 + .. kernel-doc:: include/net/cfg80211.h 285 + :doc: Data path helpers 286 + 287 + .. kernel-doc:: include/net/cfg80211.h 288 + :functions: ieee80211_data_to_8023 289 + 290 + .. kernel-doc:: include/net/cfg80211.h 291 + :functions: ieee80211_data_from_8023 292 + 293 + .. kernel-doc:: include/net/cfg80211.h 294 + :functions: ieee80211_amsdu_to_8023s 295 + 296 + .. kernel-doc:: include/net/cfg80211.h 297 + :functions: cfg80211_classify8021d 298 + 299 + Regulatory enforcement infrastructure 300 + ===================================== 301 + 302 + .. kernel-doc:: include/net/cfg80211.h 303 + :doc: Regulatory enforcement infrastructure 304 + 305 + .. kernel-doc:: include/net/cfg80211.h 306 + :functions: regulatory_hint 307 + 308 + .. kernel-doc:: include/net/cfg80211.h 309 + :functions: wiphy_apply_custom_regulatory 310 + 311 + .. kernel-doc:: include/net/cfg80211.h 312 + :functions: freq_reg_info 313 + 314 + RFkill integration 315 + ================== 316 + 317 + .. kernel-doc:: include/net/cfg80211.h 318 + :doc: RFkill integration 319 + 320 + .. kernel-doc:: include/net/cfg80211.h 321 + :functions: wiphy_rfkill_set_hw_state 322 + 323 + .. kernel-doc:: include/net/cfg80211.h 324 + :functions: wiphy_rfkill_start_polling 325 + 326 + .. kernel-doc:: include/net/cfg80211.h 327 + :functions: wiphy_rfkill_stop_polling 328 + 329 + Test mode 330 + ========= 331 + 332 + .. kernel-doc:: include/net/cfg80211.h 333 + :doc: Test mode 334 + 335 + .. kernel-doc:: include/net/cfg80211.h 336 + :functions: cfg80211_testmode_alloc_reply_skb 337 + 338 + .. kernel-doc:: include/net/cfg80211.h 339 + :functions: cfg80211_testmode_reply 340 + 341 + .. kernel-doc:: include/net/cfg80211.h 342 + :functions: cfg80211_testmode_alloc_event_skb 343 + 344 + .. kernel-doc:: include/net/cfg80211.h 345 + :functions: cfg80211_testmode_event
+5
Documentation/80211/conf.py
··· 1 + # -*- coding: utf-8; mode: python -*- 2 + 3 + project = "Linux 802.11 Driver Developer's Guide" 4 + 5 + tags.add("subproject")
+17
Documentation/80211/index.rst
··· 1 + ===================================== 2 + Linux 802.11 Driver Developer's Guide 3 + ===================================== 4 + 5 + .. toctree:: 6 + 7 + introduction 8 + cfg80211 9 + mac80211 10 + mac80211-advanced 11 + 12 + .. only:: subproject 13 + 14 + Indices 15 + ======= 16 + 17 + * :ref:`genindex`
+17
Documentation/80211/introduction.rst
··· 1 + ============ 2 + Introduction 3 + ============ 4 + 5 + Explaining wireless 802.11 networking in the Linux kernel 6 + 7 + Copyright 2007-2009 Johannes Berg 8 + 9 + These books attempt to give a description of the various subsystems 10 + that play a role in 802.11 wireless networking in Linux. Since these 11 + books are for kernel developers they attempts to document the 12 + structures and functions used in the kernel as well as giving a 13 + higher-level overview. 14 + 15 + The reader is expected to be familiar with the 802.11 standard as 16 + published by the IEEE in 802.11-2007 (or possibly later versions). 17 + References to this standard will be given as "802.11-2007 8.1.5".
+295
Documentation/80211/mac80211-advanced.rst
··· 1 + ============================= 2 + mac80211 subsystem (advanced) 3 + ============================= 4 + 5 + Information contained within this part of the book is of interest only 6 + for advanced interaction of mac80211 with drivers to exploit more 7 + hardware capabilities and improve performance. 8 + 9 + LED support 10 + =========== 11 + 12 + Mac80211 supports various ways of blinking LEDs. Wherever possible, 13 + device LEDs should be exposed as LED class devices and hooked up to the 14 + appropriate trigger, which will then be triggered appropriately by 15 + mac80211. 16 + 17 + .. kernel-doc:: include/net/mac80211.h 18 + :functions: ieee80211_get_tx_led_name 19 + 20 + .. kernel-doc:: include/net/mac80211.h 21 + :functions: ieee80211_get_rx_led_name 22 + 23 + .. kernel-doc:: include/net/mac80211.h 24 + :functions: ieee80211_get_assoc_led_name 25 + 26 + .. kernel-doc:: include/net/mac80211.h 27 + :functions: ieee80211_get_radio_led_name 28 + 29 + .. kernel-doc:: include/net/mac80211.h 30 + :functions: ieee80211_tpt_blink 31 + 32 + .. kernel-doc:: include/net/mac80211.h 33 + :functions: ieee80211_tpt_led_trigger_flags 34 + 35 + .. kernel-doc:: include/net/mac80211.h 36 + :functions: ieee80211_create_tpt_led_trigger 37 + 38 + Hardware crypto acceleration 39 + ============================ 40 + 41 + .. kernel-doc:: include/net/mac80211.h 42 + :doc: Hardware crypto acceleration 43 + 44 + .. kernel-doc:: include/net/mac80211.h 45 + :functions: set_key_cmd 46 + 47 + .. kernel-doc:: include/net/mac80211.h 48 + :functions: ieee80211_key_conf 49 + 50 + .. kernel-doc:: include/net/mac80211.h 51 + :functions: ieee80211_key_flags 52 + 53 + .. kernel-doc:: include/net/mac80211.h 54 + :functions: ieee80211_get_tkip_p1k 55 + 56 + .. kernel-doc:: include/net/mac80211.h 57 + :functions: ieee80211_get_tkip_p1k_iv 58 + 59 + .. kernel-doc:: include/net/mac80211.h 60 + :functions: ieee80211_get_tkip_p2k 61 + 62 + Powersave support 63 + ================= 64 + 65 + .. kernel-doc:: include/net/mac80211.h 66 + :doc: Powersave support 67 + 68 + Beacon filter support 69 + ===================== 70 + 71 + .. kernel-doc:: include/net/mac80211.h 72 + :doc: Beacon filter support 73 + 74 + .. kernel-doc:: include/net/mac80211.h 75 + :functions: ieee80211_beacon_loss 76 + 77 + Multiple queues and QoS support 78 + =============================== 79 + 80 + TBD 81 + 82 + .. kernel-doc:: include/net/mac80211.h 83 + :functions: ieee80211_tx_queue_params 84 + 85 + Access point mode support 86 + ========================= 87 + 88 + TBD 89 + 90 + Some parts of the if_conf should be discussed here instead 91 + 92 + Insert notes about VLAN interfaces with hw crypto here or in the hw 93 + crypto chapter. 94 + 95 + support for powersaving clients 96 + ------------------------------- 97 + 98 + .. kernel-doc:: include/net/mac80211.h 99 + :doc: AP support for powersaving clients 100 + 101 + .. kernel-doc:: include/net/mac80211.h 102 + :functions: ieee80211_get_buffered_bc 103 + 104 + .. kernel-doc:: include/net/mac80211.h 105 + :functions: ieee80211_beacon_get 106 + 107 + .. kernel-doc:: include/net/mac80211.h 108 + :functions: ieee80211_sta_eosp 109 + 110 + .. kernel-doc:: include/net/mac80211.h 111 + :functions: ieee80211_frame_release_type 112 + 113 + .. kernel-doc:: include/net/mac80211.h 114 + :functions: ieee80211_sta_ps_transition 115 + 116 + .. kernel-doc:: include/net/mac80211.h 117 + :functions: ieee80211_sta_ps_transition_ni 118 + 119 + .. kernel-doc:: include/net/mac80211.h 120 + :functions: ieee80211_sta_set_buffered 121 + 122 + .. kernel-doc:: include/net/mac80211.h 123 + :functions: ieee80211_sta_block_awake 124 + 125 + Supporting multiple virtual interfaces 126 + ====================================== 127 + 128 + TBD 129 + 130 + Note: WDS with identical MAC address should almost always be OK 131 + 132 + Insert notes about having multiple virtual interfaces with different MAC 133 + addresses here, note which configurations are supported by mac80211, add 134 + notes about supporting hw crypto with it. 135 + 136 + .. kernel-doc:: include/net/mac80211.h 137 + :functions: ieee80211_iterate_active_interfaces 138 + 139 + .. kernel-doc:: include/net/mac80211.h 140 + :functions: ieee80211_iterate_active_interfaces_atomic 141 + 142 + Station handling 143 + ================ 144 + 145 + TODO 146 + 147 + .. kernel-doc:: include/net/mac80211.h 148 + :functions: ieee80211_sta 149 + 150 + .. kernel-doc:: include/net/mac80211.h 151 + :functions: sta_notify_cmd 152 + 153 + .. kernel-doc:: include/net/mac80211.h 154 + :functions: ieee80211_find_sta 155 + 156 + .. kernel-doc:: include/net/mac80211.h 157 + :functions: ieee80211_find_sta_by_ifaddr 158 + 159 + Hardware scan offload 160 + ===================== 161 + 162 + TBD 163 + 164 + .. kernel-doc:: include/net/mac80211.h 165 + :functions: ieee80211_scan_completed 166 + 167 + Aggregation 168 + =========== 169 + 170 + TX A-MPDU aggregation 171 + --------------------- 172 + 173 + .. kernel-doc:: net/mac80211/agg-tx.c 174 + :doc: TX A-MPDU aggregation 175 + 176 + .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c 177 + 178 + RX A-MPDU aggregation 179 + --------------------- 180 + 181 + .. kernel-doc:: net/mac80211/agg-rx.c 182 + :doc: RX A-MPDU aggregation 183 + 184 + .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c 185 + 186 + .. kernel-doc:: include/net/mac80211.h 187 + :functions: ieee80211_ampdu_mlme_action 188 + 189 + Spatial Multiplexing Powersave (SMPS) 190 + ===================================== 191 + 192 + .. kernel-doc:: include/net/mac80211.h 193 + :doc: Spatial multiplexing power save 194 + 195 + .. kernel-doc:: include/net/mac80211.h 196 + :functions: ieee80211_request_smps 197 + 198 + .. kernel-doc:: include/net/mac80211.h 199 + :functions: ieee80211_smps_mode 200 + 201 + TBD 202 + 203 + This part of the book describes the rate control algorithm interface and 204 + how it relates to mac80211 and drivers. 205 + 206 + Rate Control API 207 + ================ 208 + 209 + TBD 210 + 211 + .. kernel-doc:: include/net/mac80211.h 212 + :functions: ieee80211_start_tx_ba_session 213 + 214 + .. kernel-doc:: include/net/mac80211.h 215 + :functions: ieee80211_start_tx_ba_cb_irqsafe 216 + 217 + .. kernel-doc:: include/net/mac80211.h 218 + :functions: ieee80211_stop_tx_ba_session 219 + 220 + .. kernel-doc:: include/net/mac80211.h 221 + :functions: ieee80211_stop_tx_ba_cb_irqsafe 222 + 223 + .. kernel-doc:: include/net/mac80211.h 224 + :functions: ieee80211_rate_control_changed 225 + 226 + .. kernel-doc:: include/net/mac80211.h 227 + :functions: ieee80211_tx_rate_control 228 + 229 + .. kernel-doc:: include/net/mac80211.h 230 + :functions: rate_control_send_low 231 + 232 + TBD 233 + 234 + This part of the book describes mac80211 internals. 235 + 236 + Key handling 237 + ============ 238 + 239 + Key handling basics 240 + ------------------- 241 + 242 + .. kernel-doc:: net/mac80211/key.c 243 + :doc: Key handling basics 244 + 245 + MORE TBD 246 + -------- 247 + 248 + TBD 249 + 250 + Receive processing 251 + ================== 252 + 253 + TBD 254 + 255 + Transmit processing 256 + =================== 257 + 258 + TBD 259 + 260 + Station info handling 261 + ===================== 262 + 263 + Programming information 264 + ----------------------- 265 + 266 + .. kernel-doc:: net/mac80211/sta_info.h 267 + :functions: sta_info 268 + 269 + .. kernel-doc:: net/mac80211/sta_info.h 270 + :functions: ieee80211_sta_info_flags 271 + 272 + STA information lifetime rules 273 + ------------------------------ 274 + 275 + .. kernel-doc:: net/mac80211/sta_info.c 276 + :doc: STA information lifetime rules 277 + 278 + Aggregation 279 + =========== 280 + 281 + .. kernel-doc:: net/mac80211/sta_info.h 282 + :functions: sta_ampdu_mlme 283 + 284 + .. kernel-doc:: net/mac80211/sta_info.h 285 + :functions: tid_ampdu_tx 286 + 287 + .. kernel-doc:: net/mac80211/sta_info.h 288 + :functions: tid_ampdu_rx 289 + 290 + Synchronisation 291 + =============== 292 + 293 + TBD 294 + 295 + Locking, lots of RCU
+216
Documentation/80211/mac80211.rst
··· 1 + =========================== 2 + mac80211 subsystem (basics) 3 + =========================== 4 + 5 + You should read and understand the information contained within this 6 + part of the book while implementing a mac80211 driver. In some chapters, 7 + advanced usage is noted, those may be skipped if this isn't needed. 8 + 9 + This part of the book only covers station and monitor mode 10 + functionality, additional information required to implement the other 11 + modes is covered in the second part of the book. 12 + 13 + Basic hardware handling 14 + ======================= 15 + 16 + TBD 17 + 18 + This chapter shall contain information on getting a hw struct allocated 19 + and registered with mac80211. 20 + 21 + Since it is required to allocate rates/modes before registering a hw 22 + struct, this chapter shall also contain information on setting up the 23 + rate/mode structs. 24 + 25 + Additionally, some discussion about the callbacks and the general 26 + programming model should be in here, including the definition of 27 + ieee80211_ops which will be referred to a lot. 28 + 29 + Finally, a discussion of hardware capabilities should be done with 30 + references to other parts of the book. 31 + 32 + .. kernel-doc:: include/net/mac80211.h 33 + :functions: ieee80211_hw 34 + 35 + .. kernel-doc:: include/net/mac80211.h 36 + :functions: ieee80211_hw_flags 37 + 38 + .. kernel-doc:: include/net/mac80211.h 39 + :functions: SET_IEEE80211_DEV 40 + 41 + .. kernel-doc:: include/net/mac80211.h 42 + :functions: SET_IEEE80211_PERM_ADDR 43 + 44 + .. kernel-doc:: include/net/mac80211.h 45 + :functions: ieee80211_ops 46 + 47 + .. kernel-doc:: include/net/mac80211.h 48 + :functions: ieee80211_alloc_hw 49 + 50 + .. kernel-doc:: include/net/mac80211.h 51 + :functions: ieee80211_register_hw 52 + 53 + .. kernel-doc:: include/net/mac80211.h 54 + :functions: ieee80211_unregister_hw 55 + 56 + .. kernel-doc:: include/net/mac80211.h 57 + :functions: ieee80211_free_hw 58 + 59 + PHY configuration 60 + ================= 61 + 62 + TBD 63 + 64 + This chapter should describe PHY handling including start/stop callbacks 65 + and the various structures used. 66 + 67 + .. kernel-doc:: include/net/mac80211.h 68 + :functions: ieee80211_conf 69 + 70 + .. kernel-doc:: include/net/mac80211.h 71 + :functions: ieee80211_conf_flags 72 + 73 + Virtual interfaces 74 + ================== 75 + 76 + TBD 77 + 78 + This chapter should describe virtual interface basics that are relevant 79 + to the driver (VLANs, MGMT etc are not.) It should explain the use of 80 + the add_iface/remove_iface callbacks as well as the interface 81 + configuration callbacks. 82 + 83 + Things related to AP mode should be discussed there. 84 + 85 + Things related to supporting multiple interfaces should be in the 86 + appropriate chapter, a BIG FAT note should be here about this though and 87 + the recommendation to allow only a single interface in STA mode at 88 + first! 89 + 90 + .. kernel-doc:: include/net/mac80211.h 91 + :functions: ieee80211_vif 92 + 93 + Receive and transmit processing 94 + =============================== 95 + 96 + what should be here 97 + ------------------- 98 + 99 + TBD 100 + 101 + This should describe the receive and transmit paths in mac80211/the 102 + drivers as well as transmit status handling. 103 + 104 + Frame format 105 + ------------ 106 + 107 + .. kernel-doc:: include/net/mac80211.h 108 + :doc: Frame format 109 + 110 + Packet alignment 111 + ---------------- 112 + 113 + .. kernel-doc:: net/mac80211/rx.c 114 + :doc: Packet alignment 115 + 116 + Calling into mac80211 from interrupts 117 + ------------------------------------- 118 + 119 + .. kernel-doc:: include/net/mac80211.h 120 + :doc: Calling mac80211 from interrupts 121 + 122 + functions/definitions 123 + --------------------- 124 + 125 + .. kernel-doc:: include/net/mac80211.h 126 + :functions: ieee80211_rx_status 127 + 128 + .. kernel-doc:: include/net/mac80211.h 129 + :functions: mac80211_rx_flags 130 + 131 + .. kernel-doc:: include/net/mac80211.h 132 + :functions: mac80211_tx_info_flags 133 + 134 + .. kernel-doc:: include/net/mac80211.h 135 + :functions: mac80211_tx_control_flags 136 + 137 + .. kernel-doc:: include/net/mac80211.h 138 + :functions: mac80211_rate_control_flags 139 + 140 + .. kernel-doc:: include/net/mac80211.h 141 + :functions: ieee80211_tx_rate 142 + 143 + .. kernel-doc:: include/net/mac80211.h 144 + :functions: ieee80211_tx_info 145 + 146 + .. kernel-doc:: include/net/mac80211.h 147 + :functions: ieee80211_tx_info_clear_status 148 + 149 + .. kernel-doc:: include/net/mac80211.h 150 + :functions: ieee80211_rx 151 + 152 + .. kernel-doc:: include/net/mac80211.h 153 + :functions: ieee80211_rx_ni 154 + 155 + .. kernel-doc:: include/net/mac80211.h 156 + :functions: ieee80211_rx_irqsafe 157 + 158 + .. kernel-doc:: include/net/mac80211.h 159 + :functions: ieee80211_tx_status 160 + 161 + .. kernel-doc:: include/net/mac80211.h 162 + :functions: ieee80211_tx_status_ni 163 + 164 + .. kernel-doc:: include/net/mac80211.h 165 + :functions: ieee80211_tx_status_irqsafe 166 + 167 + .. kernel-doc:: include/net/mac80211.h 168 + :functions: ieee80211_rts_get 169 + 170 + .. kernel-doc:: include/net/mac80211.h 171 + :functions: ieee80211_rts_duration 172 + 173 + .. kernel-doc:: include/net/mac80211.h 174 + :functions: ieee80211_ctstoself_get 175 + 176 + .. kernel-doc:: include/net/mac80211.h 177 + :functions: ieee80211_ctstoself_duration 178 + 179 + .. kernel-doc:: include/net/mac80211.h 180 + :functions: ieee80211_generic_frame_duration 181 + 182 + .. kernel-doc:: include/net/mac80211.h 183 + :functions: ieee80211_wake_queue 184 + 185 + .. kernel-doc:: include/net/mac80211.h 186 + :functions: ieee80211_stop_queue 187 + 188 + .. kernel-doc:: include/net/mac80211.h 189 + :functions: ieee80211_wake_queues 190 + 191 + .. kernel-doc:: include/net/mac80211.h 192 + :functions: ieee80211_stop_queues 193 + 194 + .. kernel-doc:: include/net/mac80211.h 195 + :functions: ieee80211_queue_stopped 196 + 197 + Frame filtering 198 + =============== 199 + 200 + .. kernel-doc:: include/net/mac80211.h 201 + :doc: Frame filtering 202 + 203 + .. kernel-doc:: include/net/mac80211.h 204 + :functions: ieee80211_filter_flags 205 + 206 + The mac80211 workqueue 207 + ====================== 208 + 209 + .. kernel-doc:: include/net/mac80211.h 210 + :doc: mac80211 workqueue 211 + 212 + .. kernel-doc:: include/net/mac80211.h 213 + :functions: ieee80211_queue_work 214 + 215 + .. kernel-doc:: include/net/mac80211.h 216 + :functions: ieee80211_queue_delayed_work
-584
Documentation/DocBook/80211.tmpl
··· 1 - <?xml version="1.0" encoding="UTF-8"?> 2 - <!DOCTYPE set PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 3 - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> 4 - <set> 5 - <setinfo> 6 - <title>The 802.11 subsystems &ndash; for kernel developers</title> 7 - <subtitle> 8 - Explaining wireless 802.11 networking in the Linux kernel 9 - </subtitle> 10 - 11 - <copyright> 12 - <year>2007-2009</year> 13 - <holder>Johannes Berg</holder> 14 - </copyright> 15 - 16 - <authorgroup> 17 - <author> 18 - <firstname>Johannes</firstname> 19 - <surname>Berg</surname> 20 - <affiliation> 21 - <address><email>johannes@sipsolutions.net</email></address> 22 - </affiliation> 23 - </author> 24 - </authorgroup> 25 - 26 - <legalnotice> 27 - <para> 28 - This documentation is free software; you can redistribute 29 - it and/or modify it under the terms of the GNU General Public 30 - License version 2 as published by the Free Software Foundation. 31 - </para> 32 - <para> 33 - This documentation is distributed in the hope that it will be 34 - useful, but WITHOUT ANY WARRANTY; without even the implied 35 - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36 - See the GNU General Public License for more details. 37 - </para> 38 - <para> 39 - You should have received a copy of the GNU General Public 40 - License along with this documentation; if not, write to the Free 41 - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 42 - MA 02111-1307 USA 43 - </para> 44 - <para> 45 - For more details see the file COPYING in the source 46 - distribution of Linux. 47 - </para> 48 - </legalnotice> 49 - 50 - <abstract> 51 - <para> 52 - These books attempt to give a description of the 53 - various subsystems that play a role in 802.11 wireless 54 - networking in Linux. Since these books are for kernel 55 - developers they attempts to document the structures 56 - and functions used in the kernel as well as giving a 57 - higher-level overview. 58 - </para> 59 - <para> 60 - The reader is expected to be familiar with the 802.11 61 - standard as published by the IEEE in 802.11-2007 (or 62 - possibly later versions). References to this standard 63 - will be given as "802.11-2007 8.1.5". 64 - </para> 65 - </abstract> 66 - </setinfo> 67 - <book id="cfg80211-developers-guide"> 68 - <bookinfo> 69 - <title>The cfg80211 subsystem</title> 70 - 71 - <abstract> 72 - !Pinclude/net/cfg80211.h Introduction 73 - </abstract> 74 - </bookinfo> 75 - <chapter> 76 - <title>Device registration</title> 77 - !Pinclude/net/cfg80211.h Device registration 78 - !Finclude/net/cfg80211.h ieee80211_channel_flags 79 - !Finclude/net/cfg80211.h ieee80211_channel 80 - !Finclude/net/cfg80211.h ieee80211_rate_flags 81 - !Finclude/net/cfg80211.h ieee80211_rate 82 - !Finclude/net/cfg80211.h ieee80211_sta_ht_cap 83 - !Finclude/net/cfg80211.h ieee80211_supported_band 84 - !Finclude/net/cfg80211.h cfg80211_signal_type 85 - !Finclude/net/cfg80211.h wiphy_params_flags 86 - !Finclude/net/cfg80211.h wiphy_flags 87 - !Finclude/net/cfg80211.h wiphy 88 - !Finclude/net/cfg80211.h wireless_dev 89 - !Finclude/net/cfg80211.h wiphy_new 90 - !Finclude/net/cfg80211.h wiphy_register 91 - !Finclude/net/cfg80211.h wiphy_unregister 92 - !Finclude/net/cfg80211.h wiphy_free 93 - 94 - !Finclude/net/cfg80211.h wiphy_name 95 - !Finclude/net/cfg80211.h wiphy_dev 96 - !Finclude/net/cfg80211.h wiphy_priv 97 - !Finclude/net/cfg80211.h priv_to_wiphy 98 - !Finclude/net/cfg80211.h set_wiphy_dev 99 - !Finclude/net/cfg80211.h wdev_priv 100 - !Finclude/net/cfg80211.h ieee80211_iface_limit 101 - !Finclude/net/cfg80211.h ieee80211_iface_combination 102 - !Finclude/net/cfg80211.h cfg80211_check_combinations 103 - </chapter> 104 - <chapter> 105 - <title>Actions and configuration</title> 106 - !Pinclude/net/cfg80211.h Actions and configuration 107 - !Finclude/net/cfg80211.h cfg80211_ops 108 - !Finclude/net/cfg80211.h vif_params 109 - !Finclude/net/cfg80211.h key_params 110 - !Finclude/net/cfg80211.h survey_info_flags 111 - !Finclude/net/cfg80211.h survey_info 112 - !Finclude/net/cfg80211.h cfg80211_beacon_data 113 - !Finclude/net/cfg80211.h cfg80211_ap_settings 114 - !Finclude/net/cfg80211.h station_parameters 115 - !Finclude/net/cfg80211.h rate_info_flags 116 - !Finclude/net/cfg80211.h rate_info 117 - !Finclude/net/cfg80211.h station_info 118 - !Finclude/net/cfg80211.h monitor_flags 119 - !Finclude/net/cfg80211.h mpath_info_flags 120 - !Finclude/net/cfg80211.h mpath_info 121 - !Finclude/net/cfg80211.h bss_parameters 122 - !Finclude/net/cfg80211.h ieee80211_txq_params 123 - !Finclude/net/cfg80211.h cfg80211_crypto_settings 124 - !Finclude/net/cfg80211.h cfg80211_auth_request 125 - !Finclude/net/cfg80211.h cfg80211_assoc_request 126 - !Finclude/net/cfg80211.h cfg80211_deauth_request 127 - !Finclude/net/cfg80211.h cfg80211_disassoc_request 128 - !Finclude/net/cfg80211.h cfg80211_ibss_params 129 - !Finclude/net/cfg80211.h cfg80211_connect_params 130 - !Finclude/net/cfg80211.h cfg80211_pmksa 131 - !Finclude/net/cfg80211.h cfg80211_rx_mlme_mgmt 132 - !Finclude/net/cfg80211.h cfg80211_auth_timeout 133 - !Finclude/net/cfg80211.h cfg80211_rx_assoc_resp 134 - !Finclude/net/cfg80211.h cfg80211_assoc_timeout 135 - !Finclude/net/cfg80211.h cfg80211_tx_mlme_mgmt 136 - !Finclude/net/cfg80211.h cfg80211_ibss_joined 137 - !Finclude/net/cfg80211.h cfg80211_connect_result 138 - !Finclude/net/cfg80211.h cfg80211_connect_bss 139 - !Finclude/net/cfg80211.h cfg80211_connect_timeout 140 - !Finclude/net/cfg80211.h cfg80211_roamed 141 - !Finclude/net/cfg80211.h cfg80211_disconnected 142 - !Finclude/net/cfg80211.h cfg80211_ready_on_channel 143 - !Finclude/net/cfg80211.h cfg80211_remain_on_channel_expired 144 - !Finclude/net/cfg80211.h cfg80211_new_sta 145 - !Finclude/net/cfg80211.h cfg80211_rx_mgmt 146 - !Finclude/net/cfg80211.h cfg80211_mgmt_tx_status 147 - !Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify 148 - !Finclude/net/cfg80211.h cfg80211_cqm_pktloss_notify 149 - !Finclude/net/cfg80211.h cfg80211_michael_mic_failure 150 - </chapter> 151 - <chapter> 152 - <title>Scanning and BSS list handling</title> 153 - !Pinclude/net/cfg80211.h Scanning and BSS list handling 154 - !Finclude/net/cfg80211.h cfg80211_ssid 155 - !Finclude/net/cfg80211.h cfg80211_scan_request 156 - !Finclude/net/cfg80211.h cfg80211_scan_done 157 - !Finclude/net/cfg80211.h cfg80211_bss 158 - !Finclude/net/cfg80211.h cfg80211_inform_bss 159 - !Finclude/net/cfg80211.h cfg80211_inform_bss_frame_data 160 - !Finclude/net/cfg80211.h cfg80211_inform_bss_data 161 - !Finclude/net/cfg80211.h cfg80211_unlink_bss 162 - !Finclude/net/cfg80211.h cfg80211_find_ie 163 - !Finclude/net/cfg80211.h ieee80211_bss_get_ie 164 - </chapter> 165 - <chapter> 166 - <title>Utility functions</title> 167 - !Pinclude/net/cfg80211.h Utility functions 168 - !Finclude/net/cfg80211.h ieee80211_channel_to_frequency 169 - !Finclude/net/cfg80211.h ieee80211_frequency_to_channel 170 - !Finclude/net/cfg80211.h ieee80211_get_channel 171 - !Finclude/net/cfg80211.h ieee80211_get_response_rate 172 - !Finclude/net/cfg80211.h ieee80211_hdrlen 173 - !Finclude/net/cfg80211.h ieee80211_get_hdrlen_from_skb 174 - !Finclude/net/cfg80211.h ieee80211_radiotap_iterator 175 - </chapter> 176 - <chapter> 177 - <title>Data path helpers</title> 178 - !Pinclude/net/cfg80211.h Data path helpers 179 - !Finclude/net/cfg80211.h ieee80211_data_to_8023 180 - !Finclude/net/cfg80211.h ieee80211_data_from_8023 181 - !Finclude/net/cfg80211.h ieee80211_amsdu_to_8023s 182 - !Finclude/net/cfg80211.h cfg80211_classify8021d 183 - </chapter> 184 - <chapter> 185 - <title>Regulatory enforcement infrastructure</title> 186 - !Pinclude/net/cfg80211.h Regulatory enforcement infrastructure 187 - !Finclude/net/cfg80211.h regulatory_hint 188 - !Finclude/net/cfg80211.h wiphy_apply_custom_regulatory 189 - !Finclude/net/cfg80211.h freq_reg_info 190 - </chapter> 191 - <chapter> 192 - <title>RFkill integration</title> 193 - !Pinclude/net/cfg80211.h RFkill integration 194 - !Finclude/net/cfg80211.h wiphy_rfkill_set_hw_state 195 - !Finclude/net/cfg80211.h wiphy_rfkill_start_polling 196 - !Finclude/net/cfg80211.h wiphy_rfkill_stop_polling 197 - </chapter> 198 - <chapter> 199 - <title>Test mode</title> 200 - !Pinclude/net/cfg80211.h Test mode 201 - !Finclude/net/cfg80211.h cfg80211_testmode_alloc_reply_skb 202 - !Finclude/net/cfg80211.h cfg80211_testmode_reply 203 - !Finclude/net/cfg80211.h cfg80211_testmode_alloc_event_skb 204 - !Finclude/net/cfg80211.h cfg80211_testmode_event 205 - </chapter> 206 - </book> 207 - <book id="mac80211-developers-guide"> 208 - <bookinfo> 209 - <title>The mac80211 subsystem</title> 210 - <abstract> 211 - !Pinclude/net/mac80211.h Introduction 212 - !Pinclude/net/mac80211.h Warning 213 - </abstract> 214 - </bookinfo> 215 - 216 - <toc></toc> 217 - 218 - <!-- 219 - Generally, this document shall be ordered by increasing complexity. 220 - It is important to note that readers should be able to read only 221 - the first few sections to get a working driver and only advanced 222 - usage should require reading the full document. 223 - --> 224 - 225 - <part> 226 - <title>The basic mac80211 driver interface</title> 227 - <partintro> 228 - <para> 229 - You should read and understand the information contained 230 - within this part of the book while implementing a driver. 231 - In some chapters, advanced usage is noted, that may be 232 - skipped at first. 233 - </para> 234 - <para> 235 - This part of the book only covers station and monitor mode 236 - functionality, additional information required to implement 237 - the other modes is covered in the second part of the book. 238 - </para> 239 - </partintro> 240 - 241 - <chapter id="basics"> 242 - <title>Basic hardware handling</title> 243 - <para>TBD</para> 244 - <para> 245 - This chapter shall contain information on getting a hw 246 - struct allocated and registered with mac80211. 247 - </para> 248 - <para> 249 - Since it is required to allocate rates/modes before registering 250 - a hw struct, this chapter shall also contain information on setting 251 - up the rate/mode structs. 252 - </para> 253 - <para> 254 - Additionally, some discussion about the callbacks and 255 - the general programming model should be in here, including 256 - the definition of ieee80211_ops which will be referred to 257 - a lot. 258 - </para> 259 - <para> 260 - Finally, a discussion of hardware capabilities should be done 261 - with references to other parts of the book. 262 - </para> 263 - <!-- intentionally multiple !F lines to get proper order --> 264 - !Finclude/net/mac80211.h ieee80211_hw 265 - !Finclude/net/mac80211.h ieee80211_hw_flags 266 - !Finclude/net/mac80211.h SET_IEEE80211_DEV 267 - !Finclude/net/mac80211.h SET_IEEE80211_PERM_ADDR 268 - !Finclude/net/mac80211.h ieee80211_ops 269 - !Finclude/net/mac80211.h ieee80211_alloc_hw 270 - !Finclude/net/mac80211.h ieee80211_register_hw 271 - !Finclude/net/mac80211.h ieee80211_unregister_hw 272 - !Finclude/net/mac80211.h ieee80211_free_hw 273 - </chapter> 274 - 275 - <chapter id="phy-handling"> 276 - <title>PHY configuration</title> 277 - <para>TBD</para> 278 - <para> 279 - This chapter should describe PHY handling including 280 - start/stop callbacks and the various structures used. 281 - </para> 282 - !Finclude/net/mac80211.h ieee80211_conf 283 - !Finclude/net/mac80211.h ieee80211_conf_flags 284 - </chapter> 285 - 286 - <chapter id="iface-handling"> 287 - <title>Virtual interfaces</title> 288 - <para>TBD</para> 289 - <para> 290 - This chapter should describe virtual interface basics 291 - that are relevant to the driver (VLANs, MGMT etc are not.) 292 - It should explain the use of the add_iface/remove_iface 293 - callbacks as well as the interface configuration callbacks. 294 - </para> 295 - <para>Things related to AP mode should be discussed there.</para> 296 - <para> 297 - Things related to supporting multiple interfaces should be 298 - in the appropriate chapter, a BIG FAT note should be here about 299 - this though and the recommendation to allow only a single 300 - interface in STA mode at first! 301 - </para> 302 - !Finclude/net/mac80211.h ieee80211_vif 303 - </chapter> 304 - 305 - <chapter id="rx-tx"> 306 - <title>Receive and transmit processing</title> 307 - <sect1> 308 - <title>what should be here</title> 309 - <para>TBD</para> 310 - <para> 311 - This should describe the receive and transmit 312 - paths in mac80211/the drivers as well as 313 - transmit status handling. 314 - </para> 315 - </sect1> 316 - <sect1> 317 - <title>Frame format</title> 318 - !Pinclude/net/mac80211.h Frame format 319 - </sect1> 320 - <sect1> 321 - <title>Packet alignment</title> 322 - !Pnet/mac80211/rx.c Packet alignment 323 - </sect1> 324 - <sect1> 325 - <title>Calling into mac80211 from interrupts</title> 326 - !Pinclude/net/mac80211.h Calling mac80211 from interrupts 327 - </sect1> 328 - <sect1> 329 - <title>functions/definitions</title> 330 - !Finclude/net/mac80211.h ieee80211_rx_status 331 - !Finclude/net/mac80211.h mac80211_rx_flags 332 - !Finclude/net/mac80211.h mac80211_tx_info_flags 333 - !Finclude/net/mac80211.h mac80211_tx_control_flags 334 - !Finclude/net/mac80211.h mac80211_rate_control_flags 335 - !Finclude/net/mac80211.h ieee80211_tx_rate 336 - !Finclude/net/mac80211.h ieee80211_tx_info 337 - !Finclude/net/mac80211.h ieee80211_tx_info_clear_status 338 - !Finclude/net/mac80211.h ieee80211_rx 339 - !Finclude/net/mac80211.h ieee80211_rx_ni 340 - !Finclude/net/mac80211.h ieee80211_rx_irqsafe 341 - !Finclude/net/mac80211.h ieee80211_tx_status 342 - !Finclude/net/mac80211.h ieee80211_tx_status_ni 343 - !Finclude/net/mac80211.h ieee80211_tx_status_irqsafe 344 - !Finclude/net/mac80211.h ieee80211_rts_get 345 - !Finclude/net/mac80211.h ieee80211_rts_duration 346 - !Finclude/net/mac80211.h ieee80211_ctstoself_get 347 - !Finclude/net/mac80211.h ieee80211_ctstoself_duration 348 - !Finclude/net/mac80211.h ieee80211_generic_frame_duration 349 - !Finclude/net/mac80211.h ieee80211_wake_queue 350 - !Finclude/net/mac80211.h ieee80211_stop_queue 351 - !Finclude/net/mac80211.h ieee80211_wake_queues 352 - !Finclude/net/mac80211.h ieee80211_stop_queues 353 - !Finclude/net/mac80211.h ieee80211_queue_stopped 354 - </sect1> 355 - </chapter> 356 - 357 - <chapter id="filters"> 358 - <title>Frame filtering</title> 359 - !Pinclude/net/mac80211.h Frame filtering 360 - !Finclude/net/mac80211.h ieee80211_filter_flags 361 - </chapter> 362 - 363 - <chapter id="workqueue"> 364 - <title>The mac80211 workqueue</title> 365 - !Pinclude/net/mac80211.h mac80211 workqueue 366 - !Finclude/net/mac80211.h ieee80211_queue_work 367 - !Finclude/net/mac80211.h ieee80211_queue_delayed_work 368 - </chapter> 369 - </part> 370 - 371 - <part id="advanced"> 372 - <title>Advanced driver interface</title> 373 - <partintro> 374 - <para> 375 - Information contained within this part of the book is 376 - of interest only for advanced interaction of mac80211 377 - with drivers to exploit more hardware capabilities and 378 - improve performance. 379 - </para> 380 - </partintro> 381 - 382 - <chapter id="led-support"> 383 - <title>LED support</title> 384 - <para> 385 - Mac80211 supports various ways of blinking LEDs. Wherever possible, 386 - device LEDs should be exposed as LED class devices and hooked up to 387 - the appropriate trigger, which will then be triggered appropriately 388 - by mac80211. 389 - </para> 390 - !Finclude/net/mac80211.h ieee80211_get_tx_led_name 391 - !Finclude/net/mac80211.h ieee80211_get_rx_led_name 392 - !Finclude/net/mac80211.h ieee80211_get_assoc_led_name 393 - !Finclude/net/mac80211.h ieee80211_get_radio_led_name 394 - !Finclude/net/mac80211.h ieee80211_tpt_blink 395 - !Finclude/net/mac80211.h ieee80211_tpt_led_trigger_flags 396 - !Finclude/net/mac80211.h ieee80211_create_tpt_led_trigger 397 - </chapter> 398 - 399 - <chapter id="hardware-crypto-offload"> 400 - <title>Hardware crypto acceleration</title> 401 - !Pinclude/net/mac80211.h Hardware crypto acceleration 402 - <!-- intentionally multiple !F lines to get proper order --> 403 - !Finclude/net/mac80211.h set_key_cmd 404 - !Finclude/net/mac80211.h ieee80211_key_conf 405 - !Finclude/net/mac80211.h ieee80211_key_flags 406 - !Finclude/net/mac80211.h ieee80211_get_tkip_p1k 407 - !Finclude/net/mac80211.h ieee80211_get_tkip_p1k_iv 408 - !Finclude/net/mac80211.h ieee80211_get_tkip_p2k 409 - </chapter> 410 - 411 - <chapter id="powersave"> 412 - <title>Powersave support</title> 413 - !Pinclude/net/mac80211.h Powersave support 414 - </chapter> 415 - 416 - <chapter id="beacon-filter"> 417 - <title>Beacon filter support</title> 418 - !Pinclude/net/mac80211.h Beacon filter support 419 - !Finclude/net/mac80211.h ieee80211_beacon_loss 420 - </chapter> 421 - 422 - <chapter id="qos"> 423 - <title>Multiple queues and QoS support</title> 424 - <para>TBD</para> 425 - !Finclude/net/mac80211.h ieee80211_tx_queue_params 426 - </chapter> 427 - 428 - <chapter id="AP"> 429 - <title>Access point mode support</title> 430 - <para>TBD</para> 431 - <para>Some parts of the if_conf should be discussed here instead</para> 432 - <para> 433 - Insert notes about VLAN interfaces with hw crypto here or 434 - in the hw crypto chapter. 435 - </para> 436 - <section id="ps-client"> 437 - <title>support for powersaving clients</title> 438 - !Pinclude/net/mac80211.h AP support for powersaving clients 439 - !Finclude/net/mac80211.h ieee80211_get_buffered_bc 440 - !Finclude/net/mac80211.h ieee80211_beacon_get 441 - !Finclude/net/mac80211.h ieee80211_sta_eosp 442 - !Finclude/net/mac80211.h ieee80211_frame_release_type 443 - !Finclude/net/mac80211.h ieee80211_sta_ps_transition 444 - !Finclude/net/mac80211.h ieee80211_sta_ps_transition_ni 445 - !Finclude/net/mac80211.h ieee80211_sta_set_buffered 446 - !Finclude/net/mac80211.h ieee80211_sta_block_awake 447 - </section> 448 - </chapter> 449 - 450 - <chapter id="multi-iface"> 451 - <title>Supporting multiple virtual interfaces</title> 452 - <para>TBD</para> 453 - <para> 454 - Note: WDS with identical MAC address should almost always be OK 455 - </para> 456 - <para> 457 - Insert notes about having multiple virtual interfaces with 458 - different MAC addresses here, note which configurations are 459 - supported by mac80211, add notes about supporting hw crypto 460 - with it. 461 - </para> 462 - !Finclude/net/mac80211.h ieee80211_iterate_active_interfaces 463 - !Finclude/net/mac80211.h ieee80211_iterate_active_interfaces_atomic 464 - </chapter> 465 - 466 - <chapter id="station-handling"> 467 - <title>Station handling</title> 468 - <para>TODO</para> 469 - !Finclude/net/mac80211.h ieee80211_sta 470 - !Finclude/net/mac80211.h sta_notify_cmd 471 - !Finclude/net/mac80211.h ieee80211_find_sta 472 - !Finclude/net/mac80211.h ieee80211_find_sta_by_ifaddr 473 - </chapter> 474 - 475 - <chapter id="hardware-scan-offload"> 476 - <title>Hardware scan offload</title> 477 - <para>TBD</para> 478 - !Finclude/net/mac80211.h ieee80211_scan_completed 479 - </chapter> 480 - 481 - <chapter id="aggregation"> 482 - <title>Aggregation</title> 483 - <sect1> 484 - <title>TX A-MPDU aggregation</title> 485 - !Pnet/mac80211/agg-tx.c TX A-MPDU aggregation 486 - !Cnet/mac80211/agg-tx.c 487 - </sect1> 488 - <sect1> 489 - <title>RX A-MPDU aggregation</title> 490 - !Pnet/mac80211/agg-rx.c RX A-MPDU aggregation 491 - !Cnet/mac80211/agg-rx.c 492 - !Finclude/net/mac80211.h ieee80211_ampdu_mlme_action 493 - </sect1> 494 - </chapter> 495 - 496 - <chapter id="smps"> 497 - <title>Spatial Multiplexing Powersave (SMPS)</title> 498 - !Pinclude/net/mac80211.h Spatial multiplexing power save 499 - !Finclude/net/mac80211.h ieee80211_request_smps 500 - !Finclude/net/mac80211.h ieee80211_smps_mode 501 - </chapter> 502 - </part> 503 - 504 - <part id="rate-control"> 505 - <title>Rate control interface</title> 506 - <partintro> 507 - <para>TBD</para> 508 - <para> 509 - This part of the book describes the rate control algorithm 510 - interface and how it relates to mac80211 and drivers. 511 - </para> 512 - </partintro> 513 - <chapter id="ratecontrol-api"> 514 - <title>Rate Control API</title> 515 - <para>TBD</para> 516 - !Finclude/net/mac80211.h ieee80211_start_tx_ba_session 517 - !Finclude/net/mac80211.h ieee80211_start_tx_ba_cb_irqsafe 518 - !Finclude/net/mac80211.h ieee80211_stop_tx_ba_session 519 - !Finclude/net/mac80211.h ieee80211_stop_tx_ba_cb_irqsafe 520 - !Finclude/net/mac80211.h ieee80211_rate_control_changed 521 - !Finclude/net/mac80211.h ieee80211_tx_rate_control 522 - !Finclude/net/mac80211.h rate_control_send_low 523 - </chapter> 524 - </part> 525 - 526 - <part id="internal"> 527 - <title>Internals</title> 528 - <partintro> 529 - <para>TBD</para> 530 - <para> 531 - This part of the book describes mac80211 internals. 532 - </para> 533 - </partintro> 534 - 535 - <chapter id="key-handling"> 536 - <title>Key handling</title> 537 - <sect1> 538 - <title>Key handling basics</title> 539 - !Pnet/mac80211/key.c Key handling basics 540 - </sect1> 541 - <sect1> 542 - <title>MORE TBD</title> 543 - <para>TBD</para> 544 - </sect1> 545 - </chapter> 546 - 547 - <chapter id="rx-processing"> 548 - <title>Receive processing</title> 549 - <para>TBD</para> 550 - </chapter> 551 - 552 - <chapter id="tx-processing"> 553 - <title>Transmit processing</title> 554 - <para>TBD</para> 555 - </chapter> 556 - 557 - <chapter id="sta-info"> 558 - <title>Station info handling</title> 559 - <sect1> 560 - <title>Programming information</title> 561 - !Fnet/mac80211/sta_info.h sta_info 562 - !Fnet/mac80211/sta_info.h ieee80211_sta_info_flags 563 - </sect1> 564 - <sect1> 565 - <title>STA information lifetime rules</title> 566 - !Pnet/mac80211/sta_info.c STA information lifetime rules 567 - </sect1> 568 - </chapter> 569 - 570 - <chapter id="aggregation-internals"> 571 - <title>Aggregation</title> 572 - !Fnet/mac80211/sta_info.h sta_ampdu_mlme 573 - !Fnet/mac80211/sta_info.h tid_ampdu_tx 574 - !Fnet/mac80211/sta_info.h tid_ampdu_rx 575 - </chapter> 576 - 577 - <chapter id="synchronisation"> 578 - <title>Synchronisation</title> 579 - <para>TBD</para> 580 - <para>Locking, lots of RCU</para> 581 - </chapter> 582 - </part> 583 - </book> 584 - </set>
+1 -1
Documentation/DocBook/Makefile
··· 12 12 kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ 13 13 gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ 14 14 genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ 15 - 80211.xml debugobjects.xml sh.xml regulator.xml \ 15 + debugobjects.xml sh.xml regulator.xml \ 16 16 alsa-driver-api.xml writing-an-alsa-driver.xml \ 17 17 tracepoint.xml w1.xml \ 18 18 writing_musb_glue_layer.xml crypto-API.xml iio.xml
+1
Documentation/index.rst
··· 17 17 driver-api/index 18 18 media/index 19 19 gpu/index 20 + 80211/index 20 21 21 22 Indices and tables 22 23 ==================
+41 -34
include/net/cfg80211.h
··· 796 796 * (or NULL for no change) 797 797 * @supported_rates_len: number of supported rates 798 798 * @sta_flags_mask: station flags that changed 799 - * (bitmask of BIT(NL80211_STA_FLAG_...)) 799 + * (bitmask of BIT(%NL80211_STA_FLAG_...)) 800 800 * @sta_flags_set: station flags values 801 - * (bitmask of BIT(NL80211_STA_FLAG_...)) 801 + * (bitmask of BIT(%NL80211_STA_FLAG_...)) 802 802 * @listen_interval: listen interval or -1 for no change 803 803 * @aid: AID or zero for no change 804 804 * @peer_aid: mesh peer AID or zero for no change ··· 3088 3088 * 3089 3089 * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: 3090 3090 * 3091 - * struct ieee80211_iface_limit limits1[] = { 3092 - * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, 3093 - * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, }, 3094 - * }; 3095 - * struct ieee80211_iface_combination combination1 = { 3096 - * .limits = limits1, 3097 - * .n_limits = ARRAY_SIZE(limits1), 3098 - * .max_interfaces = 2, 3099 - * .beacon_int_infra_match = true, 3100 - * }; 3091 + * .. code-block:: c 3092 + * 3093 + * struct ieee80211_iface_limit limits1[] = { 3094 + * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, 3095 + * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, }, 3096 + * }; 3097 + * struct ieee80211_iface_combination combination1 = { 3098 + * .limits = limits1, 3099 + * .n_limits = ARRAY_SIZE(limits1), 3100 + * .max_interfaces = 2, 3101 + * .beacon_int_infra_match = true, 3102 + * }; 3101 3103 * 3102 3104 * 3103 3105 * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: 3104 3106 * 3105 - * struct ieee80211_iface_limit limits2[] = { 3106 - * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | 3107 - * BIT(NL80211_IFTYPE_P2P_GO), }, 3108 - * }; 3109 - * struct ieee80211_iface_combination combination2 = { 3110 - * .limits = limits2, 3111 - * .n_limits = ARRAY_SIZE(limits2), 3112 - * .max_interfaces = 8, 3113 - * .num_different_channels = 1, 3114 - * }; 3107 + * .. code-block:: c 3108 + * 3109 + * struct ieee80211_iface_limit limits2[] = { 3110 + * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | 3111 + * BIT(NL80211_IFTYPE_P2P_GO), }, 3112 + * }; 3113 + * struct ieee80211_iface_combination combination2 = { 3114 + * .limits = limits2, 3115 + * .n_limits = ARRAY_SIZE(limits2), 3116 + * .max_interfaces = 8, 3117 + * .num_different_channels = 1, 3118 + * }; 3115 3119 * 3116 3120 * 3117 3121 * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. 3118 3122 * 3119 - * This allows for an infrastructure connection and three P2P connections. 3123 + * This allows for an infrastructure connection and three P2P connections. 3120 3124 * 3121 - * struct ieee80211_iface_limit limits3[] = { 3122 - * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, 3123 - * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) | 3124 - * BIT(NL80211_IFTYPE_P2P_CLIENT), }, 3125 - * }; 3126 - * struct ieee80211_iface_combination combination3 = { 3127 - * .limits = limits3, 3128 - * .n_limits = ARRAY_SIZE(limits3), 3129 - * .max_interfaces = 4, 3130 - * .num_different_channels = 2, 3131 - * }; 3125 + * .. code-block:: c 3126 + * 3127 + * struct ieee80211_iface_limit limits3[] = { 3128 + * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, 3129 + * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) | 3130 + * BIT(NL80211_IFTYPE_P2P_CLIENT), }, 3131 + * }; 3132 + * struct ieee80211_iface_combination combination3 = { 3133 + * .limits = limits3, 3134 + * .n_limits = ARRAY_SIZE(limits3), 3135 + * .max_interfaces = 4, 3136 + * .num_different_channels = 2, 3137 + * }; 3138 + * 3132 3139 */ 3133 3140 struct ieee80211_iface_combination { 3134 3141 const struct ieee80211_iface_limit *limits;