title: Do Access points use softMAC or hardMAC?
body: <p>I am trying to understand the working of wireless in linux. I started with wpa_supplicant, hostapd applications with the help of their documentation and source code.Understood the flow and basic functionalities of :</p>
  
  <ol>
  <li>wpa_supplicant,nl80211(driver interface)</li>
  <li>libnl library(socket communication between user space and kernel using netlink protocol)</li>
  <li>cfg80211(kernel interface used for communicating with the driver from userspace with the help of nl80211 implementation in user space),mac80211(software media access control layer)</li>
  <li>driver(loadable driver ex:ath6kl - atheros driver).</li>
  </ol>
  
  <p>I understood the above software flow and in my exploration I came to know that for providing freedom for developers MAC layer is implemented in software(popular implementation mac80211).</p>
  
  <p>Is this true in all the cases ? If so what are pros and cons of softMAC and hardMAC ? Do cfg80211 interface in kernel directly communicates with the driver ? who and how communication with mac80211 happens ?</p>
  
  <p>Thanks in advance.</p>