STRUCT CFG80211_AUTH_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct cfg80211_auth_request β€” Authentication request data

okay so welcome to the struct cfg80211_auth_request(9) page from the Kernel API Manual, bestie πŸ’… this struct is literally the info packet for an authentication request, and we are going through every single member, no cap.


✨ SYNOPSIS ✨

here's the struct in all its glory β€” keep it exact, don't freestyle:

struct cfg80211_auth_request {
    struct cfg80211_bss *bss;
    const u8 *ie;
    size_t ie_len;
    const u8 *supported_selectors;
    u8 supported_selectors_len;
    enum nl80211_auth_type auth_type;
    const u8 *key;
    u8 key_len;
    s8 key_idx;
    const u8 *auth_data;
    size_t auth_data_len;
    s8 link_id;
    const u8 *ap_mld_addr;
};

πŸŽ€ Members πŸŽ€

  • bss β€” The BSS to authenticate with. important: the callee must obtain a reference to it if it needs to keep it. no borrowing-and-dipping, bestie.
  • ie β€” Extra IEs to add to the Authentication frame, or NULL.
  • ie_len β€” Length of the ie buffer in octets.
  • supported_selectors β€” List of selectors that should be assumed to be supported by the station. If it's set to NULL, SAE_H2E must be assumed supported.
  • supported_selectors_len β€” Length of supported_selectors in octets.
  • auth_type β€” Authentication type (algorithm).
  • key β€” WEP key for shared key authentication.
  • key_len β€” length of WEP key for shared key authentication.
  • key_idx β€” index of WEP key for shared key authentication.
  • auth_data β€” Fields and elements in Authentication frames. This contains the authentication frame body (non-IE and IE data), excluding the Authentication algorithm number, i.e., starting at the Authentication transaction sequence number field.
  • auth_data_len β€” Length of the auth_data buffer in octets.
  • link_id β€” if >= 0, indicates authentication should be done as an MLD; the interface address is included as the MLD address, and the necessary link (with the given link_id) will be created (and given an MLD address) by the driver.
  • ap_mld_addr β€” AP MLD address in case of authentication request with an AP MLD, valid iff link_id >= 0.
heads up: auth_data does not start with the Authentication algorithm number β€” it starts at the Authentication transaction sequence number field. that's the whole point of the exclusion, iykyk πŸ‘‘

🌈 Description 🌈

This structure provides information needed to complete IEEE 802.11 authentication. periodt β€” that's the description, and now you know exactly what every field is doing, fr fr ✨

✨ SEE ALSO ✨

okay bestie, this is the part where the page hands you the entire friend group 😭 like every single related page, struct, enum and helper, all tagged (9) so you know they're kernel-API pages. no cap, it's a whole roster β€” but every name matters, so let's go πŸ’…

  • Kernel file ./include/net/cfg80211.h Introduction(9), Device registration(9), enum ieee80211_channel_flags(9), struct ieee80211_channel(9), enum ieee80211_rate_flags(9), enum ieee80211_bss_type(9), enum ieee80211_privacy(9), struct ieee80211_rate(9), struct ieee80211_he_obss_pd(9), struct cfg80211_he_bss_color(9), struct ieee80211_sta_ht_cap(9), struct ieee80211_sta_vht_cap(9)

the caps keep coming and honestly? we love a consistent naming scheme 🫢

