我的理解是,当前的WiFi驱动程序使用速率控制算法在一组预定值中选择一个数据速率,以便在WiFi介质上发送数据包。为此目的,存在不同的算法。但是,当WiFi驱动程序决定连接丢失并一起关闭连接时,这个过程是如何工作的?我应该在开源WiFi驱动程序(如MadWiFi等)中阅读代码的哪一部分?
发布于 2013-07-31 21:07:04
在Linux中运行的硬件的WiFi驱动程序与运行相当复杂的固件的WiFi芯片进行通信。驱动程序和固件之间的接口是硬件专用的。在一些硬件中,连接丢失事件的检测完全由固件完成,驱动程序只得到一个“断开”的事件,而在另一些硬件中,驱动程序也参与其中。
不管是谁做的,通常都是由以下两种情况造成的:
例如,您可以在Linux内核drivers/net/wireless/ti/wlcore/events.c和函数wlcore_event_beacon_loss()中查看TI wifi驱动程序。
发布于 2015-11-29 14:54:59
在Cfg80211体系结构中,假设我们是站模式。
驱动程序调用内核API cfg80211_send_disassoc(),如果收到deassoc/deauth frame.this函数,将通知相应的应用程序(ex wpa_supplicant)断开连接事件。
另一方面,当我们决定断开与AP的连接时,应用程序(ex wpa_supplicant)可以调用linux内核API wpa_supplicant,它将触发相应的驱动程序ioctl函数来完成断开连接任务。
https://stackoverflow.com/questions/17847444
复制相似问题