mac80211分析..docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mac80211源码分析概述体系结构代码结构数据结构主要流程切换点主要函数速率控制概述mac80211:是一个Linux内核子系统,是驱动开发者可用于为SoftMAC无线设备写驱动的框架。mac80211在内核空间实现STA模式,在用户空间实现AP模式(hostapd)。cfg80211:用于对无线设备进行配置管理,与FullMAC,mac80211和nl80211一起工作。nl80211:用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议。MLME:即MAC?(Media?Access?Control)?Layer?Management?Entity,它管理物理层MAC状态机。SoftMAC: 其MLME由软件实现,mac80211为SoftMAC实现提供了一个API。?即:SoftMAC设备允许对硬件执行更好地控制,允许用软件实现对 802.11的帧管理,包括解析和产生802.11无线帧。目前大多数802.11设备为SoftMAC,而FullMAC设备较少。FullMAC:其MLME由硬件管理,当写FullMAC无线驱动时,不需要使用mac80211。wpa_supplicant:是用户空间一个应用程序,主要发起MLME命令,然后处理相关结果。hostpad:是用户空间一个应用程序,主要实现station接入认证管理。体系结构HOSTAPD:WPAD:图2-1 系统框架代码结构(/net/mac80211/)ieee80211_i.h(主要数据结构)main.c(主函数入口)iface.c(虚拟接口处理)key.c,key.h(密钥管理)sta_info.c,sta_info.h(用户管理)pm.c(功率管理)rate.c,rate.h(速率控制函数)rc80211*(速率控制算法)rx.c(帧接收路径代码)tx.c(帧发送路径代码)scan.c(软件扫描代码)mlme.c(station/managed模式MLME)ibss.c(IBSS?MLME)cfg.c,cfg.h,wext.c(配置入口代码)aes*,tkip*,wep*,michael*,wpa*(WPA/RSN/WEP代码)wme.c,wme.h(QoS代码)util.c(公共函数)数据结构ieee80211_local/ieee80211_hw每个数据结构代表一个无线设备(ieee80211_hw嵌入到ieee80211_local)ieee80211_hw是ieee80211_local在驱动中的可见部分包含无线设备的所有操作信息sta_info/ieee80211_sta代表每一个station可能是mesh,IBSS,AP,WDSieee80211_sta是驱动可见部分ieee80211_conf硬件配置当前信道是最重要的字段硬件特殊参数ieee80211_bss_confBSS配置多BSSes类型(IBSS/AP/managed)包含比如基础速率位图per?BSS?parameters?in?case?hardware?supports?creating/associating?with?multiple?BSSesieee80211_key/ieee80211_key_conf代表加密/解密密钥ieee80211_key_conf提供给驱动用于硬件加速ieee80211_key包含book-keeping和软件解密状态ieee80211_tx_info大部分复杂数据结构skb内部控制缓冲区(cb)经历三个阶段:1、由mac80211初始化;2、由驱动使用;3、由发送状态通告使用ieee80211_rx_status包含接收帧状态驱动通过接收帧传给mac80211ieee80211_sub_if_data/ieee80211_vif包含每个虚拟接口信息ieee80211_vif?is?passed?to?driver?for?those?virtual?interfaces?the?driver?knows?about?(no?monitor,VLAN)包含的sub-structures取决于模式主要流程配置所有发起来自用户空间(wext或者nl80211)managed和IBSS模式:触发状态机(基于workqueue)有些操作或多或少直接通过驱动传递(比如信道设置)接收路径ieee80211_tasklet_handler,响应中断,在下半部tasklet处理数据,通过函数ieee80211_rx()接收帧调用ieee80211_rx_monitor()拷贝帧传递给所有监听接口调用invoke_rx_handlers()处理帧如果是数据帧,转换成802.3帧格式,传递给上层协议栈ieee80211_deliver_skb( rx

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档