Linux 无线驱动接口 wext 和 nl80211
来源:互联网 发布:淘宝怎么评论售后服务 编辑:程序博客网 时间:2024/06/07 21:14
Linux无线驱动接口有两种标准接口,wext(Wireless Extensions无线扩展接口)和nl80211接口。
最早的一套API由HP公司员工Jean Tourrilhes于1997年开发,全称为Linux Wireless Extensions。一般缩写为WE或wext。Wireless Extension (WE)是一组通用的API,能在用户空间对通用Wireless LANs进行配置和统计。它的好处在于仅通过一组单一的工具就能对各种各样的Wireless LANs进行管理,不过它们是什么类型,只要其驱动支持Wireless Extension就行;另一个好处就是不用重启驱动或Linux就能改变这些参数。
Wireless Tools for Linux是一个Linux命令行工具包,用来设置支持Linux Wireless Extension的无线设备。Wireless Tools (WT)就是用来操作Wireless Extensions的工具集,它们使用字符界面,虽然粗糙,但支持所有Wireless Extension。虽然还有很多其他管理Wireless Extensions的工具,但Wireless Tools是参考实现,它包括以下工具:
iwconfig:设置基本无线参数
iwlist:扫描、列出频率,比特率,密钥等
iwspy:获取每个节点链接的质量
iwpriv:操作Wireless Extensions 特定驱动
ifrename: 基于各种静态标准命名接口
wext的接口实现上,应用层采用ioctl方式访问驱动,设置无线参数或者获取无线参数,配置无线驱动进行联网操作。无线驱动事件到应用层的传递采用的netlink socket技术,一种netlink route消息技术。
nl80211(供用户空间进程使用以操作那些利用cfg80211 API开发的无线网卡驱动)接口是由开发者Johannes Berg实现的,他也是cfg80211(无线协议栈配置接口,在无线驱动接口和mac80211之间的接口)和mac80211的维护者。无论是用户层访问驱动还是驱动事件通知应用层,nl80211接口都采用的netlink技术。
从WE发展到nl80211有如下几个原因:
1)ioctl的原型为int ioctl(int fd,unsigned long cmd,...),最后省略号代表它支持可变个数的参数。但对于一个经过严格定义的系统调用来说,支持可变个数参数的做法似乎显得有些随性。ioctl的参数不仅个数不固定,其参数类型也无法通过函数原型来加以说明。这同样对于一个严谨的系统调用来说,也是不可接受的。同时使用netlink技术在应用层和内核层数据交换上相比ioctl方式具有优势。
2)随着802.11n协议以及P2P,WPS无线规范的加入,协议的很多功能可以在应用层实现,增加了很多应用层与驱动层间的API接口和事件。WEXT接口不方便功能扩展的缺点,nl80211可以完全支持wext的所有功能,又可以在不修改内核的情况下增加命令字和事件。
- Linux 无线驱动接口 wext 和 nl80211
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- Linux wext和nl80211接口简介
- WIFI的Linux驱动部分wext和nl80211
- WEXT和NL80211区别
- nl80211 和 wext
- wpa_supplicant 2.0版源代码阅读(4)---- Linux wext和nl80211接口简介
- wpa_supplicant 2.0版源代码阅读(4)---- Linux wext和nl80211接口简介
- WEXT/mac80211/nl80211/cfg80211
- WEXT/mac80211/nl80211/cfg80211
- WEXT/mac80211/nl80211/cfg80211
- WEXT/mac80211/nl80211/cfg80211
- 创建系统日历的日历事件
- 论C和C++中main函数的重要性
- 数据结构基础之折半查找与插值查找
- 虚拟机登录fedora10桌面系统时报错:No space left on device
- Css3 API
- Linux 无线驱动接口 wext 和 nl80211
- 欢迎使用CSDN-markdown编辑器
- Apple pay 论述
- 爬虫攻略
- [神经网络]2.1-How the backpropagation algorithm works-Warm up: a fast matrix-based approach ...(翻译)
- 从零开始使用C ++和OpenGL编写游戏引擎
- 字符串转成数字
- 与众不同的家装!超有创意的种植“壁画”
- 指向函数的指针