STRUCT CFG80211_ASSOC_REQUEST(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– struct cfg80211_assoc_request(9) โ€” Kernel API Manual ๐Ÿ’–

okay bestie, welcome to the Kernel API Manual, we're doing struct lore today and honestly? it's giving main character energy โœจ


๐ŸŒธ NAME ๐ŸŒธ

struct cfg80211_assoc_request โ€” (Re)Association request data ๐Ÿซถ


โœจ SYNOPSIS โœจ

struct cfg80211_assoc_request {
    struct cfg80211_bss *bss;
    const u8 *ie, *prev_bssid;
    size_t ie_len;
    struct cfg80211_crypto_settings crypto;
    bool use_mfp;
    u32 flags;
    const u8 *supported_selectors;
    u8 supported_selectors_len;
    struct ieee80211_ht_cap ht_capa;
    struct ieee80211_ht_cap ht_capa_mask;
    struct ieee80211_vht_cap vht_capa, vht_capa_mask;
    const u8 *fils_kek;
    size_t fils_kek_len;
    const u8 *fils_nonces;
    struct ieee80211_s1g_cap s1g_capa, s1g_capa_mask;
    struct cfg80211_assoc_link links[IEEE80211_MLD_MAX_NUM_LINKS];
    const u8 *ap_mld_addr;
    s8 link_id;
    u16 ext_mld_capa_ops;
 };

like, that's the whole vibe right there ๐Ÿ’…


๐ŸŽ€ Members ๐ŸŽ€

okay so let's go through every single field one by one, no skipping, we're not doing that today ๐Ÿ’–

  • bss โ€” the BSS you're associating with, bestie. if the call works out, the driver gets a reference it must hand back to cfg80211_send_rx_assoc or to cfg80211_assoc_timeout. and to keep the refcounting honest, new association requests that show up while you're already associating must be rejected โ€” no cap, that's the rule. this also applies to the links.bss parameter, which gets used instead of this one (it's NULL in that case) for MLO associations โœจ
  • ie โ€” extra IEs to shove into the (Re)Association Request frame, or NULL if you've got nothing to add ๐Ÿฆ‹
  • prev_bssid โ€” previous BSSID. if it's not NULL, use a reassociate frame. this is how you say "hey, I want to reassociate within the ESS" instead of "hi, first time here, doing the initial association with the ESS." when it's included, it's set to the BSSID of the current association โ€” like, literally the value that goes in the Current AP address field of the Reassociation Request frame ๐ŸŒธ
  • ie_len โ€” length of the ie buffer, counted in octets ๐ŸŽ€
  • crypto โ€” crypto settings ๐Ÿ’œ
  • use_mfp โ€” use management frame protection (IEEE 802.11w) in this association ๐Ÿ”ฅ
  • flags โ€” see enum cfg80211_assoc_req_flags ๐Ÿ‘‘
  • supported_selectors โ€” supported BSS selectors in IEEE 802.11 format (or NULL for no change). and heads up: if it's NULL, then support for SAE_H2E should be assumed ๐Ÿ‘€
  • supported_selectors_len โ€” number of supported BSS selectors โญ
  • ht_capa โ€” HT Capabilities over-rides. values you set in ht_capa_mask will be used in ht_capa. un-supported values get ignored, sorry babe ๐Ÿ™ˆ
  • ht_capa_mask โ€” the bits of ht_capa that are actually going to be used ๐Ÿ’…
  • vht_capa โ€” VHT capability override ๐ŸŒˆ
  • vht_capa_mask โ€” VHT capability mask, telling you which fields to use ๐Ÿฆ‹
  • fils_kek โ€” FILS KEK for protecting the (Re)Association Request/Response frame, or NULL if FILS isn't being used ๐Ÿ“
  • fils_kek_len โ€” length of fils_kek in octets ๐ŸŒธ
  • fils_nonces โ€” FILS nonces (part of AAD) for protecting the (Re)Association Request/Response frame, or NULL if FILS isn't being used. this field starts with 16 octets of STA Nonce followed by 16 octets of AP Nonce โ€” literally in that order, don't mix them up ๐Ÿ˜ญ
  • s1g_capa โ€” S1G capability override ๐Ÿงš
  • s1g_capa_mask โ€” S1G capability override mask โœจ
  • links โ€” per-link information for MLO connections ๐Ÿ”—
  • ap_mld_addr โ€” AP MLD address, for MLO association requests. valid iff link_id >= 0 ๐Ÿ‘‘
  • link_id โ€” >= 0 for MLO connections, where links are given, and it says which link the association request should be sent on ๐ŸŽ€
  • ext_mld_capa_ops โ€” extended MLD capabilities and operations, set by userspace for the association ๐Ÿ’–

