ath9k驱动--代码结构(一)
为了探索802.11n在长距离链路中的性能、影响性能的因素,需要测量巨多的数据。但是单纯的数据测量并不能够满足研究的需要。为了能获取MAC层的链路特性,需要在驱动中修改源代码,抓取我们需要的网络特征,从网络特征中提取影响网络性能的因素。
在具体的实验中,使用的是Atheros Ar71XX系列的网卡,开发板是Router Station Professional。在代码修改的过程中知道了什么叫瞎子摸象,什么叫坐井观天。写这一个系列的博客,一是为了能够更加深入的理解代码,二是为自己以后学习linux网络编程打下点基础。
博客关注的焦点是Ath9k中的MAC层部分,至于上层的MAC80211部分争取能够另开新的系列。
1、参数传递和数据记录--
代码中有很多的参数需要从外部输入获取,在Kernel与User之间的参数或者数据的交互就显得尤为重要,但是运行与内核状态的驱动如何接受User的参数,内核的数据又该如何被用户使用呢?这里就需要几个关键性的文件了:debug.h debug.c 。debug.h中定义了我们所要记录的数据的数据结构,简单说就是struct。这里定义了记录发送状态和接受状态的
ath_tx_stats, ath_rx_stats。
浙公网安备 33010602011771号