1===========================
2mac80211 subsystem (basics)
3===========================
4
5You should read and understand the information contained within this
6part of the book while implementing a mac80211 driver. In some chapters,
7advanced usage is noted, those may be skipped if this isn't needed.
8
9This part of the book only covers station and monitor mode
10functionality, additional information required to implement the other
11modes is covered in the second part of the book.
12
13Basic hardware handling
14=======================
15
16TBD
17
18This chapter shall contain information on getting a hw struct allocated
19and registered with mac80211.
20
21Since it is required to allocate rates/modes before registering a hw
22struct, this chapter shall also contain information on setting up the
23rate/mode structs.
24
25Additionally, some discussion about the callbacks and the general
26programming model should be in here, including the definition of
27ieee80211_ops which will be referred to a lot.
28
29Finally, a discussion of hardware capabilities should be done with
30references 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
59PHY configuration
60=================
61
62TBD
63
64This chapter should describe PHY handling including start/stop callbacks
65and 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
73Virtual interfaces
74==================
75
76TBD
77
78This chapter should describe virtual interface basics that are relevant
79to the driver (VLANs, MGMT etc are not.) It should explain the use of
80the add_iface/remove_iface callbacks as well as the interface
81configuration callbacks.
82
83Things related to AP mode should be discussed there.
84
85Things related to supporting multiple interfaces should be in the
86appropriate chapter, a BIG FAT note should be here about this though and
87the recommendation to allow only a single interface in STA mode at
88first!
89
90.. kernel-doc:: include/net/mac80211.h
91   :functions: ieee80211_vif
92
93Receive and transmit processing
94===============================
95
96what should be here
97-------------------
98
99TBD
100
101This should describe the receive and transmit paths in mac80211/the
102drivers as well as transmit status handling.
103
104Frame format
105------------
106
107.. kernel-doc:: include/net/mac80211.h
108   :doc: Frame format
109
110Packet alignment
111----------------
112
113.. kernel-doc:: net/mac80211/rx.c
114   :doc: Packet alignment
115
116Calling into mac80211 from interrupts
117-------------------------------------
118
119.. kernel-doc:: include/net/mac80211.h
120   :doc: Calling mac80211 from interrupts
121
122functions/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_encoding_flags
130
131.. kernel-doc:: include/net/mac80211.h
132   :functions: mac80211_rx_flags
133
134.. kernel-doc:: include/net/mac80211.h
135   :functions: mac80211_tx_info_flags
136
137.. kernel-doc:: include/net/mac80211.h
138   :functions: mac80211_tx_control_flags
139
140.. kernel-doc:: include/net/mac80211.h
141   :functions: mac80211_rate_control_flags
142
143.. kernel-doc:: include/net/mac80211.h
144   :functions: ieee80211_tx_rate
145
146.. kernel-doc:: include/net/mac80211.h
147   :functions: ieee80211_tx_info
148
149.. kernel-doc:: include/net/mac80211.h
150   :functions: ieee80211_tx_info_clear_status
151
152.. kernel-doc:: include/net/mac80211.h
153   :functions: ieee80211_rx
154
155.. kernel-doc:: include/net/mac80211.h
156   :functions: ieee80211_rx_ni
157
158.. kernel-doc:: include/net/mac80211.h
159   :functions: ieee80211_rx_irqsafe
160
161.. kernel-doc:: include/net/mac80211.h
162   :functions: ieee80211_tx_status
163
164.. kernel-doc:: include/net/mac80211.h
165   :functions: ieee80211_tx_status_ni
166
167.. kernel-doc:: include/net/mac80211.h
168   :functions: ieee80211_tx_status_irqsafe
169
170.. kernel-doc:: include/net/mac80211.h
171   :functions: ieee80211_rts_get
172
173.. kernel-doc:: include/net/mac80211.h
174   :functions: ieee80211_rts_duration
175
176.. kernel-doc:: include/net/mac80211.h
177   :functions: ieee80211_ctstoself_get
178
179.. kernel-doc:: include/net/mac80211.h
180   :functions: ieee80211_ctstoself_duration
181
182.. kernel-doc:: include/net/mac80211.h
183   :functions: ieee80211_generic_frame_duration
184
185.. kernel-doc:: include/net/mac80211.h
186   :functions: ieee80211_wake_queue
187
188.. kernel-doc:: include/net/mac80211.h
189   :functions: ieee80211_stop_queue
190
191.. kernel-doc:: include/net/mac80211.h
192   :functions: ieee80211_wake_queues
193
194.. kernel-doc:: include/net/mac80211.h
195   :functions: ieee80211_stop_queues
196
197.. kernel-doc:: include/net/mac80211.h
198   :functions: ieee80211_queue_stopped
199
200Frame filtering
201===============
202
203.. kernel-doc:: include/net/mac80211.h
204   :doc: Frame filtering
205
206.. kernel-doc:: include/net/mac80211.h
207   :functions: ieee80211_filter_flags
208
209The mac80211 workqueue
210======================
211
212.. kernel-doc:: include/net/mac80211.h
213   :doc: mac80211 workqueue
214
215.. kernel-doc:: include/net/mac80211.h
216   :functions: ieee80211_queue_work
217
218.. kernel-doc:: include/net/mac80211.h
219   :functions: ieee80211_queue_delayed_work
220