首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核wifi驱动程序如何确定连接何时丢失?

Linux内核wifi驱动程序如何确定连接何时丢失?
EN

Stack Overflow用户
提问于 2013-07-25 01:21:50
回答 2查看 2.4K关注 0票数 0

我的理解是,当前的WiFi驱动程序使用速率控制算法在一组预定值中选择一个数据速率,以便在WiFi介质上发送数据包。为此目的,存在不同的算法。但是,当WiFi驱动程序决定连接丢失并一起关闭连接时,这个过程是如何工作的?我应该在开源WiFi驱动程序(如MadWiFi等)中阅读代码的哪一部分?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-31 21:07:04

在Linux中运行的硬件的WiFi驱动程序与运行相当复杂的固件的WiFi芯片进行通信。驱动程序和固件之间的接口是硬件专用的。在一些硬件中,连接丢失事件的检测完全由固件完成,驱动程序只得到一个“断开”的事件,而在另一些硬件中,驱动程序也参与其中。

不管是谁做的,通常都是由以下两种情况造成的:

  • 从AP接收DEAUTH帧
  • 发现了太多失踪的信标。信标是AO定期发送的WiFi帧(对于大多数APs,每100 most发送一次)。如果你离AP太远,或者AP刚刚关机,你就会停止在空中看到信标,通常你会发出断开信号,或者试图漫游到另一个AP。
  • 在数据包的Tx上有太多的故障(例如,由于通信量太大而没有接收ACK帧)--这通常表明您已经远离AP了。它可能是你可以“听到”的AP,但它不能听到你已经。在这种情况下,发出断开连接的信号也是有意义的。

例如,您可以在Linux内核drivers/net/wireless/ti/wlcore/events.c和函数wlcore_event_beacon_loss()中查看TI wifi驱动程序。

票数 2
EN

Stack Overflow用户

发布于 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函数来完成断开连接任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17847444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档