RX A-MPDU AGGREGATION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… RX A-MPDU aggregation πŸ’…

okay bestie, welcome to the Kernel API Manual ✨ this one's short and sweet β€” it's all about the RX side of A-MPDU aggregation, and honestly? it's giving main character simplicity πŸŽ€


✨ DESCRIPTION ✨

so here's the vibe: aggregation on the RX side only needs one thing from you β€” implement the ampdu_action callback. that's it. that callback is what gets invoked to start and stop any block-ack sessions for RX aggregation. one callback, all the drama, periodt πŸ’…

when RX aggregation gets started by the peer, the driver gets notified through the ampdu_action function, with the IEEE80211_AMPDU_RX_START action πŸ¦‹ and listen β€” you're allowed to reject that request. if you do, a negative response gets sent to the peer. if you accept it, a positive response goes out instead. your call, no cap πŸ’–

while the session is active, the device/driver are required to de-aggregate frames and pass them up one by one to mac80211 β€” mac80211 is the one handling the reorder buffer, so don't worry about that part, that's its job 🫢

and when the aggregation session gets stopped again β€” by the peer or by ourselves β€” the driver's ampdu_action function gets called with the action IEEE80211_AMPDU_RX_STOP 🌸

⚠️ ok this part matters, lowkey: in this case, the call must not fail. like, it literally cannot fail. just. don't fail. 😭

🌈 SEE ALSO 🌈

  • Kernel file ./net/mac80211/agg-rx.c πŸ‘‘

and that's the whole page, bestie, iconic brevity tbh πŸ’œ this lil gem came from ./net/mac80211, dated October 2026 β€” go forth and aggregate responsibly πŸ§šβ€β™€οΈβ­

πŸ“¦ where this page comes from