我的无线接口似乎缓冲传入的消息并定期接收它们

问题描述

我的无线网络接口有问题。 如果我尝试发送数据包,它似乎工作正常,当我必须接收某些东西时,麻烦就开始了。这就像它缓冲传入的数据包,并且在使用 IF 发送某些东西之前不会将它们传递给上层,此时所有接收到的数据包都会被处理。 here is the screenshot of my wireshark. As you can see there are groups of incoming packets processed quite at the same time(在示例中它们是 CAMv1 数据包,但它适用于任何其他类型的数据包)

一个奇怪的行为是,如果我尝试在该接口上 ping 我自己的地址,我会收到所有 ICMP 回复,但每隔几秒就会收到 4-5-6 个随机组。

我的第一个猜测是它与一些电源管理设置有关,但即使禁用它也没有解决问题。

接下来,我查看了中断日志,发现该接口上从未调用过发送或接收中断:

The interested device is ath9k,the one with ID 298

And there's the output of cat /sys/kernel/debug/ieee80211/phy0/ath9k/interrupt

所以看起来传输和接收是通过某种轮询机制来处理的。经过一番研究,我找到了内核配置 CONfig_NET_RX_BUSY_POLL,我试图禁用它但运气不好,因为我无法通过 menuconfig 来完成,如果我尝试编辑内核/网络/ Kconfig 手动禁用它 (CONfig_NET_RX_BUSY_POLL=n) 由于内核恐慌,生成的图像没有启动,所以我想我应该满足一些依赖性。

我也尝试遵循 this,但 menuconfig 和 .config 文件将 CONfig_NET_RX_BUSY_POLL 保持为“是”。我还尝试从 menuconfig but i couldnt as well 编辑 PREEMPT_RT_FULL,可能是因为我有不同的内核版本。

到目前为止我已经走了多远,有没有人有相同或类似的问题,或者可以弄清楚我可以尝试什么?关注我的环境详情

:基于 variscite mx8m 的定制板 (https://variwiki.com/index.php?title=Debian_Build_Release&release=RELEASE_BUSTER_V2.3_DART-MX8M)

Tranceiver:由 ath9k 驱动程序处理的 Compex WLE200NX、Atheros AR9280 芯片组

操作系统和内核:Debian 10,内核 4.14.78

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)