Back to home page

OSCL-LXR

 
 

    


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