0001 ===========================
0002 mac80211 subsystem (basics)
0003 ===========================
0004
0005 You should read and understand the information contained within this
0006 part of the book while implementing a mac80211 driver. In some chapters,
0007 advanced usage is noted, those may be skipped if this isn't needed.
0008
0009 This part of the book only covers station and monitor mode
0010 functionality, additional information required to implement the other
0011 modes is covered in the second part of the book.
0012
0013 Basic hardware handling
0014 =======================
0015
0016 TBD
0017
0018 This chapter shall contain information on getting a hw struct allocated
0019 and registered with mac80211.
0020
0021 Since it is required to allocate rates/modes before registering a hw
0022 struct, this chapter shall also contain information on setting up the
0023 rate/mode structs.
0024
0025 Additionally, some discussion about the callbacks and the general
0026 programming model should be in here, including the definition of
0027 ieee80211_ops which will be referred to a lot.
0028
0029 Finally, a discussion of hardware capabilities should be done with
0030 references to other parts of the book.
0031
0032 .. kernel-doc:: include/net/mac80211.h
0033 :functions:
0034 ieee80211_hw
0035 ieee80211_hw_flags
0036 SET_IEEE80211_DEV
0037 SET_IEEE80211_PERM_ADDR
0038 ieee80211_ops
0039 ieee80211_alloc_hw
0040 ieee80211_register_hw
0041 ieee80211_unregister_hw
0042 ieee80211_free_hw
0043
0044 PHY configuration
0045 =================
0046
0047 TBD
0048
0049 This chapter should describe PHY handling including start/stop callbacks
0050 and the various structures used.
0051
0052 .. kernel-doc:: include/net/mac80211.h
0053 :functions:
0054 ieee80211_conf
0055 ieee80211_conf_flags
0056
0057 Virtual interfaces
0058 ==================
0059
0060 TBD
0061
0062 This chapter should describe virtual interface basics that are relevant
0063 to the driver (VLANs, MGMT etc are not.) It should explain the use of
0064 the add_iface/remove_iface callbacks as well as the interface
0065 configuration callbacks.
0066
0067 Things related to AP mode should be discussed there.
0068
0069 Things related to supporting multiple interfaces should be in the
0070 appropriate chapter, a BIG FAT note should be here about this though and
0071 the recommendation to allow only a single interface in STA mode at
0072 first!
0073
0074 .. kernel-doc:: include/net/mac80211.h
0075 :functions: ieee80211_vif
0076
0077 Receive and transmit processing
0078 ===============================
0079
0080 what should be here
0081 -------------------
0082
0083 TBD
0084
0085 This should describe the receive and transmit paths in mac80211/the
0086 drivers as well as transmit status handling.
0087
0088 Frame format
0089 ------------
0090
0091 .. kernel-doc:: include/net/mac80211.h
0092 :doc: Frame format
0093
0094 Packet alignment
0095 ----------------
0096
0097 .. kernel-doc:: net/mac80211/rx.c
0098 :doc: Packet alignment
0099
0100 Calling into mac80211 from interrupts
0101 -------------------------------------
0102
0103 .. kernel-doc:: include/net/mac80211.h
0104 :doc: Calling mac80211 from interrupts
0105
0106 functions/definitions
0107 ---------------------
0108
0109 .. kernel-doc:: include/net/mac80211.h
0110 :functions:
0111 ieee80211_rx_status
0112 mac80211_rx_encoding_flags
0113 mac80211_rx_flags
0114 mac80211_tx_info_flags
0115 mac80211_tx_control_flags
0116 mac80211_rate_control_flags
0117 ieee80211_tx_rate
0118 ieee80211_tx_info
0119 ieee80211_tx_info_clear_status
0120 ieee80211_rx
0121 ieee80211_rx_ni
0122 ieee80211_rx_irqsafe
0123 ieee80211_tx_status
0124 ieee80211_tx_status_ni
0125 ieee80211_tx_status_irqsafe
0126 ieee80211_rts_get
0127 ieee80211_rts_duration
0128 ieee80211_ctstoself_get
0129 ieee80211_ctstoself_duration
0130 ieee80211_generic_frame_duration
0131 ieee80211_wake_queue
0132 ieee80211_stop_queue
0133 ieee80211_wake_queues
0134 ieee80211_stop_queues
0135 ieee80211_queue_stopped
0136
0137 Frame filtering
0138 ===============
0139
0140 .. kernel-doc:: include/net/mac80211.h
0141 :doc: Frame filtering
0142
0143 .. kernel-doc:: include/net/mac80211.h
0144 :functions: ieee80211_filter_flags
0145
0146 The mac80211 workqueue
0147 ======================
0148
0149 .. kernel-doc:: include/net/mac80211.h
0150 :doc: mac80211 workqueue
0151
0152 .. kernel-doc:: include/net/mac80211.h
0153 :functions:
0154 ieee80211_queue_work
0155 ieee80211_queue_delayed_work