cfg80211_probe_status(9)
π
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) orNULLif 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 aNULLmoment, because it just doesn't apply there. πcookieβ the cookie filled inprobe_peerpreviously. Yes bestie, it's a cookie. π It came fromprobe_peerearlier 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-1for non-MLO). So like, which link are we on? And if you're not doing MLO at all, you just pass-1and move on with your life. πackedβ indicates whether probe was acked or not. Did we get the acknowledgment?trueorfalse, 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 theack_signalis valid or not. Lowkey the most important one, because it's basically saying "okay but is thatack_signalnumber up there actually trustworthy or not". Don't skip this one, bestie, she's doing important work. βgfpβ allocation flags. Thegfpclassic, 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 π§
struct ieee80211_sband_iftype_data(9),enum ieee80211_edmg_bw_config(9),struct ieee80211_edmg(9),struct ieee80211_sta_s1g_cap(9),struct ieee80211_supported_band(9),_ieee80211_set_sband_iftype_data(9),ieee80211_set_sband_iftype_data(9),for_each_sband_iftype_data(9)ieee80211_get_sband_iftype_data(9),ieee80211_get_he_iftype_cap(9),ieee80211_get_he_6ghz_capa(9),ieee80211_get_eht_iftype_cap(9),ieee80211_get_uhr_iftype_cap(9),wiphy_read_of_freq_limits(9)
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) π‘
cfg80211_get_chandef_type(9),cfg80211_chandef_create(9),cfg80211_chandef_identical(9),cfg80211_chandef_is_edmg(9),cfg80211_chandef_is_s1g(9),cfg80211_chandef_compatible(9),nl80211_chan_width_to_mhz(9),cfg80211_chandef_get_width(9)cfg80211_chandef_valid(9),cfg80211_chandef_usable(9),cfg80211_chandef_dfs_required(9),cfg80211_chandef_dfs_usable(9),cfg80211_chandef_dfs_cac_time(9),cfg80211_chandef_primary(9),cfg80211_chandef_npca_valid(9),cfg80211_chandef_add_npca(9)cfg80211_chandef_add_dbe(9),nl80211_send_chandef(9),ieee80211_chandef_max_power(9),cfg80211_chandef_s1g_pri_width(9),cfg80211_any_usable_channels(9),enum survey_info_flags(9),struct survey_info(9)
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 β¨
struct wiphy(9),wiphy_priv(9),priv_to_wiphy(9),set_wiphy_dev(9),wiphy_dev(9),wiphy_name(9),wiphy_new_nm(9),wiphy_new(9),wiphy_register(9),rcu_dereference_wiphy(9),wiphy_dereference(9),get_wiphy_regdom(9),wiphy_unregister(9),wiphy_free(9)
locking + deferred work (don't rawdog this, please π)
wiphy_lock(9),wiphy_unlock(9),wiphy_work_queue(9),wiphy_work_cancel(9),wiphy_work_flush(9),wiphy_delayed_work_queue(9),wiphy_delayed_work_cancel(9),wiphy_delayed_work_flush(9),wiphy_delayed_work_pending(9)wiphy_hrtimer_work_queue(9),wiphy_hrtimer_work_cancel(9),wiphy_hrtimer_work_flush(9),wiphy_hrtimer_work_pending(9),enum ieee80211_ap_reg_power(9),struct wireless_dev(9),wdev_priv(9),wdev_chandef(9)
Utility functions β the little helpers that ate π§°
Utility functions(9),ieee80211_channel_equal(9),ieee80211_channel_to_khz(9),ieee80211_channel_to_freq_khz(9),ieee80211_channel_to_frequency(9),ieee80211_freq_khz_to_channel(9),ieee80211_frequency_to_channel(9),ieee80211_get_channel_khz(9),ieee80211_get_channel(9)cfg80211_channel_is_psc(9),ieee80211_radio_freq_range_valid(9),cfg80211_radio_chandef_valid(9),cfg80211_wdev_channel_allowed(9),ieee80211_get_response_rate(9),ieee80211_mandatory_rates(9),struct ieee80211_radiotap_iterator(9),ieee80211_get_hdrlen_from_skb(9),ieee80211_hdrlen(9),ieee80211_get_mesh_hdrlen(9)
Data path helpers β where the frames actually go π
Data path helpers(9),ieee80211_data_to_8023_exthdr(9),ieee80211_data_to_8023(9),ieee80211_is_valid_amsdu(9),ieee80211_amsdu_to_8023s(9),ieee80211_get_8023_tunnel_proto(9),ieee80211_strip_8023_mesh_hdr(9),cfg80211_classify8021d(9)
finding IEs (element hunting szn) π
cfg80211_find_elem_match(9),cfg80211_find_ie_match(9),cfg80211_find_elem(9),cfg80211_find_ie(9),cfg80211_find_ext_elem(9),cfg80211_find_ext_ie(9),cfg80211_find_vendor_elem(9),cfg80211_find_vendor_ie(9),enum cfg80211_rnr_iter_ret(9),cfg80211_iter_rnr(9),cfg80211_defragment_element(9),cfg80211_send_layer2_update(9)
Regulatory enforcement infrastructure + Internal regulatory db functions π
Regulatory enforcement infrastructure(9),regulatory_hint(9),regulatory_set_wiphy_regd(9),regulatory_set_wiphy_regd_sync(9),wiphy_apply_custom_regulatory(9),freq_reg_info(9),reg_initiator_name(9),regulatory_pre_cac_allowed(9),Internal regulatory db functions(9),reg_query_regdb_wmm(9)
BSS reporting + scan lifecycle callbacks π¨
cfg80211_scan_done(9),cfg80211_sched_scan_results(9),cfg80211_sched_scan_stopped(9),cfg80211_sched_scan_stopped_locked(9),cfg80211_inform_bss_frame_data(9),cfg80211_gen_new_bssid(9),cfg80211_is_element_inherited(9),cfg80211_merge_profile(9),enum cfg80211_bss_frame_type(9),cfg80211_get_ies_channel_number(9)cfg80211_ssid_eq(9),cfg80211_inform_bss_data(9),__cfg80211_get_bss(9),cfg80211_get_bss(9),cfg80211_ref_bss(9),cfg80211_put_bss(9),cfg80211_unlink_bss(9),cfg80211_bss_iter(9),cfg80211_rx_mlme_mgmt(9),cfg80211_auth_timeout(9)struct cfg80211_rx_assoc_resp_data(9),cfg80211_rx_assoc_resp(9),struct cfg80211_assoc_failure(9),cfg80211_assoc_failure(9),cfg80211_tx_mlme_mgmt(9),cfg80211_rx_unprot_mlme_mgmt(9),cfg80211_michael_mic_failure(9),cfg80211_ibss_joined(9),cfg80211_notify_new_peer_candidate(9)
RFkill integration π
RFkill integration(9),wiphy_rfkill_set_hw_state_reason(9),wiphy_rfkill_start_polling(9),wiphy_rfkill_stop_polling(9)
Vendor commands (go off, oems) π·οΈ
Vendor commands(9),cfg80211_vendor_cmd_alloc_reply_skb(9),cfg80211_vendor_cmd_reply(9),cfg80211_vendor_cmd_get_sender(9),cfg80211_vendor_event_alloc(9),cfg80211_vendor_event_alloc_ucast(9),cfg80211_vendor_event(9)
Test mode π§ͺ
Test mode(9),cfg80211_testmode_alloc_reply_skb(9),cfg80211_testmode_reply(9),cfg80211_testmode_alloc_event_skb(9),cfg80211_testmode_event(9)
connect / roam / disconnect notifications π«
struct cfg80211_fils_resp_params(9),struct cfg80211_connect_resp_params(9),cfg80211_connect_done(9),cfg80211_connect_bss(9),cfg80211_connect_result(9),cfg80211_connect_timeout(9),struct cfg80211_roam_info(9),cfg80211_roamed(9),cfg80211_port_authorized(9),cfg80211_disconnected(9)
remain-on-channel + station bookkeeping ποΈ
cfg80211_ready_on_channel(9),cfg80211_remain_on_channel_expired(9),cfg80211_tx_mgmt_expired(9),cfg80211_sinfo_alloc_tid_stats(9),cfg80211_link_sinfo_alloc_tid_stats(9),cfg80211_sinfo_release_content(9),cfg80211_new_sta(9),cfg80211_del_sta_sinfo(9),cfg80211_del_sta(9),cfg80211_conn_failed(9)
mgmt rx/tx status reporting π¬
struct cfg80211_rx_info(9),cfg80211_rx_mgmt_ext(9),cfg80211_rx_mgmt_khz(9),cfg80211_rx_mgmt(9),struct cfg80211_tx_status(9),cfg80211_mgmt_tx_status_ext(9),cfg80211_mgmt_tx_status(9),cfg80211_control_port_tx_status(9),cfg80211_rx_control_port(9)
CQM + radar events (the dramatic ones π)
cfg80211_cqm_rssi_notify(9),cfg80211_cqm_pktloss_notify(9),cfg80211_cqm_txe_notify(9),cfg80211_cqm_beacon_loss_notify(9),__cfg80211_radar_event(9),cfg80211_sta_opmode_change_notify(9),cfg80211_cac_event(9),cfg80211_background_cac_abort(9)
and the last little scrapbook page π
cfg80211_gtk_rekey_notify(9),cfg80211_pmksa_candidate_notify(9),cfg80211_rx_spurious_frame(9),cfg80211_rx_unexpected_4addr_frame(9),cfg80211_report_obss_beacon_khz(9),cfg80211_report_obss_beacon(9),struct cfg80211_beaconing_check_config(9)
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:
- Beacon gatekeeping β
cfg80211_reg_check_beaconing(9),cfg80211_reg_can_beacon(9), and the chill version,cfg80211_reg_can_beacon_relax(9)π - Channel switch era β
cfg80211_ch_switch_notify(9)andcfg80211_ch_switch_started_notify(9), the before and after of it all β¨ - Operating class to chandef and back again (a whole conversion pipeline, no cap) β
ieee80211_operating_class_to_band(9),ieee80211_operating_class_to_chandef(9),ieee80211_chandef_to_operating_class(9), andieee80211_chandef_to_khz(9)π¦ - TDLS business + math β
cfg80211_tdls_oper_request(9)andcfg80211_calculate_bitrate(9)π₯ - The registration plotline β
cfg80211_unregister_wdev(9),cfg80211_register_netdevice(9),cfg80211_unregister_netdevice(9)π«Ά - Fast transition stuff β
struct cfg80211_ft_event_params(9)andcfg80211_ft_event(9)β - Peer-to-peer detective work β
cfg80211_get_p2p_attr(9)π - IE splitting & element fragmentation (the fiddly faves) β
ieee80211_ie_split_ric(9),ieee80211_ie_split(9),ieee80211_fragment_element(9)π§ - Wakeup drama + crit proto β
cfg80211_report_wowlan_wakeup(9)andcfg80211_crit_proto_stopped(9)π - Just counting channels tbh β
ieee80211_get_num_supported_channels(9)πΈ - Combo checking supremacy β
cfg80211_check_combinations(9),cfg80211_iter_combinations(9),cfg80211_get_radio_idx_by_chan(9)π - The shutdown squad β
cfg80211_stop_link(9),cfg80211_stop_iface(9),cfg80211_shutdown_all_interfaces(9)π - Extended feature flags β
wiphy_ext_feature_set(9)andwiphy_ext_feature_isset(9)π - NAN hive mind, part one β
cfg80211_free_nan_func(9),struct cfg80211_nan_match_params(9),cfg80211_nan_match(9),cfg80211_nan_func_terminated(9),cfg80211_nan_sched_update_done(9)π - External auth, going out to get it yourself β
cfg80211_external_auth_request(9)π¦ - PMSR reports + completion β
cfg80211_pmsr_report(9)andcfg80211_pmsr_complete(9)β - Interface type permission slip β
cfg80211_iftype_allowed(9)π«Ά - Comeback season β
cfg80211_assoc_comeback(9)π₯ - OWE info events β
cfg80211_update_owe_info_event(9)β¨ - BSS flush moment β
cfg80211_bss_flush(9)π - Color / OBSS collision nation (basically a whole mini-series) β
cfg80211_bss_color_notify(9),cfg80211_obss_color_collision_notify(9),cfg80211_color_change_started_notify(9),cfg80211_color_change_aborted_notify(9),cfg80211_color_change_notify(9)π¨ - 6 GHz power type β
cfg80211_6ghz_power_type(9)πΈ - Links removed + MLO reconf arc β
cfg80211_links_removed(9),struct cfg80211_mlo_reconf_done_data(9),cfg80211_mlo_reconf_add_done(9)π - Channel check scheduling β
cfg80211_schedule_channels_check(9)π¦ - EPCS changed β
cfg80211_epcs_changed(9)β - NAN hive mind, part two (yes there's more) β
cfg80211_next_nan_dw_notif(9),cfg80211_nan_cluster_joined(9),cfg80211_nan_ulw_update(9),cfg80211_nan_channel_evac(9)π§ - Debugfs, but locked β
wiphy_locked_debugfs_read(9)andwiphy_locked_debugfs_write(9)π - S1G frequency math β
cfg80211_s1g_get_start_freq_khz(9),cfg80211_s1g_get_end_freq_khz(9),cfg80211_s1g_get_primary_sibling(9)π - And last but never least, incumbent signal notice β
cfg80211_incumbent_signal_notify(9)π
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
- 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