STRUCT CFG80211_EXTERNAL_AUTH_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, welcome to the struct cfg80211_external_auth_params(9) page from the Kernel API Manual β€” this struct is literally here to Trigger External authentication. no cap, that’s the whole name-line vibe. πŸ’…

✨ SYNOPSIS ✨

here’s the struct in all its glory, copied exactly so nobody has to squint or guess:

       struct cfg80211_external_auth_params {
           enum nl80211_external_auth_action action;
           u8 bssid[ETH_ALEN];
           struct cfg80211_ssid ssid;
           unsigned int key_mgmt_suite;
           u16 status;
           const u8 *pmkid;
           u8 mld_addr[ETH_ALEN];
        };

🫢 Members 🫢

  • action β€” the action type / trigger for external authentication. It’s only significant for the authentication request event interface (driver to user space). slay, but only there. ✨
  • bssid β€” BSSID of the peer with which the authentication has to happen. Used by both the authentication request event and authentication response command interface. it’s giving β€œboth sides need this” energy. πŸ’–
  • ssid β€” SSID of the AP. Used by both the authentication request event and authentication response command interface. twin behavior with bssid, fr fr. πŸŽ€
  • key_mgmt_suite β€” AKM suite of the respective authentication. Used by the authentication request event interface. the AKM details are living here. πŸ”₯
  • status β€” status code, WLAN_STATUS_SUCCESS for successful authentication, use WLAN_STATUS_UNSPECIFIED_FAILURE if user space cannot give you the real status code for failures. Used only for the authentication response command interface (user space to driver). so bestie, if userspace doesn’t know the real failure code, that fallback is the move. πŸ’…
  • pmkid β€” The identifier to refer a PMKSA. short, iconic, to the point. πŸ‘‘
  • mld_addr β€” MLD address of the peer. Used by the authentication request event interface. Driver indicates this to enable MLO during the authentication offload to user space. Driver shall look at NL80211_ATTR_MLO_SUPPORT flag capability in NL80211_CMD_CONNECT to know whether the user space supports enabling MLO during the authentication offload. User space should use the address of the interface (on which the authentication request event reported) as self MLD address. User space and driver should use MLD addresses in RA, TA and BSSID fields of authentication frames sent or received via cfg80211. The driver translates the MLD addresses to/from link addresses based on the link chosen for the authentication. that’s a whole paragraph of lore, but every bit matters. πŸ¦‹

🌸 Description 🌸

Commonly used across the external auth request and event interfaces. it’s the shared-struct moment for those interfaces, and honestly? iconic. πŸ’œ

πŸ’… SEE ALSO (the group chat, continued)

okay so quick vibe check before we dive in β€” this is the see also list, aka every single page that's adjacent to this struct, and it is long. Like, scroll-for-a-while long. But bestie, we do not skip. Every entry stays, nothing merged, nothing "summarised for brevity", no cap. Grab a snack πŸ“.


πŸ—‚οΈ start here, the meta ones

  • Kernel file ./include/net/cfg80211.h Introduction(9)
  • Device registration(9)

πŸ“Ά channels, rates, bands & the whole capability crew

the foundational girlies β€” channel flags, rates, bss types, and every ht/vht/he/eht/uhr capability struct you could ever want ✨


πŸ› οΈ Actions and configuration(9)

this whole cluster is it's giving interface management. chan_defs, chandef math, ap settings, stations, sar, mesh, ocb, txq params β€” the works. genuinely iconic section ngl πŸ‘‘


πŸ” Scanning and BSS list handling(9)

scan requests, sched scans, bss ies, auth/assoc/deauth/disassoc, connect params, wowlan (yes the whole wowlan family), coalesce, qos maps… this section ate and left no crumbs πŸ”₯

  • 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_auth_request(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)
  • 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)

the nan girlies get their own little corner of the list, and honestly? deserved πŸ¦‹

  • 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)
  • struct cfg80211_nan_func_filter(9)
  • struct cfg80211_nan_func(9)

🫢 pmk, ftm & pmsr (the measurement besties)

  • struct cfg80211_pmk_conf(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)

πŸ‘‘ the driver-facing main characters: cfg80211_ops & wiphy

every wiphy function you will ever touch lives down here, and yes there are a lot of work-queue helpers. main character energy fr πŸ’œ


🌸 the wireless dev girlies


πŸ› οΈ Utility functions(9)

channel math, header lengths, radiotap, radio range checks β€” the little helpers that do the heavy lifting ✨


πŸš€ Data path helpers(9)

8023 conversion, amsdu, element/ie hunting (including vendor + ext variants), rnr iteration, defrag β€” the packet-handling squad πŸ”₯


βš–οΈ Regulatory enforcement infrastructure(9)

the literal rule-enforcers of the wifi world. respect them πŸ’€


πŸ—„οΈ Internal regulatory db functions(9)


πŸ“‘ scan / bss notification squad

the "tell everyone what just happened" functions β€” scan done, sched scan results, bss inform, bss refcount + lookup, mlme rx/tx, michael mic failure, ibss joined, new peer candidate 🌈


πŸ“΄ RFkill integration(9)


πŸ›οΈ Vendor commands(9)

vendor skbs, replies, senders, events β€” the whole vendor lane, including the ucast flavour πŸŽ€


πŸ§ͺ Test mode(9)


πŸ’œ connect / roam / station lifecycle notices

connect done/bss/result/timeout, roamed, port authorized, disconnected, remain-on-channel, mgmt tx status, cqm notifications, radar + cac events, gtk rekey, pmksa candidate, spurious frames, obss beacon reports β€” this is the entire "tell userspace something happened" family and it goes on forever, bestie 😭


and that's genuinely every single entry β€” nothing cut, nothing merged, no skips, periodt πŸ’… (and we're still not done, so keep scrolling…)

...and the squad list keeps going, bestie β€” like genuinely, this is the extended friend group of the cfg80211 universe and every single one of them gets a shoutout πŸ’– so here's the rest, no skips, no cuts:


okay and that's a wrap on the whole page, bestie πŸŽ€ you made it to the end, which honestly is a flex πŸ’… if any of these cross-refs look like a mystery, just pull up its own page and keep vibing β€” that's literally what they're there for ✨

this one came out of ./include/net, dated October 2026, and it lives under the name struct cfg80..._auth_params(9) β€” go forth and slay your networking code, no cap πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from