ENUM IEEE80211_AMPDU_MLME_ACTION(9)
π¦ 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 callieee80211_start_tx_ba_cb_irqsafeor callieee80211_start_tx_ba_cb_irqsafewith statusIEEE80211_AMPDU_TX_START_DELAY_ADDBAto delay addba afterieee80211_start_tx_ba_cb_irqsafeis called, or just return the special statusIEEE80211_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 callieee80211_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 callieee80211_stop_tx_ba_cb_irqsafein 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 calledieee80211_stop_tx_ba_cb_irqsafeyet 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 callingieee80211_start_tx_ba_cb_irqsafe, because the peer might receive theaddBAframe and send adelBAright 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 asname(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)
enum ieee80211_conf_flags(9),enum ieee80211_conf_changed(9),enum ieee80211_smps_mode(9),struct ieee80211_conf(9),struct ieee80211_channel_switch(9),enum ieee80211_vif_flags(9),enum ieee80211_offload_flags(9),struct ieee80211_eml_params(9),struct ieee80211_nan_sched_cfg(9),struct ieee80211_vif_cfg(9),struct ieee80211_neg_ttlm(9),enum ieee80211_neg_ttlm_res(9),struct ieee80211_vif(9),ieee80211_vif_usable_links(9),ieee80211_vif_is_mld(9),ieee80211_vif_link_active(9),wdev_to_ieee80211_vif(9),ieee80211_vif_to_wdev(9)
π 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
enum ieee80211_hw_flags(9),struct ieee80211_hw(9),struct ieee80211_scan_request(9),struct ieee80211_tdls_ch_sw_params(9),wiphy_to_ieee80211_hw(9),SET_IEEE80211_DEV(9),SET_IEEE80211_PERM_ADDR(9),ieee80211_free_txskb(9),ieee80211_purge_tx_queue(9)
πΈ 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
ieee80211_alloc_hw_nm(9),ieee80211_alloc_hw(9),ieee80211_register_hw(9),struct ieee80211_tpt_blink(9),enum ieee80211_tpt_led_trigger_flags(9),ieee80211_get_tx_led_name(9),ieee80211_get_rx_led_name(9),ieee80211_get_assoc_led_name(9),ieee80211_get_radio_led_name(9),ieee80211_create_tpt_led_trigger(9),ieee80211_unregister_hw(9),ieee80211_free_hw(9),ieee80211_restart_hw(9)
π¦ rx entry points
ieee80211_rx_list(9),ieee80211_rx_napi(9),ieee80211_rx(9),ieee80211_rx_irqsafe(9),ieee80211_rx_ni(9)
π powersave behaviour
ieee80211_sta_ps_transition(9),ieee80211_sta_ps_transition_ni(9),ieee80211_sta_pspoll(9),ieee80211_sta_uapsd_trigger(9),ieee80211_sta_set_buffered(9)
π₯ tx status & rates
ieee80211_get_tx_rates(9),ieee80211_tx_rate_update(9),ieee80211_tx_status_skb(9),ieee80211_tx_status_ext(9),ieee80211_tx_status_noskb(9),ieee80211_tx_status_ni(9),ieee80211_tx_status_irqsafe(9),ieee80211_report_low_ack(9)
π beacons, templates & frame getting
struct ieee80211_mutable_offsets(9),ieee80211_beacon_get_template(9),ieee80211_beacon_get_template_ema_index(9),struct ieee80211_ema_beacons(9),ieee80211_beacon_get_template_ema_list(9),ieee80211_beacon_free_ema_list(9),ieee80211_beacon_get_tim(9),ieee80211_beacon_get(9),ieee80211_beacon_update_cntdwn(9),ieee80211_beacon_set_cntdwn(9),ieee80211_csa_finish(9),ieee80211_beacon_cntdwn_is_complete(9),ieee80211_color_change_finish(9),ieee80211_proberesp_get(9),ieee80211_pspoll_get(9),ieee80211_nullfunc_get(9),ieee80211_probereq_get(9),ieee80211_rts_get(9),ieee80211_rts_duration(9),ieee80211_ctstoself_get(9),ieee80211_ctstoself_duration(9),ieee80211_generic_frame_duration(9),ieee80211_get_buffered_bc(9)
π tkip & key sequence stuff
ieee80211_get_tkip_p1k_iv(9),ieee80211_get_tkip_p1k(9),ieee80211_get_tkip_rx_p1k(9),ieee80211_get_tkip_p2k(9),ieee80211_tkip_add_iv(9),ieee80211_get_key_rx_seq(9),ieee80211_set_key_rx_seq(9),ieee80211_gtk_rekey_add(9),ieee80211_gtk_rekey_notify(9),ieee80211_key_mic_failure(9),ieee80211_key_replay(9)
π queue wake/stop vibes
ieee80211_wake_queue(9),ieee80211_stop_queue(9),ieee80211_queue_stopped(9),ieee80211_stop_queues(9),ieee80211_wake_queues(9)
π§ scanning
β iteration nation
enum ieee80211_interface_iteration_flags(9),ieee80211_iterate_interfaces(9),ieee80211_iterate_active_interfaces(9),ieee80211_iterate_active_interfaces_atomic(9),for_each_interface(9),for_each_active_interface(9),ieee80211_iterate_active_interfaces_mtx(9),ieee80211_iterate_stations_atomic(9),for_each_station(9),ieee80211_iterate_stations_mtx(9)
π«Ά work queueing & tx ba sessions
ieee80211_queue_work(9),ieee80211_queue_delayed_work(9),ieee80211_refresh_tx_agg_session_timer(9),ieee80211_start_tx_ba_session(9),ieee80211_start_tx_ba_cb_irqsafe(9),ieee80211_stop_tx_ba_session(9),ieee80211_stop_tx_ba_cb_irqsafe(9)
π finding stations & airtime
ieee80211_find_sta(9),ieee80211_find_sta_by_ifaddr(9),ieee80211_find_sta_by_link_addrs(9),ieee80211_sta_block_awake(9),ieee80211_sta_eosp(9),ieee80211_send_eosp_nullfunc(9),ieee80211_sta_recalc_aggregates(9),ieee80211_sta_register_airtime(9),ieee80211_txq_airtime_check(9),ieee80211_txq_aql_pending(9)
πΈ iterating keys & chan contexts
ieee80211_iter_keys(9),ieee80211_iter_keys_rcu(9),ieee80211_iter_chan_contexts_atomic(9),ieee80211_iter_chan_contexts_mtx(9)
π connection drama (loss, radar, cqm)
ieee80211_ap_probereq_get(9),ieee80211_beacon_loss(9),ieee80211_connection_loss(9),ieee80211_disconnect(9),ieee80211_resume_disconnect(9),ieee80211_hw_restart_disconnect(9),ieee80211_cqm_rssi_notify(9),ieee80211_cqm_beacon_loss_notify(9),ieee80211_radar_detected(9),ieee80211_chswitch_done(9),ieee80211_channel_switch_disconnect(9),ieee80211_request_smps(9),ieee80211_ready_on_channel(9),ieee80211_remain_on_channel_expired(9)
π₯ rx ba session management
ieee80211_stop_rx_ba_session(9),ieee80211_mark_rx_ba_filtered_frames(9),ieee80211_send_bar(9),ieee80211_manage_rx_ba_offl(9),ieee80211_start_rx_ba_session_offl(9),ieee80211_stop_rx_ba_session_offl(9),ieee80211_rx_ba_timer_expired(9)
π rate control & capability lookups
struct ieee80211_tx_rate_control(9),enum rate_control_capabilities(9),rate_control_set_rates(9),ieee80211_get_he_iftype_cap_vif(9),ieee80211_get_he_6ghz_capa_vif(9),ieee80211_get_eht_iftype_cap_vif(9),ieee80211_get_uhr_iftype_cap_vif(9),ieee80211_update_mu_groups(9),ieee80211_ave_rssi(9),ieee80211_calculate_rx_timestamp(9),ieee80211_report_wowlan_wakeup(9),ieee80211_tx_prepare_skb(9),ieee80211_parse_tx_radiotap(9)
π¦ noa, tdls & tid reserving
struct ieee80211_noa_data(9),ieee80211_parse_p2p_noa(9),ieee80211_update_p2p_noa(9),ieee80211_tdls_oper_request(9),ieee80211_reserve_tid(9),ieee80211_unreserve_tid(9)
π txq girlies
ieee80211_tx_dequeue(9),ieee80211_tx_dequeue_ni(9),ieee80211_handle_wake_tx_queue(9),ieee80211_next_txq(9),ieee80211_txq_schedule_start(9),ieee80211_schedule_txq(9),ieee80211_return_txq(9),ieee80211_txq_may_transmit(9),ieee80211_txq_get_depth(9)
β nan, airtime & multi-link era
ieee80211_nan_func_terminated(9),ieee80211_nan_func_match(9),ieee80211_nan_sched_update_done(9),ieee80211_nan_cluster_joined(9),ieee80211_nan_try_evacuate(9),ieee80211_calc_rx_airtime(9),ieee80211_calc_tx_airtime(9),ieee80211_get_fils_discovery_tmpl(9),ieee80211_get_unsol_bcast_probe_resp_tmpl(9),ieee80211_obss_color_collision_notify(9),ieee80211_is_tx_data(9),ieee80211_set_active_links(9),ieee80211_set_active_links_async(9),ieee80211_send_teardown_neg_ttlm(9),ieee80211_chan_width_to_rx_bw(9),ieee80211_prepare_rx_omi_bw(9),ieee80211_finalize_rx_omi_bw(9),ieee80211_vif_nan_started(9),ieee80211_encrypt_tx_skb(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms