mac80211.rst 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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: ieee80211_hw
  25. .. kernel-doc:: include/net/mac80211.h
  26. :functions: ieee80211_hw_flags
  27. .. kernel-doc:: include/net/mac80211.h
  28. :functions: SET_IEEE80211_DEV
  29. .. kernel-doc:: include/net/mac80211.h
  30. :functions: SET_IEEE80211_PERM_ADDR
  31. .. kernel-doc:: include/net/mac80211.h
  32. :functions: ieee80211_ops
  33. .. kernel-doc:: include/net/mac80211.h
  34. :functions: ieee80211_alloc_hw
  35. .. kernel-doc:: include/net/mac80211.h
  36. :functions: ieee80211_register_hw
  37. .. kernel-doc:: include/net/mac80211.h
  38. :functions: ieee80211_unregister_hw
  39. .. kernel-doc:: include/net/mac80211.h
  40. :functions: ieee80211_free_hw
  41. PHY configuration
  42. =================
  43. TBD
  44. This chapter should describe PHY handling including start/stop callbacks
  45. and the various structures used.
  46. .. kernel-doc:: include/net/mac80211.h
  47. :functions: ieee80211_conf
  48. .. kernel-doc:: include/net/mac80211.h
  49. :functions: ieee80211_conf_flags
  50. Virtual interfaces
  51. ==================
  52. TBD
  53. This chapter should describe virtual interface basics that are relevant
  54. to the driver (VLANs, MGMT etc are not.) It should explain the use of
  55. the add_iface/remove_iface callbacks as well as the interface
  56. configuration callbacks.
  57. Things related to AP mode should be discussed there.
  58. Things related to supporting multiple interfaces should be in the
  59. appropriate chapter, a BIG FAT note should be here about this though and
  60. the recommendation to allow only a single interface in STA mode at
  61. first!
  62. .. kernel-doc:: include/net/mac80211.h
  63. :functions: ieee80211_vif
  64. Receive and transmit processing
  65. ===============================
  66. what should be here
  67. -------------------
  68. TBD
  69. This should describe the receive and transmit paths in mac80211/the
  70. drivers as well as transmit status handling.
  71. Frame format
  72. ------------
  73. .. kernel-doc:: include/net/mac80211.h
  74. :doc: Frame format
  75. Packet alignment
  76. ----------------
  77. .. kernel-doc:: net/mac80211/rx.c
  78. :doc: Packet alignment
  79. Calling into mac80211 from interrupts
  80. -------------------------------------
  81. .. kernel-doc:: include/net/mac80211.h
  82. :doc: Calling mac80211 from interrupts
  83. functions/definitions
  84. ---------------------
  85. .. kernel-doc:: include/net/mac80211.h
  86. :functions: ieee80211_rx_status
  87. .. kernel-doc:: include/net/mac80211.h
  88. :functions: mac80211_rx_flags
  89. .. kernel-doc:: include/net/mac80211.h
  90. :functions: mac80211_tx_info_flags
  91. .. kernel-doc:: include/net/mac80211.h
  92. :functions: mac80211_tx_control_flags
  93. .. kernel-doc:: include/net/mac80211.h
  94. :functions: mac80211_rate_control_flags
  95. .. kernel-doc:: include/net/mac80211.h
  96. :functions: ieee80211_tx_rate
  97. .. kernel-doc:: include/net/mac80211.h
  98. :functions: ieee80211_tx_info
  99. .. kernel-doc:: include/net/mac80211.h
  100. :functions: ieee80211_tx_info_clear_status
  101. .. kernel-doc:: include/net/mac80211.h
  102. :functions: ieee80211_rx
  103. .. kernel-doc:: include/net/mac80211.h
  104. :functions: ieee80211_rx_ni
  105. .. kernel-doc:: include/net/mac80211.h
  106. :functions: ieee80211_rx_irqsafe
  107. .. kernel-doc:: include/net/mac80211.h
  108. :functions: ieee80211_tx_status
  109. .. kernel-doc:: include/net/mac80211.h
  110. :functions: ieee80211_tx_status_ni
  111. .. kernel-doc:: include/net/mac80211.h
  112. :functions: ieee80211_tx_status_irqsafe
  113. .. kernel-doc:: include/net/mac80211.h
  114. :functions: ieee80211_rts_get
  115. .. kernel-doc:: include/net/mac80211.h
  116. :functions: ieee80211_rts_duration
  117. .. kernel-doc:: include/net/mac80211.h
  118. :functions: ieee80211_ctstoself_get
  119. .. kernel-doc:: include/net/mac80211.h
  120. :functions: ieee80211_ctstoself_duration
  121. .. kernel-doc:: include/net/mac80211.h
  122. :functions: ieee80211_generic_frame_duration
  123. .. kernel-doc:: include/net/mac80211.h
  124. :functions: ieee80211_wake_queue
  125. .. kernel-doc:: include/net/mac80211.h
  126. :functions: ieee80211_stop_queue
  127. .. kernel-doc:: include/net/mac80211.h
  128. :functions: ieee80211_wake_queues
  129. .. kernel-doc:: include/net/mac80211.h
  130. :functions: ieee80211_stop_queues
  131. .. kernel-doc:: include/net/mac80211.h
  132. :functions: ieee80211_queue_stopped
  133. Frame filtering
  134. ===============
  135. .. kernel-doc:: include/net/mac80211.h
  136. :doc: Frame filtering
  137. .. kernel-doc:: include/net/mac80211.h
  138. :functions: ieee80211_filter_flags
  139. The mac80211 workqueue
  140. ======================
  141. .. kernel-doc:: include/net/mac80211.h
  142. :doc: mac80211 workqueue
  143. .. kernel-doc:: include/net/mac80211.h
  144. :functions: ieee80211_queue_work
  145. .. kernel-doc:: include/net/mac80211.h
  146. :functions: ieee80211_queue_delayed_work