๐Ÿฆ‹ Description ๐Ÿฆ‹

this structure is basically the little info packet that has everything needed to complete an IEEE 802.11 (re)association. that's the whole plot ๐Ÿซถ

part 1 done, more coming, don't go anywhere bestie ๐Ÿ’œ

โœจ SEE ALSO โœจ

okay so this is the "here's literally everyone else you need to know" section and bestieโ€ฆ it is a lot. like the manpage said "let me introduce you to the whole group chat" and then tagged every single member. no cap, every name below is printed exactly as it appears โ€” no renaming, no merging, no "close enough." grep responsibly ๐Ÿ’…

the home base & the starter pack ๐Ÿ 

  • Kernel file ./include/net/cfg80211.h Introduction(9) โ€” the header file this whole page lives in, plus its intro. the origin story, the blueprint, the source material โœจ
  • Device registration(9) โ€” all about registering devices, she's foundational ๐Ÿซถ

channels, rates, bands & caps (the hardware lore) ๐Ÿ“ก

  • enum ieee80211_channel_flags(9) โ€” channel flags enum, she has opinions ๐Ÿ’…
  • struct ieee80211_channel(9) โ€” the channel struct itself, main character energy
  • enum ieee80211_rate_flags(9) โ€” rate flags enum
  • enum ieee80211_bss_type(9) โ€” BSS type enum
  • enum ieee80211_privacy(9) โ€” privacy enum, mysterious ๐Ÿ‘€
  • struct ieee80211_rate(9) โ€” the rate struct
  • struct ieee80211_he_obss_pd(9) โ€” HE OBSS PD struct
  • struct cfg80211_he_bss_color(9) โ€” HE BSS color struct ๐ŸŒˆ
  • struct ieee80211_sta_ht_cap(9) โ€” HT capabilities struct
  • struct ieee80211_sta_vht_cap(9) โ€” VHT capabilities struct
  • struct ieee80211_sta_he_cap(9) โ€” HE capabilities struct
  • struct ieee80211_eht_mcs_nss_supp(9) โ€” EHT MCS/NSS support struct
  • struct ieee80211_sta_eht_cap(9) โ€” EHT capabilities struct
  • struct ieee80211_sta_uhr_cap(9) โ€” UHR capabilities struct
  • struct ieee80211_sband_iftype_data(9) โ€” sband iftype data struct
  • enum ieee80211_edmg_bw_config(9) โ€” EDMG bandwidth config enum
  • struct ieee80211_edmg(9) โ€” EDMG struct
  • struct ieee80211_sta_s1g_cap(9) โ€” S1G capabilities struct
  • struct ieee80211_supported_band(9) โ€” supported band struct, she holds it down
  • _ieee80211_set_sband_iftype_data(9) โ€” the one with the leading underscore, yes she's literally named like that ๐Ÿซฃ
  • ieee80211_set_sband_iftype_data(9) โ€” setter for sband iftype data
  • for_each_sband_iftype_data(9) โ€” the iteration macro, loop queen ๐Ÿ‘‘
  • ieee80211_get_sband_iftype_data(9) โ€” getter for sband iftype data
  • ieee80211_get_he_iftype_cap(9) โ€” HE iftype capability getter
  • ieee80211_get_he_6ghz_capa(9) โ€” HE 6GHz capability getter
  • ieee80211_get_eht_iftype_cap(9) โ€” EHT iftype capability getter
  • ieee80211_get_uhr_iftype_cap(9) โ€” UHR iftype capability getter
  • wiphy_read_of_freq_limits(9) โ€” reads OF frequency limits

