STRUCT IEEE80211_HE_OBSS_PD(9)
π struct ieee80211_he_obss_pd(9) β the kernel API manual, bestie edition π
okay so you're looking at struct ieee80211_he_obss_pd from the (9) kernel API manual and honestly? it's giving spatial reuse realness. this little struct is literally the whole vibe of your AP settings for spatial reuse, and we're gonna go through it field by field like we're deep in the group chat at 2am. no cap, every single member is in here. β¨
πΈ NAME πΈ
struct ieee80211_he_obss_pd β AP settings for spatial reuse π¦
π SYNOPSIS π
struct ieee80211_he_obss_pd {
bool enable;
u8 sr_ctrl;
u8 non_srg_max_offset;
u8 min_offset;
u8 max_offset;
u8 bss_color_bitmap[8];
u8 partial_bssid_bitmap[8];
};
look at her. seven whole fields. main character energy, fr fr. π
π Members π
enableβ is the feature enabled. that's it, that's the whole field. abooldoing the most important job: yes or no, on or off, slay or nay. π«Άsr_ctrlβ The SR Control field of SRP element. yes it's au8, yes it's iconic, yes it holds that SR Control field. πnon_srg_max_offsetβ non-SRG maximum tx power offset. not "the" max, the non-SRG max. keep them straight bestie, iykyk. β¨min_offsetβ minimal tx power offset an associated station shall use. shall, not should. the manual said what it said. πmax_offsetβ maximum tx power offset an associated station shall use. the ceiling of the situation. the limit of the limit. π₯bss_color_bitmapβ bitmap that indicates the BSS color values used by members of the SRG. it's au8array,8of them, living its best bitmap life. πpartial_bssid_bitmapβ bitmap that indicates the partial BSSID values used by members of the SRG. alsou8[8], also doing bitmaps, also absolutely eating. π
side note bestie: both of those bitmaps are literallyu8arrays of size8β don't come for me, that's exactly what the page says. π§
okay that's the whole struct layout and every member, no details dropped, no fields skipped β part 2 is coming so don't go anywhere π
Okay bestie, this is the part where the page just points at everyone else β it's giving "let me introduce you to my entire friend group" energy π and honestly every single one of them is a real one. Nothing skipped, nothing merged, all names exactly as they appear. Let's go π
π SEE ALSO π
Okay so first up: everything lives in the kernel file ./include/net/cfg80211.h, and these are the pages that get you oriented π§
- The starter pack β
Introduction(9),Device registration(9) - The channel + rate girlies β
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 cfg80211_he_bss_color(9) - The capability squad (ht, vht, he β yes they went there) β
struct ieee80211_sta_ht_cap(9),struct ieee80211_sta_vht_cap(9),struct ieee80211_sta_he_cap(9)
π the EHT & band-crew aka the newer siblings
struct ieee80211_eht_mcs_nss_supp(9),struct ieee80211_sta_eht_cap(9),struct ieee80211_sta_uhr_cap(9)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)- the setter/getter clique β
_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 (yes that's the actual page name, iconic)
- the params posse β
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 central, no cap β
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)
π survey, crypto, beacon & AP settings
enum survey_info_flags(9),struct survey_info(9)- crypto + multi-BSSID moment β
struct cfg80211_crypto_settings(9),struct cfg80211_mbssid_config(9),struct cfg80211_mbssid_elems(9),struct cfg80211_rnr_elems(9) - beacon-adjacent besties β
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) - AP settings crew β
struct cfg80211_ap_settings(9),struct cfg80211_ap_update(9),struct cfg80211_csa_settings(9),struct cfg80211_color_change_settings(9)
β¨ stations, links & all the per-station lore
struct iface_combination_params(9),enum station_parameters_apply_mask(9),struct sta_txpwr(9)- link station lineup β
struct link_station_parameters(9),struct link_station_del_parameters(9),struct cfg80211_ttlm_params(9) - the station structs themselves β
struct station_parameters(9),struct station_del_parameters(9),enum cfg80211_station_type(9),cfg80211_check_station_change(9) - rate info besties β
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, mesh, OCB & txq (the niche icons)
- SAR everything β
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)- mesh + mpath β
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
- scan request energy β
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) - the BSS roster β
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),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)
π pmksa, WoWLAN & pattern matching (yes, wowlan, iconic name)
struct cfg80211_pmksa(9),struct cfg80211_pkt_pattern(9)- WoWLAN fam β
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) - misc management faves β
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)
- NAN conf & 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 funcs β
struct cfg80211_nan_func_filter(9),struct cfg80211_nan_func(9)
π«Ά pmk, external auth, FTM & PMSR (the measurement girlies)
struct cfg80211_pmk_conf(9),struct cfg80211_external_auth_params(9),struct cfg80211_ftm_responder_stats(9)- PMSR deep cut β
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 wiphy saga (this is the main character arc fr)
- ops + iface combos β
struct cfg80211_ops(9),enum wiphy_flags(9),struct ieee80211_iface_limit(9),struct ieee80211_iface_combination(9) - support structs β
enum wiphy_wowlan_support_flags(9),struct wiphy_wowlan_support(9),struct wiphy_coalesce_support(9) - vendor + opmode β
enum wiphy_vendor_command_flags(9),enum wiphy_opmode_flag(9),struct sta_opmode_info(9),struct wiphy_vendor_command(9) - ext capa + pmsr capa β
struct wiphy_iftype_ext_capab(9),cfg80211_get_iftype_ext_capa(9),struct cfg80211_pmsr_capabilities(9),struct wiphy_iftype_akm_suites(9) - radio structs β
struct wiphy_radio_cfg(9),struct wiphy_radio_freq_range(9),struct wiphy_radio(9) - NAN capa on the wiphy β
enum wiphy_nan_flags(9),struct wiphy_nan_capa(9),struct wiphy(9)
π₯ wiphy lifecycle & work-queue besties
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)- dereference girlies β
rcu_dereference_wiphy(9),wiphy_dereference(9),get_wiphy_regdom(9) - the teardown β
wiphy_unregister(9),wiphy_free(9),wiphy_lock(9),wiphy_unlock(9) - work queue squad β
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) - wdev trio β
enum ieee80211_ap_reg_power(9),struct wireless_dev(9),wdev_priv(9),wdev_chandef(9)
π Utility functions
- channel math besties β
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) - range + validity checks β
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) - header length crew β
struct ieee80211_radiotap_iterator(9),ieee80211_get_hdrlen_from_skb(9),ieee80211_hdrlen(9),ieee80211_get_mesh_hdrlen(9)
π Data path helpers
- 8023 conversions β
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 fam β
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 + defrag β
enum cfg80211_rnr_iter_ret(9),cfg80211_iter_rnr(9),cfg80211_defragment_element(9),cfg80211_send_layer2_update(9)
πΈ Regulatory enforcement infrastructure & internal regdb
- enforcement crew β
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 db β
Internal regulatory db functions(9),reg_query_regdb_wmm(9)
π¦ scan done, BSS inform & BSS refcounting
cfg80211_scan_done(9),cfg80211_sched_scan_results(9),cfg80211_sched_scan_stopped(9),cfg80211_sched_scan_stopped_locked(9)- BSS inform + inheritance β
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 resp β
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, Vendor commands & Test mode
- RFkill β
wiphy_rfkill_set_hw_state_reason(9),wiphy_rfkill_start_polling(9),wiphy_rfkill_stop_polling(9) - Vendor commands β
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 β
cfg80211_testmode_alloc_reply_skb(9),cfg80211_testmode_reply(9),cfg80211_testmode_alloc_event_skb(9),cfg80211_testmode_event(9)
β connect / roam / disconnect pipeline
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 trio β
cfg80211_ready_on_channel(9),cfg80211_remain_on_channel_expired(9),cfg80211_tx_mgmt_expired(9) - sinfo tid stats β
cfg80211_sinfo_alloc_tid_stats(9),cfg80211_link_sinfo_alloc_tid_stats(9),cfg80211_sinfo_release_content(9) - station notifications β
cfg80211_new_sta(9),cfg80211_del_sta_sinfo(9),cfg80211_del_sta(9),cfg80211_conn_failed(9)
π rx / tx mgmt + control port + CQM + radar + notify squad
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 notifications β
cfg80211_cqm_rssi_notify(9),cfg80211_cqm_pktloss_notify(9),cfg80211_cqm_txe_notify(9),cfg80211_cqm_beacon_loss_notify(9) - radar + cac β
__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),cfg80211_probe_status(9),cfg80211_report_obss_beacon_khz(9),cfg80211_report_obss_beacon(9),struct cfg80211_beaconing_check_config(9)
And that's the whole friend group, bestie β not a single one left out π«Άβ¨ (there's more page coming, don't run off yet π)
cfg80211_reg_check_beaconing(9)β the beaconing permission checkcfg80211_reg_can_beacon(9)β can this chandef beacon, yes or nocfg80211_reg_can_beacon_relax(9)β same question but the relaxed versioncfg80211_ch_switch_notify(9)β channel switch, but make it a notificationcfg80211_ch_switch_started_notify(9)β the "we've started the switch" heads-upieee80211_operating_class_to_band(9)β operating class in, band outieee80211_operating_class_to_chandef(9)β operating class in, chandef outieee80211_chandef_to_operating_class(9)β chandef in, operating class out (yes, the reverse, we love a two-way street π«)ieee80211_chandef_to_khz(9)β chandef in, kHz outcfg80211_tdls_oper_request(9)β TDLS operation requestcfg80211_calculate_bitrate(9)β math o'clock, bitrate editioncfg80211_unregister_wdev(9)β unregister a wireless devicecfg80211_register_netdevice(9)β register a netdevicecfg80211_unregister_netdevice(9)β and the un-register counterpart, obviouslystruct cfg80211_ft_event_params(9)β the FT event parameter structcfg80211_ft_event(9)β the FT event itselfcfg80211_get_p2p_attr(9)β grab a P2P attributeieee80211_ie_split_ric(9)β split those IEs (RIC flavour)ieee80211_ie_split(9)β split those IEs (classic flavour)ieee80211_fragment_element(9)β fragment an elementcfg80211_report_wowlan_wakeup(9)β report a WoWLAN wakeupcfg80211_crit_proto_stopped(9)β the critical protocol has stoppedieee80211_get_num_supported_channels(9)β how many channels are supported, counted for youcfg80211_check_combinations(9)β check those combinationscfg80211_iter_combinations(9)β iterate those combinationscfg80211_get_radio_idx_by_chan(9)β radio index, looked up by channelcfg80211_stop_link(9)β stop a linkcfg80211_stop_iface(9)β stop an interfacecfg80211_shutdown_all_interfaces(9)β stop everything, no survivorswiphy_ext_feature_set(9)β set an extended feature on the wiphywiphy_ext_feature_isset(9)β is that extended feature set thocfg80211_free_nan_func(9)β free a NAN functionstruct cfg80211_nan_match_params(9)β NAN match parameter structcfg80211_nan_match(9)β NAN matchcfg80211_nan_func_terminated(9)β the NAN function has been terminatedcfg80211_nan_sched_update_done(9)β NAN schedule update is donecfg80211_external_auth_request(9)β external auth requestcfg80211_pmsr_report(9)β PMSR reportcfg80211_pmsr_complete(9)β PMSR completecfg80211_iftype_allowed(9)β is this iftype allowedcfg80211_assoc_comeback(9)β assoc comeback (the come-back is real)cfg80211_update_owe_info_event(9)β update the OWE info eventcfg80211_bss_flush(9)β flush the BSS entriescfg80211_bss_color_notify(9)β BSS color notificationcfg80211_obss_color_collision_notify(9)β OBSS color collision, notify the peoplecfg80211_color_change_started_notify(9)β color change startedcfg80211_color_change_aborted_notify(9)β color change aborted πcfg80211_color_change_notify(9)β color change, plain and simplecfg80211_6ghz_power_type(9)β 6 GHz power typecfg80211_links_removed(9)β links got removedstruct cfg80211_mlo_reconf_done_data(9)β MLO reconfig done data structcfg80211_mlo_reconf_add_done(9)β MLO reconfig add is donecfg80211_schedule_channels_check(9)β schedule a channels checkcfg80211_epcs_changed(9)β EPCS changedcfg80211_next_nan_dw_notif(9)β next NAN DW notificationcfg80211_nan_cluster_joined(9)β joined a NAN cluster πcfg80211_nan_ulw_update(9)β NAN ULW updatecfg80211_nan_channel_evac(9)β NAN channel evacuationwiphy_locked_debugfs_read(9)β debugfs read, with the wiphy lockedwiphy_locked_debugfs_write(9)β debugfs write, also lockedcfg80211_s1g_get_start_freq_khz(9)β S1G start frequency in kHzcfg80211_s1g_get_end_freq_khz(9)β S1G end frequency in kHzcfg80211_s1g_get_primary_sibling(9)β get the S1G primary siblingcfg80211_incumbent_signal_notify(9)β incumbent signal notification
And that's the whole friend group, bestie β every single one of them π Go read the ones you need, and honestly? Respect for making it to the end of this page, that's main character energy fr fr πβ¨
Source lives at./include/net, dated October 2026, and the page you're on isstruct ieee80211_he_obss_pd(9). Screenshot it, cite it, love it ππ¦
Ok bye, go touch some grass and then come back to the kernel ππ
π¦ 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