cfg80211_probe_status(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… cfg80211_probe_status β€” the cfg80211_probe_status(9) page, bestie edition

okay so real talk, this one's from the Kernel API Manual and it's called cfg80211_probe_status. Say it with me: cfg-eighty-two-eleven-probe-status. Iconic name, no notes. ✨


🌸 NAME 🌸

cfg80211_probe_status β€” notify userspace about probe status

Like, it's literally the messenger. The kernel went and did a probe, and now somebody's gotta tell userspace how it went. That somebody is this function. 🫢


✨ SYNOPSIS ✨

void cfg80211_probe_status (struct net_device *dev , const u8 *peer ,
       u64 cookie , int link_id , bool acked , s32 ack_signal , bool
       is_valid_ack_signal , gfp_t gfp );

Not me counting the arguments... eight of them. Eight!! 😭 She's got a lot going on and honestly? Slay. Returns void, so she's not giving you an answer back β€” she's just out here delivering the news. πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

okay so these are the eight besties she takes. Buckle up, we're going through all of them, no skipping, I don't play that.

  • dev β€” the device the probe was sent on. Like, which network device are we even talking about. Main character of the args, fr.
  • peer β€” The peer MAC address (or MLD address for MLO) or NULL if not applicable (e.g. for STA/P2P-client). So: normally it's the MAC of whoever you're probing. If it's an MLO situation β€” multi-link operation, iykyk β€” then it's the MLD address instead. And for STA/P2P-client? That's a NULL moment, because it just doesn't apply there. πŸ™ˆ
  • cookie β€” the cookie filled in probe_peer previously. Yes bestie, it's a cookie. πŸ“ It came from probe_peer earlier and you're bringing it back here so everything lines up. Keep it safe, don't lose it.
  • link_id β€” The link ID on which the probe was sent (or -1 for non-MLO). So like, which link are we on? And if you're not doing MLO at all, you just pass -1 and move on with your life. πŸ’…
  • acked β€” indicates whether probe was acked or not. Did we get the acknowledgment? true or false, that's the whole vibe check right there. πŸ”₯
  • ack_signal β€” signal strength (in dBm) of the ACK frame. Numbers! In dBm specifically, don't get cute with the units. πŸ“Ά
  • is_valid_ack_signal β€” indicates the ack_signal is valid or not. Lowkey the most important one, because it's basically saying "okay but is that ack_signal number up there actually trustworthy or not". Don't skip this one, bestie, she's doing important work. ⭐
  • gfp β€” allocation flags. The gfp classic, shows up everywhere in kernel land. 🌈

ngl that's the whole page for part 1 β€” arguments done, nothing left out, all eight accounted for. Part 2 is right behind this one, so don't go anywhere πŸ’–

✨ SEE ALSO ✨

ok so this is the part where the page just. lists everything. and bestie, it is a lot β€” this is basically the cfg80211 cinematic universe, and every single one of these is a real page you can go read with man 9 <name>. i'm gonna group them so you don't pass out, but nothing got cut, promise. 🫢

  • the actual source file this whole thing lives in: ./include/net/cfg80211.h

the starter pack 🌱

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

the capability girlies (ht β†’ vht β†’ he β†’ eht β†’ uhr, she did the reading) πŸ“š

  • struct ieee80211_he_obss_pd(9), struct cfg80211_he_bss_color(9), struct ieee80211_sta_ht_cap(9), struct ieee80211_sta_vht_cap(9), struct ieee80211_sta_he_cap(9), struct ieee80211_eht_mcs_nss_supp(9), struct ieee80211_sta_eht_cap(9), struct ieee80211_sta_uhr_cap(9)

band data + the iftype lookup crew 🎧

Actions and configuration β€” the whole vibe πŸ› οΈ

  • Actions and configuration(9), struct vif_params(9), struct key_params(9), struct cfg80211_chan_def(9), struct cfg80211_tid_cfg(9), struct cfg80211_tid_config(9), struct cfg80211_fils_aad(9), struct cfg80211_set_hw_timestamp(9)

the chandef superfans (there are SO many of them and honestly? iconic) πŸ“‘

crypto, beacons and AP setup energy πŸŽ€

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

stations, links and everything you pass when you add one 🫑

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

mesh / mpath / ocb corner (yes it exists, yes it slays) πŸ•ΈοΈ

  • 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 β€” the whole scan arc πŸ”

  • Scanning and BSS list handling(9), 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)

wowlan / wakeup / coalesce (the "my laptop is asleep but still working" club) 😴

  • 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) β€” the group-chat protocol fr fr πŸ’¬

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

auth, pmk and ranging (pmsr my beloved) πŸ“Ά

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

the driver-facing ops and wiphy config zone πŸ‘‘

  • 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), cfg80211_get_iftype_ext_capa(9), struct cfg80211_pmsr_capabilities(9), struct wiphy_iftype_akm_suites(9), struct wiphy_radio_cfg(9), struct wiphy_radio_freq_range(9), struct wiphy_radio(9), enum wiphy_nan_flags(9), struct wiphy_nan_capa(9)

struct wiphy and her entire entourage ✨

locking + deferred work (don't rawdog this, please πŸ™)

Utility functions β€” the little helpers that ate 🧰

Data path helpers β€” where the frames actually go πŸš€

finding IEs (element hunting szn) πŸ”Ž

Regulatory enforcement infrastructure + Internal regulatory db functions 🌍

BSS reporting + scan lifecycle callbacks πŸ“¨

RFkill integration πŸ”Œ

Vendor commands (go off, oems) 🏷️

Test mode πŸ§ͺ

connect / roam / disconnect notifications πŸ›«

remain-on-channel + station bookkeeping 🎟️

mgmt rx/tx status reporting πŸ“¬

CQM + radar events (the dramatic ones 😭)

and the last little scrapbook page πŸ“

ngl if you actually read this entire list you're built different. that's the whole reference map β€” nothing skipped, nothing merged, every single (9) exactly where it belongs πŸ’…

ok and there's still more page coming, so don't go anywhere ✨

okay so the see-also list keeps going, and honestly? it's giving "the entire kernel wifi cinematic universe" πŸ’… here's the rest of the family:


okay bestie, that's the whole roster, literally every single one, no skips πŸ™ˆ that's a wrap on cfg80211_probe_status(9) β€” she lives in ./include/net (that's her home address fr), she's serving October 2026 energy, and she said see you in the next manpage πŸ’–βœ¨πŸ«Ά

πŸ“¦ where this page comes from