On 2021 Mar 29 (Mon) at 19:27:15 +0200 (+0200), Stefan Sperling wrote: :This patch attempts to add support for receiving A-MSDUs to iwm(4). :If you are using iwm(4) then please run with this patch and let me :know if it causes regressions. Thanks! : :ACHTUNG: This patch breaks iwx(4)! Don't use it there! For this reason, :the patch can neither be committed nor be put into snapshots!!! : :Our net80211 stack de-aggregates A-MSDUs in software. This works fine with :iwm 7k and 8k devices. However, iwm 9k devices de-aggregate A-MSDUs in :hardware and net80211 is currently unable to handle this. : :Our current iwm 9k code only works because long ago I disabled reception :of A-MSDUs for all devices. Unfortunately, the only way to get A-MSDUs :working on 9k hardware is to add a bunch of driver-specific code which :handles de-aggregation. Otherwise, net80211 will drop frames which appear :to arrive out of order, or appear as duplicates even though they were :simply part of the same A-MSDU and thus share a sequence number. :The driver can re-order frames correctly based on information provided :by firmware. I'd rather implement this than letting these devices miss :out on A-MSDUs because the Rx speed advantage can be significant, around :80/90 Mbps (but this will very much depend on the AP). : :If these A-* acronyms don't make sense and you'd like to know more, here :is a fairly good explanation: https://mrncciew.com/2013/04/11/a-mpdu-a-msdu/ :Note that we care about the nested case, which is also mentioned in this :article but not explained in detail. It's simply an A-MSDU stashed inside :an A-MPDU. If an AP can do 11AC, then it should support this. : :iwx(4) hardware has the same problem. :If this patch works fine on iwm(4) then I can port the changes to iwx(4), :do another round of testing, and eventually commit to both drivers at :the same time. : :Some of the changes below are based on code from the Linux iwlwifi driver. :I am not entirely happy with some of its style. But the code should be in :good enough shape to be tested. :
Been running this for about 24 hours on my x395, seems to be good. Had only one stuck wifi when first trying it, but I was also stuck on a 2.4GHz channel and live in a dense apartment building. Forcing it to move to a 5GHz channel fixed it all up, and no problems since then. iwm0 at pci1 dev 0 function 0 "Intel Dual Band Wireless-AC 9260" rev 0x29, msix iwm0: hw rev 0x320, fw ver 34.3125811985.0, address 0c:dd:24:83:e1:40 -- Churchill's Commentary on Man: Man will occasionally stumble over the truth, but most of the time he will pick himself up and continue on.