aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2025-09-21 01:55:00 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2025-09-21 17:47:18 +0000
commit52245588707851f3175551bf3934e206ca2b6ad7 (patch)
treecda7f4a459282298ed4ef844b233b9be4e2883da
parent0c1684dd456e3df306b359b04e61f9f2048d9ff2 (diff)
iwx: re-add sequence numbers for non-AMPDU, preserving previous behaviour
I received a report on freebsd-wireless@ that traffic stopped working. It seems that although my AX210 is fine with this change, the AX201/22000 hardware/firmware seems to require it. There's a bit to set in the TX command to force the FW to set the sequence control. We only set a few flags, and we don't set that. So, add the sequence number allocation where encryption is performed. Locally tested: * AX210, STA mode * AX201, STA mode Differential Revision: https://reviews.freebsd.org/D52652 Reviewed by: kevans Tested by: kevans
-rw-r--r--sys/dev/iwx/if_iwx.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/iwx/if_iwx.c b/sys/dev/iwx/if_iwx.c
index 3b29c8e78b97..8422fcb787c3 100644
--- a/sys/dev/iwx/if_iwx.c
+++ b/sys/dev/iwx/if_iwx.c
@@ -5673,8 +5673,9 @@ iwx_tx(struct iwx_softc *sc, struct mbuf *m, struct ieee80211_node *ni)
if (rinfo == NULL)
return EINVAL;
- /* Offloaded sequence number assignment */
- /* Note: Should be done in firmware on all supported devices */
+ /* Offloaded sequence number assignment; non-AMPDU case */
+ if ((m->m_flags & M_AMPDU_MPDU) == 0)
+ ieee80211_output_seqno_assign(ni, -1, m);
/* Radiotap */
if (ieee80211_radiotap_active_vap(vap)) {