treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / driver-api / 80211 / mac80211-advanced.rst
blob9f1c5bb7ac35827605a9d7ba2da9adee21e84d29
1 =============================
2 mac80211 subsystem (advanced)
3 =============================
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.
9 LED support
10 ===========
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.
17 .. kernel-doc:: include/net/mac80211.h
18    :functions: ieee80211_get_tx_led_name
20 .. kernel-doc:: include/net/mac80211.h
21    :functions: ieee80211_get_rx_led_name
23 .. kernel-doc:: include/net/mac80211.h
24    :functions: ieee80211_get_assoc_led_name
26 .. kernel-doc:: include/net/mac80211.h
27    :functions: ieee80211_get_radio_led_name
29 .. kernel-doc:: include/net/mac80211.h
30    :functions: ieee80211_tpt_blink
32 .. kernel-doc:: include/net/mac80211.h
33    :functions: ieee80211_tpt_led_trigger_flags
35 .. kernel-doc:: include/net/mac80211.h
36    :functions: ieee80211_create_tpt_led_trigger
38 Hardware crypto acceleration
39 ============================
41 .. kernel-doc:: include/net/mac80211.h
42    :doc: Hardware crypto acceleration
44 .. kernel-doc:: include/net/mac80211.h
45    :functions: set_key_cmd
47 .. kernel-doc:: include/net/mac80211.h
48    :functions: ieee80211_key_conf
50 .. kernel-doc:: include/net/mac80211.h
51    :functions: ieee80211_key_flags
53 .. kernel-doc:: include/net/mac80211.h
54    :functions: ieee80211_get_tkip_p1k
56 .. kernel-doc:: include/net/mac80211.h
57    :functions: ieee80211_get_tkip_p1k_iv
59 .. kernel-doc:: include/net/mac80211.h
60    :functions: ieee80211_get_tkip_p2k
62 Powersave support
63 =================
65 .. kernel-doc:: include/net/mac80211.h
66    :doc: Powersave support
68 Beacon filter support
69 =====================
71 .. kernel-doc:: include/net/mac80211.h
72    :doc: Beacon filter support
74 .. kernel-doc:: include/net/mac80211.h
75    :functions: ieee80211_beacon_loss
77 Multiple queues and QoS support
78 ===============================
80 TBD
82 .. kernel-doc:: include/net/mac80211.h
83    :functions: ieee80211_tx_queue_params
85 Access point mode support
86 =========================
88 TBD
90 Some parts of the if_conf should be discussed here instead
92 Insert notes about VLAN interfaces with hw crypto here or in the hw
93 crypto chapter.
95 support for powersaving clients
96 -------------------------------
98 .. kernel-doc:: include/net/mac80211.h
99    :doc: AP support for powersaving clients
101 .. kernel-doc:: include/net/mac80211.h
102    :functions: ieee80211_get_buffered_bc
104 .. kernel-doc:: include/net/mac80211.h
105    :functions: ieee80211_beacon_get
107 .. kernel-doc:: include/net/mac80211.h
108    :functions: ieee80211_sta_eosp
110 .. kernel-doc:: include/net/mac80211.h
111    :functions: ieee80211_frame_release_type
113 .. kernel-doc:: include/net/mac80211.h
114    :functions: ieee80211_sta_ps_transition
116 .. kernel-doc:: include/net/mac80211.h
117    :functions: ieee80211_sta_ps_transition_ni
119 .. kernel-doc:: include/net/mac80211.h
120    :functions: ieee80211_sta_set_buffered
122 .. kernel-doc:: include/net/mac80211.h
123    :functions: ieee80211_sta_block_awake
125 Supporting multiple virtual interfaces
126 ======================================
130 Note: WDS with identical MAC address should almost always be OK
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.
136 .. kernel-doc:: include/net/mac80211.h
137    :functions: ieee80211_iterate_active_interfaces
139 .. kernel-doc:: include/net/mac80211.h
140    :functions: ieee80211_iterate_active_interfaces_atomic
142 Station handling
143 ================
145 TODO
147 .. kernel-doc:: include/net/mac80211.h
148    :functions: ieee80211_sta
150 .. kernel-doc:: include/net/mac80211.h
151    :functions: sta_notify_cmd
153 .. kernel-doc:: include/net/mac80211.h
154    :functions: ieee80211_find_sta
156 .. kernel-doc:: include/net/mac80211.h
157    :functions: ieee80211_find_sta_by_ifaddr
159 Hardware scan offload
160 =====================
164 .. kernel-doc:: include/net/mac80211.h
165    :functions: ieee80211_scan_completed
167 Aggregation
168 ===========
170 TX A-MPDU aggregation
171 ---------------------
173 .. kernel-doc:: net/mac80211/agg-tx.c
174    :doc: TX A-MPDU aggregation
176 .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c
178 RX A-MPDU aggregation
179 ---------------------
181 .. kernel-doc:: net/mac80211/agg-rx.c
182    :doc: RX A-MPDU aggregation
184 .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c
186 .. kernel-doc:: include/net/mac80211.h
187    :functions: ieee80211_ampdu_mlme_action
189 Spatial Multiplexing Powersave (SMPS)
190 =====================================
192 .. kernel-doc:: include/net/mac80211.h
193    :doc: Spatial multiplexing power save
195 .. kernel-doc:: include/net/mac80211.h
196    :functions: ieee80211_request_smps
198 .. kernel-doc:: include/net/mac80211.h
199    :functions: ieee80211_smps_mode
203 This part of the book describes the rate control algorithm interface and
204 how it relates to mac80211 and drivers.
206 Rate Control API
207 ================
211 .. kernel-doc:: include/net/mac80211.h
212    :functions: ieee80211_start_tx_ba_session
214 .. kernel-doc:: include/net/mac80211.h
215    :functions: ieee80211_start_tx_ba_cb_irqsafe
217 .. kernel-doc:: include/net/mac80211.h
218    :functions: ieee80211_stop_tx_ba_session
220 .. kernel-doc:: include/net/mac80211.h
221    :functions: ieee80211_stop_tx_ba_cb_irqsafe
223 .. kernel-doc:: include/net/mac80211.h
224    :functions: ieee80211_rate_control_changed
226 .. kernel-doc:: include/net/mac80211.h
227    :functions: ieee80211_tx_rate_control
231 This part of the book describes mac80211 internals.
233 Key handling
234 ============
236 Key handling basics
237 -------------------
239 .. kernel-doc:: net/mac80211/key.c
240    :doc: Key handling basics
242 MORE TBD
243 --------
247 Receive processing
248 ==================
252 Transmit processing
253 ===================
257 Station info handling
258 =====================
260 Programming information
261 -----------------------
263 .. kernel-doc:: net/mac80211/sta_info.h
264    :functions: sta_info
266 .. kernel-doc:: net/mac80211/sta_info.h
267    :functions: ieee80211_sta_info_flags
269 STA information lifetime rules
270 ------------------------------
272 .. kernel-doc:: net/mac80211/sta_info.c
273    :doc: STA information lifetime rules
275 Aggregation
276 ===========
278 .. kernel-doc:: net/mac80211/sta_info.h
279    :functions: sta_ampdu_mlme
281 .. kernel-doc:: net/mac80211/sta_info.h
282    :functions: tid_ampdu_tx
284 .. kernel-doc:: net/mac80211/sta_info.h
285    :functions: tid_ampdu_rx
287 Synchronisation
288 ===============
292 Locking, lots of RCU