(yes there's an underscore version and a no-underscore version, they're different pages, don't @ me πŸ™ˆ)

next up, the channel-def squad is literally entering the chat πŸ¦‹

bestie the way this list just keeps going β€” iconic, honestly 🌸

  • struct survey_info(9), struct cfg80211_crypto_settings(9), struct cfg80211_mbssid_config(9), struct cfg80211_mbssid_elems(9), struct cfg80211_rnr_elems(9), struct cfg80211_beacon_data(9), struct cfg80211_acl_data(9), struct cfg80211_fils_discovery(9), struct cfg80211_unsol_bcast_probe_resp(9), struct cfg80211_s1g_short_beacon(9), struct cfg80211_ap_settings(9), struct cfg80211_ap_update(9)
  • struct cfg80211_csa_settings(9), struct cfg80211_color_change_settings(9), struct iface_combination_params(9), enum station_parameters_apply_mask(9), struct sta_txpwr(9), struct link_station_parameters(9), struct link_station_del_parameters(9), struct cfg80211_ttlm_params(9), struct station_parameters(9), struct station_del_parameters(9), enum cfg80211_station_type(9), cfg80211_check_station_change(9)

station-parameters era πŸ’€ there are so many of them and they each have lore

  • enum rate_info_flags(9), enum rate_info_bw(9), struct rate_info(9), enum bss_param_flags(9), struct sta_bss_parameters(9), struct cfg80211_txq_stats(9), struct cfg80211_tid_stats(9), struct link_station_info(9), struct station_info(9), struct cfg80211_sar_sub_specs(9), struct cfg80211_sar_specs(9), struct cfg80211_sar_freq_ranges(9)
  • struct cfg80211_sar_capa(9), cfg80211_get_station(9), enum monitor_flags(9), enum mpath_info_flags(9), struct mpath_info(9), enum wiphy_bss_param_flags(9), struct bss_parameters(9), struct mesh_config(9), struct mesh_setup(9), struct ocb_setup(9), struct ieee80211_txq_params(9), Scanning and BSS list handling(9)

scanning section bestie, hold on to your hat πŸŽ€

  • struct cfg80211_ssid(9), struct cfg80211_scan_info(9), struct cfg80211_scan_6ghz_params(9), struct cfg80211_scan_request(9), struct cfg80211_match_set(9), struct cfg80211_sched_scan_plan(9), struct cfg80211_bss_select_adjust(9), struct cfg80211_sched_scan_request(9), enum cfg80211_signal_type(9), struct cfg80211_inform_bss(9), struct cfg80211_bss_ies(9), struct cfg80211_bss(9)
  • ieee80211_bss_get_elem(9), ieee80211_bss_get_ie(9), struct cfg80211_assoc_link(9), struct cfg80211_ml_reconf_req(9), enum cfg80211_assoc_req_flags(9), struct cfg80211_assoc_request(9), struct cfg80211_deauth_request(9), struct cfg80211_disassoc_request(9), struct cfg80211_ibss_params(9), struct cfg80211_bss_selection(9), struct cfg80211_connect_params(9), enum cfg80211_connect_params_changed(9)

connect/disconnect core, we're so back πŸ¦‹

  • enum wiphy_params_flags(9), struct cfg80211_pmksa(9), struct cfg80211_pkt_pattern(9), struct cfg80211_wowlan_tcp(9), struct cfg80211_wowlan(9), struct cfg80211_coalesce_rules(9), struct cfg80211_coalesce(9), struct cfg80211_wowlan_nd_match(9), struct cfg80211_wowlan_nd_info(9), struct cfg80211_wowlan_wakeup(9), struct cfg80211_gtk_rekey_data(9), struct cfg80211_update_ft_ies_params(9)
  • struct cfg80211_mgmt_tx_params(9), struct cfg80211_dscp_exception(9), struct cfg80211_dscp_range(9), struct cfg80211_qos_map(9), Neighbor Awareness Networking (NAN)(9), struct cfg80211_nan_band_config(9), struct cfg80211_nan_conf(9), struct cfg80211_nan_channel(9), struct cfg80211_nan_local_sched(9), struct cfg80211_nan_peer_map(9), struct cfg80211_nan_peer_sched(9), enum cfg80211_nan_conf_changes(9)

NAN arc πŸ”₯ it's giving whole separate universe

  • struct cfg80211_nan_func_filter(9), struct cfg80211_nan_func(9), struct cfg80211_pmk_conf(9), struct cfg80211_external_auth_params(9), struct cfg80211_ftm_responder_stats(9), struct cfg80211_pmsr_ftm_result(9), struct cfg80211_pmsr_result(9), struct cfg80211_pmsr_ftm_request_peer(9), struct cfg80211_pmsr_request_peer(9), struct cfg80211_pmsr_request(9), struct cfg80211_update_owe_info(9), struct mgmt_frame_regs(9)
  • struct cfg80211_ops(9), enum wiphy_flags(9), struct ieee80211_iface_limit(9), struct ieee80211_iface_combination(9), enum wiphy_wowlan_support_flags(9), struct wiphy_wowlan_support(9), struct wiphy_coalesce_support(9), enum wiphy_vendor_command_flags(9), enum wiphy_opmode_flag(9), struct sta_opmode_info(9), struct wiphy_vendor_command(9), struct wiphy_iftype_ext_capab(9)

the wiphy era has begun, no cap πŸ‘‘

lifecycle bestie β€” new, register, unregister, free, lock, unlock, the whole glow-up journey πŸ’–

queue/cancel/flush/pending, over and over β€” it's a whole rhythm game fr fr 😭

utility functions section, the helpful besties of the group chat 🫢

data path helpers next, headers and conversions everywhere πŸ’…

the find-* family, they're all here and they all want your attention πŸ“

regulatory enforcement infrastructure, aka the vibes police ✨

internal db functions, lowkey mysterious, we respect the privacy πŸ™ˆ

note the __ one and the regular one, two different pages, periodt πŸ’€

RFkill integration arc, flipping switches like main character energy πŸ”₯

vendor commands + test mode, the behind-the-scenes crew 🧚

connect result / roamed / disconnected, the emotional rollercoaster of connection status 😭

notification besties, they just want to keep you informed πŸŽ€

and that's the whole guest list β€” every single cross-reference, accounted for, slay πŸ’– (more page coming, don't you dare leave 🌈)


okay bestie, this is the extended friend group πŸ’… and no, we're not skipping anybody β€” every single one of these has its own page and every single one is getting named. Grab a snack, this is a long tag list πŸ“


and that's the whole squad, bestie β€” 64 entries, nobody left on read πŸ’– if you actually opened all of these you deserve a little treat, fr fr 🧚

ngl, that cross-reference list is giving "group chat where everyone has something to say" energy β€” but that's literally how you find your way around the wireless API, so keep it close 🌸

okay so that's a wrap on this one, and lowkey it was a marathon 🫢 this page lives in ./include/net and it's dated October 2026 β€” so yeah, bookmark it, screenshot it, tattoo it on your forearm, whatever works for you πŸ’… periodt, go read the next page, iykyk βœ¨πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from