mac80211.rst 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. ===========================
  2. mac80211 subsystem (basics)
  3. ===========================
  4. You should read and understand the information contained within this
  5. part of the book while implementing a mac80211 driver. In some chapters,
  6. advanced usage is noted, those may be skipped if this isn't needed.
  7. This part of the book only covers station and monitor mode
  8. functionality, additional information required to implement the other
  9. modes is covered in the second part of the book.
  10. Basic hardware handling
  11. =======================
  12. TBD
  13. This chapter shall contain information on getting a hw struct allocated
  14. and registered with mac80211.
  15. Since it is required to allocate rates/modes before registering a hw
  16. struct, this chapter shall also contain information on setting up the
  17. rate/mode structs.
  18. Additionally, some discussion about the callbacks and the general
  19. programming model should be in here, including the definition of
  20. ieee80211_ops which will be referred to a lot.
  21. Finally, a discussion of hardware capabilities should be done with
  22. references to other parts of the book.
  23. .. kernel-doc:: include/net/mac80211.h
  24. :functions:
  25. ieee80211_hw
  26. ieee80211_hw_flags
  27. SET_IEEE80211_DEV
  28. SET_IEEE80211_PERM_ADDR
  29. ieee80211_ops
  30. ieee80211_alloc_hw
  31. ieee80211_register_hw
  32. ieee80211_unregister_hw
  33. ieee80211_free_hw
  34. PHY configuration
  35. =================
  36. TBD
  37. This chapter should describe PHY handling including start/stop callbacks
  38. and the various structures used.
  39. .. kernel-doc:: include/net/mac80211.h
  40. :functions:
  41. ieee80211_conf
  42. ieee80211_conf_flags
  43. Virtual interfaces
  44. ==================
  45. TBD
  46. This chapter should describe virtual interface basics that are relevant
  47. to the driver (VLANs, MGMT etc are not.) It should explain the use of
  48. the add_iface/remove_iface callbacks as well as the interface
  49. configuration callbacks.
  50. Things related to AP mode should be discussed there.
  51. Things related to supporting multiple interfaces should be in the
  52. appropriate chapter, a BIG FAT note should be here about this though and
  53. the recommendation to allow only a single interface in STA mode at
  54. first!
  55. .. kernel-doc:: include/net/mac80211.h
  56. :functions: ieee80211_vif
  57. Receive and transmit processing
  58. ===============================
  59. what should be here
  60. -------------------
  61. TBD
  62. This should describe the receive and transmit paths in mac80211/the
  63. drivers as well as transmit status handling.
  64. Frame format
  65. ------------
  66. .. kernel-doc:: include/net/mac80211.h
  67. :doc: Frame format
  68. Packet alignment
  69. ----------------
  70. .. kernel-doc:: net/mac80211/rx.c
  71. :doc: Packet alignment
  72. Calling into mac80211 from interrupts
  73. -------------------------------------
  74. .. kernel-doc:: include/net/mac80211.h
  75. :doc: Calling mac80211 from interrupts
  76. functions/definitions
  77. ---------------------
  78. .. kernel-doc:: include/net/mac80211.h
  79. :functions:
  80. ieee80211_rx_status
  81. mac80211_rx_encoding_flags
  82. mac80211_rx_flags
  83. mac80211_tx_info_flags
  84. mac80211_tx_control_flags
  85. mac80211_rate_control_flags
  86. ieee80211_tx_rate
  87. ieee80211_tx_info
  88. ieee80211_tx_info_clear_status
  89. ieee80211_rx
  90. ieee80211_rx_ni
  91. ieee80211_rx_irqsafe
  92. ieee80211_tx_status
  93. ieee80211_tx_status_ni
  94. ieee80211_tx_status_irqsafe
  95. ieee80211_rts_get
  96. ieee80211_rts_duration
  97. ieee80211_ctstoself_get
  98. ieee80211_ctstoself_duration
  99. ieee80211_generic_frame_duration
  100. ieee80211_wake_queue
  101. ieee80211_stop_queue
  102. ieee80211_wake_queues
  103. ieee80211_stop_queues
  104. ieee80211_queue_stopped
  105. Frame filtering
  106. ===============
  107. .. kernel-doc:: include/net/mac80211.h
  108. :doc: Frame filtering
  109. .. kernel-doc:: include/net/mac80211.h
  110. :functions: ieee80211_filter_flags
  111. The mac80211 workqueue
  112. ======================
  113. .. kernel-doc:: include/net/mac80211.h
  114. :doc: mac80211 workqueue
  115. .. kernel-doc:: include/net/mac80211.h
  116. :functions:
  117. ieee80211_queue_work
  118. ieee80211_queue_delayed_work