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

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.37-rc6 495 lines 18 kB view raw
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_band 79!Finclude/net/cfg80211.h ieee80211_channel_flags 80!Finclude/net/cfg80211.h ieee80211_channel 81!Finclude/net/cfg80211.h ieee80211_rate_flags 82!Finclude/net/cfg80211.h ieee80211_rate 83!Finclude/net/cfg80211.h ieee80211_sta_ht_cap 84!Finclude/net/cfg80211.h ieee80211_supported_band 85!Finclude/net/cfg80211.h cfg80211_signal_type 86!Finclude/net/cfg80211.h wiphy_params_flags 87!Finclude/net/cfg80211.h wiphy_flags 88!Finclude/net/cfg80211.h wiphy 89!Finclude/net/cfg80211.h wireless_dev 90!Finclude/net/cfg80211.h wiphy_new 91!Finclude/net/cfg80211.h wiphy_register 92!Finclude/net/cfg80211.h wiphy_unregister 93!Finclude/net/cfg80211.h wiphy_free 94 95!Finclude/net/cfg80211.h wiphy_name 96!Finclude/net/cfg80211.h wiphy_dev 97!Finclude/net/cfg80211.h wiphy_priv 98!Finclude/net/cfg80211.h priv_to_wiphy 99!Finclude/net/cfg80211.h set_wiphy_dev 100!Finclude/net/cfg80211.h wdev_priv 101 </chapter> 102 <chapter> 103 <title>Actions and configuration</title> 104!Pinclude/net/cfg80211.h Actions and configuration 105!Finclude/net/cfg80211.h cfg80211_ops 106!Finclude/net/cfg80211.h vif_params 107!Finclude/net/cfg80211.h key_params 108!Finclude/net/cfg80211.h survey_info_flags 109!Finclude/net/cfg80211.h survey_info 110!Finclude/net/cfg80211.h beacon_parameters 111!Finclude/net/cfg80211.h plink_actions 112!Finclude/net/cfg80211.h station_parameters 113!Finclude/net/cfg80211.h station_info_flags 114!Finclude/net/cfg80211.h rate_info_flags 115!Finclude/net/cfg80211.h rate_info 116!Finclude/net/cfg80211.h station_info 117!Finclude/net/cfg80211.h monitor_flags 118!Finclude/net/cfg80211.h mpath_info_flags 119!Finclude/net/cfg80211.h mpath_info 120!Finclude/net/cfg80211.h bss_parameters 121!Finclude/net/cfg80211.h ieee80211_txq_params 122!Finclude/net/cfg80211.h cfg80211_crypto_settings 123!Finclude/net/cfg80211.h cfg80211_auth_request 124!Finclude/net/cfg80211.h cfg80211_assoc_request 125!Finclude/net/cfg80211.h cfg80211_deauth_request 126!Finclude/net/cfg80211.h cfg80211_disassoc_request 127!Finclude/net/cfg80211.h cfg80211_ibss_params 128!Finclude/net/cfg80211.h cfg80211_connect_params 129!Finclude/net/cfg80211.h cfg80211_pmksa 130!Finclude/net/cfg80211.h cfg80211_send_rx_auth 131!Finclude/net/cfg80211.h cfg80211_send_auth_timeout 132!Finclude/net/cfg80211.h __cfg80211_auth_canceled 133!Finclude/net/cfg80211.h cfg80211_send_rx_assoc 134!Finclude/net/cfg80211.h cfg80211_send_assoc_timeout 135!Finclude/net/cfg80211.h cfg80211_send_deauth 136!Finclude/net/cfg80211.h __cfg80211_send_deauth 137!Finclude/net/cfg80211.h cfg80211_send_disassoc 138!Finclude/net/cfg80211.h __cfg80211_send_disassoc 139!Finclude/net/cfg80211.h cfg80211_ibss_joined 140!Finclude/net/cfg80211.h cfg80211_connect_result 141!Finclude/net/cfg80211.h cfg80211_roamed 142!Finclude/net/cfg80211.h cfg80211_disconnected 143!Finclude/net/cfg80211.h cfg80211_ready_on_channel 144!Finclude/net/cfg80211.h cfg80211_remain_on_channel_expired 145!Finclude/net/cfg80211.h cfg80211_new_sta 146!Finclude/net/cfg80211.h cfg80211_rx_mgmt 147!Finclude/net/cfg80211.h cfg80211_mgmt_tx_status 148!Finclude/net/cfg80211.h cfg80211_cqm_rssi_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_frame 159!Finclude/net/cfg80211.h cfg80211_inform_bss 160!Finclude/net/cfg80211.h cfg80211_unlink_bss 161!Finclude/net/cfg80211.h cfg80211_find_ie 162!Finclude/net/cfg80211.h ieee80211_bss_get_ie 163 </chapter> 164 <chapter> 165 <title>Utility functions</title> 166!Pinclude/net/cfg80211.h Utility functions 167!Finclude/net/cfg80211.h ieee80211_channel_to_frequency 168!Finclude/net/cfg80211.h ieee80211_frequency_to_channel 169!Finclude/net/cfg80211.h ieee80211_get_channel 170!Finclude/net/cfg80211.h ieee80211_get_response_rate 171!Finclude/net/cfg80211.h ieee80211_hdrlen 172!Finclude/net/cfg80211.h ieee80211_get_hdrlen_from_skb 173!Finclude/net/cfg80211.h ieee80211_radiotap_iterator 174 </chapter> 175 <chapter> 176 <title>Data path helpers</title> 177!Pinclude/net/cfg80211.h Data path helpers 178!Finclude/net/cfg80211.h ieee80211_data_to_8023 179!Finclude/net/cfg80211.h ieee80211_data_from_8023 180!Finclude/net/cfg80211.h ieee80211_amsdu_to_8023s 181!Finclude/net/cfg80211.h cfg80211_classify8021d 182 </chapter> 183 <chapter> 184 <title>Regulatory enforcement infrastructure</title> 185!Pinclude/net/cfg80211.h Regulatory enforcement infrastructure 186!Finclude/net/cfg80211.h regulatory_hint 187!Finclude/net/cfg80211.h wiphy_apply_custom_regulatory 188!Finclude/net/cfg80211.h freq_reg_info 189 </chapter> 190 <chapter> 191 <title>RFkill integration</title> 192!Pinclude/net/cfg80211.h RFkill integration 193!Finclude/net/cfg80211.h wiphy_rfkill_set_hw_state 194!Finclude/net/cfg80211.h wiphy_rfkill_start_polling 195!Finclude/net/cfg80211.h wiphy_rfkill_stop_polling 196 </chapter> 197 <chapter> 198 <title>Test mode</title> 199!Pinclude/net/cfg80211.h Test mode 200!Finclude/net/cfg80211.h cfg80211_testmode_alloc_reply_skb 201!Finclude/net/cfg80211.h cfg80211_testmode_reply 202!Finclude/net/cfg80211.h cfg80211_testmode_alloc_event_skb 203!Finclude/net/cfg80211.h cfg80211_testmode_event 204 </chapter> 205 </book> 206 <book id="mac80211-developers-guide"> 207 <bookinfo> 208 <title>The mac80211 subsystem</title> 209 <abstract> 210!Pinclude/net/mac80211.h Introduction 211!Pinclude/net/mac80211.h Warning 212 </abstract> 213 </bookinfo> 214 215 <toc></toc> 216 217 <!-- 218 Generally, this document shall be ordered by increasing complexity. 219 It is important to note that readers should be able to read only 220 the first few sections to get a working driver and only advanced 221 usage should require reading the full document. 222 --> 223 224 <part> 225 <title>The basic mac80211 driver interface</title> 226 <partintro> 227 <para> 228 You should read and understand the information contained 229 within this part of the book while implementing a driver. 230 In some chapters, advanced usage is noted, that may be 231 skipped at first. 232 </para> 233 <para> 234 This part of the book only covers station and monitor mode 235 functionality, additional information required to implement 236 the other modes is covered in the second part of the book. 237 </para> 238 </partintro> 239 240 <chapter id="basics"> 241 <title>Basic hardware handling</title> 242 <para>TBD</para> 243 <para> 244 This chapter shall contain information on getting a hw 245 struct allocated and registered with mac80211. 246 </para> 247 <para> 248 Since it is required to allocate rates/modes before registering 249 a hw struct, this chapter shall also contain information on setting 250 up the rate/mode structs. 251 </para> 252 <para> 253 Additionally, some discussion about the callbacks and 254 the general programming model should be in here, including 255 the definition of ieee80211_ops which will be referred to 256 a lot. 257 </para> 258 <para> 259 Finally, a discussion of hardware capabilities should be done 260 with references to other parts of the book. 261 </para> 262 <!-- intentionally multiple !F lines to get proper order --> 263!Finclude/net/mac80211.h ieee80211_hw 264!Finclude/net/mac80211.h ieee80211_hw_flags 265!Finclude/net/mac80211.h SET_IEEE80211_DEV 266!Finclude/net/mac80211.h SET_IEEE80211_PERM_ADDR 267!Finclude/net/mac80211.h ieee80211_ops 268!Finclude/net/mac80211.h ieee80211_alloc_hw 269!Finclude/net/mac80211.h ieee80211_register_hw 270!Finclude/net/mac80211.h ieee80211_get_tx_led_name 271!Finclude/net/mac80211.h ieee80211_get_rx_led_name 272!Finclude/net/mac80211.h ieee80211_get_assoc_led_name 273!Finclude/net/mac80211.h ieee80211_get_radio_led_name 274!Finclude/net/mac80211.h ieee80211_unregister_hw 275!Finclude/net/mac80211.h ieee80211_free_hw 276 </chapter> 277 278 <chapter id="phy-handling"> 279 <title>PHY configuration</title> 280 <para>TBD</para> 281 <para> 282 This chapter should describe PHY handling including 283 start/stop callbacks and the various structures used. 284 </para> 285!Finclude/net/mac80211.h ieee80211_conf 286!Finclude/net/mac80211.h ieee80211_conf_flags 287 </chapter> 288 289 <chapter id="iface-handling"> 290 <title>Virtual interfaces</title> 291 <para>TBD</para> 292 <para> 293 This chapter should describe virtual interface basics 294 that are relevant to the driver (VLANs, MGMT etc are not.) 295 It should explain the use of the add_iface/remove_iface 296 callbacks as well as the interface configuration callbacks. 297 </para> 298 <para>Things related to AP mode should be discussed there.</para> 299 <para> 300 Things related to supporting multiple interfaces should be 301 in the appropriate chapter, a BIG FAT note should be here about 302 this though and the recommendation to allow only a single 303 interface in STA mode at first! 304 </para> 305!Finclude/net/mac80211.h ieee80211_vif 306 </chapter> 307 308 <chapter id="rx-tx"> 309 <title>Receive and transmit processing</title> 310 <sect1> 311 <title>what should be here</title> 312 <para>TBD</para> 313 <para> 314 This should describe the receive and transmit 315 paths in mac80211/the drivers as well as 316 transmit status handling. 317 </para> 318 </sect1> 319 <sect1> 320 <title>Frame format</title> 321!Pinclude/net/mac80211.h Frame format 322 </sect1> 323 <sect1> 324 <title>Packet alignment</title> 325!Pnet/mac80211/rx.c Packet alignment 326 </sect1> 327 <sect1> 328 <title>Calling into mac80211 from interrupts</title> 329!Pinclude/net/mac80211.h Calling mac80211 from interrupts 330 </sect1> 331 <sect1> 332 <title>functions/definitions</title> 333!Finclude/net/mac80211.h ieee80211_rx_status 334!Finclude/net/mac80211.h mac80211_rx_flags 335!Finclude/net/mac80211.h ieee80211_tx_info 336!Finclude/net/mac80211.h ieee80211_rx 337!Finclude/net/mac80211.h ieee80211_rx_irqsafe 338!Finclude/net/mac80211.h ieee80211_tx_status 339!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe 340!Finclude/net/mac80211.h ieee80211_rts_get 341!Finclude/net/mac80211.h ieee80211_rts_duration 342!Finclude/net/mac80211.h ieee80211_ctstoself_get 343!Finclude/net/mac80211.h ieee80211_ctstoself_duration 344!Finclude/net/mac80211.h ieee80211_generic_frame_duration 345!Finclude/net/mac80211.h ieee80211_wake_queue 346!Finclude/net/mac80211.h ieee80211_stop_queue 347!Finclude/net/mac80211.h ieee80211_wake_queues 348!Finclude/net/mac80211.h ieee80211_stop_queues 349 </sect1> 350 </chapter> 351 352 <chapter id="filters"> 353 <title>Frame filtering</title> 354!Pinclude/net/mac80211.h Frame filtering 355!Finclude/net/mac80211.h ieee80211_filter_flags 356 </chapter> 357 </part> 358 359 <part id="advanced"> 360 <title>Advanced driver interface</title> 361 <partintro> 362 <para> 363 Information contained within this part of the book is 364 of interest only for advanced interaction of mac80211 365 with drivers to exploit more hardware capabilities and 366 improve performance. 367 </para> 368 </partintro> 369 370 <chapter id="hardware-crypto-offload"> 371 <title>Hardware crypto acceleration</title> 372!Pinclude/net/mac80211.h Hardware crypto acceleration 373 <!-- intentionally multiple !F lines to get proper order --> 374!Finclude/net/mac80211.h set_key_cmd 375!Finclude/net/mac80211.h ieee80211_key_conf 376!Finclude/net/mac80211.h ieee80211_key_flags 377 </chapter> 378 379 <chapter id="powersave"> 380 <title>Powersave support</title> 381!Pinclude/net/mac80211.h Powersave support 382 </chapter> 383 384 <chapter id="beacon-filter"> 385 <title>Beacon filter support</title> 386!Pinclude/net/mac80211.h Beacon filter support 387!Finclude/net/mac80211.h ieee80211_beacon_loss 388 </chapter> 389 390 <chapter id="qos"> 391 <title>Multiple queues and QoS support</title> 392 <para>TBD</para> 393!Finclude/net/mac80211.h ieee80211_tx_queue_params 394 </chapter> 395 396 <chapter id="AP"> 397 <title>Access point mode support</title> 398 <para>TBD</para> 399 <para>Some parts of the if_conf should be discussed here instead</para> 400 <para> 401 Insert notes about VLAN interfaces with hw crypto here or 402 in the hw crypto chapter. 403 </para> 404!Finclude/net/mac80211.h ieee80211_get_buffered_bc 405!Finclude/net/mac80211.h ieee80211_beacon_get 406 </chapter> 407 408 <chapter id="multi-iface"> 409 <title>Supporting multiple virtual interfaces</title> 410 <para>TBD</para> 411 <para> 412 Note: WDS with identical MAC address should almost always be OK 413 </para> 414 <para> 415 Insert notes about having multiple virtual interfaces with 416 different MAC addresses here, note which configurations are 417 supported by mac80211, add notes about supporting hw crypto 418 with it. 419 </para> 420 </chapter> 421 422 <chapter id="hardware-scan-offload"> 423 <title>Hardware scan offload</title> 424 <para>TBD</para> 425!Finclude/net/mac80211.h ieee80211_scan_completed 426 </chapter> 427 </part> 428 429 <part id="rate-control"> 430 <title>Rate control interface</title> 431 <partintro> 432 <para>TBD</para> 433 <para> 434 This part of the book describes the rate control algorithm 435 interface and how it relates to mac80211 and drivers. 436 </para> 437 </partintro> 438 <chapter id="dummy"> 439 <title>dummy chapter</title> 440 <para>TBD</para> 441 </chapter> 442 </part> 443 444 <part id="internal"> 445 <title>Internals</title> 446 <partintro> 447 <para>TBD</para> 448 <para> 449 This part of the book describes mac80211 internals. 450 </para> 451 </partintro> 452 453 <chapter id="key-handling"> 454 <title>Key handling</title> 455 <sect1> 456 <title>Key handling basics</title> 457!Pnet/mac80211/key.c Key handling basics 458 </sect1> 459 <sect1> 460 <title>MORE TBD</title> 461 <para>TBD</para> 462 </sect1> 463 </chapter> 464 465 <chapter id="rx-processing"> 466 <title>Receive processing</title> 467 <para>TBD</para> 468 </chapter> 469 470 <chapter id="tx-processing"> 471 <title>Transmit processing</title> 472 <para>TBD</para> 473 </chapter> 474 475 <chapter id="sta-info"> 476 <title>Station info handling</title> 477 <sect1> 478 <title>Programming information</title> 479!Fnet/mac80211/sta_info.h sta_info 480!Fnet/mac80211/sta_info.h ieee80211_sta_info_flags 481 </sect1> 482 <sect1> 483 <title>STA information lifetime rules</title> 484!Pnet/mac80211/sta_info.c STA information lifetime rules 485 </sect1> 486 </chapter> 487 488 <chapter id="synchronisation"> 489 <title>Synchronisation</title> 490 <para>TBD</para> 491 <para>Locking, lots of RCU</para> 492 </chapter> 493 </part> 494 </book> 495</set>