【Linux】Linux模块注册接口
模块入口和出口注册API 在各个linux子模块中经常可以看到的module_init和module_exit两个宏,这分别注册了模块的初始化和结束部分需要调用的函数 module_init(demo_init):module_init宏的作用是告诉内核,当这个模块被加载时,应该执行名为 demo_init 的函数。demo_init 函数通常包含…
【读书笔记】【无线权威指南第五版】802.11帧结构
数据链路层分层 数据链路层分为两个子层,上层是802.2逻辑链路控制(LLC)子层,下层是介质访问控制(MAC)子层。所有802网络具有相同的LLC子层结构,但并非所有802网络都使用LLC子层,802.11标准定义的无线局域网通信位于MAC子层 MAC服务数据单元 网络层(第三层)将数据发送给数据链路层(第二层),数据在传递给LLC子层后成为MA…
【读书笔记】【无线权威指南第五版】IEEE 802.11标准与修正案
标准的制定 IEEE是一个负责制定和维护通信标准的专业协会,成立了多个工作组。802.3工作组负责制定线网络使用以太网标准,802.15工作组负责制定射频(如蓝牙)传输信息的个人局域网通信标准,802.16工作组负责制定宽带无线接入标准,802.11工作组负责制定射频传输信息的局域网通信 802.11工作组由常设委员会、研究组以及大量任务组构成,每…
【源码解析】hostapd(7)管理帧处理
NL80211模块接口 hostapd主要的一个功能便是处理管理帧,在过去,接收和发送管理帧都需要由 monitor 模式的接口来进行,那时需要一个运行 master 模式的接口来处理标准流量,还需要另一个单独的接口负责进行认证、密钥管理等工作。第二个接口可以使用标准的 Linux socket 进行读写,而不需要任何特殊的 API 。作为备份,n…
【源码解析】hostapd(5)configuration子模块梳理
概述 在官方的架构图中configuration模块,是一个负责处理加载和处理配置文件的模块;具体对应的源代码在hostapd-2019-08-08-ca8c2bd2/hostapd/config_file.c文件中 hostapd配置文件读取 笔者注:这里仅记录大概流程,不做详细展开 流程概述 从主程序的main函数中注册了读取配置文件的回调 /…
【源码解析】hostapd(4)ctrl_if子模块梳理
概述 hostapd的ctrl i/f(control interface,控制接口)模块主要作用是为外部程序(如命令行工具hostapd_cli、GUI等)提供与hostapd守护进程进行交互的机制,实现运行时控制和状态查询 对应源代码 ctrl if模块对应源代码是./hostapd/ctrl_iface.c和./hostapd/ctrl_if…
【源码解析】hostapd(3) 软件整体架构
笔者注 由于简中网络和hostapd官网上的大量资料,均是使用旧版本,这里分析时会结合0.5.10与2.9版本的hostapd共同分析 1. 软件架构图 概述: 上图来自hostapd官网列出的一份0.5.X源码说明文档hostapd-devel.pdf,此版本时间约为2008年,这里仅作一份参考; 从上图中可以看到,整个hostapd的核心在于e…
【源码解析】hostapd(2)目录及编译架构
笔者注 本文涉及到的hostapd源码均为hostapd-2019-08-08-ca8c2bd2即2.9版本 1. 文件目录结构 hostapd目录结构如下 . ├─doc ├─eap_example ├─hostapd ├─hs20 ├─radius_example ├─src │ ├── ap │ ├── common │ ├── crypto…
【源码解析】hostapd(1)简述
hostapd是什么 这里附上不同的解读 hostapd (host access point daemon) is a user space daemon software enabling a network interface cardto act as an access point and authentication server. T…