diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-14 17:11:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-10-14 17:11:22 -0400 |
commit | d4d24d2d0a7ea3b62efd7336bfc2344e29b36bc5 (patch) | |
tree | 051eb75f8c5cfad65db8036d976c24a7fdc78325 | |
parent | ac9ef8cd075a1efee13036908a99a4bd5f9d4b8c (diff) | |
parent | 819bf593767c0966f320c51c6ed3f3835062abc8 (diff) |
Merge tag 'docs-4.9-2' of git://git.lwn.net/linux
Pull one more documentation update from Jonathan Corbet:
"A single commit converting the mac80211 DocBook template over to
Sphinx. Only 32 more to go..."
* tag 'docs-4.9-2' of git://git.lwn.net/linux:
docs-rst: sphinxify 802.11 documentation
-rw-r--r-- | Documentation/80211/cfg80211.rst | 345 | ||||
-rw-r--r-- | Documentation/80211/conf.py | 5 | ||||
-rw-r--r-- | Documentation/80211/index.rst | 17 | ||||
-rw-r--r-- | Documentation/80211/introduction.rst | 17 | ||||
-rw-r--r-- | Documentation/80211/mac80211-advanced.rst | 295 | ||||
-rw-r--r-- | Documentation/80211/mac80211.rst | 216 | ||||
-rw-r--r-- | Documentation/DocBook/80211.tmpl | 584 | ||||
-rw-r--r-- | Documentation/DocBook/Makefile | 2 | ||||
-rw-r--r-- | Documentation/index.rst | 1 | ||||
-rw-r--r-- | include/net/cfg80211.h | 77 |
10 files changed, 939 insertions, 620 deletions
diff --git a/Documentation/80211/cfg80211.rst b/Documentation/80211/cfg80211.rst new file mode 100644 index 000000000000..b1e149ea6fee --- /dev/null +++ b/Documentation/80211/cfg80211.rst | |||
@@ -0,0 +1,345 @@ | |||
1 | ================== | ||
2 | cfg80211 subsystem | ||
3 | ================== | ||
4 | |||
5 | Device registration | ||
6 | =================== | ||
7 | |||
8 | .. kernel-doc:: include/net/cfg80211.h | ||
9 | :doc: Device registration | ||
10 | |||
11 | .. kernel-doc:: include/net/cfg80211.h | ||
12 | :functions: ieee80211_channel_flags | ||
13 | |||
14 | .. kernel-doc:: include/net/cfg80211.h | ||
15 | :functions: ieee80211_channel | ||
16 | |||
17 | .. kernel-doc:: include/net/cfg80211.h | ||
18 | :functions: ieee80211_rate_flags | ||
19 | |||
20 | .. kernel-doc:: include/net/cfg80211.h | ||
21 | :functions: ieee80211_rate | ||
22 | |||
23 | .. kernel-doc:: include/net/cfg80211.h | ||
24 | :functions: ieee80211_sta_ht_cap | ||
25 | |||
26 | .. kernel-doc:: include/net/cfg80211.h | ||
27 | :functions: ieee80211_supported_band | ||
28 | |||
29 | .. kernel-doc:: include/net/cfg80211.h | ||
30 | :functions: cfg80211_signal_type | ||
31 | |||
32 | .. kernel-doc:: include/net/cfg80211.h | ||
33 | :functions: wiphy_params_flags | ||
34 | |||
35 | .. kernel-doc:: include/net/cfg80211.h | ||
36 | :functions: wiphy_flags | ||
37 | |||
38 | .. kernel-doc:: include/net/cfg80211.h | ||
39 | :functions: wiphy | ||
40 | |||
41 | .. kernel-doc:: include/net/cfg80211.h | ||
42 | :functions: wireless_dev | ||
43 | |||
44 | .. kernel-doc:: include/net/cfg80211.h | ||
45 | :functions: wiphy_new | ||
46 | |||
47 | .. kernel-doc:: include/net/cfg80211.h | ||
48 | :functions: wiphy_register | ||
49 | |||
50 | .. kernel-doc:: include/net/cfg80211.h | ||
51 | :functions: wiphy_unregister | ||
52 | |||
53 | .. kernel-doc:: include/net/cfg80211.h | ||
54 | :functions: wiphy_free | ||
55 | |||
56 | .. kernel-doc:: include/net/cfg80211.h | ||
57 | :functions: wiphy_name | ||
58 | |||
59 | .. kernel-doc:: include/net/cfg80211.h | ||
60 | :functions: wiphy_dev | ||
61 | |||
62 | .. kernel-doc:: include/net/cfg80211.h | ||
63 | :functions: wiphy_priv | ||
64 | |||
65 | .. kernel-doc:: include/net/cfg80211.h | ||
66 | :functions: priv_to_wiphy | ||
67 | |||
68 | .. kernel-doc:: include/net/cfg80211.h | ||
69 | :functions: set_wiphy_dev | ||
70 | |||
71 | .. kernel-doc:: include/net/cfg80211.h | ||
72 | :functions: wdev_priv | ||
73 | |||
74 | .. kernel-doc:: include/net/cfg80211.h | ||
75 | :functions: ieee80211_iface_limit | ||
76 | |||
77 | .. kernel-doc:: include/net/cfg80211.h | ||
78 | :functions: ieee80211_iface_combination | ||
79 | |||
80 | .. kernel-doc:: include/net/cfg80211.h | ||
81 | :functions: cfg80211_check_combinations | ||
82 | |||
83 | Actions and configuration | ||
84 | ========================= | ||
85 | |||
86 | .. kernel-doc:: include/net/cfg80211.h | ||
87 | :doc: Actions and configuration | ||
88 | |||
89 | .. kernel-doc:: include/net/cfg80211.h | ||
90 | :functions: cfg80211_ops | ||
91 | |||
92 | .. kernel-doc:: include/net/cfg80211.h | ||
93 | :functions: vif_params | ||
94 | |||
95 | .. kernel-doc:: include/net/cfg80211.h | ||
96 | :functions: key_params | ||
97 | |||
98 | .. kernel-doc:: include/net/cfg80211.h | ||
99 | :functions: survey_info_flags | ||
100 | |||
101 | .. kernel-doc:: include/net/cfg80211.h | ||
102 | :functions: survey_info | ||
103 | |||
104 | .. kernel-doc:: include/net/cfg80211.h | ||
105 | :functions: cfg80211_beacon_data | ||
106 | |||
107 | .. kernel-doc:: include/net/cfg80211.h | ||
108 | :functions: cfg80211_ap_settings | ||
109 | |||
110 | .. kernel-doc:: include/net/cfg80211.h | ||
111 | :functions: station_parameters | ||
112 | |||
113 | .. kernel-doc:: include/net/cfg80211.h | ||
114 | :functions: rate_info_flags | ||
115 | |||
116 | .. kernel-doc:: include/net/cfg80211.h | ||
117 | :functions: rate_info | ||
118 | |||
119 | .. kernel-doc:: include/net/cfg80211.h | ||
120 | :functions: station_info | ||
121 | |||
122 | .. kernel-doc:: include/net/cfg80211.h | ||
123 | :functions: monitor_flags | ||
124 | |||
125 | .. kernel-doc:: include/net/cfg80211.h | ||
126 | :functions: mpath_info_flags | ||
127 | |||
128 | .. kernel-doc:: include/net/cfg80211.h | ||
129 | :functions: mpath_info | ||
130 | |||
131 | .. kernel-doc:: include/net/cfg80211.h | ||
132 | :functions: bss_parameters | ||
133 | |||
134 | .. kernel-doc:: include/net/cfg80211.h | ||
135 | :functions: ieee80211_txq_params | ||
136 | |||
137 | .. kernel-doc:: include/net/cfg80211.h | ||
138 | :functions: cfg80211_crypto_settings | ||
139 | |||
140 | .. kernel-doc:: include/net/cfg80211.h | ||
141 | :functions: cfg80211_auth_request | ||
142 | |||
143 | .. kernel-doc:: include/net/cfg80211.h | ||
144 | :functions: cfg80211_assoc_request | ||
145 | |||
146 | .. kernel-doc:: include/net/cfg80211.h | ||
147 | :functions: cfg80211_deauth_request | ||
148 | |||
149 | .. kernel-doc:: include/net/cfg80211.h | ||
150 | :functions: cfg80211_disassoc_request | ||
151 | |||
152 | .. kernel-doc:: include/net/cfg80211.h | ||
153 | :functions: cfg80211_ibss_params | ||
154 | |||
155 | .. kernel-doc:: include/net/cfg80211.h | ||
156 | :functions: cfg80211_connect_params | ||
157 | |||
158 | .. kernel-doc:: include/net/cfg80211.h | ||
159 | :functions: cfg80211_pmksa | ||
160 | |||
161 | .. kernel-doc:: include/net/cfg80211.h | ||
162 | :functions: cfg80211_rx_mlme_mgmt | ||
163 | |||
164 | .. kernel-doc:: include/net/cfg80211.h | ||
165 | :functions: cfg80211_auth_timeout | ||
166 | |||
167 | .. kernel-doc:: include/net/cfg80211.h | ||
168 | :functions: cfg80211_rx_assoc_resp | ||
169 | |||
170 | .. kernel-doc:: include/net/cfg80211.h | ||
171 | :functions: cfg80211_assoc_timeout | ||
172 | |||
173 | .. kernel-doc:: include/net/cfg80211.h | ||
174 | :functions: cfg80211_tx_mlme_mgmt | ||
175 | |||
176 | .. kernel-doc:: include/net/cfg80211.h | ||
177 | :functions: cfg80211_ibss_joined | ||
178 | |||
179 | .. kernel-doc:: include/net/cfg80211.h | ||
180 | :functions: cfg80211_connect_result | ||
181 | |||
182 | .. kernel-doc:: include/net/cfg80211.h | ||
183 | :functions: cfg80211_connect_bss | ||
184 | |||
185 | .. kernel-doc:: include/net/cfg80211.h | ||
186 | :functions: cfg80211_connect_timeout | ||
187 | |||
188 | .. kernel-doc:: include/net/cfg80211.h | ||
189 | :functions: cfg80211_roamed | ||
190 | |||
191 | .. kernel-doc:: include/net/cfg80211.h | ||
192 | :functions: cfg80211_disconnected | ||
193 | |||
194 | .. kernel-doc:: include/net/cfg80211.h | ||
195 | :functions: cfg80211_ready_on_channel | ||
196 | |||
197 | .. kernel-doc:: include/net/cfg80211.h | ||
198 | :functions: cfg80211_remain_on_channel_expired | ||
199 | |||
200 | .. kernel-doc:: include/net/cfg80211.h | ||
201 | :functions: cfg80211_new_sta | ||
202 | |||
203 | .. kernel-doc:: include/net/cfg80211.h | ||
204 | :functions: cfg80211_rx_mgmt | ||
205 | |||
206 | .. kernel-doc:: include/net/cfg80211.h | ||
207 | :functions: cfg80211_mgmt_tx_status | ||
208 | |||
209 | .. kernel-doc:: include/net/cfg80211.h | ||
210 | :functions: cfg80211_cqm_rssi_notify | ||
211 | |||
212 | .. kernel-doc:: include/net/cfg80211.h | ||
213 | :functions: cfg80211_cqm_pktloss_notify | ||
214 | |||
215 | .. kernel-doc:: include/net/cfg80211.h | ||
216 | :functions: cfg80211_michael_mic_failure | ||
217 | |||
218 | Scanning and BSS list handling | ||
219 | ============================== | ||
220 | |||
221 | .. kernel-doc:: include/net/cfg80211.h | ||
222 | :doc: Scanning and BSS list handling | ||
223 | |||
224 | .. kernel-doc:: include/net/cfg80211.h | ||
225 | :functions: cfg80211_ssid | ||
226 | |||
227 | .. kernel-doc:: include/net/cfg80211.h | ||
228 | :functions: cfg80211_scan_request | ||
229 | |||
230 | .. kernel-doc:: include/net/cfg80211.h | ||
231 | :functions: cfg80211_scan_done | ||
232 | |||
233 | .. kernel-doc:: include/net/cfg80211.h | ||
234 | :functions: cfg80211_bss | ||
235 | |||
236 | .. kernel-doc:: include/net/cfg80211.h | ||
237 | :functions: cfg80211_inform_bss | ||
238 | |||
239 | .. kernel-doc:: include/net/cfg80211.h | ||
240 | :functions: cfg80211_inform_bss_frame_data | ||
241 | |||
242 | .. kernel-doc:: include/net/cfg80211.h | ||
243 | :functions: cfg80211_inform_bss_data | ||
244 | |||
245 | .. kernel-doc:: include/net/cfg80211.h | ||
246 | :functions: cfg80211_unlink_bss | ||
247 | |||
248 | .. kernel-doc:: include/net/cfg80211.h | ||
249 | :functions: cfg80211_find_ie | ||
250 | |||
251 | .. kernel-doc:: include/net/cfg80211.h | ||
252 | :functions: ieee80211_bss_get_ie | ||
253 | |||
254 | Utility functions | ||
255 | ================= | ||
256 | |||
257 | .. kernel-doc:: include/net/cfg80211.h | ||
258 | :doc: Utility functions | ||
259 | |||
260 | .. kernel-doc:: include/net/cfg80211.h | ||
261 | :functions: ieee80211_channel_to_frequency | ||
262 | |||
263 | .. kernel-doc:: include/net/cfg80211.h | ||
264 | :functions: ieee80211_frequency_to_channel | ||
265 | |||
266 | .. kernel-doc:: include/net/cfg80211.h | ||
267 | :functions: ieee80211_get_channel | ||
268 | |||
269 | .. kernel-doc:: include/net/cfg80211.h | ||
270 | :functions: ieee80211_get_response_rate | ||
271 | |||
272 | .. kernel-doc:: include/net/cfg80211.h | ||
273 | :functions: ieee80211_hdrlen | ||
274 | |||
275 | .. kernel-doc:: include/net/cfg80211.h | ||
276 | :functions: ieee80211_get_hdrlen_from_skb | ||
277 | |||
278 | .. kernel-doc:: include/net/cfg80211.h | ||
279 | :functions: ieee80211_radiotap_iterator | ||
280 | |||
281 | Data path helpers | ||
282 | ================= | ||
283 | |||
284 | .. kernel-doc:: include/net/cfg80211.h | ||
285 | :doc: Data path helpers | ||
286 | |||
287 | .. kernel-doc:: include/net/cfg80211.h | ||
288 | :functions: ieee80211_data_to_8023 | ||
289 | |||
290 | .. kernel-doc:: include/net/cfg80211.h | ||
291 | :functions: ieee80211_data_from_8023 | ||
292 | |||
293 | .. kernel-doc:: include/net/cfg80211.h | ||
294 | :functions: ieee80211_amsdu_to_8023s | ||
295 | |||
296 | .. kernel-doc:: include/net/cfg80211.h | ||
297 | :functions: cfg80211_classify8021d | ||
298 | |||
299 | Regulatory enforcement infrastructure | ||
300 | ===================================== | ||
301 | |||
302 | .. kernel-doc:: include/net/cfg80211.h | ||
303 | :doc: Regulatory enforcement infrastructure | ||
304 | |||
305 | .. kernel-doc:: include/net/cfg80211.h | ||
306 | :functions: regulatory_hint | ||
307 | |||
308 | .. kernel-doc:: include/net/cfg80211.h | ||
309 | :functions: wiphy_apply_custom_regulatory | ||
310 | |||
311 | .. kernel-doc:: include/net/cfg80211.h | ||
312 | :functions: freq_reg_info | ||
313 | |||
314 | RFkill integration | ||
315 | ================== | ||
316 | |||
317 | .. kernel-doc:: include/net/cfg80211.h | ||
318 | :doc: RFkill integration | ||
319 | |||
320 | .. kernel-doc:: include/net/cfg80211.h | ||
321 | :functions: wiphy_rfkill_set_hw_state | ||
322 | |||
323 | .. kernel-doc:: include/net/cfg80211.h | ||
324 | :functions: wiphy_rfkill_start_polling | ||
325 | |||
326 | .. kernel-doc:: include/net/cfg80211.h | ||
327 | :functions: wiphy_rfkill_stop_polling | ||
328 | |||
329 | Test mode | ||
330 | ========= | ||
331 | |||
332 | .. kernel-doc:: include/net/cfg80211.h | ||
333 | :doc: Test mode | ||
334 | |||
335 | .. kernel-doc:: include/net/cfg80211.h | ||
336 | :functions: cfg80211_testmode_alloc_reply_skb | ||
337 | |||
338 | .. kernel-doc:: include/net/cfg80211.h | ||
339 | :functions: cfg80211_testmode_reply | ||
340 | |||
341 | .. kernel-doc:: include/net/cfg80211.h | ||
342 | :functions: cfg80211_testmode_alloc_event_skb | ||
343 | |||
344 | .. kernel-doc:: include/net/cfg80211.h | ||
345 | :functions: cfg80211_testmode_event | ||
diff --git a/Documentation/80211/conf.py b/Documentation/80211/conf.py new file mode 100644 index 000000000000..20c7c275ef4a --- /dev/null +++ b/Documentation/80211/conf.py | |||
@@ -0,0 +1,5 @@ | |||
1 | # -*- coding: utf-8; mode: python -*- | ||
2 | |||
3 | project = "Linux 802.11 Driver Developer's Guide" | ||
4 | |||
5 | tags.add("subproject") | ||
diff --git a/Documentation/80211/index.rst b/Documentation/80211/index.rst new file mode 100644 index 000000000000..90bba476f442 --- /dev/null +++ b/Documentation/80211/index.rst | |||
@@ -0,0 +1,17 @@ | |||
1 | ===================================== | ||
2 | Linux 802.11 Driver Developer's Guide | ||
3 | ===================================== | ||
4 | |||
5 | .. toctree:: | ||
6 | |||
7 | introduction | ||
8 | cfg80211 | ||
9 | mac80211 | ||
10 | mac80211-advanced | ||
11 | |||
12 | .. only:: subproject | ||
13 | |||
14 | Indices | ||
15 | ======= | ||
16 | |||
17 | * :ref:`genindex` | ||
diff --git a/Documentation/80211/introduction.rst b/Documentation/80211/introduction.rst new file mode 100644 index 000000000000..4938fa87691c --- /dev/null +++ b/Documentation/80211/introduction.rst | |||
@@ -0,0 +1,17 @@ | |||
1 | ============ | ||
2 | Introduction | ||
3 | ============ | ||
4 | |||
5 | Explaining wireless 802.11 networking in the Linux kernel | ||
6 | |||
7 | Copyright 2007-2009 Johannes Berg | ||
8 | |||
9 | These books attempt to give a description of the various subsystems | ||
10 | that play a role in 802.11 wireless networking in Linux. Since these | ||
11 | books are for kernel developers they attempts to document the | ||
12 | structures and functions used in the kernel as well as giving a | ||
13 | higher-level overview. | ||
14 | |||
15 | The reader is expected to be familiar with the 802.11 standard as | ||
16 | published by the IEEE in 802.11-2007 (or possibly later versions). | ||
17 | References to this standard will be given as "802.11-2007 8.1.5". | ||
diff --git a/Documentation/80211/mac80211-advanced.rst b/Documentation/80211/mac80211-advanced.rst new file mode 100644 index 000000000000..70a89b2163c2 --- /dev/null +++ b/Documentation/80211/mac80211-advanced.rst | |||
@@ -0,0 +1,295 @@ | |||
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 | ||
diff --git a/Documentation/80211/mac80211.rst b/Documentation/80211/mac80211.rst new file mode 100644 index 000000000000..85a8335e80b6 --- /dev/null +++ b/Documentation/80211/mac80211.rst | |||
@@ -0,0 +1,216 @@ | |||
1 | =========================== | ||
2 | mac80211 subsystem (basics) | ||
3 | =========================== | ||
4 | |||
5 | You should read and understand the information contained within this | ||
6 | part of the book while implementing a mac80211 driver. In some chapters, | ||
7 | advanced usage is noted, those may be skipped if this isn't needed. | ||
8 | |||
9 | This part of the book only covers station and monitor mode | ||
10 | functionality, additional information required to implement the other | ||
11 | modes is covered in the second part of the book. | ||
12 | |||
13 | Basic hardware handling | ||
14 | ======================= | ||
15 | |||
16 | TBD | ||
17 | |||
18 | This chapter shall contain information on getting a hw struct allocated | ||
19 | and registered with mac80211. | ||
20 | |||
21 | Since it is required to allocate rates/modes before registering a hw | ||
22 | struct, this chapter shall also contain information on setting up the | ||
23 | rate/mode structs. | ||
24 | |||
25 | Additionally, some discussion about the callbacks and the general | ||
26 | programming model should be in here, including the definition of | ||
27 | ieee80211_ops which will be referred to a lot. | ||
28 | |||
29 | Finally, a discussion of hardware capabilities should be done with | ||
30 | references to other parts of the book. | ||
31 | |||
32 | .. kernel-doc:: include/net/mac80211.h | ||
33 | :functions: ieee80211_hw | ||
34 | |||
35 | .. kernel-doc:: include/net/mac80211.h | ||
36 | :functions: ieee80211_hw_flags | ||
37 | |||
38 | .. kernel-doc:: include/net/mac80211.h | ||
39 | :functions: SET_IEEE80211_DEV | ||
40 | |||
41 | .. kernel-doc:: include/net/mac80211.h | ||
42 | :functions: SET_IEEE80211_PERM_ADDR | ||
43 | |||
44 | .. kernel-doc:: include/net/mac80211.h | ||
45 | :functions: ieee80211_ops | ||
46 | |||
47 | .. kernel-doc:: include/net/mac80211.h | ||
48 | :functions: ieee80211_alloc_hw | ||
49 | |||
50 | .. kernel-doc:: include/net/mac80211.h | ||
51 | :functions: ieee80211_register_hw | ||
52 | |||
53 | .. kernel-doc:: include/net/mac80211.h | ||
54 | :functions: ieee80211_unregister_hw | ||
55 | |||
56 | .. kernel-doc:: include/net/mac80211.h | ||
57 | :functions: ieee80211_free_hw | ||
58 | |||
59 | PHY configuration | ||
60 | ================= | ||
61 | |||
62 | TBD | ||
63 | |||
64 | This chapter should describe PHY handling including start/stop callbacks | ||
65 | and the various structures used. | ||
66 | |||
67 | .. kernel-doc:: include/net/mac80211.h | ||
68 | :functions: ieee80211_conf | ||
69 | |||
70 | .. kernel-doc:: include/net/mac80211.h | ||
71 | :functions: ieee80211_conf_flags | ||
72 | |||
73 | Virtual interfaces | ||
74 | ================== | ||
75 | |||
76 | TBD | ||
77 | |||
78 | This chapter should describe virtual interface basics that are relevant | ||
79 | to the driver (VLANs, MGMT etc are not.) It should explain the use of | ||
80 | the add_iface/remove_iface callbacks as well as the interface | ||
81 | configuration callbacks. | ||
82 | |||
83 | Things related to AP mode should be discussed there. | ||
84 | |||
85 | Things related to supporting multiple interfaces should be in the | ||
86 | appropriate chapter, a BIG FAT note should be here about this though and | ||
87 | the recommendation to allow only a single interface in STA mode at | ||
88 | first! | ||
89 | |||
90 | .. kernel-doc:: include/net/mac80211.h | ||
91 | :functions: ieee80211_vif | ||
92 | |||
93 | Receive and transmit processing | ||
94 | =============================== | ||
95 | |||
96 | what should be here | ||
97 | ------------------- | ||
98 | |||
99 | TBD | ||
100 | |||
101 | This should describe the receive and transmit paths in mac80211/the | ||
102 | drivers as well as transmit status handling. | ||
103 | |||
104 | Frame format | ||
105 | ------------ | ||
106 | |||
107 | .. kernel-doc:: include/net/mac80211.h | ||
108 | :doc: Frame format | ||
109 | |||
110 | Packet alignment | ||
111 | ---------------- | ||
112 | |||
113 | .. kernel-doc:: net/mac80211/rx.c | ||
114 | :doc: Packet alignment | ||
115 | |||
116 | Calling into mac80211 from interrupts | ||
117 | ------------------------------------- | ||
118 | |||
119 | .. kernel-doc:: include/net/mac80211.h | ||
120 | :doc: Calling mac80211 from interrupts | ||
121 | |||
122 | functions/definitions | ||
123 | --------------------- | ||
124 | |||
125 | .. kernel-doc:: include/net/mac80211.h | ||
126 | :functions: ieee80211_rx_status | ||
127 | |||
128 | .. kernel-doc:: include/net/mac80211.h | ||
129 | :functions: mac80211_rx_flags | ||
130 | |||
131 | .. kernel-doc:: include/net/mac80211.h | ||
132 | :functions: mac80211_tx_info_flags | ||
133 | |||
134 | .. kernel-doc:: include/net/mac80211.h | ||
135 | :functions: mac80211_tx_control_flags | ||
136 | |||
137 | .. kernel-doc:: include/net/mac80211.h | ||
138 | :functions: mac80211_rate_control_flags | ||
139 | |||
140 | .. kernel-doc:: include/net/mac80211.h | ||
141 | :functions: ieee80211_tx_rate | ||
142 | |||
143 | .. kernel-doc:: include/net/mac80211.h | ||
144 | :functions: ieee80211_tx_info | ||
145 | |||
146 | .. kernel-doc:: include/net/mac80211.h | ||
147 | :functions: ieee80211_tx_info_clear_status | ||
148 | |||
149 | .. kernel-doc:: include/net/mac80211.h | ||
150 | :functions: ieee80211_rx | ||
151 | |||
152 | .. kernel-doc:: include/net/mac80211.h | ||
153 | :functions: ieee80211_rx_ni | ||
154 | |||
155 | .. kernel-doc:: include/net/mac80211.h | ||
156 | :functions: ieee80211_rx_irqsafe | ||
157 | |||
158 | .. kernel-doc:: include/net/mac80211.h | ||
159 | :functions: ieee80211_tx_status | ||
160 | |||
161 | .. kernel-doc:: include/net/mac80211.h | ||
162 | :functions: ieee80211_tx_status_ni | ||
163 | |||
164 | .. kernel-doc:: include/net/mac80211.h | ||
165 | :functions: ieee80211_tx_status_irqsafe | ||
166 | |||
167 | .. kernel-doc:: include/net/mac80211.h | ||
168 | :functions: ieee80211_rts_get | ||
169 | |||
170 | .. kernel-doc:: include/net/mac80211.h | ||
171 | :functions: ieee80211_rts_duration | ||
172 | |||
173 | .. kernel-doc:: include/net/mac80211.h | ||
174 | :functions: ieee80211_ctstoself_get | ||
175 | |||
176 | .. kernel-doc:: include/net/mac80211.h | ||
177 | :functions: ieee80211_ctstoself_duration | ||
178 | |||
179 | .. kernel-doc:: include/net/mac80211.h | ||
180 | :functions: ieee80211_generic_frame_duration | ||
181 | |||
182 | .. kernel-doc:: include/net/mac80211.h | ||
183 | :functions: ieee80211_wake_queue | ||
184 | |||
185 | .. kernel-doc:: include/net/mac80211.h | ||
186 | :functions: ieee80211_stop_queue | ||
187 | |||
188 | .. kernel-doc:: include/net/mac80211.h | ||
189 | :functions: ieee80211_wake_queues | ||
190 | |||
191 | .. kernel-doc:: include/net/mac80211.h | ||
192 | :functions: ieee80211_stop_queues | ||
193 | |||
194 | .. kernel-doc:: include/net/mac80211.h | ||
195 | :functions: ieee80211_queue_stopped | ||
196 | |||
197 | Frame filtering | ||
198 | =============== | ||
199 | |||
200 | .. kernel-doc:: include/net/mac80211.h | ||
201 | :doc: Frame filtering | ||
202 | |||
203 | .. kernel-doc:: include/net/mac80211.h | ||
204 | :functions: ieee80211_filter_flags | ||
205 | |||
206 | The mac80211 workqueue | ||
207 | ====================== | ||
208 | |||
209 | .. kernel-doc:: include/net/mac80211.h | ||
210 | :doc: mac80211 workqueue | ||
211 | |||
212 | .. kernel-doc:: include/net/mac80211.h | ||
213 | :functions: ieee80211_queue_work | ||
214 | |||
215 | .. kernel-doc:: include/net/mac80211.h | ||
216 | :functions: ieee80211_queue_delayed_work | ||
diff --git a/Documentation/DocBook/80211.tmpl b/Documentation/DocBook/80211.tmpl deleted file mode 100644 index 800fe7a9024c..000000000000 --- a/Documentation/DocBook/80211.tmpl +++ /dev/null | |||
@@ -1,584 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <!DOCTYPE set PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> | ||
4 | <set> | ||
5 | <setinfo> | ||
6 | <title>The 802.11 subsystems – for kernel developers</title> | ||
7 | <subtitle> | ||
8 | Explaining wireless 802.11 networking in the Linux kernel | ||
9 | </subtitle> | ||
10 | |||
11 | <copyright> | ||
12 | <year>2007-2009</year> | ||
13 | <holder>Johannes Berg</holder> | ||
14 | </copyright> | ||
15 | |||
16 | <authorgroup> | ||
17 | <author> | ||
18 | <firstname>Johannes</firstname> | ||
19 | <surname>Berg</surname> | ||
20 | <affiliation> | ||
21 | <address><email>johannes@sipsolutions.net</email></address> | ||
22 | </affiliation> | ||
23 | </author> | ||
24 | </authorgroup> | ||
25 | |||
26 | <legalnotice> | ||
27 | <para> | ||
28 | This documentation is free software; you can redistribute | ||
29 | it and/or modify it under the terms of the GNU General Public | ||
30 | License version 2 as published by the Free Software Foundation. | ||
31 | </para> | ||
32 | <para> | ||
33 | This documentation is distributed in the hope that it will be | ||
34 | useful, but WITHOUT ANY WARRANTY; without even the implied | ||
35 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
36 | See the GNU General Public License for more details. | ||
37 | </para> | ||
38 | <para> | ||
39 | You should have received a copy of the GNU General Public | ||
40 | License along with this documentation; if not, write to the Free | ||
41 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
42 | MA 02111-1307 USA | ||
43 | </para> | ||
44 | <para> | ||
45 | For more details see the file COPYING in the source | ||
46 | distribution of Linux. | ||
47 | </para> | ||
48 | </legalnotice> | ||
49 | |||
50 | <abstract> | ||
51 | <para> | ||
52 | These books attempt to give a description of the | ||
53 | various subsystems that play a role in 802.11 wireless | ||
54 | networking in Linux. Since these books are for kernel | ||
55 | developers they attempts to document the structures | ||
56 | and functions used in the kernel as well as giving a | ||
57 | higher-level overview. | ||
58 | </para> | ||
59 | <para> | ||
60 | The reader is expected to be familiar with the 802.11 | ||
61 | standard as published by the IEEE in 802.11-2007 (or | ||
62 | possibly later versions). References to this standard | ||
63 | will be given as "802.11-2007 8.1.5". | ||
64 | </para> | ||
65 | </abstract> | ||
66 | </setinfo> | ||
67 | <book id="cfg80211-developers-guide"> | ||
68 | <bookinfo> | ||
69 | <title>The cfg80211 subsystem</title> | ||
70 | |||
71 | <abstract> | ||
72 | !Pinclude/net/cfg80211.h Introduction | ||
73 | </abstract> | ||
74 | </bookinfo> | ||
75 | <chapter> | ||
76 | <title>Device registration</title> | ||
77 | !Pinclude/net/cfg80211.h Device registration | ||
78 | !Finclude/net/cfg80211.h ieee80211_channel_flags | ||
79 | !Finclude/net/cfg80211.h ieee80211_channel | ||
80 | !Finclude/net/cfg80211.h ieee80211_rate_flags | ||
81 | !Finclude/net/cfg80211.h ieee80211_rate | ||
82 | !Finclude/net/cfg80211.h ieee80211_sta_ht_cap | ||
83 | !Finclude/net/cfg80211.h ieee80211_supported_band | ||
84 | !Finclude/net/cfg80211.h cfg80211_signal_type | ||
85 | !Finclude/net/cfg80211.h wiphy_params_flags | ||
86 | !Finclude/net/cfg80211.h wiphy_flags | ||
87 | !Finclude/net/cfg80211.h wiphy | ||
88 | !Finclude/net/cfg80211.h wireless_dev | ||
89 | !Finclude/net/cfg80211.h wiphy_new | ||
90 | !Finclude/net/cfg80211.h wiphy_register | ||
91 | !Finclude/net/cfg80211.h wiphy_unregister | ||
92 | !Finclude/net/cfg80211.h wiphy_free | ||
93 | |||
94 | !Finclude/net/cfg80211.h wiphy_name | ||
95 | !Finclude/net/cfg80211.h wiphy_dev | ||
96 | !Finclude/net/cfg80211.h wiphy_priv | ||
97 | !Finclude/net/cfg80211.h priv_to_wiphy | ||
98 | !Finclude/net/cfg80211.h set_wiphy_dev | ||
99 | !Finclude/net/cfg80211.h wdev_priv | ||
100 | !Finclude/net/cfg80211.h ieee80211_iface_limit | ||
101 | !Finclude/net/cfg80211.h ieee80211_iface_combination | ||
102 | !Finclude/net/cfg80211.h cfg80211_check_combinations | ||
103 | </chapter> | ||
104 | <chapter> | ||
105 | <title>Actions and configuration</title> | ||
106 | !Pinclude/net/cfg80211.h Actions and configuration | ||
107 | !Finclude/net/cfg80211.h cfg80211_ops | ||
108 | !Finclude/net/cfg80211.h vif_params | ||
109 | !Finclude/net/cfg80211.h key_params | ||
110 | !Finclude/net/cfg80211.h survey_info_flags | ||
111 | !Finclude/net/cfg80211.h survey_info | ||
112 | !Finclude/net/cfg80211.h cfg80211_beacon_data | ||
113 | !Finclude/net/cfg80211.h cfg80211_ap_settings | ||
114 | !Finclude/net/cfg80211.h station_parameters | ||
115 | !Finclude/net/cfg80211.h rate_info_flags | ||
116 | !Finclude/net/cfg80211.h rate_info | ||
117 | !Finclude/net/cfg80211.h station_info | ||
118 | !Finclude/net/cfg80211.h monitor_flags | ||
119 | !Finclude/net/cfg80211.h mpath_info_flags | ||
120 | !Finclude/net/cfg80211.h mpath_info | ||
121 | !Finclude/net/cfg80211.h bss_parameters | ||
122 | !Finclude/net/cfg80211.h ieee80211_txq_params | ||
123 | !Finclude/net/cfg80211.h cfg80211_crypto_settings | ||
124 | !Finclude/net/cfg80211.h cfg80211_auth_request | ||
125 | !Finclude/net/cfg80211.h cfg80211_assoc_request | ||
126 | !Finclude/net/cfg80211.h cfg80211_deauth_request | ||
127 | !Finclude/net/cfg80211.h cfg80211_disassoc_request | ||
128 | !Finclude/net/cfg80211.h cfg80211_ibss_params | ||
129 | !Finclude/net/cfg80211.h cfg80211_connect_params | ||
130 | !Finclude/net/cfg80211.h cfg80211_pmksa | ||
131 | !Finclude/net/cfg80211.h cfg80211_rx_mlme_mgmt | ||
132 | !Finclude/net/cfg80211.h cfg80211_auth_timeout | ||
133 | !Finclude/net/cfg80211.h cfg80211_rx_assoc_resp | ||
134 | !Finclude/net/cfg80211.h cfg80211_assoc_timeout | ||
135 | !Finclude/net/cfg80211.h cfg80211_tx_mlme_mgmt | ||
136 | !Finclude/net/cfg80211.h cfg80211_ibss_joined | ||
137 | !Finclude/net/cfg80211.h cfg80211_connect_result | ||
138 | !Finclude/net/cfg80211.h cfg80211_connect_bss | ||
139 | !Finclude/net/cfg80211.h cfg80211_connect_timeout | ||
140 | !Finclude/net/cfg80211.h cfg80211_roamed | ||
141 | !Finclude/net/cfg80211.h cfg80211_disconnected | ||
142 | !Finclude/net/cfg80211.h cfg80211_ready_on_channel | ||
143 | !Finclude/net/cfg80211.h cfg80211_remain_on_channel_expired | ||
144 | !Finclude/net/cfg80211.h cfg80211_new_sta | ||
145 | !Finclude/net/cfg80211.h cfg80211_rx_mgmt | ||
146 | !Finclude/net/cfg80211.h cfg80211_mgmt_tx_status | ||
147 | !Finclude/net/cfg80211.h cfg80211_cqm_rssi_notify | ||
148 | !Finclude/net/cfg80211.h cfg80211_cqm_pktloss_notify | ||
149 | !Finclude/net/cfg80211.h cfg80211_michael_mic_failure | ||
150 | </chapter> | ||
151 | <chapter> | ||
152 | <title>Scanning and BSS list handling</title> | ||
153 | !Pinclude/net/cfg80211.h Scanning and BSS list handling | ||
154 | !Finclude/net/cfg80211.h cfg80211_ssid | ||
155 | !Finclude/net/cfg80211.h cfg80211_scan_request | ||
156 | !Finclude/net/cfg80211.h cfg80211_scan_done | ||
157 | !Finclude/net/cfg80211.h cfg80211_bss | ||
158 | !Finclude/net/cfg80211.h cfg80211_inform_bss | ||
159 | !Finclude/net/cfg80211.h cfg80211_inform_bss_frame_data | ||
160 | !Finclude/net/cfg80211.h cfg80211_inform_bss_data | ||
161 | !Finclude/net/cfg80211.h cfg80211_unlink_bss | ||
162 | !Finclude/net/cfg80211.h cfg80211_find_ie | ||
163 | !Finclude/net/cfg80211.h ieee80211_bss_get_ie | ||
164 | </chapter> | ||
165 | <chapter> | ||
166 | <title>Utility functions</title> | ||
167 | !Pinclude/net/cfg80211.h Utility functions | ||
168 | !Finclude/net/cfg80211.h ieee80211_channel_to_frequency | ||
169 | !Finclude/net/cfg80211.h ieee80211_frequency_to_channel | ||
170 | !Finclude/net/cfg80211.h ieee80211_get_channel | ||
171 | !Finclude/net/cfg80211.h ieee80211_get_response_rate | ||
172 | !Finclude/net/cfg80211.h ieee80211_hdrlen | ||
173 | !Finclude/net/cfg80211.h ieee80211_get_hdrlen_from_skb | ||
174 | !Finclude/net/cfg80211.h ieee80211_radiotap_iterator | ||
175 | </chapter> | ||
176 | <chapter> | ||
177 | <title>Data path helpers</title> | ||
178 | !Pinclude/net/cfg80211.h Data path helpers | ||
179 | !Finclude/net/cfg80211.h ieee80211_data_to_8023 | ||
180 | !Finclude/net/cfg80211.h ieee80211_data_from_8023 | ||
181 | !Finclude/net/cfg80211.h ieee80211_amsdu_to_8023s | ||
182 | !Finclude/net/cfg80211.h cfg80211_classify8021d | ||
183 | </chapter> | ||
184 | <chapter> | ||
185 | <title>Regulatory enforcement infrastructure</title> | ||
186 | !Pinclude/net/cfg80211.h Regulatory enforcement infrastructure | ||
187 | !Finclude/net/cfg80211.h regulatory_hint | ||
188 | !Finclude/net/cfg80211.h wiphy_apply_custom_regulatory | ||
189 | !Finclude/net/cfg80211.h freq_reg_info | ||
190 | </chapter> | ||
191 | <chapter> | ||
192 | <title>RFkill integration</title> | ||
193 | !Pinclude/net/cfg80211.h RFkill integration | ||
194 | !Finclude/net/cfg80211.h wiphy_rfkill_set_hw_state | ||
195 | !Finclude/net/cfg80211.h wiphy_rfkill_start_polling | ||
196 | !Finclude/net/cfg80211.h wiphy_rfkill_stop_polling | ||
197 | </chapter> | ||
198 | <chapter> | ||
199 | <title>Test mode</title> | ||
200 | !Pinclude/net/cfg80211.h Test mode | ||
201 | !Finclude/net/cfg80211.h cfg80211_testmode_alloc_reply_skb | ||
202 | !Finclude/net/cfg80211.h cfg80211_testmode_reply | ||
203 | !Finclude/net/cfg80211.h cfg80211_testmode_alloc_event_skb | ||
204 | !Finclude/net/cfg80211.h cfg80211_testmode_event | ||
205 | </chapter> | ||
206 | </book> | ||
207 | <book id="mac80211-developers-guide"> | ||
208 | <bookinfo> | ||
209 | <title>The mac80211 subsystem</title> | ||
210 | <abstract> | ||
211 | !Pinclude/net/mac80211.h Introduction | ||
212 | !Pinclude/net/mac80211.h Warning | ||
213 | </abstract> | ||
214 | </bookinfo> | ||
215 | |||
216 | <toc></toc> | ||
217 | |||
218 | <!-- | ||
219 | Generally, this document shall be ordered by increasing complexity. | ||
220 | It is important to note that readers should be able to read only | ||
221 | the first few sections to get a working driver and only advanced | ||
222 | usage should require reading the full document. | ||
223 | --> | ||
224 | |||
225 | <part> | ||
226 | <title>The basic mac80211 driver interface</title> | ||
227 | <partintro> | ||
228 | <para> | ||
229 | You should read and understand the information contained | ||
230 | within this part of the book while implementing a driver. | ||
231 | In some chapters, advanced usage is noted, that may be | ||
232 | skipped at first. | ||
233 | </para> | ||
234 | <para> | ||
235 | This part of the book only covers station and monitor mode | ||
236 | functionality, additional information required to implement | ||
237 | the other modes is covered in the second part of the book. | ||
238 | </para> | ||
239 | </partintro> | ||
240 | |||
241 | <chapter id="basics"> | ||
242 | <title>Basic hardware handling</title> | ||
243 | <para>TBD</para> | ||
244 | <para> | ||
245 | This chapter shall contain information on getting a hw | ||
246 | struct allocated and registered with mac80211. | ||
247 | </para> | ||
248 | <para> | ||
249 | Since it is required to allocate rates/modes before registering | ||
250 | a hw struct, this chapter shall also contain information on setting | ||
251 | up the rate/mode structs. | ||
252 | </para> | ||
253 | <para> | ||
254 | Additionally, some discussion about the callbacks and | ||
255 | the general programming model should be in here, including | ||
256 | the definition of ieee80211_ops which will be referred to | ||
257 | a lot. | ||
258 | </para> | ||
259 | <para> | ||
260 | Finally, a discussion of hardware capabilities should be done | ||
261 | with references to other parts of the book. | ||
262 | </para> | ||
263 | <!-- intentionally multiple !F lines to get proper order --> | ||
264 | !Finclude/net/mac80211.h ieee80211_hw | ||
265 | !Finclude/net/mac80211.h ieee80211_hw_flags | ||
266 | !Finclude/net/mac80211.h SET_IEEE80211_DEV | ||
267 | !Finclude/net/mac80211.h SET_IEEE80211_PERM_ADDR | ||
268 | !Finclude/net/mac80211.h ieee80211_ops | ||
269 | !Finclude/net/mac80211.h ieee80211_alloc_hw | ||
270 | !Finclude/net/mac80211.h ieee80211_register_hw | ||
271 | !Finclude/net/mac80211.h ieee80211_unregister_hw | ||
272 | !Finclude/net/mac80211.h ieee80211_free_hw | ||
273 | </chapter> | ||
274 | |||
275 | <chapter id="phy-handling"> | ||
276 | <title>PHY configuration</title> | ||
277 | <para>TBD</para> | ||
278 | <para> | ||
279 | This chapter should describe PHY handling including | ||
280 | start/stop callbacks and the various structures used. | ||
281 | </para> | ||
282 | !Finclude/net/mac80211.h ieee80211_conf | ||
283 | !Finclude/net/mac80211.h ieee80211_conf_flags | ||
284 | </chapter> | ||
285 | |||
286 | <chapter id="iface-handling"> | ||
287 | <title>Virtual interfaces</title> | ||
288 | <para>TBD</para> | ||
289 | <para> | ||
290 | This chapter should describe virtual interface basics | ||
291 | that are relevant to the driver (VLANs, MGMT etc are not.) | ||
292 | It should explain the use of the add_iface/remove_iface | ||
293 | callbacks as well as the interface configuration callbacks. | ||
294 | </para> | ||
295 | <para>Things related to AP mode should be discussed there.</para> | ||
296 | <para> | ||
297 | Things related to supporting multiple interfaces should be | ||
298 | in the appropriate chapter, a BIG FAT note should be here about | ||
299 | this though and the recommendation to allow only a single | ||
300 | interface in STA mode at first! | ||
301 | </para> | ||
302 | !Finclude/net/mac80211.h ieee80211_vif | ||
303 | </chapter> | ||
304 | |||
305 | <chapter id="rx-tx"> | ||
306 | <title>Receive and transmit processing</title> | ||
307 | <sect1> | ||
308 | <title>what should be here</title> | ||
309 | <para>TBD</para> | ||
310 | <para> | ||
311 | This should describe the receive and transmit | ||
312 | paths in mac80211/the drivers as well as | ||
313 | transmit status handling. | ||
314 | </para> | ||
315 | </sect1> | ||
316 | <sect1> | ||
317 | <title>Frame format</title> | ||
318 | !Pinclude/net/mac80211.h Frame format | ||
319 | </sect1> | ||
320 | <sect1> | ||
321 | <title>Packet alignment</title> | ||
322 | !Pnet/mac80211/rx.c Packet alignment | ||
323 | </sect1> | ||
324 | <sect1> | ||
325 | <title>Calling into mac80211 from interrupts</title> | ||
326 | !Pinclude/net/mac80211.h Calling mac80211 from interrupts | ||
327 | </sect1> | ||
328 | <sect1> | ||
329 | <title>functions/definitions</title> | ||
330 | !Finclude/net/mac80211.h ieee80211_rx_status | ||
331 | !Finclude/net/mac80211.h mac80211_rx_flags | ||
332 | !Finclude/net/mac80211.h mac80211_tx_info_flags | ||
333 | !Finclude/net/mac80211.h mac80211_tx_control_flags | ||
334 | !Finclude/net/mac80211.h mac80211_rate_control_flags | ||
335 | !Finclude/net/mac80211.h ieee80211_tx_rate | ||
336 | !Finclude/net/mac80211.h ieee80211_tx_info | ||
337 | !Finclude/net/mac80211.h ieee80211_tx_info_clear_status | ||
338 | !Finclude/net/mac80211.h ieee80211_rx | ||
339 | !Finclude/net/mac80211.h ieee80211_rx_ni | ||
340 | !Finclude/net/mac80211.h ieee80211_rx_irqsafe | ||
341 | !Finclude/net/mac80211.h ieee80211_tx_status | ||
342 | !Finclude/net/mac80211.h ieee80211_tx_status_ni | ||
343 | !Finclude/net/mac80211.h ieee80211_tx_status_irqsafe | ||
344 | !Finclude/net/mac80211.h ieee80211_rts_get | ||
345 | !Finclude/net/mac80211.h ieee80211_rts_duration | ||
346 | !Finclude/net/mac80211.h ieee80211_ctstoself_get | ||
347 | !Finclude/net/mac80211.h ieee80211_ctstoself_duration | ||
348 | !Finclude/net/mac80211.h ieee80211_generic_frame_duration | ||
349 | !Finclude/net/mac80211.h ieee80211_wake_queue | ||
350 | !Finclude/net/mac80211.h ieee80211_stop_queue | ||
351 | !Finclude/net/mac80211.h ieee80211_wake_queues | ||
352 | !Finclude/net/mac80211.h ieee80211_stop_queues | ||
353 | !Finclude/net/mac80211.h ieee80211_queue_stopped | ||
354 | </sect1> | ||
355 | </chapter> | ||
356 | |||
357 | <chapter id="filters"> | ||
358 | <title>Frame filtering</title> | ||
359 | !Pinclude/net/mac80211.h Frame filtering | ||
360 | !Finclude/net/mac80211.h ieee80211_filter_flags | ||
361 | </chapter> | ||
362 | |||
363 | <chapter id="workqueue"> | ||
364 | <title>The mac80211 workqueue</title> | ||
365 | !Pinclude/net/mac80211.h mac80211 workqueue | ||
366 | !Finclude/net/mac80211.h ieee80211_queue_work | ||
367 | !Finclude/net/mac80211.h ieee80211_queue_delayed_work | ||
368 | </chapter> | ||
369 | </part> | ||
370 | |||
371 | <part id="advanced"> | ||
372 | <title>Advanced driver interface</title> | ||
373 | <partintro> | ||
374 | <para> | ||
375 | Information contained within this part of the book is | ||
376 | of interest only for advanced interaction of mac80211 | ||
377 | with drivers to exploit more hardware capabilities and | ||
378 | improve performance. | ||
379 | </para> | ||
380 | </partintro> | ||
381 | |||
382 | <chapter id="led-support"> | ||
383 | <title>LED support</title> | ||
384 | <para> | ||
385 | Mac80211 supports various ways of blinking LEDs. Wherever possible, | ||
386 | device LEDs should be exposed as LED class devices and hooked up to | ||
387 | the appropriate trigger, which will then be triggered appropriately | ||
388 | by mac80211. | ||
389 | </para> | ||
390 | !Finclude/net/mac80211.h ieee80211_get_tx_led_name | ||
391 | !Finclude/net/mac80211.h ieee80211_get_rx_led_name | ||
392 | !Finclude/net/mac80211.h ieee80211_get_assoc_led_name | ||
393 | !Finclude/net/mac80211.h ieee80211_get_radio_led_name | ||
394 | !Finclude/net/mac80211.h ieee80211_tpt_blink | ||
395 | !Finclude/net/mac80211.h ieee80211_tpt_led_trigger_flags | ||
396 | !Finclude/net/mac80211.h ieee80211_create_tpt_led_trigger | ||
397 | </chapter> | ||
398 | |||
399 | <chapter id="hardware-crypto-offload"> | ||
400 | <title>Hardware crypto acceleration</title> | ||
401 | !Pinclude/net/mac80211.h Hardware crypto acceleration | ||
402 | <!-- intentionally multiple !F lines to get proper order --> | ||
403 | !Finclude/net/mac80211.h set_key_cmd | ||
404 | !Finclude/net/mac80211.h ieee80211_key_conf | ||
405 | !Finclude/net/mac80211.h ieee80211_key_flags | ||
406 | !Finclude/net/mac80211.h ieee80211_get_tkip_p1k | ||
407 | !Finclude/net/mac80211.h ieee80211_get_tkip_p1k_iv | ||
408 | !Finclude/net/mac80211.h ieee80211_get_tkip_p2k | ||
409 | </chapter> | ||
410 | |||
411 | <chapter id="powersave"> | ||
412 | <title>Powersave support</title> | ||
413 | !Pinclude/net/mac80211.h Powersave support | ||
414 | </chapter> | ||
415 | |||
416 | <chapter id="beacon-filter"> | ||
417 | <title>Beacon filter support</title> | ||
418 | !Pinclude/net/mac80211.h Beacon filter support | ||
419 | !Finclude/net/mac80211.h ieee80211_beacon_loss | ||
420 | </chapter> | ||
421 | |||
422 | <chapter id="qos"> | ||
423 | <title>Multiple queues and QoS support</title> | ||
424 | <para>TBD</para> | ||
425 | !Finclude/net/mac80211.h ieee80211_tx_queue_params | ||
426 | </chapter> | ||
427 | |||
428 | <chapter id="AP"> | ||
429 | <title>Access point mode support</title> | ||
430 | <para>TBD</para> | ||
431 | <para>Some parts of the if_conf should be discussed here instead</para> | ||
432 | <para> | ||
433 | Insert notes about VLAN interfaces with hw crypto here or | ||
434 | in the hw crypto chapter. | ||
435 | </para> | ||
436 | <section id="ps-client"> | ||
437 | <title>support for powersaving clients</title> | ||
438 | !Pinclude/net/mac80211.h AP support for powersaving clients | ||
439 | !Finclude/net/mac80211.h ieee80211_get_buffered_bc | ||
440 | !Finclude/net/mac80211.h ieee80211_beacon_get | ||
441 | !Finclude/net/mac80211.h ieee80211_sta_eosp | ||
442 | !Finclude/net/mac80211.h ieee80211_frame_release_type | ||
443 | !Finclude/net/mac80211.h ieee80211_sta_ps_transition | ||
444 | !Finclude/net/mac80211.h ieee80211_sta_ps_transition_ni | ||
445 | !Finclude/net/mac80211.h ieee80211_sta_set_buffered | ||
446 | !Finclude/net/mac80211.h ieee80211_sta_block_awake | ||
447 | </section> | ||
448 | </chapter> | ||
449 | |||
450 | <chapter id="multi-iface"> | ||
451 | <title>Supporting multiple virtual interfaces</title> | ||
452 | <para>TBD</para> | ||
453 | <para> | ||
454 | Note: WDS with identical MAC address should almost always be OK | ||
455 | </para> | ||
456 | <para> | ||
457 | Insert notes about having multiple virtual interfaces with | ||
458 | different MAC addresses here, note which configurations are | ||
459 | supported by mac80211, add notes about supporting hw crypto | ||
460 | with it. | ||
461 | </para> | ||
462 | !Finclude/net/mac80211.h ieee80211_iterate_active_interfaces | ||
463 | !Finclude/net/mac80211.h ieee80211_iterate_active_interfaces_atomic | ||
464 | </chapter> | ||
465 | |||
466 | <chapter id="station-handling"> | ||
467 | <title>Station handling</title> | ||
468 | <para>TODO</para> | ||
469 | !Finclude/net/mac80211.h ieee80211_sta | ||
470 | !Finclude/net/mac80211.h sta_notify_cmd | ||
471 | !Finclude/net/mac80211.h ieee80211_find_sta | ||
472 | !Finclude/net/mac80211.h ieee80211_find_sta_by_ifaddr | ||
473 | </chapter> | ||
474 | |||
475 | <chapter id="hardware-scan-offload"> | ||
476 | <title>Hardware scan offload</title> | ||
477 | <para>TBD</para> | ||
478 | !Finclude/net/mac80211.h ieee80211_scan_completed | ||
479 | </chapter> | ||
480 | |||
481 | <chapter id="aggregation"> | ||
482 | <title>Aggregation</title> | ||
483 | <sect1> | ||
484 | <title>TX A-MPDU aggregation</title> | ||
485 | !Pnet/mac80211/agg-tx.c TX A-MPDU aggregation | ||
486 | !Cnet/mac80211/agg-tx.c | ||
487 | </sect1> | ||
488 | <sect1> | ||
489 | <title>RX A-MPDU aggregation</title> | ||
490 | !Pnet/mac80211/agg-rx.c RX A-MPDU aggregation | ||
491 | !Cnet/mac80211/agg-rx.c | ||
492 | !Finclude/net/mac80211.h ieee80211_ampdu_mlme_action | ||
493 | </sect1> | ||
494 | </chapter> | ||
495 | |||
496 | <chapter id="smps"> | ||
497 | <title>Spatial Multiplexing Powersave (SMPS)</title> | ||
498 | !Pinclude/net/mac80211.h Spatial multiplexing power save | ||
499 | !Finclude/net/mac80211.h ieee80211_request_smps | ||
500 | !Finclude/net/mac80211.h ieee80211_smps_mode | ||
501 | </chapter> | ||
502 | </part> | ||
503 | |||
504 | <part id="rate-control"> | ||
505 | <title>Rate control interface</title> | ||
506 | <partintro> | ||
507 | <para>TBD</para> | ||
508 | <para> | ||
509 | This part of the book describes the rate control algorithm | ||
510 | interface and how it relates to mac80211 and drivers. | ||
511 | </para> | ||
512 | </partintro> | ||
513 | <chapter id="ratecontrol-api"> | ||
514 | <title>Rate Control API</title> | ||
515 | <para>TBD</para> | ||
516 | !Finclude/net/mac80211.h ieee80211_start_tx_ba_session | ||
517 | !Finclude/net/mac80211.h ieee80211_start_tx_ba_cb_irqsafe | ||
518 | !Finclude/net/mac80211.h ieee80211_stop_tx_ba_session | ||
519 | !Finclude/net/mac80211.h ieee80211_stop_tx_ba_cb_irqsafe | ||
520 | !Finclude/net/mac80211.h ieee80211_rate_control_changed | ||
521 | !Finclude/net/mac80211.h ieee80211_tx_rate_control | ||
522 | !Finclude/net/mac80211.h rate_control_send_low | ||
523 | </chapter> | ||
524 | </part> | ||
525 | |||
526 | <part id="internal"> | ||
527 | <title>Internals</title> | ||
528 | <partintro> | ||
529 | <para>TBD</para> | ||
530 | <para> | ||
531 | This part of the book describes mac80211 internals. | ||
532 | </para> | ||
533 | </partintro> | ||
534 | |||
535 | <chapter id="key-handling"> | ||
536 | <title>Key handling</title> | ||
537 | <sect1> | ||
538 | <title>Key handling basics</title> | ||
539 | !Pnet/mac80211/key.c Key handling basics | ||
540 | </sect1> | ||
541 | <sect1> | ||
542 | <title>MORE TBD</title> | ||
543 | <para>TBD</para> | ||
544 | </sect1> | ||
545 | </chapter> | ||
546 | |||
547 | <chapter id="rx-processing"> | ||
548 | <title>Receive processing</title> | ||
549 | <para>TBD</para> | ||
550 | </chapter> | ||
551 | |||
552 | <chapter id="tx-processing"> | ||
553 | <title>Transmit processing</title> | ||
554 | <para>TBD</para> | ||
555 | </chapter> | ||
556 | |||
557 | <chapter id="sta-info"> | ||
558 | <title>Station info handling</title> | ||
559 | <sect1> | ||
560 | <title>Programming information</title> | ||
561 | !Fnet/mac80211/sta_info.h sta_info | ||
562 | !Fnet/mac80211/sta_info.h ieee80211_sta_info_flags | ||
563 | </sect1> | ||
564 | <sect1> | ||
565 | <title>STA information lifetime rules</title> | ||
566 | !Pnet/mac80211/sta_info.c STA information lifetime rules | ||
567 | </sect1> | ||
568 | </chapter> | ||
569 | |||
570 | <chapter id="aggregation-internals"> | ||
571 | <title>Aggregation</title> | ||
572 | !Fnet/mac80211/sta_info.h sta_ampdu_mlme | ||
573 | !Fnet/mac80211/sta_info.h tid_ampdu_tx | ||
574 | !Fnet/mac80211/sta_info.h tid_ampdu_rx | ||
575 | </chapter> | ||
576 | |||
577 | <chapter id="synchronisation"> | ||
578 | <title>Synchronisation</title> | ||
579 | <para>TBD</para> | ||
580 | <para>Locking, lots of RCU</para> | ||
581 | </chapter> | ||
582 | </part> | ||
583 | </book> | ||
584 | </set> | ||
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile index 736f5916daea..fdf8232d0eeb 100644 --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile | |||
@@ -12,7 +12,7 @@ DOCBOOKS := z8530book.xml \ | |||
12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ | 12 | kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ |
13 | gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ | 13 | gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ |
14 | genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ | 14 | genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ |
15 | 80211.xml debugobjects.xml sh.xml regulator.xml \ | 15 | debugobjects.xml sh.xml regulator.xml \ |
16 | alsa-driver-api.xml writing-an-alsa-driver.xml \ | 16 | alsa-driver-api.xml writing-an-alsa-driver.xml \ |
17 | tracepoint.xml w1.xml \ | 17 | tracepoint.xml w1.xml \ |
18 | writing_musb_glue_layer.xml crypto-API.xml iio.xml | 18 | writing_musb_glue_layer.xml crypto-API.xml iio.xml |
diff --git a/Documentation/index.rst b/Documentation/index.rst index d9ccb94fca95..c53d089455a4 100644 --- a/Documentation/index.rst +++ b/Documentation/index.rst | |||
@@ -17,6 +17,7 @@ Contents: | |||
17 | driver-api/index | 17 | driver-api/index |
18 | media/index | 18 | media/index |
19 | gpu/index | 19 | gpu/index |
20 | 80211/index | ||
20 | 21 | ||
21 | Indices and tables | 22 | Indices and tables |
22 | ================== | 23 | ================== |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index fe78f02a242e..bd19faad0d96 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -796,9 +796,9 @@ enum station_parameters_apply_mask { | |||
796 | * (or NULL for no change) | 796 | * (or NULL for no change) |
797 | * @supported_rates_len: number of supported rates | 797 | * @supported_rates_len: number of supported rates |
798 | * @sta_flags_mask: station flags that changed | 798 | * @sta_flags_mask: station flags that changed |
799 | * (bitmask of BIT(NL80211_STA_FLAG_...)) | 799 | * (bitmask of BIT(%NL80211_STA_FLAG_...)) |
800 | * @sta_flags_set: station flags values | 800 | * @sta_flags_set: station flags values |
801 | * (bitmask of BIT(NL80211_STA_FLAG_...)) | 801 | * (bitmask of BIT(%NL80211_STA_FLAG_...)) |
802 | * @listen_interval: listen interval or -1 for no change | 802 | * @listen_interval: listen interval or -1 for no change |
803 | * @aid: AID or zero for no change | 803 | * @aid: AID or zero for no change |
804 | * @peer_aid: mesh peer AID or zero for no change | 804 | * @peer_aid: mesh peer AID or zero for no change |
@@ -3088,47 +3088,54 @@ struct ieee80211_iface_limit { | |||
3088 | * | 3088 | * |
3089 | * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: | 3089 | * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: |
3090 | * | 3090 | * |
3091 | * struct ieee80211_iface_limit limits1[] = { | 3091 | * .. code-block:: c |
3092 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, | 3092 | * |
3093 | * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, }, | 3093 | * struct ieee80211_iface_limit limits1[] = { |
3094 | * }; | 3094 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, |
3095 | * struct ieee80211_iface_combination combination1 = { | 3095 | * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, }, |
3096 | * .limits = limits1, | 3096 | * }; |
3097 | * .n_limits = ARRAY_SIZE(limits1), | 3097 | * struct ieee80211_iface_combination combination1 = { |
3098 | * .max_interfaces = 2, | 3098 | * .limits = limits1, |
3099 | * .beacon_int_infra_match = true, | 3099 | * .n_limits = ARRAY_SIZE(limits1), |
3100 | * }; | 3100 | * .max_interfaces = 2, |
3101 | * .beacon_int_infra_match = true, | ||
3102 | * }; | ||
3101 | * | 3103 | * |
3102 | * | 3104 | * |
3103 | * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: | 3105 | * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: |
3104 | * | 3106 | * |
3105 | * struct ieee80211_iface_limit limits2[] = { | 3107 | * .. code-block:: c |
3106 | * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | | 3108 | * |
3107 | * BIT(NL80211_IFTYPE_P2P_GO), }, | 3109 | * struct ieee80211_iface_limit limits2[] = { |
3108 | * }; | 3110 | * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | |
3109 | * struct ieee80211_iface_combination combination2 = { | 3111 | * BIT(NL80211_IFTYPE_P2P_GO), }, |
3110 | * .limits = limits2, | 3112 | * }; |
3111 | * .n_limits = ARRAY_SIZE(limits2), | 3113 | * struct ieee80211_iface_combination combination2 = { |
3112 | * .max_interfaces = 8, | 3114 | * .limits = limits2, |
3113 | * .num_different_channels = 1, | 3115 | * .n_limits = ARRAY_SIZE(limits2), |
3114 | * }; | 3116 | * .max_interfaces = 8, |
3117 | * .num_different_channels = 1, | ||
3118 | * }; | ||
3115 | * | 3119 | * |
3116 | * | 3120 | * |
3117 | * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. | 3121 | * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. |
3118 | * | 3122 | * |
3119 | * This allows for an infrastructure connection and three P2P connections. | 3123 | * This allows for an infrastructure connection and three P2P connections. |
3120 | * | 3124 | * |
3121 | * struct ieee80211_iface_limit limits3[] = { | 3125 | * .. code-block:: c |
3122 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, | 3126 | * |
3123 | * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) | | 3127 | * struct ieee80211_iface_limit limits3[] = { |
3124 | * BIT(NL80211_IFTYPE_P2P_CLIENT), }, | 3128 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, |
3125 | * }; | 3129 | * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) | |
3126 | * struct ieee80211_iface_combination combination3 = { | 3130 | * BIT(NL80211_IFTYPE_P2P_CLIENT), }, |
3127 | * .limits = limits3, | 3131 | * }; |
3128 | * .n_limits = ARRAY_SIZE(limits3), | 3132 | * struct ieee80211_iface_combination combination3 = { |
3129 | * .max_interfaces = 4, | 3133 | * .limits = limits3, |
3130 | * .num_different_channels = 2, | 3134 | * .n_limits = ARRAY_SIZE(limits3), |
3131 | * }; | 3135 | * .max_interfaces = 4, |
3136 | * .num_different_channels = 2, | ||
3137 | * }; | ||
3138 | * | ||
3132 | */ | 3139 | */ |
3133 | struct ieee80211_iface_combination { | 3140 | struct ieee80211_iface_combination { |
3134 | const struct ieee80211_iface_limit *limits; | 3141 | const struct ieee80211_iface_limit *limits; |