cfg80211_chandef_npca_valid(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ cfg80211_chandef_npca_valid(9) ✨

okay bestie, welcome to the glow-up of cfg80211_chandef_npca_valid(9) β€” straight out of the Kernel API Manual, and yes it's as niche as it sounds πŸ’… but we're gonna make it make sense.


🌸 NAME 🌸

cfg80211_chandef_npca_valid β€” literally just checks that your NPCA info is valid, no cap πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

bool cfg80211_chandef_npca_valid (struct wiphy *wiphy , const struct
       cfg80211_chan_def *chandef , const struct ieee80211_uhr_npca_info *npca
       );

so it returns a bool, takes three things, and honestly? it ate. that's the whole vibe check πŸ‘‘


πŸ’– ARGUMENTS πŸ’–

  • wiphy β€” the wiphy you're checking for, bestie. it's there so we can do the channel pointer lookup ✨
  • chandef β€” the BSS channel chandef you're checking against, like your reference point 🫢
  • npca β€” the NPCA information. and here's the cute part: it can be NULL, in which case this thing always returns true 😌 no drama, no fuss.

🧚 DESCRIPTION 🧚

okay so hear me out, because this is the part where you have to pay attention πŸ™ˆ

DBE must not have been configured into the chandef yet before you go checking NPCA. read that again. i'll wait. ⭐

what that means in practice: chandef has to represent the BSS channel. that's the whole rule. don't come in here with a chandef that's already got DBE configured and expect good things, because that's not the assignment, bestie 😭


🌈 RETURN 🌈

  • true β€” the NPCA channel and puncturing bitmap are valid according to the chandef πŸ’š slay
  • false β€” they're not 🫠 and that's it, that's the answer

okay part 1 is done, don't go anywhere β€” more is coming πŸ’œ

πŸ’… SEE ALSO πŸ’…

okay bestie, this is the part where the man page pulls out its entire contacts list and it is long β€” like, "my phone storage is full" long πŸ’€. no cap, this is basically the cfg80211 extended universe, so buckle up and let's get into it πŸŽ€

πŸ“ the origin story

  • Kernel file ./include/net/cfg80211.h β€” literally the home base, the header file where all of this lives ✨
  • Introduction(9) β€” start here if you're new, it's giving orientation week 🫢
  • Device registration(9) β€” how devices get on the guest list πŸ‘‘

πŸ“‘ channels, rates & the phy 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)
  • 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)
  • 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 sband iftype helpers (yes there are this many)

βš™οΈ actions and configuration era

  • Actions and configuration(9) β€” the whole chapter, main character energy πŸ‘‘
  • struct vif_params(9)
  • struct key_params(9)
  • struct cfg80211_chan_def(9) β€” this is the one, the chandef bestie of the page you're literally reading πŸ’…
  • struct cfg80211_tid_cfg(9)
  • struct cfg80211_tid_config(9)
  • struct cfg80211_fils_aad(9)
  • struct cfg80211_set_hw_timestamp(9)

πŸ“Ά chandef functions (our people fr fr)

πŸ“Š survey, crypto, beacon & AP stuff

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

πŸ§‘β€πŸ€β€πŸ§‘ iface combos & station lore

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

πŸ“‘ SAR, monitor, mesh, OCB

  • 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 (the whole arc)

  • Scanning and BSS list handling(9) β€” yes queen, the chapter 🌈
  • 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)

πŸ” auth, assoc, connect & roaming

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

  • Neighbor Awareness Networking (NAN)(9) β€” the whole NAN chapter, iconic ✨
  • 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, external auth, FTM & PMSR

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

πŸ‘‘ wiphy & driver ops (big chapter energy)

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

🧚 wiphy lifecycle & locking (the whole glow-up routine)

πŸŽ€ wireless_dev girlies

⭐ utility functions (underrated but essential)

πŸ’œ data path helpers (packets go brrr)

🌸 regulatory enforcement infrastructure

🧚 internal regulatory db functions

πŸ”” scan done & BSS notify squad

😭 mlme & assoc failure notifications

πŸ“Ά RFkill integration

πŸ›οΈ vendor commands

πŸ§ͺ test mode

πŸ”₯ connect / roam / disconnect notifications

🎬 remain-on-channel & mgmt tx timers

🫢 station info & TX/RX status girlies

🚨 CQM & radar / CAC notifications

and that's the list bestie, no skips, no cuts πŸ’€βœ¨

okay so the SEE ALSO list is genuinely enormous β€” like, this page's whole friend group showed up πŸ’… β€” so here's everyone, no gatekeeping, every single one:


and that's the whole thing, bestie!! πŸŽ€βœ¨ you made it to the end, which honestly? iconic behavior πŸ‘‘

quick little receipts so you know where this came from: it lives under ./include/net, and the page is dated October 2026 🌸

page name for your notes: cfg80211_chandef_npca_valid(9) β€” go forth and validate those chandefs fr fr πŸ¦‹πŸ’–

πŸ“¦ where this page comes from