- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IEEE_80211协议在Linux内核中的实现课件
IEEE 802.11协议在Linux内核中的实现 报告:周 赫 导师:舒炎泰教授 Outline 预备知识 驱动框架 寄存器(代码示例) 传送及接收帧结构体 传送及接收数据流程 调试 总结(到目前为止,我们能做什么) 1.1 涉及到的内核中的数据结构 套接字缓冲区(sk_buff)-----是以双向链表结构进行管理,在INET Socket层和硬件层之间存放数据包,并完成数据包在不同层次之间的传递的载体。特点:跨层、指针移位操作减少内存里的数据copy,提高效率。 net_device结构------供网络接口设备使用。特点:每个网络设备都有且仅有一个对应的此结构。所有的网络设备都会添加到一个以dev_base为表头的链表中。 1.2驱动概念 驱动程序是指一组子程序它们屏蔽了底层硬件处理细节,同时向上层软件提供硬件无关接口。可形象比喻为软硬皆吃。 由于无线媒体的特殊性,其网络设备的驱动相对(以太网)来说要复杂得多。 2. 驱动框架 以2002-5-19版 prism2驱动为蓝本,主要分析Ad-hoc 网络设备驱动程序编写方法有两种:通过模块驱动和通过内核启动时自动检测的方法。 通过模块驱动的优点: 1、减小内核体积; 2、有助于调试。 用shell命令的insmod将该模块插入到内核运行空间;用rmmod命令将该模块卸载。insmod触发的是程序里面的init_module()函数;而rmmod命令触发的是cleanup_module()函数。注意:需要root权限。 #insmod ./hostap_cs.o #rmmod hostap_cs 2. 1模块的加载和卸载(初始化) 2. 1模块的加载和卸载(Cont.) 由于此网络设备是PCMCIA规范,所以先向PCMCIA卡管理器注册该设备 (调用register_pccard_driver),使driver_info_t结构attach函数指针指向prism2_attach(),detach函数指针指向prism2_detach()。 prism2_attach()调用prism2_init_local_data() 初始化网络设备的local_info_t结构;调用prism2_setup_dev(),初始化网络设备结构struct net_device *dev的多个函数指针 ;调用prism2_hw_init()建立FID(Frame IDentifiers)与缓冲区之间的映射,通过RID(Resource IDentifiers)初始化网络设备的一些属性,如传输速率;注册中断服务类程。 调用prism2_init_dev()把网络设备添加到dev_base为链表头的链表中,在proc文件系统中建立相应的目录,初始化数据加密过程等。 2. 1模块的加载和卸载(Cont.) 2.2 设备的打开与关闭 在允许发送接收数据之前,需要打开(即激活)网络设备。对应于打开操作,还有关闭操作。 它们在驱动中对应的函数分别为: static int prism2_open(struct net_device *dev); static int prism2_close(struct net_device *dev); 可以通过ifconfig命令手动激活或关闭。 #ifconfig wlan0 up #ifconfig wlan0 down 2.3 数据包的发送和接收 在驱动层次上的发送和接收都是通过底层对硬件的读写来完成的。 发送数据的时候,在prism2网卡上,通过对网卡的发送缓冲区写需要发送的数据,然后向command寄存器写发送命令,将数据包发送到物理网络上。 当网络上有数据包来的时候,会触发硬件中断,根据注册的中断向量表确定处理函数,进入中断处理程序,将数据发送到上层协议进行处理。 发送和接收数据函数分别为: static int prism2_tx(struct sk_buff *skb, struct net_device *dev); static int prism2_rx(struct net_device *dev); 2.4中断 2.5 统计数据 2.6 用户的ioctl命令系统调用 3. 寄存器 软硬件之间的交互基本都是通过寄存器进行的,比如硬件的初始化,激活、关闭、设置或读取硬件的属性等等。 Prism2硬件里的寄存器均是16位 3. 1 指令寄存器 指令寄存器(Command Register) 这个寄存器是用来执行指令的,比如硬件初始化(Initialize)、激活(enable)、关闭(disable)
您可能关注的文档
- ICU中PiCCO的应用.ppt
- 期末2理科教师.docx
- 期末电学(实验)复习MicrosoftPowerPoint幻灯片.ppt
- 期末复习(一元二次方程).ppt
- ICU各专科病人管理.ppt
- 期末考试。填空题.pptx
- ICP-OES基础理论PE公司.ppt
- ICU患者昏迷的常见原因及其处理.ppt
- 木兰煤矿安全质量标准化评分表.doc
- IATF16949内审员培训教材.ppt
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
文档评论(0)