Linux Wireless Basics (cfg80211 mac80211 nl80211)

Source: Internet
Author: User

1. Basic Concepts

? cfg80211: Used for configuration management of wireless devices. Work with Fullmac, mac80211 and nl80211. (Kernel State)

? mac80211: is a framework (kernel state) that driver developers can use to write drivers for Softmac wireless devices.

? NL80211: For configuration management of wireless devices, it is a basic NetLink protocol (user state)

? Wnic:wireless Network Interface Controller, which always expects hardware to perform the functions described by the Protocol (such as IEEE802.11).

? Mlme: Mac (Media Access Control) layer Management Entity, which manages the physical layer Mac state machine.

? Softmac: Its mlme is implemented by software, MAC80211 provides a driver API for SOFTMAC implementations. That is: The SOFTMAC device allows for better control of hardware execution, allowing software to achieve 802.11 frame management, including parsing and generating 802.11 wireless frames. Currently, most 802.11 devices are softmac, while FULLMAC devices are less.

? Fullmac: Its mlme is hardware-managed and does not require the use of mac80211 when writing Fullmac wireless drivers.

? Wpa_supplicant: is a user-space application that primarily initiates the Mlme command and then processes the related results.

?

2. cfg80211

CFG80211 is the Linux 802.11 configuration API. cfg80211 is used for code wext (wireless-extensions), nl80211 is used to configure a cfg80211 device and is used for communication between kernel and userspace. Wext is now processing the maintenance state, no new functions have been added, just modify the bug. If you need to operate through wext, you need to define Config_cfg80211_wext.

cfg80211 and nl80211: Based on message mechanism, using NetLink interface

Wext: Based on the IOCTL mechanism

? struct IEEE80211_HW: Represents hardware information and status

? IEEE80211_ALLOC_HW: Each driver call IEEE80211_ALLOC_HW assigns IEEE80211_HW, and Ieee80211_ops is the parameter

? IEEE80211_REGISTER_HW: Each driver call IEEE80211_REGISTER_HW create Wlan0 and Wmaster0, and perform various initializations.

? struct Ieee80211_ops: Each driver implements its member function, and its member function takes the struct IEEE80211_HW as the first argument. There are 24 methods defined in struct Ieee80211_ops, and the following 7 methods must be implemented:
TX,start,stop,add_interface,remove_interface,config and configure_filter.


3. mac80211

It is a framework thatdriver developers can use to write drivers for Softmac wireless devices, mac80211 implements CFG80211 callback functions for SOFTMAC devices, and mac80211 through the cfg80211 implementation of the network subsystem registration and configuration. The configuration is implemented by cfg80211 through nl80211 and Wext.

The location of the mac80211 in the architecture is as follows:





4. Socket















http://wireless.kernel.org/en/developers/Documentation/


Linux Wireless Basics (cfg80211 mac80211 nl80211)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.