网卡驱动学习一、wireless基础知识(cfg80211 mac80211 nl80211)

文章详细介绍了Linux中用于无线设备配置管理的cfg80211API,以及与其相关的mac80211(SoftMAC驱动框架)和nl80211(用户态配置协议)。此外,讨论了FullMAC、SoftMAC的区别,并提到了wpa_supplicant在用户空间的角色。cfg80211与nl80211通过netlink接口进行kernel与userspace通信,而mac80211为SoftMAC设备提供了driver开发支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

mac80211 是一个driver开发者可用于为 SoftMAC 无线设备写驱动的框架,mac80211为SoftMAC设备实现了 cfg80211 回调函数,且 mac80211 通过 cfg80211 实现了向网络子系统注册和配置。配置由cfg80211通过nl80211和wext实现。
mac80211 在体系结构中的位置如下图所示:
在这里插入图片描述

4. 调用框架

linux 底层网卡驱动框架如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值