1 ============================= 1 ============================= 2 mac80211 subsystem (advanced) 2 mac80211 subsystem (advanced) 3 ============================= 3 ============================= 4 4 5 Information contained within this part of the 5 Information contained within this part of the book is of interest only 6 for advanced interaction of mac80211 with driv 6 for advanced interaction of mac80211 with drivers to exploit more 7 hardware capabilities and improve performance. 7 hardware capabilities and improve performance. 8 8 9 LED support 9 LED support 10 =========== 10 =========== 11 11 12 Mac80211 supports various ways of blinking LED 12 Mac80211 supports various ways of blinking LEDs. Wherever possible, 13 device LEDs should be exposed as LED class dev 13 device LEDs should be exposed as LED class devices and hooked up to the 14 appropriate trigger, which will then be trigge 14 appropriate trigger, which will then be triggered appropriately by 15 mac80211. 15 mac80211. 16 16 17 .. kernel-doc:: include/net/mac80211.h 17 .. kernel-doc:: include/net/mac80211.h 18 :functions: !! 18 :functions: ieee80211_get_tx_led_name 19 ieee80211_get_tx_led_name !! 19 20 ieee80211_get_rx_led_name !! 20 .. kernel-doc:: include/net/mac80211.h 21 ieee80211_get_assoc_led_name !! 21 :functions: ieee80211_get_rx_led_name 22 ieee80211_get_radio_led_name !! 22 23 ieee80211_tpt_blink !! 23 .. kernel-doc:: include/net/mac80211.h 24 ieee80211_tpt_led_trigger_flags !! 24 :functions: ieee80211_get_assoc_led_name 25 ieee80211_create_tpt_led_trigger !! 25 >> 26 .. kernel-doc:: include/net/mac80211.h >> 27 :functions: ieee80211_get_radio_led_name >> 28 >> 29 .. kernel-doc:: include/net/mac80211.h >> 30 :functions: ieee80211_tpt_blink >> 31 >> 32 .. kernel-doc:: include/net/mac80211.h >> 33 :functions: ieee80211_tpt_led_trigger_flags >> 34 >> 35 .. kernel-doc:: include/net/mac80211.h >> 36 :functions: ieee80211_create_tpt_led_trigger 26 37 27 Hardware crypto acceleration 38 Hardware crypto acceleration 28 ============================ 39 ============================ 29 40 30 .. kernel-doc:: include/net/mac80211.h 41 .. kernel-doc:: include/net/mac80211.h 31 :doc: Hardware crypto acceleration 42 :doc: Hardware crypto acceleration 32 43 33 .. kernel-doc:: include/net/mac80211.h 44 .. kernel-doc:: include/net/mac80211.h 34 :functions: !! 45 :functions: set_key_cmd 35 set_key_cmd !! 46 36 ieee80211_key_conf !! 47 .. kernel-doc:: include/net/mac80211.h 37 ieee80211_key_flags !! 48 :functions: ieee80211_key_conf 38 ieee80211_get_tkip_p1k !! 49 39 ieee80211_get_tkip_p1k_iv !! 50 .. kernel-doc:: include/net/mac80211.h 40 ieee80211_get_tkip_p2k !! 51 :functions: ieee80211_key_flags >> 52 >> 53 .. kernel-doc:: include/net/mac80211.h >> 54 :functions: ieee80211_get_tkip_p1k >> 55 >> 56 .. kernel-doc:: include/net/mac80211.h >> 57 :functions: ieee80211_get_tkip_p1k_iv >> 58 >> 59 .. kernel-doc:: include/net/mac80211.h >> 60 :functions: ieee80211_get_tkip_p2k 41 61 42 Powersave support 62 Powersave support 43 ================= 63 ================= 44 64 45 .. kernel-doc:: include/net/mac80211.h 65 .. kernel-doc:: include/net/mac80211.h 46 :doc: Powersave support 66 :doc: Powersave support 47 67 48 Beacon filter support 68 Beacon filter support 49 ===================== 69 ===================== 50 70 51 .. kernel-doc:: include/net/mac80211.h 71 .. kernel-doc:: include/net/mac80211.h 52 :doc: Beacon filter support 72 :doc: Beacon filter support 53 73 54 .. kernel-doc:: include/net/mac80211.h 74 .. kernel-doc:: include/net/mac80211.h 55 :functions: ieee80211_beacon_loss 75 :functions: ieee80211_beacon_loss 56 76 57 Multiple queues and QoS support 77 Multiple queues and QoS support 58 =============================== 78 =============================== 59 79 60 TBD 80 TBD 61 81 62 .. kernel-doc:: include/net/mac80211.h 82 .. kernel-doc:: include/net/mac80211.h 63 :functions: ieee80211_tx_queue_params 83 :functions: ieee80211_tx_queue_params 64 84 65 Access point mode support 85 Access point mode support 66 ========================= 86 ========================= 67 87 68 TBD 88 TBD 69 89 70 Some parts of the if_conf should be discussed 90 Some parts of the if_conf should be discussed here instead 71 91 72 Insert notes about VLAN interfaces with hw cry 92 Insert notes about VLAN interfaces with hw crypto here or in the hw 73 crypto chapter. 93 crypto chapter. 74 94 75 support for powersaving clients 95 support for powersaving clients 76 ------------------------------- 96 ------------------------------- 77 97 78 .. kernel-doc:: include/net/mac80211.h 98 .. kernel-doc:: include/net/mac80211.h 79 :doc: AP support for powersaving clients 99 :doc: AP support for powersaving clients 80 100 81 .. kernel-doc:: include/net/mac80211.h 101 .. kernel-doc:: include/net/mac80211.h 82 :functions: !! 102 :functions: ieee80211_get_buffered_bc 83 ieee80211_get_buffered_bc !! 103 84 ieee80211_beacon_get !! 104 .. kernel-doc:: include/net/mac80211.h 85 ieee80211_sta_eosp !! 105 :functions: ieee80211_beacon_get 86 ieee80211_frame_release_type !! 106 87 ieee80211_sta_ps_transition !! 107 .. kernel-doc:: include/net/mac80211.h 88 ieee80211_sta_ps_transition_ni !! 108 :functions: ieee80211_sta_eosp 89 ieee80211_sta_set_buffered !! 109 90 ieee80211_sta_block_awake !! 110 .. kernel-doc:: include/net/mac80211.h >> 111 :functions: ieee80211_frame_release_type >> 112 >> 113 .. kernel-doc:: include/net/mac80211.h >> 114 :functions: ieee80211_sta_ps_transition >> 115 >> 116 .. kernel-doc:: include/net/mac80211.h >> 117 :functions: ieee80211_sta_ps_transition_ni >> 118 >> 119 .. kernel-doc:: include/net/mac80211.h >> 120 :functions: ieee80211_sta_set_buffered >> 121 >> 122 .. kernel-doc:: include/net/mac80211.h >> 123 :functions: ieee80211_sta_block_awake 91 124 92 Supporting multiple virtual interfaces 125 Supporting multiple virtual interfaces 93 ====================================== 126 ====================================== 94 127 95 TBD 128 TBD 96 129 97 Note: WDS with identical MAC address should al 130 Note: WDS with identical MAC address should almost always be OK 98 131 99 Insert notes about having multiple virtual int 132 Insert notes about having multiple virtual interfaces with different MAC 100 addresses here, note which configurations are 133 addresses here, note which configurations are supported by mac80211, add 101 notes about supporting hw crypto with it. 134 notes about supporting hw crypto with it. 102 135 103 .. kernel-doc:: include/net/mac80211.h 136 .. kernel-doc:: include/net/mac80211.h 104 :functions: !! 137 :functions: ieee80211_iterate_active_interfaces 105 ieee80211_iterate_active_interfaces !! 138 106 ieee80211_iterate_active_interfaces_at !! 139 .. kernel-doc:: include/net/mac80211.h >> 140 :functions: ieee80211_iterate_active_interfaces_atomic 107 141 108 Station handling 142 Station handling 109 ================ 143 ================ 110 144 111 TODO 145 TODO 112 146 113 .. kernel-doc:: include/net/mac80211.h 147 .. kernel-doc:: include/net/mac80211.h 114 :functions: !! 148 :functions: ieee80211_sta 115 ieee80211_sta !! 149 116 sta_notify_cmd !! 150 .. kernel-doc:: include/net/mac80211.h 117 ieee80211_find_sta !! 151 :functions: sta_notify_cmd 118 ieee80211_find_sta_by_ifaddr !! 152 >> 153 .. kernel-doc:: include/net/mac80211.h >> 154 :functions: ieee80211_find_sta >> 155 >> 156 .. kernel-doc:: include/net/mac80211.h >> 157 :functions: ieee80211_find_sta_by_ifaddr 119 158 120 Hardware scan offload 159 Hardware scan offload 121 ===================== 160 ===================== 122 161 123 TBD 162 TBD 124 163 125 .. kernel-doc:: include/net/mac80211.h 164 .. kernel-doc:: include/net/mac80211.h 126 :functions: ieee80211_scan_completed 165 :functions: ieee80211_scan_completed 127 166 128 Aggregation 167 Aggregation 129 =========== 168 =========== 130 169 131 TX A-MPDU aggregation 170 TX A-MPDU aggregation 132 --------------------- 171 --------------------- 133 172 134 .. kernel-doc:: net/mac80211/agg-tx.c 173 .. kernel-doc:: net/mac80211/agg-tx.c 135 :doc: TX A-MPDU aggregation 174 :doc: TX A-MPDU aggregation 136 175 137 .. WARNING: DOCPROC directive not supported: ! 176 .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c 138 177 139 RX A-MPDU aggregation 178 RX A-MPDU aggregation 140 --------------------- 179 --------------------- 141 180 142 .. kernel-doc:: net/mac80211/agg-rx.c 181 .. kernel-doc:: net/mac80211/agg-rx.c 143 :doc: RX A-MPDU aggregation 182 :doc: RX A-MPDU aggregation 144 183 145 .. WARNING: DOCPROC directive not supported: ! 184 .. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c 146 185 147 .. kernel-doc:: include/net/mac80211.h 186 .. kernel-doc:: include/net/mac80211.h 148 :functions: ieee80211_ampdu_mlme_action 187 :functions: ieee80211_ampdu_mlme_action 149 188 150 Spatial Multiplexing Powersave (SMPS) 189 Spatial Multiplexing Powersave (SMPS) 151 ===================================== 190 ===================================== 152 191 153 .. kernel-doc:: include/net/mac80211.h 192 .. kernel-doc:: include/net/mac80211.h 154 :doc: Spatial multiplexing power save 193 :doc: Spatial multiplexing power save 155 194 156 .. kernel-doc:: include/net/mac80211.h 195 .. kernel-doc:: include/net/mac80211.h 157 :functions: !! 196 :functions: ieee80211_request_smps 158 ieee80211_request_smps !! 197 159 ieee80211_smps_mode !! 198 .. kernel-doc:: include/net/mac80211.h >> 199 :functions: ieee80211_smps_mode 160 200 161 TBD 201 TBD 162 202 163 This part of the book describes the rate contr 203 This part of the book describes the rate control algorithm interface and 164 how it relates to mac80211 and drivers. 204 how it relates to mac80211 and drivers. 165 205 166 Rate Control API 206 Rate Control API 167 ================ 207 ================ 168 208 169 TBD 209 TBD 170 210 171 .. kernel-doc:: include/net/mac80211.h 211 .. kernel-doc:: include/net/mac80211.h 172 :functions: !! 212 :functions: ieee80211_start_tx_ba_session 173 ieee80211_start_tx_ba_session !! 213 174 ieee80211_start_tx_ba_cb_irqsafe !! 214 .. kernel-doc:: include/net/mac80211.h 175 ieee80211_stop_tx_ba_session !! 215 :functions: ieee80211_start_tx_ba_cb_irqsafe 176 ieee80211_stop_tx_ba_cb_irqsafe !! 216 177 ieee80211_rate_control_changed !! 217 .. kernel-doc:: include/net/mac80211.h 178 ieee80211_tx_rate_control !! 218 :functions: ieee80211_stop_tx_ba_session >> 219 >> 220 .. kernel-doc:: include/net/mac80211.h >> 221 :functions: ieee80211_stop_tx_ba_cb_irqsafe >> 222 >> 223 .. kernel-doc:: include/net/mac80211.h >> 224 :functions: ieee80211_rate_control_changed >> 225 >> 226 .. kernel-doc:: include/net/mac80211.h >> 227 :functions: ieee80211_tx_rate_control >> 228 >> 229 .. kernel-doc:: include/net/mac80211.h >> 230 :functions: rate_control_send_low 179 231 180 TBD 232 TBD 181 233 182 This part of the book describes mac80211 inter 234 This part of the book describes mac80211 internals. 183 235 184 Key handling 236 Key handling 185 ============ 237 ============ 186 238 187 Key handling basics 239 Key handling basics 188 ------------------- 240 ------------------- 189 241 190 .. kernel-doc:: net/mac80211/key.c 242 .. kernel-doc:: net/mac80211/key.c 191 :doc: Key handling basics 243 :doc: Key handling basics 192 244 193 MORE TBD 245 MORE TBD 194 -------- 246 -------- 195 247 196 TBD 248 TBD 197 249 198 Receive processing 250 Receive processing 199 ================== 251 ================== 200 252 201 TBD 253 TBD 202 254 203 Transmit processing 255 Transmit processing 204 =================== 256 =================== 205 257 206 TBD 258 TBD 207 259 208 Station info handling 260 Station info handling 209 ===================== 261 ===================== 210 262 211 Programming information 263 Programming information 212 ----------------------- 264 ----------------------- 213 265 214 .. kernel-doc:: net/mac80211/sta_info.h 266 .. kernel-doc:: net/mac80211/sta_info.h 215 :functions: !! 267 :functions: sta_info 216 sta_info !! 268 217 ieee80211_sta_info_flags !! 269 .. kernel-doc:: net/mac80211/sta_info.h >> 270 :functions: ieee80211_sta_info_flags 218 271 219 STA information lifetime rules 272 STA information lifetime rules 220 ------------------------------ 273 ------------------------------ 221 274 222 .. kernel-doc:: net/mac80211/sta_info.c 275 .. kernel-doc:: net/mac80211/sta_info.c 223 :doc: STA information lifetime rules 276 :doc: STA information lifetime rules 224 277 225 Aggregation Functions !! 278 Aggregation 226 ===================== !! 279 =========== 227 280 228 .. kernel-doc:: net/mac80211/sta_info.h 281 .. kernel-doc:: net/mac80211/sta_info.h 229 :functions: !! 282 :functions: sta_ampdu_mlme 230 sta_ampdu_mlme << 231 tid_ampdu_tx << 232 tid_ampdu_rx << 233 283 234 Synchronisation Functions !! 284 .. kernel-doc:: net/mac80211/sta_info.h 235 ========================= !! 285 :functions: tid_ampdu_tx >> 286 >> 287 .. kernel-doc:: net/mac80211/sta_info.h >> 288 :functions: tid_ampdu_rx >> 289 >> 290 Synchronisation >> 291 =============== 236 292 237 TBD 293 TBD 238 294 239 Locking, lots of RCU 295 Locking, lots of RCU
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.