diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-14 17:11:22 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-14 17:11:22 -0400 |
| commit | d4d24d2d0a7ea3b62efd7336bfc2344e29b36bc5 (patch) | |
| tree | 051eb75f8c5cfad65db8036d976c24a7fdc78325 | |
| parent | ac9ef8cd075a1efee13036908a99a4bd5f9d4b8c (diff) | |
| parent | 819bf593767c0966f320c51c6ed3f3835062abc8 (diff) | |
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
| -rw-r--r-- | Documentation/80211/cfg80211.rst | 345 | ||||
| -rw-r--r-- | Documentation/80211/conf.py | 5 | ||||
| -rw-r--r-- | Documentation/80211/index.rst | 17 | ||||
| -rw-r--r-- | Documentation/80211/introduction.rst | 17 | ||||
| -rw-r--r-- | Documentation/80211/mac80211-advanced.rst | 295 | ||||
| -rw-r--r-- | Documentation/80211/mac80211.rst | 216 | ||||
| -rw-r--r-- | Documentation/DocBook/80211.tmpl | 584 | ||||
| -rw-r--r-- | Documentation/DocBook/Makefile | 2 | ||||
| -rw-r--r-- | Documentation/index.rst | 1 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 77 |
10 files changed, 939 insertions, 620 deletions
diff --git a/Documentation/80211/cfg80211.rst b/Documentation/80211/cfg80211.rst new file mode 100644 index 000000000000..b1e149ea6fee --- /dev/null +++ b/Documentation/80211/cfg80211.rst | |||
| @@ -0,0 +1,345 @@ | |||
| 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 | ||
diff --git a/Documentation/80211/conf.py b/Documentation/80211/conf.py new file mode 100644 index 000000000000..20c7c275ef4a --- /dev/null +++ b/Documentation/80211/conf.py | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | # -*- coding: utf-8; mode: python -*- | ||
| 2 | |||
| 3 | project = "Linux 802.11 Driver Developer's Guide" | ||
| 4 | |||
| 5 | tags.add("subproject") | ||
diff --git a/Documentation/80211/index.rst b/Documentation/80211/index.rst new file mode 100644 index 000000000000..90bba476f442 --- /dev/null +++ b/Documentation/80211/index.rst | |||
| @@ -0,0 +1,17 @@ | |||
| 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` | ||
diff --git a/Documentation/80211/introduction.rst b/Documentation/80211/introduction.rst new file mode 100644 index 000000000000..4938fa87691c --- /dev/null +++ b/Documentation/80211/introduction.rst | |||
| @@ -0,0 +1,17 @@ | |||
| 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". | ||
diff --git a/Documentation/80211/mac80211-advanced.rst b/Documentation/80211/mac80211-advanced.rst new file mode 100644 index 000000000000..70a89b2163c2 --- /dev/null +++ b/Documentation/80211/mac80211-advanced.rst | |||
| @@ -0,0 +1,295 @@ | |||
| 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 | ||
diff --git a/Documentation/80211/mac80211.rst b/Documentation/80211/mac80211.rst new file mode 100644 index 000000000000..85a8335e80b6 --- /dev/null +++ b/Documentation/80211/mac80211.rst | |||
| @@ -0,0 +1,216 @@ | |||
| 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 | ||
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl deleted file mode 100644 index 800fe7a9024c..000000000000 --- a/Documentation/DocBook/80211.tmpl +++ /dev/null | |||
| @@ -1,584 +0,0 @@ | |||
| 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 – 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> | ||
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 736f5916daea..fdf8232d0eeb 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
| @@ -12,7 +12,7 @@ DOCBOOKS := z8530book.xml \ | |||
| 12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ | 12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ |
| 13 | gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ | 13 | gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ |
| 14 | genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ | 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 | alsa-driver-api.xml writing-an-alsa-driver.xml \ | 16 | alsa-driver-api.xml writing-an-alsa-driver.xml \ |
| 17 | tracepoint.xml w1.xml \ | 17 | tracepoint.xml w1.xml \ |
| 18 | writing_musb_glue_layer.xml crypto-API.xml iio.xml | 18 | writing_musb_glue_layer.xml crypto-API.xml iio.xml |
diff --git a/Documentation/index.rst b/Documentation/index.rst index d9ccb94fca95..c53d089455a4 100644 --- a/Documentation/index.rst +++ b/Documentation/index.rst | |||
| @@ -17,6 +17,7 @@ Contents: | |||
| 17 | driver-api/index | 17 | driver-api/index |
| 18 | media/index | 18 | media/index |
| 19 | gpu/index | 19 | gpu/index |
| 20 | 80211/index | ||
| 20 | 21 | ||
| 21 | Indices and tables | 22 | Indices and tables |
| 22 | ================== | 23 | ================== |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index fe78f02a242e..bd19faad0d96 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -796,9 +796,9 @@ enum station_parameters_apply_mask { | |||
| 796 | * (or NULL for no change) | 796 | * (or NULL for no change) |
| 797 | * @supported_rates_len: number of supported rates | 797 | * @supported_rates_len: number of supported rates |
| 798 | * @sta_flags_mask: station flags that changed | 798 | * @sta_flags_mask: station flags that changed |
| 799 | * (bitmask of BIT(NL80211_STA_FLAG_...)) | 799 | * (bitmask of BIT(%NL80211_STA_FLAG_...)) |
| 800 | * @sta_flags_set: station flags values | 800 | * @sta_flags_set: station flags values |
| 801 | * (bitmask of BIT(NL80211_STA_FLAG_...)) | 801 | * (bitmask of BIT(%NL80211_STA_FLAG_...)) |
| 802 | * @listen_interval: listen interval or -1 for no change | 802 | * @listen_interval: listen interval or -1 for no change |
| 803 | * @aid: AID or zero for no change | 803 | * @aid: AID or zero for no change |
| 804 | * @peer_aid: mesh peer AID or zero for no change | 804 | * @peer_aid: mesh peer AID or zero for no change |
| @@ -3088,47 +3088,54 @@ struct ieee80211_iface_limit { | |||
| 3088 | * | 3088 | * |
| 3089 | * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: | 3089 | * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: |
| 3090 | * | 3090 | * |
| 3091 | * struct ieee80211_iface_limit limits1[] = { | 3091 | * .. code-block:: c |
| 3092 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, | 3092 | * |
| 3093 | * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, }, | 3093 | * struct ieee80211_iface_limit limits1[] = { |
| 3094 | * }; | 3094 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, |
| 3095 | * struct ieee80211_iface_combination combination1 = { | 3095 | * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, }, |
| 3096 | * .limits = limits1, | 3096 | * }; |
| 3097 | * .n_limits = ARRAY_SIZE(limits1), | 3097 | * struct ieee80211_iface_combination combination1 = { |
| 3098 | * .max_interfaces = 2, | 3098 | * .limits = limits1, |
| 3099 | * .beacon_int_infra_match = true, | 3099 | * .n_limits = ARRAY_SIZE(limits1), |
| 3100 | * }; | 3100 | * .max_interfaces = 2, |
| 3101 | * .beacon_int_infra_match = true, | ||
| 3102 | * }; | ||
| 3101 | * | 3103 | * |
| 3102 | * | 3104 | * |
| 3103 | * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: | 3105 | * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: |
| 3104 | * | 3106 | * |
| 3105 | * struct ieee80211_iface_limit limits2[] = { | 3107 | * .. code-block:: c |
| 3106 | * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | | 3108 | * |
| 3107 | * BIT(NL80211_IFTYPE_P2P_GO), }, | 3109 | * struct ieee80211_iface_limit limits2[] = { |
| 3108 | * }; | 3110 | * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | |
| 3109 | * struct ieee80211_iface_combination combination2 = { | 3111 | * BIT(NL80211_IFTYPE_P2P_GO), }, |
| 3110 | * .limits = limits2, | 3112 | * }; |
| 3111 | * .n_limits = ARRAY_SIZE(limits2), | 3113 | * struct ieee80211_iface_combination combination2 = { |
| 3112 | * .max_interfaces = 8, | 3114 | * .limits = limits2, |
| 3113 | * .num_different_channels = 1, | 3115 | * .n_limits = ARRAY_SIZE(limits2), |
| 3114 | * }; | 3116 | * .max_interfaces = 8, |
| 3117 | * .num_different_channels = 1, | ||
| 3118 | * }; | ||
| 3115 | * | 3119 | * |
| 3116 | * | 3120 | * |
| 3117 | * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. | 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[] = { | 3125 | * .. code-block:: c |
| 3122 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, | 3126 | * |
| 3123 | * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) | | 3127 | * struct ieee80211_iface_limit limits3[] = { |
| 3124 | * BIT(NL80211_IFTYPE_P2P_CLIENT), }, | 3128 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, |
| 3125 | * }; | 3129 | * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) | |
| 3126 | * struct ieee80211_iface_combination combination3 = { | 3130 | * BIT(NL80211_IFTYPE_P2P_CLIENT), }, |
| 3127 | * .limits = limits3, | 3131 | * }; |
| 3128 | * .n_limits = ARRAY_SIZE(limits3), | 3132 | * struct ieee80211_iface_combination combination3 = { |
| 3129 | * .max_interfaces = 4, | 3133 | * .limits = limits3, |
| 3130 | * .num_different_channels = 2, | 3134 | * .n_limits = ARRAY_SIZE(limits3), |
| 3131 | * }; | 3135 | * .max_interfaces = 4, |
| 3136 | * .num_different_channels = 2, | ||
| 3137 | * }; | ||
| 3138 | * | ||
| 3132 | */ | 3139 | */ |
| 3133 | struct ieee80211_iface_combination { | 3140 | struct ieee80211_iface_combination { |
| 3134 | const struct ieee80211_iface_limit *limits; | 3141 | const struct ieee80211_iface_limit *limits; |