actions & configuration (the "do stuff" cluster) ๐Ÿ› ๏ธ

  • Actions and configuration(9) โ€” the whole section, a vibe
  • struct vif_params(9) โ€” VIF params struct
  • struct key_params(9) โ€” key params struct ๐Ÿ”‘
  • struct cfg80211_chan_def(9) โ€” channel definition struct
  • struct cfg80211_tid_cfg(9) โ€” TID config struct
  • struct cfg80211_tid_config(9) โ€” TID configuration struct
  • struct cfg80211_fils_aad(9) โ€” FILS AAD struct
  • struct cfg80211_set_hw_timestamp(9) โ€” hardware timestamp setting struct
  • cfg80211_get_chandef_type(9) โ€” gets the chandef type
  • cfg80211_chandef_create(9) โ€” creates a chandef
  • cfg80211_chandef_identical(9) โ€” checks if chandefs are identical
  • cfg80211_chandef_is_edmg(9) โ€” is it EDMG? checks
  • cfg80211_chandef_is_s1g(9) โ€” is it S1G? checks
  • cfg80211_chandef_compatible(9) โ€” are they compatible? checks
  • nl80211_chan_width_to_mhz(9) โ€” channel width to MHz
  • cfg80211_chandef_get_width(9) โ€” gets the chandef width
  • cfg80211_chandef_valid(9) โ€” is the chandef valid?
  • cfg80211_chandef_usable(9) โ€” is the chandef usable?
  • cfg80211_chandef_dfs_required(9) โ€” is DFS required?
  • cfg80211_chandef_dfs_usable(9) โ€” is DFS usable?
  • cfg80211_chandef_dfs_cac_time(9) โ€” DFS CAC time
  • cfg80211_chandef_primary(9) โ€” primary chandef stuff
  • cfg80211_chandef_npca_valid(9) โ€” NPCA validity check
  • cfg80211_chandef_add_npca(9) โ€” adds NPCA
  • cfg80211_chandef_add_dbe(9) โ€” adds DBE
  • nl80211_send_chandef(9) โ€” sends the chandef
  • ieee80211_chandef_max_power(9) โ€” max power for the chandef
  • cfg80211_chandef_s1g_pri_width(9) โ€” S1G primary width
  • cfg80211_any_usable_channels(9) โ€” any usable channels?
  • enum survey_info_flags(9) โ€” survey info flags enum
  • struct survey_info(9) โ€” survey info struct
  • struct cfg80211_crypto_settings(9) โ€” crypto settings struct ๐Ÿ”
  • struct cfg80211_mbssid_config(9) โ€” MBSSID config struct
  • struct cfg80211_mbssid_elems(9) โ€” MBSSID elements struct
  • struct cfg80211_rnr_elems(9) โ€” RNR elements struct
  • struct cfg80211_beacon_data(9) โ€” beacon data struct
  • struct cfg80211_acl_data(9) โ€” ACL data struct
  • struct cfg80211_fils_discovery(9) โ€” FILS discovery struct
  • struct cfg80211_unsol_bcast_probe_resp(9) โ€” unsolicited broadcast probe response struct
  • struct cfg80211_s1g_short_beacon(9) โ€” S1G short beacon struct
  • struct cfg80211_ap_settings(9) โ€” AP settings struct
  • struct cfg80211_ap_update(9) โ€” AP update struct
  • struct cfg80211_csa_settings(9) โ€” CSA settings struct
  • struct cfg80211_color_change_settings(9) โ€” color change settings struct ๐ŸŽจ
  • struct iface_combination_params(9) โ€” interface combination params struct
  • enum station_parameters_apply_mask(9) โ€” station parameters apply mask enum
  • struct sta_txpwr(9) โ€” station TX power struct
  • struct link_station_parameters(9) โ€” link station parameters struct
  • struct link_station_del_parameters(9) โ€” link station delete parameters struct
  • struct cfg80211_ttlm_params(9) โ€” TTLM params struct
  • struct station_parameters(9) โ€” station parameters struct
  • struct station_del_parameters(9) โ€” station delete parameters struct
  • enum cfg80211_station_type(9) โ€” station type enum
  • cfg80211_check_station_change(9) โ€” checks station changes
  • enum rate_info_flags(9) โ€” rate info flags enum
  • enum rate_info_bw(9) โ€” rate info bandwidth enum
  • struct rate_info(9) โ€” rate info struct
  • enum bss_param_flags(9) โ€” BSS param flags enum
  • struct sta_bss_parameters(9) โ€” station BSS parameters struct
  • struct cfg80211_txq_stats(9) โ€” TXQ stats struct
  • struct cfg80211_tid_stats(9) โ€” TID stats struct
  • struct link_station_info(9) โ€” link station info struct
  • struct station_info(9) โ€” station info struct
  • struct cfg80211_sar_sub_specs(9) โ€” SAR sub-specs struct
  • struct cfg80211_sar_specs(9) โ€” SAR specs struct
  • struct cfg80211_sar_freq_ranges(9) โ€” SAR frequency ranges struct
  • struct cfg80211_sar_capa(9) โ€” SAR capabilities struct
  • cfg80211_get_station(9) โ€” gets a station
  • enum monitor_flags(9) โ€” monitor flags enum
  • enum mpath_info_flags(9) โ€” mpath info flags enum
  • struct mpath_info(9) โ€” mpath info struct
  • enum wiphy_bss_param_flags(9) โ€” wiphy BSS param flags enum
  • struct bss_parameters(9) โ€” BSS parameters struct
  • struct mesh_config(9) โ€” mesh config struct
  • struct mesh_setup(9) โ€” mesh setup struct
  • struct ocb_setup(9) โ€” OCB setup struct
  • struct ieee80211_txq_params(9) โ€” TXQ params struct

