ENUM IEEE80211_AMPDU_MLME_ACTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ enum ieee80211_ampdu_mlme_action(9) β€” Kernel API Manual πŸ’…

okay so bestie, welcome to the A-MPDU actions page. This is the enum ieee80211_ampdu_mlme_action moment, and the Kernel API Manual is literally handing you the whole menu of actions. no cap. ✨

🌸 NAME 🌸

enum ieee80211_ampdu_mlme_action β€” A-MPDU actions πŸŽ€

🌈 SYNOPSIS 🌈

Here's the enum exactly as it shows up, bestie:

       enum ieee80211_ampdu_mlme_action {
           IEEE80211_AMPDU_RX_START ,
           IEEE80211_AMPDU_RX_STOP ,
           IEEE80211_AMPDU_TX_START ,
           IEEE80211_AMPDU_TX_STOP_CONT ,
           IEEE80211_AMPDU_TX_STOP_FLUSH ,
           IEEE80211_AMPDU_TX_STOP_FLUSH_CONT ,
           IEEE80211_AMPDU_TX_OPERATIONAL

       };

⭐ Constants ⭐

Now the constants, one by one, no skipping:

  • IEEE80211_AMPDU_RX_START β€” start RX aggregation 🌱
  • IEEE80211_AMPDU_RX_STOP β€” stop RX aggregation πŸ›‘
  • IEEE80211_AMPDU_TX_START β€” start TX aggregation, the driver must either call ieee80211_start_tx_ba_cb_irqsafe or call ieee80211_start_tx_ba_cb_irqsafe with status IEEE80211_AMPDU_TX_START_DELAY_ADDBA to delay addba after ieee80211_start_tx_ba_cb_irqsafe is called, or just return the special status IEEE80211_AMPDU_TX_START_IMMEDIATE. yes, that's the whole instruction, bestie. 🫢
  • IEEE80211_AMPDU_TX_STOP_CONT β€” stop TX aggregation but continue transmitting queued packets, now unaggregated. After all packets are transmitted the driver has to call ieee80211_stop_tx_ba_cb_irqsafe. periodt. πŸŽ€
  • IEEE80211_AMPDU_TX_STOP_FLUSH β€” stop TX aggregation and flush all packets, called when the station is removed. There's no need or reason to call ieee80211_stop_tx_ba_cb_irqsafe in this case as mac80211 assumes the session is gone and removes the station. lowkey clean. πŸ’…
  • IEEE80211_AMPDU_TX_STOP_FLUSH_CONT β€” called when TX aggregation is stopped but the driver hasn't called ieee80211_stop_tx_ba_cb_irqsafe yet and now the connection is dropped and the station will be removed. Drivers should clean up and drop remaining packets when this is called. cleanup era. 🧹
  • IEEE80211_AMPDU_TX_OPERATIONAL β€” TX aggregation has become operational. iconic. πŸ”₯

🌸 Description 🌸

These flags are used with the ampdu_action callback in struct ieee80211_ops to indicate which action is needed. That's the whole map, bestie. πŸ—ΊοΈ

⚠️ Note that drivers MUST be able to deal with a TX aggregation session being stopped even before they OK'ed starting it by calling ieee80211_start_tx_ba_cb_irqsafe, because the peer might receive the addBA frame and send a delBA right away! like, immediately immediately. 😭

πŸ’« SEE ALSO πŸ’«

okay bestie, this is the part where the manpage just dumps the entire mac80211 cinematic universe on you 😭 and honestly? it's giving "the author has a lot of friends and wants you to meet all of them." every single one of these lives in the same kernel file, so buckle up 🫢

everything below is referenced as name(9) β€” that (9) is the kernel-doc section, not a personality trait ✨

🌸 the lore (start here, fr)

  • Kernel file ./include/net/mac80211.h β€” hi, it's the header where literally all of this lives πŸ’–
  • Introduction(9), Calling mac80211 from interrupts(9), Warning(9), Frame format(9), mac80211 workqueue(9), mac80211 software tx queueing(9), HW timestamping(9)

