STRUCT CFG80211_HE_BSS_COLOR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cfg80211_he_bss_color β€” from the Kernel API Manual, bestie

Okay so picture this: you're deep in the kernel API manual (yes, the <italic>9</italic> one, that's the section, don't @ me) and you land on struct cfg80211_he_bss_color. And you're like, "what even is this." Bestie. It's literally the AP settings for BSS coloring. That's the whole vibe. AP config, but make it colorful. 🎨✨


✨ NAME ✨

struct cfg80211_he_bss_color β€” AP settings for BSS coloring πŸ¦‹

Like, this struct is the little squad of fields that holds the BSS coloring config for an access point. That's it, that's the name section, we ate. πŸ’…


🌸 SYNOPSIS 🌸

Here's the whole thing, character for character, no cap:

struct cfg80211_he_bss_color {
    u8 color;
    bool enabled;
    bool partial;
 };

Not me being obsessed with how tidy that is. Three members, zero drama. 🫢


πŸ‘‘ Members πŸ‘‘

Alright, time for the roll call β€” three members, and every single one of them is carrying their own little job. Let's go:

  • color β€” the current color. That's it, that's the field. It's a u8, it holds the current color, main character energy, periodt. 🌈
  • enabled β€” HE BSS color is used. So like, a bool that says whether HE BSS coloring is actually in play or just sitting there looking pretty. If it's on, it's on. πŸ’–
  • partial β€” define the AID equation. Yes bestie, this one is the ✨math✨ member. It's the flag that goes with defining the AID equation, and I need you to respect it. 🧚
ngl, partial is the one where you go "huh?" for a sec, but that's literally what the page says β€” define the AID equation. Keep it, don't invent extra lore. πŸ™ˆ

More parts coming, don't you dare close the tab β€” we're not done yet, bestie. πŸ’œ

Okay bestie, buckle up πŸ’… β€” the see-also list on this one is long. Like, actually unhinged. But we do not skip entries in this house, so every single cross-reference is right here, in the exact order the manpage gods put them. 🫢

First up, the source of truth itself:

  • Kernel file ./include/net/cfg80211.h β€” that's the header where all this magic lives ✨

Then the whole ieee80211 band-capability crew πŸŽ€

  • 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)
  • struct ieee80211_he_obss_pd (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)
  • 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) β€” yes, the underscore one, that's not a typo 😌
  • 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 chandef girlies

  • 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)
  • 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 vibes πŸ¦‹

  • enum survey_info_flags (9)
  • struct survey_info (9)
  • 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)

Station & rate-info era πŸ’€ (there's so many, I know)

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

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

🧚 NAN (Neighbor Awareness Networking) β€” she's got range πŸ’œ

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

PMK / auth / PMSΜΆRΜΆ measurement land πŸ“

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

πŸ‘‘ wiphy era β€” the main character section πŸ‘‘

  • 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 (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)
  • 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 πŸŽ€

  • 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 πŸ’–

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

  • 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 inform / get crew ✨

  • 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) β€” double underscore bestie, respect her 😀
  • cfg80211_get_bss (9)
  • cfg80211_ref_bss (9)
  • cfg80211_put_bss (9)
  • cfg80211_unlink_bss (9)
  • cfg80211_bss_iter (9)

MLME notifications go brrr πŸ”₯

  • 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 integration (9)
  • wiphy_rfkill_set_hw_state_reason (9)
  • wiphy_rfkill_start_polling (9)
  • wiphy_rfkill_stop_polling (9)
  • 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 (9)
  • cfg80211_testmode_alloc_reply_skb (9)
  • cfg80211_testmode_reply (9)
  • cfg80211_testmode_alloc_event_skb (9)
  • cfg80211_testmode_event (9)

Connect / roam / disconnect arc 😭 (emotional)

  • 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)
  • cfg80211_ready_on_channel (9)
  • cfg80211_remain_on_channel_expired (9)
  • cfg80211_tx_mgmt_expired (9)

Station info + mgmt tx/rx final stretch πŸ™ˆ

  • 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)
  • 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)
  • 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)
  • cfg80211_gtk_rekey_notify (9)
  • cfg80211_pmksa_candidate_notify (9)
  • 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) β€” last one, we made it πŸŽ‰

Okay so the list keeps going, bestie β€” this SEE ALSO section is lowkey enormous and honestly it's giving "the whole friend group showed up to the party" πŸ’… grab a snack πŸ“, we're doing this.


Halfway-ish, don't bail on me now 🫢 the NAN girlies and the colour-change girlies are about to make their entrance:


And that's the whole squad πŸŽ€ sixty-four cross-references, every single one of them, no cap. If you were looking for the bss_color lore itself, it's all up above in the Members section β€” this was just the friend group.

Bestie note: this page lives in the kernel's networking headers, so if nothing here compiles the way you expect, check you're reading the matching version, mwah πŸ’œ

Sign-off time, iykyk ✨ this little beauty came straight out of ./include/net, dated October 2026, and it's filed under struct cfg80211_he_bss_color(9) in the Kernel API Manual. Slay, go forth, and may your colour changes never collide πŸ’…πŸ”₯

πŸ“¦ where this page comes from