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