首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nl80211库和cfg80211是如何工作的?

nl80211库和cfg80211是如何工作的?
EN

Stack Overflow用户
提问于 2014-01-30 20:13:16
回答 4查看 46.8K关注 0票数 47

我想详细了解一下nl80211cfg80211是如何工作的。功能流,nl80211如何与wpa_supplicantiw等网络工具交互。

请推荐一些有用的链接或书籍给我参考。

EN

回答 4

Stack Overflow用户

发布于 2014-01-30 22:38:54

为了能够从用户空间控制无线驱动程序,内核和用户空间之间使用了一些IPC通信进程。

  • 在first ioctl中使用了依赖于供应商的API。
  • 在1996年创建了wireless extensions (WE或WEXT)。

无线扩展(WE)是一个通用的

,它允许驱动程序向用户空间公开常见无线局域网的配置和统计数据。

  • 在2006年,John Linville创建了mac80211,Johannes Berg创建了cfg80211nl80211。总而言之,它旨在取代无线扩展。

+---+|用户空间|+---+^---| nl80211 v+---+| cfg80211 |+-++-+| mac80211 || driver |driver

重要的一点是nl80211/cfg80211/mac80211不再使用ioctl,它们使用netlink

因此,像iwhostapdwpa_supplicant这样的工具使用一些netlink库(如libnllibnl-tiny)和netlink接口公共头,当然也就是nl80211.h

这里没有太多的文档,但我建议您先阅读libnl documentation,然后再阅读iw source code (因为我使用libnl)。

票数 67
EN

Stack Overflow用户

发布于 2015-10-09 14:56:33

更详细地描述nl80211cfg80211如何与系统的其他部分(user spacekernelhardware)协同工作。

  • nl80211是用户空间软件(iwwpa_supplicant等)之间的接口以及内核(cfg80211mac80211内核模块,以及特定的驱动程序)。
  • WiFi驱动程序和硬件可以是全MAC或软MAC(请参见Wireless_network_interface_controller).
  • cfg80211_ops是全MAC驱动程序和mac80211模块注册到cfg80211的一组操作module.
  • ieee80211_ops是软MAC驱动程序注册到mac80211模块的一组操作。

票数 39
EN

Stack Overflow用户

发布于 2015-10-09 22:20:28

请看我对How to learn the structure of Linux wireless drivers (mac80211)?的回复

wpa_supplicant中,您可以遵循src/drivers/driver_nl80211.c中的代码。这是一个wpa_supplicant驱动程序(不是内核驱动程序,而是wpa_supplicant代码中使用的抽象),它使用libnl与内核cfg80211模块通信。例如,当wpa_supplicant发出扫描命令时,就会调用wpa_driver_nl80211_scan。它使用名为NL80211_CMD_TRIGGER_SCAN的命令和扫描所需的所有参数构建netlink消息。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21456235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档