wpa_supplicant初始化流程分析.pdfVIP

  • 14
  • 0
  • 约5.27千字
  • 约 6页
  • 2021-10-13 发布于湖北
  • 举报
wpa_supplicant 初始化流程分析 1. 启动命令 wpa supplicant 在启动时,启动命令可以 带有很多参数,目前我们的启动命令如下: wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant.conf -f/data/wifi/wpa_log.txtwpa_supplicant 对于启动命令带的参 数,用了两个数据结构来保存, 一个是 wpa_params, 另一个是 wpa_interface. 这主要是考虑到 wpa_supplicant 是可以同时支持多个网络 接口的。 wpa_params 数据结构主要记录与网络接口无关的一些参数 设置。 而每一个网络接口就用一个 wpa_interface 数据结构来记录。 在启动命令行中, 可以用 -N 来指定将要描述一个新的网络接 口,对于一个新的网络接口,可以用下面六个参数描述: -ilt;ifnamegt; : 网络接口名称 -clt;confgt;: 配置文件名 称 -Clt;ctrl_intfgt;: 控制接口名称 -Dlt;drivergt;: 驱动类型 -plt;driver_paramgt;: 驱动参数 -blt;br_ifnamegt;: 桥接口名称 2. wpa_supplicant 初始化 流程 2.1. main() 函数: 在这个函数中,主要做了四件事。 a. 解析命令行传进的参数。 b. 调用 wpa_supplicant_init() 函数,做 wpa_supplicant 的初始 化工作。 c. 调用 wpa_supplicant_add_iface() 函数,增加网络接口。 d. 调用 wpa_supplicant_run() 函数,让 wpa_supplicant 真正的 run 起来。 2.2. wpa_supplicant_init() 函数: a. 打开 debug 文件。 b. 注册 EAP peer 方法。 c. 申请 wpa_global 内存,该数据结构作为统领其他数据结构 的一个核心, 主要包括四个部分: wpa_supplicant *ifaces /* 每个网络接口都有一个对应的 wpa_supplicant 数据结 构,该指针指向最近加入的一个, 在 wpa_supplicant 数据结 构中有指针指向 next*/ wpa_params params /* 启动命令行中带的通用的参数 */ ctrl_iface_global_priv *ctrl_iface /*global 的控制接口 */ ctrl_iface_dbus_priv *dbus_ctrl_iface /*dbus 的控制接口 */ d. 设置 wpa_global 中的 wpa_params 中的参数。 e. 调用 eloop_init 函数将全局变量 eloop 中的 user_data 指针 指向 wpa_global 。 f. 调用 wpa_supplicant_global_ctrl_iface_init 函数初始化 global 控制接口。 g. 调用 wpa_supplicant_dbus_ctrl_iface_init

文档评论(0)

1亿VIP精品文档

相关文档