scanning & BSS list handling (the search party) ๐Ÿ”

  • Scanning and BSS list handling(9) โ€” the whole scanning section
  • struct cfg80211_ssid(9) โ€” SSID struct
  • struct cfg80211_scan_info(9) โ€” scan info struct
  • struct cfg80211_scan_6ghz_params(9) โ€” 6GHz scan params struct
  • struct cfg80211_scan_request(9) โ€” scan request struct
  • struct cfg80211_match_set(9) โ€” match set struct
  • struct cfg80211_sched_scan_plan(9) โ€” scheduled scan plan struct
  • struct cfg80211_bss_select_adjust(9) โ€” BSS select adjust struct
  • struct cfg80211_sched_scan_request(9) โ€” scheduled scan request struct
  • enum cfg80211_signal_type(9) โ€” signal type enum
  • struct cfg80211_inform_bss(9) โ€” inform BSS struct
  • struct cfg80211_bss_ies(9) โ€” BSS IEs struct
  • struct cfg80211_bss(9) โ€” the BSS struct herself ๐Ÿ‘‘
  • ieee80211_bss_get_elem(9) โ€” gets a BSS element
  • ieee80211_bss_get_ie(9) โ€” gets a BSS IE
  • struct cfg80211_auth_request(9) โ€” auth request struct
  • struct cfg80211_assoc_link(9) โ€” assoc link struct
  • struct cfg80211_ml_reconf_req(9) โ€” ML reconfigure request struct
  • enum cfg80211_assoc_req_flags(9) โ€” assoc request flags enum
  • struct cfg80211_deauth_request(9) โ€” deauth request struct
  • struct cfg80211_disassoc_request(9) โ€” disassoc request struct
  • struct cfg80211_ibss_params(9) โ€” IBSS params struct
  • struct cfg80211_bss_selection(9) โ€” BSS selection struct
  • struct cfg80211_connect_params(9) โ€” connect params struct
  • enum cfg80211_connect_params_changed(9) โ€” which connect params changed enum
  • enum wiphy_params_flags(9) โ€” wiphy params flags enum
  • struct cfg80211_pmksa(9) โ€” PMKSA struct
  • struct cfg80211_pkt_pattern(9) โ€” packet pattern struct
  • struct cfg80211_wowlan_tcp(9) โ€” WoWLAN TCP struct
  • struct cfg80211_wowlan(9) โ€” WoWLAN struct ๐Ÿ˜ด
  • struct cfg80211_coalesce_rules(9) โ€” coalesce rules struct
  • struct cfg80211_coalesce(9) โ€” coalesce struct
  • struct cfg80211_wowlan_nd_match(9) โ€” WoWLAN net-detect match struct
  • struct cfg80211_wowlan_nd_info(9) โ€” WoWLAN net-detect info struct
  • struct cfg80211_wowlan_wakeup(9) โ€” WoWLAN wakeup struct
  • struct cfg80211_gtk_rekey_data(9) โ€” GTK rekey data struct
  • struct cfg80211_update_ft_ies_params(9) โ€” update FT IEs params struct
  • struct cfg80211_mgmt_tx_params(9) โ€” management TX params struct
  • struct cfg80211_dscp_exception(9) โ€” DSCP exception struct
  • struct cfg80211_dscp_range(9) โ€” DSCP range struct
  • struct cfg80211_qos_map(9) โ€” QoS map struct

