Wi-Fi is found in various devices like Mobile phones, Laptops, Access points, TVs etc. The number of types of devices (or things) with Wi-Fi is set to grow with the advent of "Internet of Things". The various layers of the protocol stack in Wi-Fi devices are shown in the below figure. How are these layers implemented in different types of devices? What parts of the the protocol stack are implemented in Wi-Fi chipsets?
The protocol stack consists of the MAC, PHY, MLME, Supplicant (which handles security), Data Stack and Applications.
Wi-Fi chipsets can be classified into two types based on whether they include the MLME or not.
The two types are "SoftMAC" and "FullMAC" (as defined by the Linux wireless community).
What is the advantage of having (or not having) the MLME in the Wi-Fi chipset?
MLME is MAC Sublayer Management Entity and takes care of various management procedures like Assocation, Authentication etc. MLME in the chip allows the host processor to save power by offloading certain functionality (most significant being roaming) to the chip. On the other hand, this can increase the cost (more memory, more processing etc) of the Wi-Fi chip.
"FullMAC" (why not FullMLME?) is suitable for battery powered mobile devices and "SoftMAC" is suitable for devices that are mains powered.
Another possible split is to have part of MLME in the chip and the rest outside. For e.g., the chip may handle beacons and probe request/response but not authentication and association.
Consider the case of a wireless speaker that doesn't have its own processor. The Wi-Fi chipset itself could provide all the layers of the protocol stack. Two possible "FullStack" (Note: This is how I call it and is not a standard term) options are shown below.
The protocol stack consists of the MAC, PHY, MLME, Supplicant (which handles security), Data Stack and Applications.
FullMAC and SoftMAC
Wi-Fi chipsets can be classified into two types based on whether they include the MLME or not.
The two types are "SoftMAC" and "FullMAC" (as defined by the Linux wireless community).
What is the advantage of having (or not having) the MLME in the Wi-Fi chipset?
MLME is MAC Sublayer Management Entity and takes care of various management procedures like Assocation, Authentication etc. MLME in the chip allows the host processor to save power by offloading certain functionality (most significant being roaming) to the chip. On the other hand, this can increase the cost (more memory, more processing etc) of the Wi-Fi chip.
"FullMAC" (why not FullMLME?) is suitable for battery powered mobile devices and "SoftMAC" is suitable for devices that are mains powered.
Another possible split is to have part of MLME in the chip and the rest outside. For e.g., the chip may handle beacons and probe request/response but not authentication and association.
FullStack
The classification of "Soft" and "Full" MAC can be applied to the Wi-Fi chipsets in almost all the usual (say laptops, Phones, Access Points) Wi-Fi devices. However, as Wi-Fi gets into more "things", the chipsets are also required to support more layers of the stack.Consider the case of a wireless speaker that doesn't have its own processor. The Wi-Fi chipset itself could provide all the layers of the protocol stack. Two possible "FullStack" (Note: This is how I call it and is not a standard term) options are shown below.
Examples
The usual (do note that some implementations may vary) stack architecture in different types of devices is shown below with some examples.Device Type | Wi-Fi Chpset Stack Architecture |
Upper Layers of the Stack | Chipset Example(s) |
---|---|---|---|
Mobile Phone | FullMAC | Application Processor | BCM4335 and other broadcom chipsets found in Smart phones |
Laptop | SoftMAC | Application Processor | Intel Wi-Fi chipsets for laptops |
Home/Small Access Point | SoftMAC | Application Processor | QCA9880 |
Enterprise (Light Weight) Access Point |
SoftMAC | Wireless LAN Controller | Chipsets in Cisco 3700 Aironet APs Not clear who makes the Wi-Fi chipset/radio |
Dumb things connected to network/internet |
FullStack | No upper layers at all (All layer in the chip) or A small processor/micro controller in the "thing" |
QCA4002 and QCA4004 |