无线网络
文章平均质量分 89
viewsky11
这个作者很懒,什么都没留下…
展开
-
80211学习笔记
一、网络服务802.11总共提供9种服务: 1. 分布式(distribution) 接入点收到帧,就会使用分布式服务将真传送至目的地。 2. 整合(integration) 该服务由分布式系统提供,它让分布式系统得以链接至非IEEE802.11网络 3. 关联(association) 移动式工作站向接入点登记,分布式系统即可根据登记信息判断哪个移动式工作站该使用哪个接入点。只有关联转载 2016-11-13 19:36:36 · 5410 阅读 · 0 评论 -
qcacld-2.0的wlan分析之二
在设备进行pci总线注册之后,进入pci驱动的probe函数,该函数中最为重要的就是开启wlan的主机设备驱动,即hdd_wlan_startup()函数:/**--------------------------------------------------------------------------- \brief hdd_wlan_startup() - HDD init funct原创 2017-02-14 23:37:59 · 5579 阅读 · 0 评论 -
hostapd_cli命令源码分析
hostapd提供了控制命令hostapd_cli,使用方法可以查看usage。源码中的main函数:int main(int argc, char *argv[]){ int warning_displayed = 0; int c; int daemonize = 0; if (os_program_init())//不同操作体统平台下执行不同的环境初始化原创 2017-02-15 14:33:43 · 7399 阅读 · 0 评论 -
wireless-tools源码分析-iwconfig
Wireless Tools包含了一下工具: iwconfig:设置基本无线参数 iwlist:扫描、列出频率,比特率,密钥等 iwspy:获取每个节点链接的质量(只能查阅与之相连的节点) iwpriv:操作Wireless Extensions 特定驱动 ifrename: 基于各种静态标准命名接口大多数 Linux 发行版本都在其网络初始化脚本中集成Wir原创 2017-02-23 22:12:08 · 5865 阅读 · 1 评论 -
wireless-tools源码分析-iwlist
iwlistiwlist主要用来显示无线网卡的一些附加信息。 iwlist的用法: useage: iwlist [interface] options scanning 扫描一定范围内的无线接入点和Ad-Hoc单元信息,包括ESSID,信号质量,频段以及无线模式等 frequency 频率 channel显示设备支持的频道及当前所在的频道 rate/bitrate 设备支持的速率原创 2017-02-24 00:07:40 · 5728 阅读 · 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 · 6034 阅读 · 0 评论 -
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 · 3659 阅读 · 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 · 3231 阅读 · 1 评论 -
mac80211解析八
Full-mac和Softmac对比Infrastructure BSS NOTE: Infrastructure BSS != IBSS – IBSS = Independent BSS. (Ad-Hoc mode)IBSSMesh modefull mesh和 partial mesh对比 The 802.11 MAC Header每个mac帧都包含了一个mac原创 2017-02-26 21:40:23 · 3070 阅读 · 0 评论 -
rt2860v2源码解析四
在pci设备的probe函数rt2860_probe中,有获取设备的初始化操作: /* get DRIVER operations */RTMP_DRV_OPS_FUNCTION(pRtmpDrvOps, NULL, &PciConfig, NULL);RTMP_DRV_OPS_FUNCTION函数调用了RtmpDrvOpsInit函数进行驱动设备操作的初始化,内容如下: VOID RtmpD原创 2017-03-05 22:14:41 · 2525 阅读 · 0 评论 -
rt2860v2源码分析三
在rt2860_probe函数中调用了RtmpPhyNetDevInit为无线网络设备进行初始化,实质是分配建立了pNetDevHook结构体:PNET_DEV RtmpPhyNetDevInit( IN VOID *pAd, IN RTMP_OS_NETDEV_OP_HOOK *pNetDevHook){ struct net_原创 2017-02-26 23:53:07 · 2656 阅读 · 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 · 9703 阅读 · 1 评论 -
qcacld-2.0的wlan分析
qcacld-2.0是Qualcomm WLAN Driver。 分析开放的驱动代码: https://github.com/myrom/opensource_wlan_qcacld-2.0.git git得到源码。 根据__init找到入口文件opensource_wlan_qcacld-2.0/CORE/HDD/src/wlan_hdd_main.c static int __init原创 2017-02-07 17:34:34 · 7934 阅读 · 0 评论 -
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 · 2815 阅读 · 0 评论 -
无线热点认证解决方案 WifiDog
WifiDog 是一款开源的用来实现无线认证的软件,可以集成到路由器或者网关中,对于连接到路由器或者网关的设备,使其先登录云端认证服务器,然后通过认证才能上网。比如在星巴克上网,浏览器会先弹出一个广告页面,我们输入手机号,获取验证码,然后就可以上网了。 网关心跳(Ping协议)Wifidog将ping协议做为心跳机制向认证服务器发送当前状态信息。这可以实现为认证服务器每个节点的状态生成中央日志。Wi原创 2016-11-14 10:09:21 · 3801 阅读 · 0 评论 -
【Atheros】minstrel速率调整算法源码走读
先说几个辅助的宏,因为内核不支持浮点运算,当然还有实现需要,minstrel对很多浮点值做了缩放:/* scaled fraction values */#define MINSTREL_SCALE 16#define MINSTREL_FRAC(val, div) (((val) << MINSTREL_SCALE) / div)#define MINSTREL_TRUNC(val)转载 2016-11-18 23:58:19 · 1640 阅读 · 0 评论 -
mac80211源码分析
具体概念性的内容,以及mac80211的框架,可以参看: http://blog.csdn.net/zxygww/article/details/24874155 WLANlinux下wlan总体架构如图所示: mac80211架构,如图所示: 用户空间: 配置:wpa_supplicant和hostapd: 所有直接与用户交互的应用程序都在这里。 例如可以基于GUI / CL原创 2016-11-13 20:58:37 · 7124 阅读 · 0 评论 -
hostapd的分析
Hostapd的功能就是作为AP的认证服务器,负责控制管理stations(通常可以认为带无线网卡的PC)的接入和认证。 通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求原创 2017-02-07 11:19:23 · 12141 阅读 · 0 评论 -
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 · 5440 阅读 · 1 评论 -
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 · 9392 阅读 · 1 评论 -
rt2860v2源码分析二
在pci_main_dev.c中,最主要的是rt2860_probe()函数,该函数查找网络设备并进程初始化, 而设备的初始化在rt2860_probe函数中的RtmpPhyNetDevInit(pAd, &netDevHook)/*NetDevInit============================================== */ net_dev = RtmpPhyN原创 2016-11-16 22:20:20 · 2280 阅读 · 0 评论 -
cfg80211 subsystem中的cfg80211_ops
每个无线设备和每个无线虚拟接口都要提供一组配置操作和功能操作,这些操作都由用户空间激发,进而调用驱动操作,每一个操作的执行都是在操作结构体重分开描述和关联。 结构体struct cfg80211_ops描述了无线的配置操作,它通过fullmac或者无线协议注册来关联相应的接口请求操作。 /** * struct cfg80211_ops - backend description for原创 2017-02-11 17:29:32 · 8343 阅读 · 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 · 3573 阅读 · 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 · 2485 阅读 · 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 · 3790 阅读 · 1 评论 -
MitraStar DSL-2401HN-T1C-GV硬件与启动信息
硬件 SoC MT7510T - MediaTek xDSL SoC (MIPS 34Kc 650 MHz ) RAM M14D5121632A - ESMT 512 Mbit (64 MB) DDR2 SDRAM Flash MX30LF1G18AC - Macronix 1 Gbit (128 MB) NAND Switch Integrado USB Nã原创 2017-03-14 10:38:06 · 4595 阅读 · 1 评论