2017年10月26日 星期四

Linux WiFi

Source: http://blog.csdn.net/liuxd3000/article/details/23761663


1. 基本概念
  • cfg80211:  用於對無線設備進行配置管理。與FullMAC, mac80211和nl80211一起工作。(Kernel態)
  • mac80211: 是一個driver開發者可用於為SoftMAC無線設備寫驅動的框架 (Kernel態)。
  • nl80211: 用於對無線設備進行配置管理,它是一個基本Netlink的使用者態協議(User態)
  • WNIC : Wireless Network Interface Controller, 它總是指望硬體執行協定(如IEEE802.11)描述的功能。
  • MLME: 即MAC(Media Access Control ) Layer Management Entity,它管理實體層MAC狀態機。
  • SoftMAC: 其MLME由軟體實現,mac80211為SoftMAC實現提供了一個driver API。 即:SoftMAC設備允許對硬體執行更好地控制,允許用軟體實現對802.11的幀管理,包括解析和產生802.11無線幀。目前大多數802.11設備為SoftMAC,而FullMAC設備較少。
  • FullMAC:  其MLME由硬體管理,當寫FullMAC無線驅動時,不需要使用mac80211。
  • wpa_supplicant: 是使用者空間一個應用程式,主要發起MLME命令,然後處理相關結果。
2. cfg80211

  • cfg80211是Linux 802.11配置API。cfg80211用於代碼wext(Wireless-Extensions),nl80211用於配置一個cfg80211設備,且用於kernel與userspace間的通信。wext現處理維護狀態,沒有新的功能被增加,只是修改bug。如果需要通過wext操作,則需要定義CONFIG_CFG80211_WEXT。
  • cfg80211 and nl80211: 基於消息機制,使用netlink介面
  • wext: 基於ioctl機制
  • struct ieee80211_hw: 表示硬體資訊和狀態
  • ieee80211_alloc_hw:每個driver調用ieee80211_alloc_hw分配ieee80211_hw,且以ieee80211_ops為參數
  • ieee80211_register_hw:每個driver調用ieee80211_register_hw創建wlan0和 wmaster0,並進行各種初始化。
  • struct ieee80211_ops:每個driver實現它的成員函數,且它的成員函數都以struct ieee80211_hw做為第一個參數。在struct ieee80211_ops中定義了24個方法,以下7個方法必須實現: tx,start,stop,add_interface,remove_interface,config和configure_filter。

3. mac80211
  • 它是一個driver開發者可用於為SoftMAC無線設備寫驅動的框架,mac80211為SoftMAC設備實現了cfg80211回呼函數,且mac80211通過cfg80211實現了向網路子系統註冊和配置。配置由cfg80211通過nl80211和wext實現。
  • mac80211在體系結構中的位置如下圖所示:


4. socket




問題:
想了解nl80211和cfg80211的工作細節。以及功能流程,nl80211是如何與網絡工具如wpa_supplicant進行交互的。
解答:
為了能夠從用戶空間控制無線驅動程序,一些IPC被用於內核和用戶態之間。


原文網址:https://read01.com/5MakMK.html
問題:
想了解nl80211和cfg80211的工作細節。以及功能流程,nl80211是如何與網絡工具如wpa_supplicant進行交互的。
解答:
為了能夠從用戶空間控制無線驅動程序,一些IPC被用於內核和用戶態之間。


原文網址:https://read01.com/5MakMK.html
問題:
想了解nl80211和cfg80211的工作細節。以及功能流程,nl80211是如何與網絡工具如wpa_supplicant進行交互的。
解答:
為了能夠從用戶空間控制無線驅動程序,一些IPC被用於內核和用戶態之間。


原文網址:https://read01.com/5MakMK.html
問題:
想了解nl80211和cfg80211的工作細節。以及功能流程,nl80211是如何與網絡工具如wpa_supplicant進行交互的。
解答:
為了能夠從用戶空間控制無線驅動程序,一些IPC被用於內核和用戶態之間。


原文網址:https://read01.com/5MakMK.html

沒有留言: