HomeFreeBSD

iwx: clean up TX AMPDU session establishment and checking

Description

iwx: clean up TX AMPDU session establishment and checking

  • Send a TX A-MPDU exchange successfully; we were allocating the A-MPDU TX queue but returning 0 to net80211 was telling it to not establish the TX A-MPDU session and none of the BA session tracking stuff would work.
  • Clean up the TX A-MPDU queue lookup in the transmit path - only QoS data frames are allowed, not qos null-data, cf/ack/etc frames; only send them if the A-MPDU session is established.
  • Tell net80211 that we've established the TX A-MPDU session once the firmware queue has been created.
  • Check to make sure we're not double (or more) creating TX AMDPU sessions - only allocate a qid if we're not doing A-MPDU yet.
  • Delete IWX_FLAG_A-MPDUTX - it's now being properly tracked!

Locally tested:

  • AX210, STA mode - gets 50/50mbit on 2GHz HT20, and 100/100mbit on 5GHz VHT/40.

Differential Revision: https://reviews.freebsd.org/D53725
Reviewed by: thj

Details

Provenance
adrianAuthored on Nov 13 2025, 4:33 AM
Reviewer
thj
Differential Revision
D53725: iwx: clean up TX AMPDU session establishment and checking
Parents
rGb4c35d4622d5: iwx: fix and clean up suspend/resume path
Branches
Unknown
Tags
Unknown