My wireless interface seems to buffer incoming messages and receive them periodically

80 Views Asked by At

i've got a problem with my wireless network interface. It seems to work fine if i try to send packets, the troubles start when i have to receive something. It's like it bufferizes incoming packets and does not pass them to the upper layer until the IF is used to send something, at that point all packets received until that moment are processed. here is the screenshot of my wireshark. As you can see there are groups of incoming packets processed quite at the same time (in the example they CAMv1 packets, but it holds for any other kind of packet)

Another strange behaviour is that if i try to ping my own address on that interface i receive all ICMP replies, but in random groups of 4-5-6 every few seconds.

My first guess was it was about some power management settings, but even disabling it the problem didn't solve.

next, i took a look to the interrupts log, and found out no send or receive interrupts are ever called on that interface:

The interested device is ath9k, the one with ID 298

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

So it seems that transmission and reception are handled by some polling mechanism. After some research i found the kernel configuration CONFIG_NET_RX_BUSY_POLL, which i tried to disable but with bad luck, since i cannot do it via menuconfig, and if i try to edit the kernel/net/Kconfig to disable it manually (CONFIG_NET_RX_BUSY_POLL=n) the resulting image doesn't start up due to kernel panic, so i guess there is some dependency i should satisfy.

I also tried following this, but menuconfig and .config file keep CONFIG_NET_RX_BUSY_POLL to 'yes'. Also i tried to edit PREEMPT_RT_FULL from menuconfig but i couldnt as well, probably because i have different kernel version.

This is how far i've gone until now, is there anyone who had the same or similar issues or can figure out what i could try? Following the details of my environment

Board: variscite mx8m-based custom board (https://variwiki.com/index.php?title=Debian_Build_Release&release=RELEASE_BUSTER_V2.3_DART-MX8M)

Tranceiver: Compex WLE200NX, Atheros AR9280 chipset handled by ath9k drivers

OS and Kernel: Debian 10, kernel 4.14.78

0

There are 0 best solutions below