1 ===========================
2 mac80211 subsystem (basics)
3 ===========================
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.
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.
13 Basic hardware handling
14 =======================
18 This chapter shall contain information on getting a hw struct allocated
19 and registered with mac80211.
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
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.
29 Finally, a discussion of hardware capabilities should be done with
30 references to other parts of the book.
32 .. kernel-doc:: include/net/mac80211.h
37 SET_IEEE80211_PERM_ADDR
41 ieee80211_unregister_hw
49 This chapter should describe PHY handling including start/stop callbacks
50 and the various structures used.
52 .. kernel-doc:: include/net/mac80211.h
62 This chapter should describe virtual interface basics that are relevant
63 to the driver (VLANs, MGMT etc are not.) It should explain the use of
64 the add_iface/remove_iface callbacks as well as the interface
65 configuration callbacks.
67 Things related to AP mode should be discussed there.
69 Things related to supporting multiple interfaces should be in the
70 appropriate chapter, a BIG FAT note should be here about this though and
71 the recommendation to allow only a single interface in STA mode at
74 .. kernel-doc:: include/net/mac80211.h
75 :functions: ieee80211_vif
77 Receive and transmit processing
78 ===============================
85 This should describe the receive and transmit paths in mac80211/the
86 drivers as well as transmit status handling.
91 .. kernel-doc:: include/net/mac80211.h
97 .. kernel-doc:: net/mac80211/rx.c
98 :doc: Packet alignment
100 Calling into mac80211 from interrupts
101 -------------------------------------
103 .. kernel-doc:: include/net/mac80211.h
104 :doc: Calling mac80211 from interrupts
106 functions/definitions
107 ---------------------
109 .. kernel-doc:: include/net/mac80211.h
112 mac80211_rx_encoding_flags
114 mac80211_tx_info_flags
115 mac80211_tx_control_flags
116 mac80211_rate_control_flags
119 ieee80211_tx_info_clear_status
123 ieee80211_tx_status_skb
124 ieee80211_tx_status_ni
125 ieee80211_tx_status_irqsafe
127 ieee80211_rts_duration
128 ieee80211_ctstoself_get
129 ieee80211_ctstoself_duration
130 ieee80211_generic_frame_duration
133 ieee80211_wake_queues
134 ieee80211_stop_queues
135 ieee80211_queue_stopped
140 .. kernel-doc:: include/net/mac80211.h
141 :doc: Frame filtering
143 .. kernel-doc:: include/net/mac80211.h
144 :functions: ieee80211_filter_flags
146 The mac80211 workqueue
147 ======================
149 .. kernel-doc:: include/net/mac80211.h
150 :doc: mac80211 workqueue
152 .. kernel-doc:: include/net/mac80211.h
155 ieee80211_queue_delayed_work