ieee80211_set_active_links(9)
π NAME π
okay bestie, welcome to ieee80211_set_active_links(9) from the Kernel API Manual. This one is literally about setting the active links in client mode β that's the whole name, no cap. π
β¨ SYNOPSIS β¨
int ieee80211_set_active_links (struct ieee80211_vif *vif , u16
active_links );
π ARGUMENTS π
vifβ the interface you're setting active links on. main character energy, honestly.active_linksβ the new active links bitmap. yes, a bitmap. slay. β¨
π¦ CONTEXT π¦
okay, rules before you touch it:
- you must call this with the
wiphymutex held. - it may sleep.
- it calls back into the driver.
No cap, all three matter. This is not a "just call it from anywhere" situation, bestie. π«Ά
π DESCRIPTION π
This changes the active links on an interface. The interface must be in client mode β in AP mode, all links are always active, periodt. And active_links must be a subset of the vif's valid_links. Got it? subset. not "kinda close", not "extra link as a treat". π
If a link is switched off and another is switched on at the same time (e.g. active_links going from 0x1 to 0x10) then you will get a sequence of calls like:
change_vif_links(0x11)unassign_vif_chanctx(link_id=0)assign_vif_chanctx(link_id=4)change_sta_links(0x11)for each affected STA (the AP) (TDLS connections on now inactive links should be torn down)- remove group keys on the old link (
link_id 0) - add new group keys (GTK/IGTK/BIGTK) on the new link (
link_id 4) change_sta_links(0x10)for each affected STA (the AP)change_vif_links(0x10)
That's the whole little choreography, and yes, it's giving "backstage pass" energy. π
π RETURN π
0 on success. An error code otherwise. that's it, no extra lore. π
π SEE ALSO π
okay the see-also list is giving "entire contact list" energy, and I'm not skipping a single one. First up, the Kernel file: ./include/net/mac80211.h. Then the whole squad is:
Introduction(9),Calling mac80211 from interrupts(9),Warning(9),Frame format(9),mac80211 workqueue(9)mac80211 software tx queueing(9),HW timestamping(9),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)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),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),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),enum mac80211_rx_flags(9),enum mac80211_rx_encoding_flags(9),struct ieee80211_rx_status(9)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),enum ieee80211_key_flags(9),struct ieee80211_key_conf(9)struct ieee80211_key_seq(9),enum set_key_cmd(9),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),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),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),enum ieee80211_filter_flags(9),enum ieee80211_ampdu_mlme_action(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),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)ieee80211_rx_list(9),ieee80211_rx_napi(9),ieee80211_rx(9),ieee80211_rx_irqsafe(9),ieee80211_rx_ni(9)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)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),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),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),ieee80211_wake_queue(9),ieee80211_stop_queue(9),ieee80211_queue_stopped(9)ieee80211_stop_queues(9),ieee80211_wake_queues(9),ieee80211_scan_completed(9),ieee80211_sched_scan_results(9),ieee80211_sched_scan_stopped(9)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)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),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),ieee80211_iter_keys(9),ieee80211_iter_keys_rcu(9),ieee80211_iter_chan_contexts_atomic(9)ieee80211_iter_chan_contexts_mtx(9),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)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),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)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),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)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_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 page, bestie π«Ά source/version: ./include/net; date: October 2026; and yes, it's still ieee80211_set_active_links(9) energy all the way down. π
π¦ 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