Linux kernel 接入点使用softMAC还是hardMAC?

Linux kernel 接入点使用softMAC还是hardMAC?,linux-kernel,linux-device-driver,wireless,Linux Kernel,Linux Device Driver,Wireless,我正在努力理解无线技术在linux中的工作原理。我从wpa_supplicant、hostapd应用程序开始,借助其文档和源代码。了解以下程序的流程和基本功能: wpa_请求者,nl80211(驱动程序接口) libnl库(使用netlink协议在用户空间和内核之间进行套接字通信) cfg80211(内核接口,用于借助用户空间中的nl80211实现从用户空间与驱动程序通信),mac80211(软件媒体访问控制层) 驱动程序(可装载驱动程序,例如:ath6kl-atheros驱动程序) 我理解了上

我正在努力理解无线技术在linux中的工作原理。我从wpa_supplicant、hostapd应用程序开始,借助其文档和源代码。了解以下程序的流程和基本功能:

  • wpa_请求者,nl80211(驱动程序接口)
  • libnl库(使用netlink协议在用户空间和内核之间进行套接字通信)
  • cfg80211(内核接口,用于借助用户空间中的nl80211实现从用户空间与驱动程序通信),mac80211(软件媒体访问控制层)
  • 驱动程序(可装载驱动程序,例如:ath6kl-atheros驱动程序)
  • 我理解了上面的软件流程,在我的探索中,我了解到为了给开发者提供自由,MAC层是在软件中实现的(流行的实现mac80211)

    在所有情况下都是这样吗?如果是的话,softMAC和hardMAC的优缺点是什么?内核中的CFG8011接口是否直接与驱动程序通信?谁以及如何与mac80211进行通信


    提前感谢。

    术语“SoftMAC”指的是无线网络接口设备(WNIC),它不在硬件中实现MAC层,而是期望驱动程序实现MAC层

    “HardMAC”(也称为“FullMAC”)描述了在硬件中实现MAC层的WNIC

    SoftMAC的优点是:

    • 可能降低硬件成本
    • 仅通过更新驱动程序升级到较新标准的可能性
    • 仅通过更新驱动程序来纠正MAC实现中的故障的可能性
    另一个优点(至少在Linux内核中)是,不同类型WNIC的许多不同驱动程序都可以共享由内核本身提供的相同MAC实现

    尽管有这些优点,但并非所有WNIC都使用SoftMAC。HardMAC的主要优点是,由于MAC功能是在硬件中实现的,因此它们对CPU负载的贡献较小

    是Linux内核中用于实现SoftMAC驱动程序的框架。它实现了cfg80211回调,否则必须由驱动程序本身实现,并且还实现了MAC层功能。因此,它在cfg80211和SoftMAC驱动程序之间运行

    硬盘驱动程序必须完全自行实现CFG8011接口。

    还要添加:-
    由于硬件中实现了MLME,与SoftMAC相比,Hardmac驱动程序在节能和快速连接/断开恢复方面有更好的帮助。更好的节能是因为HW/FW不需要在断开连接时唤醒主机,并且仍然可以连接和恢复

    在现代硬件中,似乎只有非常非常少的硬MAC设备,包括无线路由器和接入点(大多数运行Linux)中使用的802.11设备。除了brcmfmac和qtnfmac之外,还有其他硬盘芯片组吗?