NOTE: this page is for archival only, see the note at the end of the page.

mac80211 driver API notes

There surely are errors and omissions in this list, please help. Also, if you maintain a driver, please look through this list.

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
  • must honour IEEE80211_TX_CTL_SHORT_PREAMBLE or never do short-preamble transmissions
  • When sending probe response frames, the timestamp must be adjusted by the hardware or firmware. This is important to power saving stations that happen to adjust their TSF from the timestamp in the probe response frame.

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]
  • ...

This is a static dump of the wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1