In diesem Beitrag wird der Aufbau des WLAN Linux Treiber behandelt. Einen groben Überblick verschafft das folgende Diagramm.
Inhaltsverzeichnis
Übersicht

User-Space
Hostapd
- Host access point daemon
- IEEE 802.11 AP Management
- IEEE 802.1X / WPA / WPA2 / EAP Authenticator
- Konfigurationsdateien
- Kommuniziert über nl80211
- mit dem Kernel Space
- Open Source
wpa-supplicant
- IEEE 802.11i (Security) supplicant
- Kommuniziert über nl80211 mit dem
- Kernel Space
- Features:
- WPA-PSK / WPA2-PSK (WPA/2-Personal)
- WPA with EAP (WPA/2-Enterprise)
- Pre-Authenfication
- Fast BSS Transition (802.11r)
- WPS
- Open Source
iw
- Kommuniziert über nl80211 mit dem Kernel Space
- Zeigt WLAN Device Konfigurationen
- Manipuliert WLAN Device Konfigurationen
- CLI basiert
Kernel-Space
nl80211
- Kommunikation zwischen Kernel und User Space
- neue 802.11 netlink interface public header
- wird noch weiter entwickelt
- Hat zusammen mit cfg80211 das alte Wireless-Extension (wext ioctl) abgelöst.
- nl80211 interface (include/linux/nl802.11h)
- enum nl80211_commands
- enum nl80211_attrs
cfg80211
- 802.11 konfigurations API
- AP
- Hidden ssid
- Auth type (OPEN, FT, EAP, SAE, …)
- Kanäle
- MESH
- greift auf Regulatory DB zur Unterstützung behördlicher Regulierungen (wireless-regdb)
- Kommuniziert mit mac80211 bei Soft-MAC Treiber
- Kommuniziert direkt mit Full-MAC Treibern
- cfg80211 interface: include/net/cfg80211.h
mac80211
- Framework um Soft-MAC Treiber zu schreiben
- cfg80211 callbacks
- MLME (Media Access Control Sublayer Management Entity) für station mode
- Physical Layer state machine
- Features:
- Mesh
- Roaming (wpa_supplicant)
- QoS
Treiber
- gibt meist die unterstützten Features vor
- Vendor Spezifische Treiber
- ath (QCA)
- ath10k
- ath9k
- TI
- wl18xx
- wl12xx
- broadcom
- brcmsmac (Soft-MAC)
- brcmfmac (Full-MAC)
Links
https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-testing.git
Kommentare von Waldo Rama