mac80211解析
文章平均质量分 89
无线mac80211解析
viewsky11
这个作者很懒,什么都没留下…
展开
-
80211学习笔记
一、网络服务802.11总共提供9种服务: 1. 分布式(distribution) 接入点收到帧,就会使用分布式服务将真传送至目的地。 2. 整合(integration) 该服务由分布式系统提供,它让分布式系统得以链接至非IEEE802.11网络 3. 关联(association) 移动式工作站向接入点登记,分布式系统即可根据登记信息判断哪个移动式工作站该使用哪个接入点。只有关联转载 2016-11-13 19:36:36 · 5433 阅读 · 0 评论 -
wireless-tools源码分析-iwconfig
Wireless Tools包含了一下工具: iwconfig:设置基本无线参数 iwlist:扫描、列出频率,比特率,密钥等 iwspy:获取每个节点链接的质量(只能查阅与之相连的节点) iwpriv:操作Wireless Extensions 特定驱动 ifrename: 基于各种静态标准命名接口大多数 Linux 发行版本都在其网络初始化脚本中集成Wir原创 2017-02-23 22:12:08 · 5903 阅读 · 1 评论 -
wireless-tools源码分析-iwlist
iwlistiwlist主要用来显示无线网卡的一些附加信息。 iwlist的用法: useage: iwlist [interface] options scanning 扫描一定范围内的无线接入点和Ad-Hoc单元信息,包括ESSID,信号质量,频段以及无线模式等 frequency 频率 channel显示设备支持的频道及当前所在的频道 rate/bitrate 设备支持的速率原创 2017-02-24 00:07:40 · 5773 阅读 · 0 评论 -
wireless-tools源码分析-iwpriv
iwpriv是Wireless Extensions 操作的特定驱动。通过iwpriv,可以得到AP的一些参数设置,也可以设置自己的WIFI参数。[root@root- /]#iwprivwlan0 Available private ioctls : extscan (8BFA) : set 0 int & get 2 char ho原创 2017-02-24 12:19:25 · 6069 阅读 · 0 评论 -
cfg80211 subsystem中的wiphy
无线网络设备驱动使用cfg80211需要硬件设备在cfg80211中实现注册。实现注册就要定义一系列的硬件功能描述的结构体。 每个设备的基础性结构体是wiphy,设备连接到系统时,都要使用。每个wiphy有0个,1个或者许多个虚拟接口相关联。 struct wiphy定义在内核include/net/cfg80211.h中struct wiphy { /* assign these f原创 2017-02-09 17:23:09 · 9455 阅读 · 1 评论 -
cfg80211 subsystem中的cfg80211_ops
每个无线设备和每个无线虚拟接口都要提供一组配置操作和功能操作,这些操作都由用户空间激发,进而调用驱动操作,每一个操作的执行都是在操作结构体重分开描述和关联。 结构体struct cfg80211_ops描述了无线的配置操作,它通过fullmac或者无线协议注册来关联相应的接口请求操作。 /** * struct cfg80211_ops - backend description for原创 2017-02-11 17:29:32 · 8451 阅读 · 0 评论 -
mac80211概览
mac80211是linux kernel中的一个子系统,它为无线设备soft-MAC/half-MAC提供了分享实施方案,包含MLME和另外一些代码。 mac80211的架构 其他相关联的还有TX/RX路径(包含一些软件加密) 为网络管理,IBSS,mesh等提供的控制路径 一些AP的管理,如省电缓冲 mac80211的代码结构最重要的是kernel提供的驱动API,该文件定义了mac8011原创 2017-02-11 19:56:57 · 9745 阅读 · 1 评论 -
mac80211解析一
解析mac80211从ieee80211_alloc_hw函数分配 和ieee80211_register_hw 函数注册开始。以pci无线网络设备为例,底层pci实现连接并注册pci设备之后,开始在ieee80211_alloc_hw函数中实现无线网络设备的一些列初始化和设备分配,并关联ieee80211_ops操作函数,实现mac层的操作。struct ieee80211_hw *ieee802原创 2017-02-16 23:30:27 · 5475 阅读 · 1 评论 -
mac80211解析二
在实现无线网络设备分配时,ieee80211_register_hw关联了ieee80211_ops结构体:ieee80211_ops结构体是mac80211到设备驱动的回调操作函数集合,定义如下:/** * struct ieee80211_ops - callbacks from mac80211 to the driver * * This structure contains vari原创 2017-02-17 14:18:33 · 3690 阅读 · 0 评论 -
mac80211解析三
在ieee80211_register_hw函数中,实现了无线网络设备的的注册,网络接口的注册和建立主要由ieee80211_if_add 函数来完成,即:result = ieee80211_if_add(local, "wlan%d", NULL, NL80211_IFTYPE_STATION, NULL); 一般注册生成wlan0,函数ieee80211_原创 2017-02-20 23:08:55 · 3590 阅读 · 0 评论 -
mac80211解析四
mac80211中创建station由用户空间通过nl80211发起,首先要分配sta_info对象空间,sta_info的定义如下: /** * struct sta_info - STA information * * This structure collects information about a station that * mac80211 is communicating原创 2017-02-20 23:58:15 · 2507 阅读 · 0 评论 -
mac80211解析五
mac80211驱动会使用到cfg80211模块,分析cfg80211,初始化模块如下: static int __init cfg80211_init(void){ int err; err = register_pernet_device(&cfg80211_pernet_ops); if (err) goto out_fail_pernet; er原创 2017-02-22 00:09:41 · 3841 阅读 · 1 评论 -
mac80211解析六
mac80211的扫描请求由用户空间通过nl80211发起,调用了mac80211中的ieee80211_scan,该函数内容如下:static int ieee80211_scan(struct wiphy *wiphy, struct cfg80211_scan_request *req){ struct ieee80211_sub_if_data *sd原创 2017-02-22 23:24:55 · 2840 阅读 · 0 评论 -
mac80211解析七
mac80211的模块初始化的时候,也初始化了minstrel,minstrel是调用速率控制函数模快,通过tx.c中的ieee80211_tx_h_rate_ctrl句柄填充结构体ieee80211_tx_info的速率变量ieee80211_tx_rate。模块初始化后调用了ieee80211_rate_control_register进行速率控制注册,注册了定义好的速率控制操作结构体mac80原创 2017-02-24 17:22:24 · 3259 阅读 · 1 评论