STRUCT CFG80211_UNSOL_BCAST_PROBE_RESP(9)
π struct cfg80211_unsol_bcast_probe_resp β Kernel API Manual
okay bestie, so we're deep in the kernel docs rn β this is from the Kernel API Manual, no big deal, and we're talking about struct cfg80211_unsol_bcast_probe_resp. iconic name, i know. say it three times fast, i dare you π«Ά
β¨ NAME β¨
struct cfg80211_unsol_bcast_probe_resp β literally the unsolicited broadcast probe response parameters, but specifically for 6GHz π
like she's a 6GHz-only girly and she knows it.
π¦ SYNOPSIS π¦
struct cfg80211_unsol_bcast_probe_resp {
bool update;
u32 interval;
size_t tmpl_len;
const u8 *tmpl;
};
look at her. four little fields. absolute main character energy β¨ and yes the closing brace has a lil space before it in the original, we don't judge, we reproduce π
π Members π
okay so let's do the member-by-member vibe check, one at a time, no skipping, we're thorough here π
updateβ this is abool, and you set it totrueif the feature configuration should be updated. that's it. that's the whole job. she's the "did you actually change anything or are we just vibing" flag π¦intervalβ packet interval in TUs. and listen, the maximum allowed is 20 TU, fr fr, exactly as mentioned inIEEE P802.11ax/D6.0 26.17.2.3.2 - AP behavior for fast passive scanning. so don't go over 20, she will not slay if you go over 20 πtmpl_lenβ template length. the length. of the template. short and sweet, she said what she said πΈtmplβ template data for probe response. this is aconst u8 *bestie, so it's pointing at bytes you should not be out here mutating π
lowkey a note to self: that 20 TU cap isn't a suggestion, it's the documented max in the spec reference above β keep it in your head before you go writing configs π
okay so SEE ALSO is lowkey the most extra section on this whole page β it's the receipts list, every single thing this doc links arms with, and bestie there are so many of them. no cap, we're doing all of them, in order, no skipping π
Home base first, because everything below lives under it:
- π the kernel file itself:
./include/net/cfg80211.h - π«Ά the gentle openings:
Introduction(9),Device registration(9) - π¦ channels, rates & bss vibes:
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) - πΈ HE / OBSS corner:
struct ieee80211_he_obss_pd(9),struct cfg80211_he_bss_color(9) - π
sta caps, every generation, they ate:
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) - π the sband / band-data 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) - β setters, getters & the loop:
_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)
- π then the absolute unit,
Actions and configuration(9)β and it is not coming alone, it's bringing the entire group chat:- the param structs:
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) - chandef besties, part one:
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) - chandef besties, part two:
cfg80211_chandef_valid(9),cfg80211_chandef_usable(9) - dfs & cac era:
cfg80211_chandef_dfs_required(9),cfg80211_chandef_dfs_usable(9),cfg80211_chandef_dfs_cac_time(9) - primary / npca / dbe, the niche icons:
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) - survey squad:
enum survey_info_flags(9),struct survey_info(9) - crypto & mbssid & rnr:
struct cfg80211_crypto_settings(9),struct cfg80211_mbssid_config(9),struct cfg80211_mbssid_elems(9),struct cfg80211_rnr_elems(9) - beacon / acl / fils / s1g:
struct cfg80211_beacon_data(9),struct cfg80211_acl_data(9),struct cfg80211_fils_discovery(9),struct cfg80211_s1g_short_beacon(9) - ap settings & friends:
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) - station parameters, all the flavours:
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) - rate info crew:
enum rate_info_flags(9),enum rate_info_bw(9),struct rate_info(9) - bss params + stats:
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) - sar everything:
struct cfg80211_sar_sub_specs(9),struct cfg80211_sar_specs(9),struct cfg80211_sar_freq_ranges(9),struct cfg80211_sar_capa(9) - the stragglers of this group, still iconic:
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)
- the param structs:
- π next up:
Scanning and BSS list handling(9), which is basically the "finding wifi" arc:- ssid & scan requests:
struct cfg80211_ssid(9),struct cfg80211_scan_info(9),struct cfg80211_scan_6ghz_params(9),struct cfg80211_scan_request(9) - match sets & sched scans:
struct cfg80211_match_set(9),struct cfg80211_sched_scan_plan(9),struct cfg80211_bss_select_adjust(9),struct cfg80211_sched_scan_request(9) - bss info:
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) - auth / assoc / deauth / disassoc:
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) - ibss / bss selection / connect:
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) - wowlan & coalesce corner:
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) - the rest of this cluster:
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)
- ssid & scan requests:
- π§
Neighbor Awareness Networking (NAN)(9)β yes the whole acronym, yes it's a mood:- nan config & channels:
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 func stuff:
struct cfg80211_nan_func_filter(9),struct cfg80211_nan_func(9) - then the tag-alongs that just live here now:
struct cfg80211_pmk_conf(9),struct cfg80211_external_auth_params(9),struct cfg80211_ftm_responder_stats(9) - pmsr / ranging era:
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) - owe & mgmt frame regs:
struct cfg80211_update_owe_info(9),struct mgmt_frame_regs(9) - ops & wiphy flags:
struct cfg80211_ops(9),enum wiphy_flags(9) - iface limits & combos:
struct ieee80211_iface_limit(9),struct ieee80211_iface_combination(9) - wowlan support + coalesce support:
enum wiphy_wowlan_support_flags(9),struct wiphy_wowlan_support(9),struct wiphy_coalesce_support(9) - vendor command flags & opmode:
enum wiphy_vendor_command_flags(9),enum wiphy_opmode_flag(9),struct sta_opmode_info(9),struct wiphy_vendor_command(9) - iftype ext capab & akm suites:
struct wiphy_iftype_ext_capab(9),cfg80211_get_iftype_ext_capa(9),struct cfg80211_pmsr_capabilities(9),struct wiphy_iftype_akm_suites(9) - radio cfg trio:
struct wiphy_radio_cfg(9),struct wiphy_radio_freq_range(9),struct wiphy_radio(9) - nan capa (again, we love her):
enum wiphy_nan_flags(9),struct wiphy_nan_capa(9) - the wiphy itself + priv access:
struct wiphy(9),wiphy_priv(9),priv_to_wiphy(9),set_wiphy_dev(9),wiphy_dev(9),wiphy_name(9) - alloc & register:
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:
wiphy_lock(9),wiphy_unlock(9) - work queueing, all the flavours:
wiphy_work_queue(9),wiphy_work_cancel(9),wiphy_work_flush(9) - delayed work:
wiphy_delayed_work_queue(9),wiphy_delayed_work_cancel(9),wiphy_delayed_work_flush(9),wiphy_delayed_work_pending(9) - hrtimer work:
wiphy_hrtimer_work_queue(9),wiphy_hrtimer_work_cancel(9),wiphy_hrtimer_work_flush(9),wiphy_hrtimer_work_pending(9) - wdev side:
enum ieee80211_ap_reg_power(9),struct wireless_dev(9),wdev_priv(9),wdev_chandef(9)
- nan config & channels:
- π
Utility functions(9)β the little helpers that carry the whole thing:- channel <-> freq math:
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) - psc & radio range checks:
cfg80211_channel_is_psc(9),ieee80211_radio_freq_range_valid(9),cfg80211_radio_chandef_valid(9),cfg80211_wdev_channel_allowed(9) - rates:
ieee80211_get_response_rate(9),ieee80211_mandatory_rates(9) - radiotap & header lengths:
struct ieee80211_radiotap_iterator(9),ieee80211_get_hdrlen_from_skb(9),ieee80211_hdrlen(9),ieee80211_get_mesh_hdrlen(9)
- channel <-> freq math:
- π₯
Data path helpers(9)β the 8023 conversion & element-finding zone:- data <-> 8023:
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) - element finding, the whole matching family:
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) - rnr iterating & defrag:
enum cfg80211_rnr_iter_ret(9),cfg80211_iter_rnr(9),cfg80211_defragment_element(9),cfg80211_send_layer2_update(9)
- data <-> 8023:
- π°οΈ
Regulatory enforcement infrastructure(9)β the "please don't transmit there" division: - π
Internal regulatory db functions(9)β and this one lowkey swallows half the notify API, no cap:- starting with:
reg_query_regdb_wmm(9),cfg80211_scan_done(9),cfg80211_sched_scan_results(9),cfg80211_sched_scan_stopped(9),cfg80211_sched_scan_stopped_locked(9) - bss informing:
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) - get / ref / put / unlink:
__cfg80211_get_bss(9),cfg80211_get_bss(9),cfg80211_ref_bss(9),cfg80211_put_bss(9),cfg80211_unlink_bss(9),cfg80211_bss_iter(9) - mlme mgmt & assoc:
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) - mic failure, ibss, peer candidate:
cfg80211_michael_mic_failure(9),cfg80211_ibss_joined(9),cfg80211_notify_new_peer_candidate(9)
- starting with:
- π‘
RFkill integration(9)β three icons, that's the whole squad: - ποΈ
Vendor commands(9)β alloc, reply, get sender, event, event again, event with ucast: - π§ͺ
Test mode(9)β and then it just keeps going, bestie, I'm not kidding:- testmode four:
cfg80211_testmode_alloc_reply_skb(9),cfg80211_testmode_reply(9),cfg80211_testmode_alloc_event_skb(9),cfg80211_testmode_event(9) - fils / connect response era:
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) - roam / port auth / disconnect:
struct cfg80211_roam_info(9),cfg80211_roamed(9),cfg80211_port_authorized(9),cfg80211_disconnected(9) - remain on channel / tx mgmt:
cfg80211_ready_on_channel(9),cfg80211_remain_on_channel_expired(9),cfg80211_tx_mgmt_expired(9) - station info allocations:
cfg80211_sinfo_alloc_tid_stats(9),cfg80211_link_sinfo_alloc_tid_stats(9),cfg80211_sinfo_release_content(9) - new sta / del sta:
cfg80211_new_sta(9),cfg80211_del_sta_sinfo(9),cfg80211_del_sta(9),cfg80211_conn_failed(9) - rx mgmt family:
struct cfg80211_rx_info(9),cfg80211_rx_mgmt_ext(9),cfg80211_rx_mgmt_khz(9),cfg80211_rx_mgmt(9) - tx status family:
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 notifications:
cfg80211_cqm_rssi_notify(9),cfg80211_cqm_pktloss_notify(9),cfg80211_cqm_txe_notify(9),cfg80211_cqm_beacon_loss_notify(9) - radar / cac / opmode:
__cfg80211_radar_event(9),cfg80211_sta_opmode_change_notify(9),cfg80211_cac_event(9),cfg80211_background_cac_abort(9) - rekey & pmksa candidate:
cfg80211_gtk_rekey_notify(9),cfg80211_pmksa_candidate_notify(9) - spurious / unexpected frames:
cfg80211_rx_spurious_frame(9),cfg80211_rx_unexpected_4addr_frame(9) - probe status & obss beacon reports:
cfg80211_probe_status(9),cfg80211_report_obss_beacon_khz(9),cfg80211_report_obss_beacon(9) - and the very last one, saving the cutest for the end:
struct cfg80211_beaconing_check_config(9)π
- testmode four:
and that's the list so far β but it is not the end of the page, so stay with me π
okay so the SEE ALSO list for this page does not stop, and honestly? queen behavior. here's the rest of the extended universe β every single one, no skips, no cuts, no "etc." (we don't do that here π«Ά):
cfg80211_reg_check_beaconing(9)β the regulatory vibe check β¨cfg80211_reg_can_beacon(9)β can she beacon? asking for a friendcfg80211_reg_can_beacon_relax(9)β same question but chillcfg80211_ch_switch_notify(9)β channel switch gossip, incoming πcfg80211_ch_switch_started_notify(9)β and the "we started it" versionieee80211_operating_class_to_band(9)β conversions, we love a glow-upieee80211_operating_class_to_chandef(9)β one more conversion bestieieee80211_chandef_to_operating_class(9)β and the reverse, obviously πieee80211_chandef_to_khz(9)β numbers into numbers, iconiccfg80211_tdls_oper_request(9)β TDLS said "hey"cfg80211_calculate_bitrate(9)β the math is mathing π₯cfg80211_unregister_wdev(9)β it's giving goodbyecfg80211_register_netdevice(9)β and hello againcfg80211_unregister_netdevice(9)β goodbye part two, the sequelstruct cfg80211_ft_event_params(9)β a whole struct, main character energy πcfg80211_ft_event(9)β the event itself, fr frcfg80211_get_p2p_attr(9)β peer-to-peer info, get you oneieee80211_ie_split_ric(9)β splitting IEs with the RIC, fancyieee80211_ie_split(9)β splitting IEs, the classicieee80211_fragment_element(9)β fragmentation nation πΈcfg80211_report_wowlan_wakeup(9)β wakeup report, she's up πcfg80211_crit_proto_stopped(9)β critical protocol said byeieee80211_get_num_supported_channels(9)β how many channels? iconic questioncfg80211_check_combinations(9)β combinations check, lowkey stressfulcfg80211_iter_combinations(9)β same energy, but iterating π¦cfg80211_get_radio_idx_by_chan(9)β find the radio by channel, detective modecfg80211_stop_link(9)β stopping a link, dramaticcfg80211_stop_iface(9)β stopping an interface, also dramaticcfg80211_shutdown_all_interfaces(9)β all of them. periodt.wiphy_ext_feature_set(9)β extended feature, set itwiphy_ext_feature_isset(9)β extended feature, is it set thocfg80211_free_nan_func(9)β free the NAN function, let her go πstruct cfg80211_nan_match_params(9)β NAN match params, a whole structcfg80211_nan_match(9)β it's a match! πcfg80211_nan_func_terminated(9)β terminated, ripcfg80211_nan_sched_update_done(9)β schedule update done, slaycfg80211_external_auth_request(9)β auth request from outside πcfg80211_pmsr_report(9)β PMSR report, very niche, very chiccfg80211_pmsr_complete(9)β and it's complete β¨cfg80211_iftype_allowed(9)β is this iftype allowed? find outcfg80211_assoc_comeback(9)β assoc comeback, she returned πcfg80211_update_owe_info_event(9)β OWE info update, we love an updatecfg80211_bss_flush(9)β flush the BSS, byecfg80211_bss_color_notify(9)β color notify, aesthetic πcfg80211_obss_color_collision_notify(9)β collision! drama!cfg80211_color_change_started_notify(9)β color change started, we're transitioningcfg80211_color_change_aborted_notify(9)β and it got aborted, tragiccfg80211_color_change_notify(9)β color change notify, the trilogy finalecfg80211_6ghz_power_type(9)β 6 GHz power type, very currentcfg80211_links_removed(9)β links removed, gone girlstruct cfg80211_mlo_reconf_done_data(9)β MLO reconf data, a struct momentcfg80211_mlo_reconf_add_done(9)β MLO reconf add done βcfg80211_schedule_channels_check(9)β schedule that channels checkcfg80211_epcs_changed(9)β EPCS changed, notedcfg80211_next_nan_dw_notif(9)β next NAN DW notification, queued upcfg80211_nan_cluster_joined(9)β joined a NAN cluster, social butterfly π¦cfg80211_nan_ulw_update(9)β NAN ULW update, say that five timescfg80211_nan_channel_evac(9)β NAN channel evac, everybody outwiphy_locked_debugfs_read(9)β debugfs read, locked edition πwiphy_locked_debugfs_write(9)β debugfs write, also lockedcfg80211_s1g_get_start_freq_khz(9)β S1G start freq in kHz, precise queencfg80211_s1g_get_end_freq_khz(9)β end freq, also in kHz πcfg80211_s1g_get_primary_sibling(9)β primary sibling, family dramacfg80211_incumbent_signal_notify(9)β incumbent signal notify, the OG signal π
and that's the whole list, bestie β nobody got left out, nobody got merged, every one of them is exactly where she belongs π
this page came out of ./include/net, dated October 2026, and the running header/footer on it reads struct cfg80...t_probe_resp(9) β yeah it's truncated, that's just how the generator does her, don't come for her π anyway go read the kernel source, ily, bye πβ¨
π¦ 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