没有合适的资源?快使用搜索试试~ 我知道了~
Blog-Atheros_minstrel速率调整算法源码走读 _琴剑飘零1
需积分: 0 0 下载量 51 浏览量
2022-08-04
13:56:42
上传
评论
收藏 1.31MB PDF 举报
温馨提示
试读
10页
1. 初始化探测速率表 2. 初始化探测的相关参数 3. Re:【python】获取高德地图省市区县列 2. 【JavaEE】Springmvc+Spring整
资源详情
资源评论
资源推荐
2017/9/19 【Atheros】minstrel速率调整算法源码走读 - 琴剑飘零 - 博客园
http://www.cnblogs.com/smarterplanet/p/4073975.html 1/10
琴剑飘零
【Atheros】minstrel速率调整算法源码走读
先说几个辅助的宏,因为内核不支持浮点运算,当然还有实现需要,minstrel对很多浮点值做了缩放:
/* scaled fraction values */
#define MINSTREL_SCALE 16
#define MINSTREL_FRAC(val, div) (((val) << MINSTREL_SCALE) / div)
#define MINSTREL_TRUNC(val) ((val) >> MINSTREL_SCALE)
MINSTREL_SCALE是一个放大的倍数,minstrel设定的是16,缩放16位也就是2^16倍,我不知道为什么要
设置成这么大的数,不过没有关系不影响理解。MINSTREL_FRAC是两个数相除之后放大,
MINSTREL_TRUNC则是逆运算,将某个被放大的数缩小。
下面进行源码分析,根据对外暴露的结构体对指针函数的定义:
static struct rate_control_ops mac80211_minstrel_ht = {
.name = "minstrel_ht",
.tx_status = minstrel_ht_tx_status,
.get_rate = minstrel_ht_get_rate,
.rate_init = minstrel_ht_rate_init,
.rate_update = minstrel_ht_rate_update,
.alloc_sta = minstrel_ht_alloc_sta,
.free_sta = minstrel_ht_free_sta,
.alloc = minstrel_ht_alloc,
.free = minstrel_ht_free,
#ifdef CONFIG_MAC80211_DEBUGFS
.add_sta_debugfs = minstrel_ht_add_sta_debugfs,
.remove_sta_debugfs = minstrel_ht_remove_sta_debugfs,
#endif
};
我们需要着重关注核心的三个函数:tx_status负责每次发送完聚合帧之后根据ACK的状况更新各个速率状
态,get_rate负责每次要发新的数据包的时候指定发送速率,rate_init在与另一站点建立连接的时候初始化相
关参数。下面首先介绍一个抽随机速率用的表的生成,然后按照rate_init、get_rate、tx_status的顺序介绍
minstrel的原理。
1. 初始化探测速率表
minstrel对速率的管理是通过速率组来管理的,这关乎几个重要的变量:
const struct mcs_group minstrel_mcs_groups[];
static u8 sample_table[SAMPLE_COLUMNS][MCS_GROUP_RATES];
mi->groups[]
先说minstrel_mcs_groups,我的实验环境最多支持双流,minstrel_mcs_groups也就是一个长度为8的数
组,如果是三流就是长度为12的数组,这8个group的配置按顺序分别是:
组号 空间流数 是否支持SGI 20MHz/40MHz
0 1 否 20
1 2 是 20
2 1 否 20
3 2 是 20
公告
昵称:琴剑飘零
园龄:6年
粉丝:68
关注:12
+加关注
<
2017年9月
>
日 一 二 三 四 五 六
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7
搜索
找找看
谷歌搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
Android(6)
JavaSE/EE(11)
Web技术(3)
Web前端(6)
编程语言(2)
设备驱动(10)
设计模式(2)
随笔档案
2015年8月 (1)
2015年7月 (1)
2015年3月 (2)
2015年1月 (3)
2014年11月 (18)
2014年10月 (1)
2014年9月 (1)
2014年5月 (1)
2014年4月 (1)
2014年2月 (1)
2014年1月 (2)
博客园 首页 新随笔 联系 订阅 管理
代码深渊漫步者
- 粉丝: 14
- 资源: 320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
- 基于哈希链表的简单人员信息管理系统
- 其他类别JdonFramework开源框架 v5.1 Build20071025-jdonframework-5.1.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0