Hi, seem to have found a weird bug in recent kernels… Also posted about this over in the Khadas forums, since it’s happening on VIM3 and also happens with the Khadas/Ubuntu kernel.
Manjaro ARM 21.07 VIM3 image
VIM3 v1.2, 4GB/32GB version
brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4359/9 wl0: Jan 19 2018 12:14:30 version 9.87.51.11.8 (a85e25e@shgit) (r) FWID 01-cb5aa0a5
After installing and running the pamac upgrade, kernel 5.13.12 is installed. With this kernel (and also with the 5.14-rc5 kernel being used in the current Khadas fenix pulls), there’s peculiar, seemingly random IP corruption. Rolling back the kernel to the 5.12.11 shipped with the image fixes it, but that version has a little weirdness with voltage regulators and shutdown procedure.
It shows up quite immediately as lag in DNS queries and other things using small packets, and can be reproduced quickly with ping.
Observations:
Corruption of the penultimate 3 bytes of the IP packet – last byte is intact, prior 3 are overwritten with 00.
IP checksum is incorrect when observed from the receiving end.
Small packets are affected, large ones are not.
Ping -s <= 575 sees random corruption. -s >= 576 does not.
ping -f results in ~35% packet loss. ping -f -s 600 does not.
Kernels 5.13.12 and 5.14-rc5 are affected, 5.12.11 is not.
2.4 or 5 GHz band does not matter.
AP or STA mode does not matter.
Wired ethernet is not affected.
I’m digging around in the kernel trees to see what changed between 5.12.11 and 5.13.12, but also putting this out here for anyone who might have more knowledge of the innards of the wifi drivers and be able to quickly pinpoint this.