Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do Access points use softMAC or hardMAC?

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 :

  1. wpa_supplicant,nl80211(driver interface)
  2. libnl library(socket communication between user space and kernel using netlink protocol)
  3. 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)
  4. driver(loadable driver ex:ath6kl - atheros driver).

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).

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 ?

Thanks in advance.

like image 596
Ravi Avatar asked Feb 05 '15 11:02

Ravi


People also ask

What is SoftMAC?

FullMAC and SoftMAC devices A FullMAC device hides the complexity of the 802.11 protocol from the main CPU, instead providing an 802.3 (Ethernet) interface; a SoftMAC design implements only the timing-critical part of the protocol in hardware/firmware and the rest on the host.

What is Mlme in WIFI?

The combination of all of these can generally identify the model of the device. Introduction to MLME. The Wifi MAC Layer Management Entity (MLME) comprises a number of different types of packets used in the operation of the Wifi network.

What is mac80211 in Linux?

mac80211 is a framework which driver developers can use to write drivers for SoftMAC wireless devices. SoftMAC devices allow for a finer control of the hardware, allowing for 802.11 frame management to be done in software for them, for both parsing and generation of 802.11 wireless frames.


2 Answers

The term 'SoftMAC' refers to a wireless network interface device (WNIC) which does not implement the MAC layer in hardware, rather it expects the drivers to implement the MAC layer.

'HardMAC' (also called 'FullMAC') describes a WNIC which implements the MAC layer in hardware.

The advantages of SoftMAC are:

  • Potentially lower hardware costs
  • Possibility to upgrade to newer standards by updating the driver only
  • Possibility to correct faults in the MAC implementation by updating the driver only

An additional advantage (in the Linux kernel at least) is that many different drivers for different types of WNIC can all share the same MAC implementation, provided by the kernel itself.

Despite the advantages, not all WNICs use SoftMAC. The main advantages of HardMAC is that since the MAC functions are implemented in hardware, they contribute less CPU load.

mac80211 is the framework within the Linux kernel for implementing SoftMAC drivers. It implements the cfg80211 callbacks which would otherwise have to be implemented by the driver itself, and also implements the MAC layer functions. As such it goes between cfg80211 and the SoftMAC drivers.

HardMAC drivers have to implement the cfg80211 interfaces fully themselves.

like image 172
harmic Avatar answered Oct 21 '22 10:10

harmic


Also to add :- Hardmac drivers helps in better as compared to SoftMAC, power save and quick connection/disconnection recovery due to MLME implemented in HW. Better power save is because HW/FW need not to wake up host on disconnection and still can connect and recover .

like image 32
Atul Vaish Avatar answered Oct 21 '22 10:10

Atul Vaish