- 博客(22)
- 资源 (87)
- 收藏
- 关注
原创 模拟网络驱动snull
snull.h文件/* * snull.h -- definitions for the network module * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this fil
2017-02-28 23:45:19 631
原创 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
原创 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
原创 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
原创 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
原创 wireless-tools源码分析-iwlist
iwlistiwlist主要用来显示无线网卡的一些附加信息。 iwlist的用法: useage: iwlist [interface] options scanning 扫描一定范围内的无线接入点和Ad-Hoc单元信息,包括ESSID,信号质量,频段以及无线模式等 frequency 频率 channel显示设备支持的频道及当前所在的频道 rate/bitrate 设备支持的速率
2017-02-24 00:07:40 5728
原创 wireless-tools源码分析-iwconfig
Wireless Tools包含了一下工具: iwconfig:设置基本无线参数 iwlist:扫描、列出频率,比特率,密钥等 iwspy:获取每个节点链接的质量(只能查阅与之相连的节点) iwpriv:操作Wireless Extensions 特定驱动 ifrename: 基于各种静态标准命名接口大多数 Linux 发行版本都在其网络初始化脚本中集成Wir
2017-02-23 22:12:08 5865 1
原创 linux设备驱动中的completion(kernel-4.7)
completion定义定义的目录:include/linux/completion.h/* * struct completion - structure used to maintain state for a "completion" * * This is the opaque structure used to maintain the state for a "completio
2017-02-23 00:42:21 4541
原创 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
原创 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
原创 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
原创 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
原创 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
原创 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
原创 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 7406
原创 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
原创 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
原创 cfg80211 subsystem中的cfg80211_ops
每个无线设备和每个无线虚拟接口都要提供一组配置操作和功能操作,这些操作都由用户空间激发,进而调用驱动操作,每一个操作的执行都是在操作结构体重分开描述和关联。 结构体struct cfg80211_ops描述了无线的配置操作,它通过fullmac或者无线协议注册来关联相应的接口请求操作。 /** * struct cfg80211_ops - backend description for
2017-02-11 17:29:32 8344
原创 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
原创 linux网络设备驱动
网络设备驱动架构Linux网络设备驱动程序的体系结构,依次为网络协议接口层,网络设备接口层,提供实际功能的设备驱动功能层以及网络设备与媒介层。 网络协议接口层向网络层协议提供统一的数据包收发接口,不论上层协议是ARP,还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。 网络设备接口层向协议接口层提供统一的用于描述具体网络属性和操作的结构体net
2017-02-08 21:44:18 1854
原创 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
原创 hostapd的分析
Hostapd的功能就是作为AP的认证服务器,负责控制管理stations(通常可以认为带无线网卡的PC)的接入和认证。 通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个开放式的(不加密)的,WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求
2017-02-07 11:19:23 12142
Telit_LM940_Hardware_User_Guide_r4
2018-06-12
Amazon Sagemaker端到端的托管机器学习平台
2018-06-06
高通手机RF PCB LAYOUT GUIDELINES
2018-05-30
ARM System Developer’s Guide Designing and Optimizing System Software
2018-05-29
D1_03_Sebastien_Dudek_HomePlugAV_PLC
2018-05-28
80-NB715-1_G_Making_First_Call_on_NikeL
2018-04-24
MTK_Wi-Fi_SoftAP_Software_Programming_Guide_v4.2
2016-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人