blob: 70a89b2163c227cc1acf6eaf1d29470363895288 [file] [log] [blame]
Johannes Berg819bf592016-10-11 14:56:53 +02001=============================
2mac80211 subsystem (advanced)
3=============================
4
5Information contained within this part of the book is of interest only
6for advanced interaction of mac80211 with drivers to exploit more
7hardware capabilities and improve performance.
8
9LED support
10===========
11
12Mac80211 supports various ways of blinking LEDs. Wherever possible,
13device LEDs should be exposed as LED class devices and hooked up to the
14appropriate trigger, which will then be triggered appropriately by
15mac80211.
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
38Hardware 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
62Powersave support
63=================
64
65.. kernel-doc:: include/net/mac80211.h
66 :doc: Powersave support
67
68Beacon 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
77Multiple queues and QoS support
78===============================
79
80TBD
81
82.. kernel-doc:: include/net/mac80211.h
83 :functions: ieee80211_tx_queue_params
84
85Access point mode support
86=========================
87
88TBD
89
90Some parts of the if_conf should be discussed here instead
91
92Insert notes about VLAN interfaces with hw crypto here or in the hw
93crypto chapter.
94
95support 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
125Supporting multiple virtual interfaces
126======================================
127
128TBD
129
130Note: WDS with identical MAC address should almost always be OK
131
132Insert notes about having multiple virtual interfaces with different MAC
133addresses here, note which configurations are supported by mac80211, add
134notes 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
142Station handling
143================
144
145TODO
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
159Hardware scan offload
160=====================
161
162TBD
163
164.. kernel-doc:: include/net/mac80211.h
165 :functions: ieee80211_scan_completed
166
167Aggregation
168===========
169
170TX 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
178RX 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
189Spatial 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
201TBD
202
203This part of the book describes the rate control algorithm interface and
204how it relates to mac80211 and drivers.
205
206Rate Control API
207================
208
209TBD
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
232TBD
233
234This part of the book describes mac80211 internals.
235
236Key handling
237============
238
239Key handling basics
240-------------------
241
242.. kernel-doc:: net/mac80211/key.c
243 :doc: Key handling basics
244
245MORE TBD
246--------
247
248TBD
249
250Receive processing
251==================
252
253TBD
254
255Transmit processing
256===================
257
258TBD
259
260Station info handling
261=====================
262
263Programming 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
272STA information lifetime rules
273------------------------------
274
275.. kernel-doc:: net/mac80211/sta_info.c
276 :doc: STA information lifetime rules
277
278Aggregation
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
290Synchronisation
291===============
292
293TBD
294
295Locking, lots of RCU