mac80211框架基础
Overview
To be able to control wireless drivers from userspace, some IPC communication processes between kernel and userspace are used.
At first ioctl with vendor dependent APIs was used.
In 1996, Jean Tourrilhes creates wireless extensions (WE or WEXT).
The Wireless Extension (WE) is a generic API allowing a driver to expose to the user space configuration and statistics specific to common Wireless LANs.
An important point is that nl80211/cfg80211/mac80211 no longer use ioctl, they use netlink.
So, tools like iw, hostapd or the wpa_supplicant use some netlink libraries (like libnl or libnl-tiny) and the netlink interface public header which is of course nl80211.h.
There is not so much documentations, but I advice you to read the libnl documentation and then the iw source code (because iw use libnl).
Mac80211 Framework
nl80211
is the interface between user space software (iw
,wpa_supplicant
, etc.) and the kernel (cfg80211
andmac80211
kernel modules, and specific drivers).The WiFi drivers and hardware could be Full-MAC or Soft-MAC (see Wireless_network_interface_controller).
cfg80211_ops
is a set of operations that Full-MAC drivers andmac80211
module register to cfg80211 module.ieee80211_ops
is a set of operations that Soft-MAC drivers register tomac80211
module.
References
Last updated