About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / 80211 / mac80211.rst


Based on kernel version 4.9. Page generated on 2016-12-21 14:27 EST.

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
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog