我需要那些在使用wpa_supplicant代码方面有一定经验的人的帮助。
我的理解是wpa_supplicant将一切都用于让请求者连接到AP(如果那就是你的东西)。因此步骤如下:
据我所知,前4个步骤仅由wpa_supplicant管理。也就是说,wpa_supplicant只是调用欠铺设驱动程序来执行这些步骤,并在主事件循环接收到EVENT_ASSOC消息之后。它开始了4次握手。
就我而言,前两个步骤在驱动程序中执行是很好的,即,wpa_supplicant发送扫描请求,驱动程序执行扫描并提供扫描结果。
我的问题是,wpa_supplicant无法生成必要的数据包并使用例如第2层(rawsocket)向AP发送身份验证请求是否正确?然后是一个关联请求?...应该只是从驱动程序层提供这些句柄吗?
我可以从wpa_supplicant.c中的代码中看到 (void wpa_supplicant_associate(struct wpa_supplicant * wpa_s, struct wpa_bss * bss,struct wpa_ssid * ssid))
该函数调用指向所选驱动程序的函数指针,例如。 “.associate = wpa_driver_nl80211_associate”,然后驱动程序将其发送到udnerlaying nl80211驱动程序代码? ....所以wpa_supplicant不能自己生成这些数据包?
我希望这有任何意义,如果不是请问:)
答案 0 :(得分:1)
是的,您的理解是正确的。要发送auth / assoc req,wpa_supplicant应在以下不同场景中构造相应的NL80211命令: a)如果SME维护在wpa_supplicant
中b)如果SME由司机维护
这些命令将触发由wifi驱动程序注册的相应cfg80211_ops挂钩(.auth,.assoc,。connect)以构建帧然后发送帧。