10bb33e25SJonathan Corbet============================= 20bb33e25SJonathan Corbetmac80211 subsystem (advanced) 30bb33e25SJonathan Corbet============================= 40bb33e25SJonathan Corbet 50bb33e25SJonathan CorbetInformation contained within this part of the book is of interest only 60bb33e25SJonathan Corbetfor advanced interaction of mac80211 with drivers to exploit more 70bb33e25SJonathan Corbethardware capabilities and improve performance. 80bb33e25SJonathan Corbet 90bb33e25SJonathan CorbetLED support 100bb33e25SJonathan Corbet=========== 110bb33e25SJonathan Corbet 120bb33e25SJonathan CorbetMac80211 supports various ways of blinking LEDs. Wherever possible, 130bb33e25SJonathan Corbetdevice LEDs should be exposed as LED class devices and hooked up to the 140bb33e25SJonathan Corbetappropriate trigger, which will then be triggered appropriately by 150bb33e25SJonathan Corbetmac80211. 160bb33e25SJonathan Corbet 170bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 18efc7d01aSMauro Carvalho Chehab :functions: 19efc7d01aSMauro Carvalho Chehab ieee80211_get_tx_led_name 20efc7d01aSMauro Carvalho Chehab ieee80211_get_rx_led_name 21efc7d01aSMauro Carvalho Chehab ieee80211_get_assoc_led_name 22efc7d01aSMauro Carvalho Chehab ieee80211_get_radio_led_name 23efc7d01aSMauro Carvalho Chehab ieee80211_tpt_blink 24efc7d01aSMauro Carvalho Chehab ieee80211_tpt_led_trigger_flags 25efc7d01aSMauro Carvalho Chehab ieee80211_create_tpt_led_trigger 260bb33e25SJonathan Corbet 270bb33e25SJonathan CorbetHardware crypto acceleration 280bb33e25SJonathan Corbet============================ 290bb33e25SJonathan Corbet 300bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 310bb33e25SJonathan Corbet :doc: Hardware crypto acceleration 320bb33e25SJonathan Corbet 330bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 34efc7d01aSMauro Carvalho Chehab :functions: 35efc7d01aSMauro Carvalho Chehab set_key_cmd 36efc7d01aSMauro Carvalho Chehab ieee80211_key_conf 37efc7d01aSMauro Carvalho Chehab ieee80211_key_flags 38efc7d01aSMauro Carvalho Chehab ieee80211_get_tkip_p1k 39efc7d01aSMauro Carvalho Chehab ieee80211_get_tkip_p1k_iv 40efc7d01aSMauro Carvalho Chehab ieee80211_get_tkip_p2k 410bb33e25SJonathan Corbet 420bb33e25SJonathan CorbetPowersave support 430bb33e25SJonathan Corbet================= 440bb33e25SJonathan Corbet 450bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 460bb33e25SJonathan Corbet :doc: Powersave support 470bb33e25SJonathan Corbet 480bb33e25SJonathan CorbetBeacon filter support 490bb33e25SJonathan Corbet===================== 500bb33e25SJonathan Corbet 510bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 520bb33e25SJonathan Corbet :doc: Beacon filter support 530bb33e25SJonathan Corbet 540bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 550bb33e25SJonathan Corbet :functions: ieee80211_beacon_loss 560bb33e25SJonathan Corbet 570bb33e25SJonathan CorbetMultiple queues and QoS support 580bb33e25SJonathan Corbet=============================== 590bb33e25SJonathan Corbet 600bb33e25SJonathan CorbetTBD 610bb33e25SJonathan Corbet 620bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 630bb33e25SJonathan Corbet :functions: ieee80211_tx_queue_params 640bb33e25SJonathan Corbet 650bb33e25SJonathan CorbetAccess point mode support 660bb33e25SJonathan Corbet========================= 670bb33e25SJonathan Corbet 680bb33e25SJonathan CorbetTBD 690bb33e25SJonathan Corbet 700bb33e25SJonathan CorbetSome parts of the if_conf should be discussed here instead 710bb33e25SJonathan Corbet 720bb33e25SJonathan CorbetInsert notes about VLAN interfaces with hw crypto here or in the hw 730bb33e25SJonathan Corbetcrypto chapter. 740bb33e25SJonathan Corbet 750bb33e25SJonathan Corbetsupport for powersaving clients 760bb33e25SJonathan Corbet------------------------------- 770bb33e25SJonathan Corbet 780bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 790bb33e25SJonathan Corbet :doc: AP support for powersaving clients 800bb33e25SJonathan Corbet 810bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 82efc7d01aSMauro Carvalho Chehab :functions: 83efc7d01aSMauro Carvalho Chehab ieee80211_get_buffered_bc 84efc7d01aSMauro Carvalho Chehab ieee80211_beacon_get 85efc7d01aSMauro Carvalho Chehab ieee80211_sta_eosp 86efc7d01aSMauro Carvalho Chehab ieee80211_frame_release_type 87efc7d01aSMauro Carvalho Chehab ieee80211_sta_ps_transition 88efc7d01aSMauro Carvalho Chehab ieee80211_sta_ps_transition_ni 89efc7d01aSMauro Carvalho Chehab ieee80211_sta_set_buffered 90efc7d01aSMauro Carvalho Chehab ieee80211_sta_block_awake 910bb33e25SJonathan Corbet 920bb33e25SJonathan CorbetSupporting multiple virtual interfaces 930bb33e25SJonathan Corbet====================================== 940bb33e25SJonathan Corbet 950bb33e25SJonathan CorbetTBD 960bb33e25SJonathan Corbet 970bb33e25SJonathan CorbetNote: WDS with identical MAC address should almost always be OK 980bb33e25SJonathan Corbet 990bb33e25SJonathan CorbetInsert notes about having multiple virtual interfaces with different MAC 1000bb33e25SJonathan Corbetaddresses here, note which configurations are supported by mac80211, add 1010bb33e25SJonathan Corbetnotes about supporting hw crypto with it. 1020bb33e25SJonathan Corbet 1030bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 104efc7d01aSMauro Carvalho Chehab :functions: 105efc7d01aSMauro Carvalho Chehab ieee80211_iterate_active_interfaces 106efc7d01aSMauro Carvalho Chehab ieee80211_iterate_active_interfaces_atomic 1070bb33e25SJonathan Corbet 1080bb33e25SJonathan CorbetStation handling 1090bb33e25SJonathan Corbet================ 1100bb33e25SJonathan Corbet 1110bb33e25SJonathan CorbetTODO 1120bb33e25SJonathan Corbet 1130bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 114efc7d01aSMauro Carvalho Chehab :functions: 115efc7d01aSMauro Carvalho Chehab ieee80211_sta 116efc7d01aSMauro Carvalho Chehab sta_notify_cmd 117efc7d01aSMauro Carvalho Chehab ieee80211_find_sta 118efc7d01aSMauro Carvalho Chehab ieee80211_find_sta_by_ifaddr 1190bb33e25SJonathan Corbet 1200bb33e25SJonathan CorbetHardware scan offload 1210bb33e25SJonathan Corbet===================== 1220bb33e25SJonathan Corbet 1230bb33e25SJonathan CorbetTBD 1240bb33e25SJonathan Corbet 1250bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 1260bb33e25SJonathan Corbet :functions: ieee80211_scan_completed 1270bb33e25SJonathan Corbet 1280bb33e25SJonathan CorbetAggregation 1290bb33e25SJonathan Corbet=========== 1300bb33e25SJonathan Corbet 1310bb33e25SJonathan CorbetTX A-MPDU aggregation 1320bb33e25SJonathan Corbet--------------------- 1330bb33e25SJonathan Corbet 1340bb33e25SJonathan Corbet.. kernel-doc:: net/mac80211/agg-tx.c 1350bb33e25SJonathan Corbet :doc: TX A-MPDU aggregation 1360bb33e25SJonathan Corbet 1370bb33e25SJonathan Corbet.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c 1380bb33e25SJonathan Corbet 1390bb33e25SJonathan CorbetRX A-MPDU aggregation 1400bb33e25SJonathan Corbet--------------------- 1410bb33e25SJonathan Corbet 1420bb33e25SJonathan Corbet.. kernel-doc:: net/mac80211/agg-rx.c 1430bb33e25SJonathan Corbet :doc: RX A-MPDU aggregation 1440bb33e25SJonathan Corbet 1450bb33e25SJonathan Corbet.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c 1460bb33e25SJonathan Corbet 1470bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 1480bb33e25SJonathan Corbet :functions: ieee80211_ampdu_mlme_action 1490bb33e25SJonathan Corbet 1500bb33e25SJonathan CorbetSpatial Multiplexing Powersave (SMPS) 1510bb33e25SJonathan Corbet===================================== 1520bb33e25SJonathan Corbet 1530bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 1540bb33e25SJonathan Corbet :doc: Spatial multiplexing power save 1550bb33e25SJonathan Corbet 1560bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 157efc7d01aSMauro Carvalho Chehab :functions: 158efc7d01aSMauro Carvalho Chehab ieee80211_request_smps 159efc7d01aSMauro Carvalho Chehab ieee80211_smps_mode 1600bb33e25SJonathan Corbet 1610bb33e25SJonathan CorbetTBD 1620bb33e25SJonathan Corbet 1630bb33e25SJonathan CorbetThis part of the book describes the rate control algorithm interface and 1640bb33e25SJonathan Corbethow it relates to mac80211 and drivers. 1650bb33e25SJonathan Corbet 1660bb33e25SJonathan CorbetRate Control API 1670bb33e25SJonathan Corbet================ 1680bb33e25SJonathan Corbet 1690bb33e25SJonathan CorbetTBD 1700bb33e25SJonathan Corbet 1710bb33e25SJonathan Corbet.. kernel-doc:: include/net/mac80211.h 172efc7d01aSMauro Carvalho Chehab :functions: 173efc7d01aSMauro Carvalho Chehab ieee80211_start_tx_ba_session 174efc7d01aSMauro Carvalho Chehab ieee80211_start_tx_ba_cb_irqsafe 175efc7d01aSMauro Carvalho Chehab ieee80211_stop_tx_ba_session 176efc7d01aSMauro Carvalho Chehab ieee80211_stop_tx_ba_cb_irqsafe 177efc7d01aSMauro Carvalho Chehab ieee80211_rate_control_changed 178efc7d01aSMauro Carvalho Chehab ieee80211_tx_rate_control 1790bb33e25SJonathan Corbet 1800bb33e25SJonathan CorbetTBD 1810bb33e25SJonathan Corbet 1820bb33e25SJonathan CorbetThis part of the book describes mac80211 internals. 1830bb33e25SJonathan Corbet 1840bb33e25SJonathan CorbetKey handling 1850bb33e25SJonathan Corbet============ 1860bb33e25SJonathan Corbet 1870bb33e25SJonathan CorbetKey handling basics 1880bb33e25SJonathan Corbet------------------- 1890bb33e25SJonathan Corbet 1900bb33e25SJonathan Corbet.. kernel-doc:: net/mac80211/key.c 1910bb33e25SJonathan Corbet :doc: Key handling basics 1920bb33e25SJonathan Corbet 1930bb33e25SJonathan CorbetMORE TBD 1940bb33e25SJonathan Corbet-------- 1950bb33e25SJonathan Corbet 1960bb33e25SJonathan CorbetTBD 1970bb33e25SJonathan Corbet 1980bb33e25SJonathan CorbetReceive processing 1990bb33e25SJonathan Corbet================== 2000bb33e25SJonathan Corbet 2010bb33e25SJonathan CorbetTBD 2020bb33e25SJonathan Corbet 2030bb33e25SJonathan CorbetTransmit processing 2040bb33e25SJonathan Corbet=================== 2050bb33e25SJonathan Corbet 2060bb33e25SJonathan CorbetTBD 2070bb33e25SJonathan Corbet 2080bb33e25SJonathan CorbetStation info handling 2090bb33e25SJonathan Corbet===================== 2100bb33e25SJonathan Corbet 2110bb33e25SJonathan CorbetProgramming information 2120bb33e25SJonathan Corbet----------------------- 2130bb33e25SJonathan Corbet 2140bb33e25SJonathan Corbet.. kernel-doc:: net/mac80211/sta_info.h 215efc7d01aSMauro Carvalho Chehab :functions: 216efc7d01aSMauro Carvalho Chehab sta_info 217efc7d01aSMauro Carvalho Chehab ieee80211_sta_info_flags 2180bb33e25SJonathan Corbet 2190bb33e25SJonathan CorbetSTA information lifetime rules 2200bb33e25SJonathan Corbet------------------------------ 2210bb33e25SJonathan Corbet 2220bb33e25SJonathan Corbet.. kernel-doc:: net/mac80211/sta_info.c 2230bb33e25SJonathan Corbet :doc: STA information lifetime rules 2240bb33e25SJonathan Corbet 225c44166feSMauro Carvalho ChehabAggregation Functions 226c44166feSMauro Carvalho Chehab===================== 2270bb33e25SJonathan Corbet 2280bb33e25SJonathan Corbet.. kernel-doc:: net/mac80211/sta_info.h 229efc7d01aSMauro Carvalho Chehab :functions: 230efc7d01aSMauro Carvalho Chehab sta_ampdu_mlme 231efc7d01aSMauro Carvalho Chehab tid_ampdu_tx 232efc7d01aSMauro Carvalho Chehab tid_ampdu_rx 2330bb33e25SJonathan Corbet 234c44166feSMauro Carvalho ChehabSynchronisation Functions 235c44166feSMauro Carvalho Chehab========================= 2360bb33e25SJonathan Corbet 2370bb33e25SJonathan CorbetTBD 2380bb33e25SJonathan Corbet 2390bb33e25SJonathan CorbetLocking, lots of RCU 240