Stefan Sperling <s...@stsp.name> wrote: > This patch adds A-MSDU rx offloading support for both iwm(4) and iwx(4) > and re-enables net80211's software A-MSDU Rx support for all 11n drivers. > > Meaning iwn(4) and athn(4) will also be receiving A-MSDUs again. > This feature has been turned off since July 2019: > https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/net80211/ieee80211_input.c#rev1.207 > The root cause of the problem I saw at that time was related to dlg's Rx > queue back-pressure mechanism. Once we figured this out, all wireless drivers > were fixed to call if_input() only once per interrupt so this is no longer > an issue. > > For a very brief period we tried to enable A-MSDUs again in -current but > we found out that iwm/iwx needed additional work for the new devices which > received support while A-MSDU was disabled in-tree: > https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/net80211/ieee80211_input.c#rev1.226 > The patch below completes the missing bits to make A-MSDUs work on these > new devices. > > My previous iwm-only patch and related test reports are here: > https://marc.info/?t=161703907100001&r=1&w=2 > The iwm changes have already been extensively tested. > For iwm, this new patch only adds an additional range check: > @@ -4640,7 +4640,8 @@ iwm_rx_reorder(struct iwm_softc *sc, struct mbuf > *m, i > > baid = (reorder_data & IWM_RX_MPDU_REORDER_BAID_MASK) >> > IWM_RX_MPDU_REORDER_BAID_SHIFT; > - if (baid == IWM_RX_REORDER_DATA_INVALID_BAID) > + if (baid == IWM_RX_REORDER_DATA_INVALID_BAID || > + baid >= nitems(sc->sc_rxba_data)) > return 0; > > rxba = &sc->sc_rxba_data[baid]; > > > I have tested on the following devices: > > iwm0 at pci2 dev 0 function 0 "Intel Dual Band Wireless-AC 8265" rev 0x78, msi > iwm0: hw rev 0x230, fw ver 34.0.1, address 7c:11:xx:xx:xx:xx > > iwx0 at pci5 dev 0 function 0 "Intel Wi-Fi 6 AX200" rev 0x1a, msix > iwx0: hw rev 0x340, fw ver 48.1335886879.0, address d0:ab:xx:xx:xx:xx > > iwx0 at pci0 dev 20 function 3 "Intel Wi-Fi 6 AX201" rev 0x00, msix > iwx0: hw rev 0x350, fw ver 48.1335886879.0, address 0c:7a:xx:xx:xx:xx > > ok? >
No regressions under normal use and a little bit of stress testing. iwm0 at pci2 dev 0 function 0 "Intel AC 7265" rev 0x59, msi iwm0: hw rev 0x210, fw ver 17.3216344376.0, address dc:53:xx:xx:xx:xx Tim.