Part I. The basic mac80211 driver interface

You should read and understand the information contained within this part of the book while implementing a driver. In some chapters, advanced usage is noted, that may be skipped at first.

This part of the book only covers station and monitor mode functionality, additional information required to implement the other modes is covered in the second part of the book.

Table of Contents

1. Basic hardware handling
struct ieee80211_hw — hardware information and state
enum ieee80211_hw_flags — hardware flags
SET_IEEE80211_DEV — set device for 802.11 hardware
SET_IEEE80211_PERM_ADDR — set the permanenet MAC address for 802.11 hardware
struct ieee80211_ops — callbacks from mac80211 to the driver
ieee80211_alloc_hw — Allocate a new hardware device
ieee80211_register_hw — Register hardware device
ieee80211_get_tx_led_name — get name of TX LED
ieee80211_get_rx_led_name — get name of RX LED
ieee80211_get_assoc_led_name — get name of association LED
ieee80211_get_radio_led_name — get name of radio LED
ieee80211_unregister_hw — Unregister a hardware device
ieee80211_free_hw — free hardware descriptor
2. PHY configuration
struct ieee80211_conf — configuration of the device
enum ieee80211_conf_flags — configuration flags
3. Virtual interfaces
enum ieee80211_if_types — types of 802.11 network interfaces
struct ieee80211_if_init_conf — initial configuration of an interface
struct ieee80211_if_conf — configuration of an interface
4. Receive and transmit processing
what should be here
Frame format
Alignment issues
Calling into mac80211 from interrupts
functions/definitions
5. Frame filtering
enum ieee80211_filter_flags — hardware filter flags