Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
sys/iwx: increase maximal VHT A-MPDU from 64K to 1024K
To:
OpenBSD tech <tech@openbsd.org>
Date:
Mon, 30 Mar 2026 18:06:45 +0200

Download raw body.

Thread
tech@,

I'd like to increase the maximum VHT A-MPDU length from 64K to 1024K.

Tested on AX201.

In my testing with iperf -P 16 test with -R, it brings me to 587 / 576 mbits
with peak ~622; and without -R to 457 / 454.

I also double read Linux's iwlwifi driver and it reads safe to switch.

Ok?

Index: sys/dev/pci/if_iwx.c
===================================================================
RCS file: /home/cvs/src/sys/dev/pci/if_iwx.c,v
diff -u -p -r1.226 if_iwx.c
--- sys/dev/pci/if_iwx.c	29 Mar 2026 21:17:50 -0000	1.226
+++ sys/dev/pci/if_iwx.c	30 Mar 2026 09:13:26 -0000
@@ -6691,7 +6691,7 @@ iwx_add_sta_cmd(struct iwx_softc *sc, st
 	struct iwx_add_sta_cmd add_sta_cmd;
 	int err;
 	uint32_t status, aggsize;
-	const uint32_t max_aggsize = (IWX_STA_FLG_MAX_AGG_SIZE_64K >>
+	const uint32_t max_aggsize = (IWX_STA_FLG_MAX_AGG_SIZE_1024K >>
 		    IWX_STA_FLG_MAX_AGG_SIZE_SHIFT);
 	struct ieee80211com *ic = &sc->sc_ic;
 
@@ -12470,7 +12470,7 @@ iwx_attach(struct device *parent, struct
 	ic->ic_ampdu_params = (IEEE80211_AMPDU_PARAM_SS_4 | 0x3 /* 64k */);
 
 	ic->ic_vhtcaps = IEEE80211_VHTCAP_MAX_MPDU_LENGTH_3895 |
-	    (IEEE80211_VHTCAP_MAX_AMPDU_LEN_64K <<
+	    (IEEE80211_VHTCAP_MAX_AMPDU_LEN_1024K <<
 	    IEEE80211_VHTCAP_MAX_AMPDU_LEN_SHIFT) |
 	    (IEEE80211_VHTCAP_CHAN_WIDTH_160 <<
 		IEEE80211_VHTCAP_CHAN_WIDTH_SHIFT) |


-- 
wbr, Kirill