Page MenuHomeFreeBSD

net80211: add IEEE80211_CONF_AMPDU_OFFLOAD for AMPDU[-TX] offload
ClosedPublic

Authored by bz on Apr 14 2025, 6:38 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Jun 4, 8:28 PM
Unknown Object (File)
Mon, Jun 2, 4:50 PM
Unknown Object (File)
Sat, May 24, 6:09 PM
Unknown Object (File)
Thu, May 8, 2:58 PM
Unknown Object (File)
May 5 2025, 7:04 AM
Unknown Object (File)
May 4 2025, 8:06 AM
Unknown Object (File)
May 2 2025, 12:15 AM
Unknown Object (File)
Apr 23 2025, 10:13 AM

Details

Summary

Drivers will set IEEE80211_FEXT_AMPDU_OFFLOAD to indicate to
net80211 that the driver or the firmware will handle AMPDU[-TX]
entirely on their own and net80211 should not do anything.

Following the IEEE80211_CONF_FRAG_OFFLOAD() example add a
IEEE80211_CONF_AMPDU_OFFLOAD() check in net80211 to handle the
condition.

Sponsored by: The FreeBSD Foundation
MFC after: 3 days

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

bz requested review of this revision.Apr 14 2025, 6:38 PM

ah, this is to entirely bypass even tagging the frames as candidates, right?

The way I did it for other drivers was just to use an empty callback, but this is nice and clean!

This revision is now accepted and ready to land.Apr 14 2025, 6:57 PM

oh heh don't forget FEXT_BITS!

oh heh don't forget FEXT_BITS!

YES! I thought about it and did forget it after all given I went and looked at ...

.. @thj I still wonder after checking how iwx gets around that. It seems it does need the addba callback to enable a queue and then sets the ni internals `ni->ni_tx_ampdu[tid].txa_flags = IEEE80211_AGGR_RUNNING;`.
But iwlwifi is very cranky if I even try to send an AddBA Requests. I cannot synch back TID and other information anymore. In fact I hit dead code which contained a bug back in January. It's all just done for us by fw.

Update IEEE80211_FEXT_BITS . Thanks @adrian for catching this!

This revision now requires review to proceed.Apr 14 2025, 7:18 PM
This revision is now accepted and ready to land.Apr 14 2025, 7:27 PM
In D49829#1136055, @bz wrote:

oh heh don't forget FEXT_BITS!

YES! I thought about it and did forget it after all given I went and looked at ...

.. @thj I still wonder after checking how iwx gets around that. It seems it does need the addba callback to enable a queue and then sets the ni internals `ni->ni_tx_ampdu[tid].txa_flags = IEEE80211_AGGR_RUNNING;`.
But iwlwifi is very cranky if I even try to send an AddBA Requests. I cannot synch back TID and other information anymore. In fact I hit dead code which contained a bug back in January. It's all just done for us by fw.

Yeah, if the firmware is handling the ADDBA exchange then we absolutely do not want to try doing it. :-)