NAN (neighbor awareness networking โ€” the social network) ๐Ÿฆ‹

  • Neighbor Awareness Networking (NAN)(9) โ€” the NAN section, she's networking (literally)
  • struct cfg80211_nan_band_config(9) โ€” NAN band config struct
  • struct cfg80211_nan_conf(9) โ€” NAN config struct
  • struct cfg80211_nan_channel(9) โ€” NAN channel struct
  • struct cfg80211_nan_local_sched(9) โ€” NAN local schedule struct
  • struct cfg80211_nan_peer_map(9) โ€” NAN peer map struct
  • struct cfg80211_nan_peer_sched(9) โ€” NAN peer schedule struct
  • enum cfg80211_nan_conf_changes(9) โ€” NAN config changes enum
  • struct cfg80211_nan_func_filter(9) โ€” NAN function filter struct
  • struct cfg80211_nan_func(9) โ€” NAN function struct

auth, PMK & measurement besties ๐Ÿ”

  • struct cfg80211_pmk_conf(9) โ€” PMK config struct
  • struct cfg80211_external_auth_params(9) โ€” external auth params struct
  • struct cfg80211_ftm_responder_stats(9) โ€” FTM responder stats struct
  • struct cfg80211_pmsr_ftm_result(9) โ€” PMSR FTM result struct
  • struct cfg80211_pmsr_result(9) โ€” PMSR result struct
  • struct cfg80211_pmsr_ftm_request_peer(9) โ€” PMSR FTM request peer struct
  • struct cfg80211_pmsr_request_peer(9) โ€” PMSR request peer struct
  • struct cfg80211_pmsr_request(9) โ€” PMSR request struct
  • struct cfg80211_update_owe_info(9) โ€” update OWE info struct
  • struct mgmt_frame_regs(9) โ€” management frame registrations struct

