As seen in the previous article <Linux 802.11 SoftMAC architecture>, mac80211 interacts with the SoftMAC driver via “ieee80211_ops” structure and interacts with cfg80211 via “cfg80211_ops” structure.
The structures can be found at
- cf80211_ops – /include/net/cfg80211.h
- ieee80211_ops – /include/net/mac80211.h
Snippets of both structure are provided below to provide an idea on how the structures are and how they are used.


The below image snippets provide how the callbacks are configured in mac80211 and a softmac driver (iwlwifi in this case) setting up mac80211 callbacks.

The above configuration ops are provided to the upper layer during initialization.
Similarly, the ieee80211_ops are filled by the softmac driver and registered to mac80211 during “ieee80211_alloc_hw” API call.

Pingback: Linux 802.11 SoftMAC architecture | Hitch Hiker's Guide to Learning