mac80211-advanced.rst 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. =============================
  2. mac80211 subsystem (advanced)
  3. =============================
  4. Information contained within this part of the book is of interest only
  5. for advanced interaction of mac80211 with drivers to exploit more
  6. hardware capabilities and improve performance.
  7. LED support
  8. ===========
  9. Mac80211 supports various ways of blinking LEDs. Wherever possible,
  10. device LEDs should be exposed as LED class devices and hooked up to the
  11. appropriate trigger, which will then be triggered appropriately by
  12. mac80211.
  13. .. kernel-doc:: include/net/mac80211.h
  14. :functions: ieee80211_get_tx_led_name
  15. .. kernel-doc:: include/net/mac80211.h
  16. :functions: ieee80211_get_rx_led_name
  17. .. kernel-doc:: include/net/mac80211.h
  18. :functions: ieee80211_get_assoc_led_name
  19. .. kernel-doc:: include/net/mac80211.h
  20. :functions: ieee80211_get_radio_led_name
  21. .. kernel-doc:: include/net/mac80211.h
  22. :functions: ieee80211_tpt_blink
  23. .. kernel-doc:: include/net/mac80211.h
  24. :functions: ieee80211_tpt_led_trigger_flags
  25. .. kernel-doc:: include/net/mac80211.h
  26. :functions: ieee80211_create_tpt_led_trigger
  27. Hardware crypto acceleration
  28. ============================
  29. .. kernel-doc:: include/net/mac80211.h
  30. :doc: Hardware crypto acceleration
  31. .. kernel-doc:: include/net/mac80211.h
  32. :functions: set_key_cmd
  33. .. kernel-doc:: include/net/mac80211.h
  34. :functions: ieee80211_key_conf
  35. .. kernel-doc:: include/net/mac80211.h
  36. :functions: ieee80211_key_flags
  37. .. kernel-doc:: include/net/mac80211.h
  38. :functions: ieee80211_get_tkip_p1k
  39. .. kernel-doc:: include/net/mac80211.h
  40. :functions: ieee80211_get_tkip_p1k_iv
  41. .. kernel-doc:: include/net/mac80211.h
  42. :functions: ieee80211_get_tkip_p2k
  43. Powersave support
  44. =================
  45. .. kernel-doc:: include/net/mac80211.h
  46. :doc: Powersave support
  47. Beacon filter support
  48. =====================
  49. .. kernel-doc:: include/net/mac80211.h
  50. :doc: Beacon filter support
  51. .. kernel-doc:: include/net/mac80211.h
  52. :functions: ieee80211_beacon_loss
  53. Multiple queues and QoS support
  54. ===============================
  55. TBD
  56. .. kernel-doc:: include/net/mac80211.h
  57. :functions: ieee80211_tx_queue_params
  58. Access point mode support
  59. =========================
  60. TBD
  61. Some parts of the if_conf should be discussed here instead
  62. Insert notes about VLAN interfaces with hw crypto here or in the hw
  63. crypto chapter.
  64. support for powersaving clients
  65. -------------------------------
  66. .. kernel-doc:: include/net/mac80211.h
  67. :doc: AP support for powersaving clients
  68. .. kernel-doc:: include/net/mac80211.h
  69. :functions: ieee80211_get_buffered_bc
  70. .. kernel-doc:: include/net/mac80211.h
  71. :functions: ieee80211_beacon_get
  72. .. kernel-doc:: include/net/mac80211.h
  73. :functions: ieee80211_sta_eosp
  74. .. kernel-doc:: include/net/mac80211.h
  75. :functions: ieee80211_frame_release_type
  76. .. kernel-doc:: include/net/mac80211.h
  77. :functions: ieee80211_sta_ps_transition
  78. .. kernel-doc:: include/net/mac80211.h
  79. :functions: ieee80211_sta_ps_transition_ni
  80. .. kernel-doc:: include/net/mac80211.h
  81. :functions: ieee80211_sta_set_buffered
  82. .. kernel-doc:: include/net/mac80211.h
  83. :functions: ieee80211_sta_block_awake
  84. Supporting multiple virtual interfaces
  85. ======================================
  86. TBD
  87. Note: WDS with identical MAC address should almost always be OK
  88. Insert notes about having multiple virtual interfaces with different MAC
  89. addresses here, note which configurations are supported by mac80211, add
  90. notes about supporting hw crypto with it.
  91. .. kernel-doc:: include/net/mac80211.h
  92. :functions: ieee80211_iterate_active_interfaces
  93. .. kernel-doc:: include/net/mac80211.h
  94. :functions: ieee80211_iterate_active_interfaces_atomic
  95. Station handling
  96. ================
  97. TODO
  98. .. kernel-doc:: include/net/mac80211.h
  99. :functions: ieee80211_sta
  100. .. kernel-doc:: include/net/mac80211.h
  101. :functions: sta_notify_cmd
  102. .. kernel-doc:: include/net/mac80211.h
  103. :functions: ieee80211_find_sta
  104. .. kernel-doc:: include/net/mac80211.h
  105. :functions: ieee80211_find_sta_by_ifaddr
  106. Hardware scan offload
  107. =====================
  108. TBD
  109. .. kernel-doc:: include/net/mac80211.h
  110. :functions: ieee80211_scan_completed
  111. Aggregation
  112. ===========
  113. TX A-MPDU aggregation
  114. ---------------------
  115. .. kernel-doc:: net/mac80211/agg-tx.c
  116. :doc: TX A-MPDU aggregation
  117. .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c
  118. RX A-MPDU aggregation
  119. ---------------------
  120. .. kernel-doc:: net/mac80211/agg-rx.c
  121. :doc: RX A-MPDU aggregation
  122. .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c
  123. .. kernel-doc:: include/net/mac80211.h
  124. :functions: ieee80211_ampdu_mlme_action
  125. Spatial Multiplexing Powersave (SMPS)
  126. =====================================
  127. .. kernel-doc:: include/net/mac80211.h
  128. :doc: Spatial multiplexing power save
  129. .. kernel-doc:: include/net/mac80211.h
  130. :functions: ieee80211_request_smps
  131. .. kernel-doc:: include/net/mac80211.h
  132. :functions: ieee80211_smps_mode
  133. TBD
  134. This part of the book describes the rate control algorithm interface and
  135. how it relates to mac80211 and drivers.
  136. Rate Control API
  137. ================
  138. TBD
  139. .. kernel-doc:: include/net/mac80211.h
  140. :functions: ieee80211_start_tx_ba_session
  141. .. kernel-doc:: include/net/mac80211.h
  142. :functions: ieee80211_start_tx_ba_cb_irqsafe
  143. .. kernel-doc:: include/net/mac80211.h
  144. :functions: ieee80211_stop_tx_ba_session
  145. .. kernel-doc:: include/net/mac80211.h
  146. :functions: ieee80211_stop_tx_ba_cb_irqsafe
  147. .. kernel-doc:: include/net/mac80211.h
  148. :functions: ieee80211_rate_control_changed
  149. .. kernel-doc:: include/net/mac80211.h
  150. :functions: ieee80211_tx_rate_control
  151. .. kernel-doc:: include/net/mac80211.h
  152. :functions: rate_control_send_low
  153. TBD
  154. This part of the book describes mac80211 internals.
  155. Key handling
  156. ============
  157. Key handling basics
  158. -------------------
  159. .. kernel-doc:: net/mac80211/key.c
  160. :doc: Key handling basics
  161. MORE TBD
  162. --------
  163. TBD
  164. Receive processing
  165. ==================
  166. TBD
  167. Transmit processing
  168. ===================
  169. TBD
  170. Station info handling
  171. =====================
  172. Programming information
  173. -----------------------
  174. .. kernel-doc:: net/mac80211/sta_info.h
  175. :functions: sta_info
  176. .. kernel-doc:: net/mac80211/sta_info.h
  177. :functions: ieee80211_sta_info_flags
  178. STA information lifetime rules
  179. ------------------------------
  180. .. kernel-doc:: net/mac80211/sta_info.c
  181. :doc: STA information lifetime rules
  182. Aggregation
  183. ===========
  184. .. kernel-doc:: net/mac80211/sta_info.h
  185. :functions: sta_ampdu_mlme
  186. .. kernel-doc:: net/mac80211/sta_info.h
  187. :functions: tid_ampdu_tx
  188. .. kernel-doc:: net/mac80211/sta_info.h
  189. :functions: tid_ampdu_rx
  190. Synchronisation
  191. ===============
  192. TBD
  193. Locking, lots of RCU