wiphy, ops & the whole device universe ๐ŸŒŒ

  • struct cfg80211_ops(9) โ€” the ops struct, she runs the place
  • enum wiphy_flags(9) โ€” wiphy flags enum
  • struct ieee80211_iface_limit(9) โ€” interface limit struct
  • struct ieee80211_iface_combination(9) โ€” interface combination struct
  • enum wiphy_wowlan_support_flags(9) โ€” WoWLAN support flags enum
  • struct wiphy_wowlan_support(9) โ€” WoWLAN support struct
  • struct wiphy_coalesce_support(9) โ€” coalesce support struct
  • enum wiphy_vendor_command_flags(9) โ€” vendor command flags enum
  • enum wiphy_opmode_flag(9) โ€” opmode flag enum
  • struct sta_opmode_info(9) โ€” station opmode info struct
  • struct wiphy_vendor_command(9) โ€” vendor command struct
  • struct wiphy_iftype_ext_capab(9) โ€” iftype extended capabilities struct
  • cfg80211_get_iftype_ext_capa(9) โ€” gets iftype extended capabilities
  • struct cfg80211_pmsr_capabilities(9) โ€” PMSR capabilities struct
  • struct wiphy_iftype_akm_suites(9) โ€” iftype AKM suites struct
  • struct wiphy_radio_cfg(9) โ€” radio config struct
  • struct wiphy_radio_freq_range(9) โ€” radio frequency range struct
  • struct wiphy_radio(9) โ€” radio struct ๐Ÿ“ป
  • enum wiphy_nan_flags(9) โ€” wiphy NAN flags enum
  • struct wiphy_nan_capa(9) โ€” wiphy NAN capabilities struct
  • struct wiphy(9) โ€” the wiphy struct, absolute icon ๐Ÿ‘‘
  • wiphy_priv(9) โ€” wiphy private data
  • priv_to_wiphy(9) โ€” private data back to wiphy
  • set_wiphy_dev(9) โ€” sets the wiphy device
  • wiphy_dev(9) โ€” gets the wiphy device
  • wiphy_name(9) โ€” gets the wiphy name
  • wiphy_new_nm(9) โ€” creates a new wiphy with a name
  • wiphy_new(9) โ€” creates a new wiphy
  • wiphy_register(9) โ€” registers a wiphy
  • rcu_dereference_wiphy(9) โ€” RCU dereference for wiphy
  • wiphy_dereference(9) โ€” wiphy dereference helper
  • get_wiphy_regdom(9) โ€” gets the wiphy regulatory domain
  • wiphy_unregister(9) โ€” unregisters a wiphy
  • wiphy_free(9) โ€” frees a wiphy
  • wiphy_lock(9) โ€” locks the wiphy ๐Ÿ”’
  • wiphy_unlock(9) โ€” unlocks the wiphy ๐Ÿ”“
  • wiphy_work_queue(9) โ€” queues wiphy work
  • wiphy_work_cancel(9) โ€” cancels wiphy work
  • wiphy_work_flush(9) โ€” flushes wiphy work
  • wiphy_delayed_work_queue(9) โ€” queues delayed wiphy work
  • wiphy_delayed_work_cancel(9) โ€” cancels delayed wiphy work
  • wiphy_delayed_work_flush(9) โ€” flushes delayed wiphy work
  • wiphy_delayed_work_pending(9) โ€” delayed wiphy work pending?
  • wiphy_hrtimer_work_queue(9) โ€” queues hrtimer wiphy work
  • wiphy_hrtimer_work_cancel(9) โ€” cancels hrtimer wiphy work
  • wiphy_hrtimer_work_flush(9) โ€” flushes hrtimer wiphy work
  • wiphy_hrtimer_work_pending(9) โ€” hrtimer wiphy work pending?
  • enum ieee80211_ap_reg_power(9) โ€” AP regulatory power enum
  • struct wireless_dev(9) โ€” the wireless device struct, she's everywhere
  • wdev_priv(9) โ€” wireless device private data
  • wdev_chandef(9) โ€” wireless device chandef

utility functions (the math girlies) ๐Ÿงฎ

data path helpers (where the packets actually go) ๐Ÿ“ฆ

regulatory enforcement infrastructure (the rules girlies) ๐Ÿšฆ

BSS notifications & scan lifecycle (the updates) ๐Ÿ“ฃ

RFkill integration (the "turn it off and on again" crew) ๐Ÿ“ด

vendor commands (the custom collab era) ๐Ÿค

test mode (the lab era) ๐Ÿงช

connect / roam / disconnect notifications (the relationship updates) ๐Ÿ’”

mgmt RX/TX, CQM & radar (the drama notifications) ๐Ÿšจ

okay that's the entire tag list for this part โ€” and yes, every single one is accounted for, no skips, no "etc." ๐Ÿ’… next chunk's still loading, stay tuned bestie ๐Ÿ‘€โœจ

okay so the cross-references section just... keeps going ๐Ÿ’€ and honestly? respect. this is the rest of the SEE ALSO posse, every single one of them, no cap:


that's the whole list bestie, all sixty-four of them ๐Ÿซถ every single name exactly as written, so you can go read any of them and they'll actually exist. like, that's the whole point of a SEE ALSO โ€” it's the group chat invite list, and you don't leave anyone on read ๐Ÿ’…

if you're still here after all of that, ily, and may your (9) lookups always resolve on the first try โœจ


and that's a wrap on the whole page ๐ŸŽ€ this cutie lives over in ./include/net and it's dated October 2026 โ€” so like, bookmark it, screenshot it, tattoo it on your forearm, whatever feels right. bye bestie, go associate some requests ๐Ÿฆ‹๐Ÿ’–

๐Ÿ“ฆ where this page comes from