我的理解是当前的WiFi驱动程序使用速率控制算法来选择一小组预定值内的数据速率以通过WiFi介质发送分组。为此目的存在不同的算法。但是,当WiFi驱动程序决定连接丢失并将连接全部关闭时,此过程如何工作?我应该在开源WiFi驱动程序中阅读哪部分代码,例如MadWiFi等等?
答案 0 :(得分:2)
在Linux中运行的硬件的WiFi驱动程序与WiFi芯片通信,后者也运行相当复杂的固件。驱动程序和固件之间的接口是特定于硬件的。在某些硬件中,连接丢失事件的检测完全由固件完成,驱动程序仅获得“断开连接”事件,而在其他硬件中,驱动程序也参与其中。
无论是谁通常会发生断线连接
例如,您可以查看Linux内核drivers/net/wireless/ti/wlcore/events.c
中的TI wifi驱动程序和函数wlcore_event_beacon_loss()
答案 1 :(得分:0)
在Cfg80211架构中,假设我们是站点模式。
驱动程序调用内核API cfg80211_send_disassoc()如果我们收到deassoc / deauth frame.t此函数将通知相应的应用程序(例如wpa_supplicant)断开事件。
另一方面,当我们决定与AP断开连接时,应用程序(ex wpa_supplicant)可以调用linux内核API cfg80211_disconnected(),它将触发相应的驱动程序ioctl函数来完成断开连接任务。