✨ queues, channels & contexts

  • enum ieee80211_max_queues(9), enum ieee80211_ac_numbers(9), struct ieee80211_tx_queue_params(9), enum ieee80211_chanctx_change(9), struct ieee80211_chan_req(9), struct ieee80211_chanctx_conf(9), enum ieee80211_chanctx_switch_mode(9), struct ieee80211_vif_chanctx_switch(9)

πŸ¦‹ bss & event stuff

  • enum ieee80211_bss_change(9), enum ieee80211_event_type(9), enum ieee80211_rssi_event_data(9), struct ieee80211_rssi_event(9), enum ieee80211_mlme_event_data(9), enum ieee80211_mlme_event_status(9), struct ieee80211_mlme_event(9), struct ieee80211_ba_event(9), struct ieee80211_event(9)

πŸŽ€ bss_conf era (iconic)

  • struct ieee80211_mu_group_data(9), struct ieee80211_ftm_responder_params(9), struct ieee80211_fils_discovery(9), struct ieee80211_parsed_tpe(9), struct ieee80211_bss_npca_params(9), struct ieee80211_bss_conf(9), struct ieee80211_nan_channel(9), struct ieee80211_nan_peer_map(9), struct ieee80211_nan_peer_sched(9)

πŸ”₯ the tx path

  • enum mac80211_tx_info_flags(9), enum mac80211_tx_control_flags(9), enum mac80211_tx_status_flags(9), enum mac80211_rate_control_flags(9), struct ieee80211_tx_rate(9), struct ieee80211_tx_info(9), struct ieee80211_tx_status(9), struct ieee80211_scan_ies(9), ieee80211_tx_info_clear_status(9)

🌈 the rx path

  • enum mac80211_rx_flags(9), enum mac80211_rx_encoding_flags(9), struct ieee80211_rx_status(9)

🫢 conf & vif (main character structs)

πŸ’œ keys & crypto bookkeeping

  • enum ieee80211_key_flags(9), struct ieee80211_key_conf(9), struct ieee80211_key_seq(9), enum set_key_cmd(9)

⭐ stations, no cap

  • enum ieee80211_sta_state(9), enum ieee80211_sta_rx_bandwidth(9), struct ieee80211_sta_rates(9), struct ieee80211_sta_txpwr(9), struct ieee80211_sta_aggregates(9), struct ieee80211_link_sta(9), struct ieee80211_sta(9), enum sta_notify_cmd(9), struct ieee80211_tx_control(9), struct ieee80211_txq(9)

πŸ‘‘ hw & registration

🌸 the "features you gotta implement" docs

  • Hardware crypto acceleration(9), Powersave support(9), Beacon filter support(9), Spatial multiplexing power save(9), Frame filtering(9), AP support for powersaving clients(9), HW queue control(9)

✨ ops & aggregation params

  • enum ieee80211_filter_flags(9), struct ieee80211_ampdu_params(9), enum ieee80211_frame_release_type(9), enum ieee80211_rate_control_changed(9), enum ieee80211_roc_type(9), enum ieee80211_reconfig_type(9), struct ieee80211_prep_tx_info(9), struct ieee80211_ops(9)

πŸŽ€ alloc, register & leds

πŸ¦‹ rx entry points

πŸ’… powersave behaviour

πŸ”₯ tx status & rates

🌈 beacons, templates & frame getting

πŸ’€ tkip & key sequence stuff

πŸ“ queue wake/stop vibes

🧚 scanning

⭐ iteration nation

🫢 work queueing & tx ba sessions

πŸ’œ finding stations & airtime

🌸 iterating keys & chan contexts

πŸŽ€ connection drama (loss, radar, cqm)

πŸ”₯ rx ba session management

🌈 rate control & capability lookups

πŸ¦‹ noa, tdls & tid reserving

πŸ’… txq girlies


that's the whole friend group, bestie β€” every single one of them, not a single name dropped πŸ’– go click through whichever one matches whatever you're debugging, and remember: the header ./include/net/mac80211.h is home base 🏠

lowkey a flex that this list is this long, but everything here is the real deal β€” no invented entries, promise 🫢

so that's the page! source is ./include/net, the version/date line says October 2026, and it's enum ieee802..._mlme_action(9) β€” go forth and slay your driver, mwah πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from