Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[cascardo/linux.git] / Documentation / 80211 / mac80211-advanced.rst
1 =============================
2 mac80211 subsystem (advanced)
3 =============================
4
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.
8
9 LED support
10 ===========
11
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.
16
17 .. kernel-doc:: include/net/mac80211.h
18    :functions: ieee80211_get_tx_led_name
19
20 .. kernel-doc:: include/net/mac80211.h
21    :functions: ieee80211_get_rx_led_name
22
23 .. kernel-doc:: include/net/mac80211.h
24    :functions: ieee80211_get_assoc_led_name
25
26 .. kernel-doc:: include/net/mac80211.h
27    :functions: ieee80211_get_radio_led_name
28
29 .. kernel-doc:: include/net/mac80211.h
30    :functions: ieee80211_tpt_blink
31
32 .. kernel-doc:: include/net/mac80211.h
33    :functions: ieee80211_tpt_led_trigger_flags
34
35 .. kernel-doc:: include/net/mac80211.h
36    :functions: ieee80211_create_tpt_led_trigger
37
38 Hardware crypto acceleration
39 ============================
40
41 .. kernel-doc:: include/net/mac80211.h
42    :doc: Hardware crypto acceleration
43
44 .. kernel-doc:: include/net/mac80211.h
45    :functions: set_key_cmd
46
47 .. kernel-doc:: include/net/mac80211.h
48    :functions: ieee80211_key_conf
49
50 .. kernel-doc:: include/net/mac80211.h
51    :functions: ieee80211_key_flags
52
53 .. kernel-doc:: include/net/mac80211.h
54    :functions: ieee80211_get_tkip_p1k
55
56 .. kernel-doc:: include/net/mac80211.h
57    :functions: ieee80211_get_tkip_p1k_iv
58
59 .. kernel-doc:: include/net/mac80211.h
60    :functions: ieee80211_get_tkip_p2k
61
62 Powersave support
63 =================
64
65 .. kernel-doc:: include/net/mac80211.h
66    :doc: Powersave support
67
68 Beacon filter support
69 =====================
70
71 .. kernel-doc:: include/net/mac80211.h
72    :doc: Beacon filter support
73
74 .. kernel-doc:: include/net/mac80211.h
75    :functions: ieee80211_beacon_loss
76
77 Multiple queues and QoS support
78 ===============================
79
80 TBD
81
82 .. kernel-doc:: include/net/mac80211.h
83    :functions: ieee80211_tx_queue_params
84
85 Access point mode support
86 =========================
87
88 TBD
89
90 Some parts of the if_conf should be discussed here instead
91
92 Insert notes about VLAN interfaces with hw crypto here or in the hw
93 crypto chapter.
94
95 support for powersaving clients
96 -------------------------------
97
98 .. kernel-doc:: include/net/mac80211.h
99    :doc: AP support for powersaving clients
100
101 .. kernel-doc:: include/net/mac80211.h
102    :functions: ieee80211_get_buffered_bc
103
104 .. kernel-doc:: include/net/mac80211.h
105    :functions: ieee80211_beacon_get
106
107 .. kernel-doc:: include/net/mac80211.h
108    :functions: ieee80211_sta_eosp
109
110 .. kernel-doc:: include/net/mac80211.h
111    :functions: ieee80211_frame_release_type
112
113 .. kernel-doc:: include/net/mac80211.h
114    :functions: ieee80211_sta_ps_transition
115
116 .. kernel-doc:: include/net/mac80211.h
117    :functions: ieee80211_sta_ps_transition_ni
118
119 .. kernel-doc:: include/net/mac80211.h
120    :functions: ieee80211_sta_set_buffered
121
122 .. kernel-doc:: include/net/mac80211.h
123    :functions: ieee80211_sta_block_awake
124
125 Supporting multiple virtual interfaces
126 ======================================
127
128 TBD
129
130 Note: WDS with identical MAC address should almost always be OK
131
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.
135
136 .. kernel-doc:: include/net/mac80211.h
137    :functions: ieee80211_iterate_active_interfaces
138
139 .. kernel-doc:: include/net/mac80211.h
140    :functions: ieee80211_iterate_active_interfaces_atomic
141
142 Station handling
143 ================
144
145 TODO
146
147 .. kernel-doc:: include/net/mac80211.h
148    :functions: ieee80211_sta
149
150 .. kernel-doc:: include/net/mac80211.h
151    :functions: sta_notify_cmd
152
153 .. kernel-doc:: include/net/mac80211.h
154    :functions: ieee80211_find_sta
155
156 .. kernel-doc:: include/net/mac80211.h
157    :functions: ieee80211_find_sta_by_ifaddr
158
159 Hardware scan offload
160 =====================
161
162 TBD
163
164 .. kernel-doc:: include/net/mac80211.h
165    :functions: ieee80211_scan_completed
166
167 Aggregation
168 ===========
169
170 TX A-MPDU aggregation
171 ---------------------
172
173 .. kernel-doc:: net/mac80211/agg-tx.c
174    :doc: TX A-MPDU aggregation
175
176 .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c
177
178 RX A-MPDU aggregation
179 ---------------------
180
181 .. kernel-doc:: net/mac80211/agg-rx.c
182    :doc: RX A-MPDU aggregation
183
184 .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c
185
186 .. kernel-doc:: include/net/mac80211.h
187    :functions: ieee80211_ampdu_mlme_action
188
189 Spatial Multiplexing Powersave (SMPS)
190 =====================================
191
192 .. kernel-doc:: include/net/mac80211.h
193    :doc: Spatial multiplexing power save
194
195 .. kernel-doc:: include/net/mac80211.h
196    :functions: ieee80211_request_smps
197
198 .. kernel-doc:: include/net/mac80211.h
199    :functions: ieee80211_smps_mode
200
201 TBD
202
203 This part of the book describes the rate control algorithm interface and
204 how it relates to mac80211 and drivers.
205
206 Rate Control API
207 ================
208
209 TBD
210
211 .. kernel-doc:: include/net/mac80211.h
212    :functions: ieee80211_start_tx_ba_session
213
214 .. kernel-doc:: include/net/mac80211.h
215    :functions: ieee80211_start_tx_ba_cb_irqsafe
216
217 .. kernel-doc:: include/net/mac80211.h
218    :functions: ieee80211_stop_tx_ba_session
219
220 .. kernel-doc:: include/net/mac80211.h
221    :functions: ieee80211_stop_tx_ba_cb_irqsafe
222
223 .. kernel-doc:: include/net/mac80211.h
224    :functions: ieee80211_rate_control_changed
225
226 .. kernel-doc:: include/net/mac80211.h
227    :functions: ieee80211_tx_rate_control
228
229 .. kernel-doc:: include/net/mac80211.h
230    :functions: rate_control_send_low
231
232 TBD
233
234 This part of the book describes mac80211 internals.
235
236 Key handling
237 ============
238
239 Key handling basics
240 -------------------
241
242 .. kernel-doc:: net/mac80211/key.c
243    :doc: Key handling basics
244
245 MORE TBD
246 --------
247
248 TBD
249
250 Receive processing
251 ==================
252
253 TBD
254
255 Transmit processing
256 ===================
257
258 TBD
259
260 Station info handling
261 =====================
262
263 Programming information
264 -----------------------
265
266 .. kernel-doc:: net/mac80211/sta_info.h
267    :functions: sta_info
268
269 .. kernel-doc:: net/mac80211/sta_info.h
270    :functions: ieee80211_sta_info_flags
271
272 STA information lifetime rules
273 ------------------------------
274
275 .. kernel-doc:: net/mac80211/sta_info.c
276    :doc: STA information lifetime rules
277
278 Aggregation
279 ===========
280
281 .. kernel-doc:: net/mac80211/sta_info.h
282    :functions: sta_ampdu_mlme
283
284 .. kernel-doc:: net/mac80211/sta_info.h
285    :functions: tid_ampdu_tx
286
287 .. kernel-doc:: net/mac80211/sta_info.h
288    :functions: tid_ampdu_rx
289
290 Synchronisation
291 ===============
292
293 TBD
294
295 Locking, lots of RCU