mac80211 driver API notes
I compiled this list rather quickly, and there may be small errors in it; there will surely be omissions, please help. – JohannesBerg 2008-10-07 17:38:06
A driver must (alternatives in order of preference)
- set the IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE hw flag if it cannot receive short preamble transmissions
- either honour the IEEE80211_TX_CTL_USE_RTS_CTS flag or implement the set_rts_threshold call
- either honour the IEEE80211_TX_CTL_USE_CTS_PROTECT flag or honour bss_conf's use_cts_prot value
- honour bss_conf's use_short_slot or set the IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hw flag
- honour bss_conf's basic_rates bitmap to set up the control response frame bitrate (cf. IEEE 802.11-2007 9.6 "Multirate support" paragraph 7)
- honour IEEE80211_TX_CTL_NO_ACK unless the hardware does based on the multicast bit
- honour IEEE80211_TX_CTL_ASSIGN_SEQ (we could make this depend on IBSS/AP/MESH modes)
- honour IEEE80211_TX_CTL_REQ_TX_STATUS or always report TX status
- honour the radio_enabled value of the hw config
- not change it's operating mode based on IEEE80211_CONF_RADIOTAP
- clear/set MAC address filters/control response frame generation based on the interface add/remove callbacks
- set up beacon access parameters based on the interface mode (ibss/ap)
- use SET_IEEE80211_DEV and SET_IEEE80211_PERM_ADDR
- set the wiphy interface modes
- set one of the IEEE80211_HW_SIGNAL_* hw flags (?)
- set channel_change_time
- ...
It also should
- honour IEEE80211_TX_CTL_SHORT_PREAMBLE or honour bss_conf's use_short_preamble
For QoS/WME, it must
- support at least four queues
- support configurable access parameters for those queues
- ...
For AP mode, it must
- honour IEEE80211_TX_CTL_SEND_AFTER_DTIM
- ...
For MESH mode, it must
- [anything special other than beaconing?]
- ...
For HT, it must
- support QoS
- [need help, Tomas/Ron?]
- ...
For spectrum management, it must
- [unfinished]
- ...