在整个madwifi模块里面各文件夹以及里面的文件的关系整理如下:
Madwifi
一,ath 文件夹
里面包含的是对于无线网络设备操作的一些结构体以及函数,其中有几个重要的文件介绍如下:
头文件:
If_athioctl.h:对于网卡操作时所要用到的结构体定义.
If_athvar.h:整个模块里面的各种重要的关于网卡参数的结构体以及很多操作的函数定义.
If_athrate.h:速率自适应的函数,定义了三个需要的函数,具体的实现取决于后面的自适应模块的选择.
If_ath_pci.h:操作pci无线网卡设备时所使用到的的函数的声明.
实现函数
If_ath_pci.c:是对pci上的网卡设备进行注册操作,里面定义了一些对网卡的启动,关闭,救援的操作.
If_ath.c:一些对于无线网络设备进行操作的函数.主要是提供供上面的if_ath_pci里面的函数进行操作的完成.
If_athrate.c:里面是对网卡的速率进行操作的一些函数的定义,里面涉及到了速率自适应模块的选择与调用(也就是后面的ath_rate里面的三种自适应算法控制的调用).
二,ath_hal文件夹
这个文件夹里面没有什么实际的代码,只是一些配置文件
三,Ath_rate
这个文件夹里面有三个部分组成,Amrr,Onoe,Sample三个部分,分别代表三种不同的速率自适应调整的方式.
四,Driver
这个文件夹里面也是没有什么实际的内容,只是一些配置脚本
五,Hal(Hardware abstract layer)文件夹
这个文件里面主要是硬件抽象相关的一些文件
Ah_desc:描述硬件相关信息的文件
Ah_devid:处理硬件设备ID信息
六,Include 文件夹
这个文件夹里包含的是为后面的数据发送过程中需要用到的一些数据结构以及其操作.
Queue.h:实现各种存储数据结构的定义以及相关操作的实现.
七,Net80211
这个文件夹里面是在前面对硬件进行定义抽象的基础上来进行数据帧的收发处理实现
这也是我们所要重点关注的文件夹.
Ieee80211.h:定义了描述80211协议里面的各种结构体,联合体,参数.
Ieee80211.c:主要实现了对于AP的管理.VAP(virtual ap index),以及一些在11协议会需要的一些操作的函数实现.
Ieee80211_acl.c(acl:access control list)实现对接收到的数据帧的接入控制
Ieee80211_crypto.c:实现80211里面的非开放式接入方面(接入口令的处理)要求
Ieee80211_crypto_ccmp:实现ccmp的认证接入方式.
Ieee80211_crypto_none:实现none的认证接入方式
Ieee80211_crypto_tkip:实现tkip的认证接入方式.
Ieee80211_crypto_wep:实现wep的认证接入方式.
Ieee80211_doc1x:实现上面所列的认证方式的一些函数定义.
Ieee80211_input.c:实现当从物理设备上收到数据帧进行的一些处理
Ieee80211_iotcl.h:实现对数据收发控制的定义.
Ieee80211_linux.c:好像是实现的与系统相关的一些操作
Ieee80211_node.c:实现与ds之内的节点的一些操作处理.对一些与节点相关的属性进行赋值以及处理
Ieee80211_output.c:实现与input对应的数据发送时的各种处理
Ieee80211_proto.c:实现802.11里面一些首要参数的处理.
Ieee80211_radius.c:处理与头认证相关的一些操作.
Ieee80211_var.h:这里面涵盖了80211特有的各种结构体以及相关的一些操作.
Ieee80211_wireless.c:实现对于80211普通节点无线扩展的支持
Ieee80211_xauth:独立的处理认证占位符的模块.
If_llc.h:逻辑链路层的一些相关功能,控制实现
If_media.c:实现对于共享媒质的操作.
八,patches
这个文件夹里面主要是针对不同的内核对于驱动要求的区别从而来做的一些修正.