cfg80211_rad...handef_valid(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– cfg80211_radio_chandef_valid(9) β€” Kernel API Manual πŸ’–

okay so bestie, welcome to the cfg80211_radio_chandef_valid(9) page β€” this is part 1 of 3, so buckle up, we're not even done yet ✨


🌸 NAME 🌸

cfg80211_radio_chandef_valid β€” the lil function that does a vibe check on whether your radio actually supports the chandef you're throwing at it πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

bool cfg80211_radio_chandef_valid (const struct wiphy_radio *radio ,
       const struct cfg80211_chan_def *chandef );

so yeah, it hands you back a bool, and it wants two things: a radio and a chandef. that's it. that's the whole call. no cap 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • radio β€” a wiphy radio, aka the radio we're checking against πŸ‘‘
  • chandef β€” the chandef for the current channel, aka the thing we're asking about πŸ¦‹

⭐ RETURN ⭐

returns whether or not the given chandef is valid for the given radio β€” like, a yes/no situation. true if it's giving valid, false if it's not πŸ€·β™€οΈ periodt.


✨ that's part 1, more incoming, don't go anywhere ✨

✨ SEE ALSO ✨

okay bestie, real talk: this is the "everyone in the group chat gets a shoutout" section πŸ’– and it is massive. It's a straight-up comma-separated parade of (9) references and we are keeping every single one, no skips, no "etc.", periodt. Breathe. We go in the original order. 🫢

First, the file this whole family lives in, plus the two intro besties:

  • Kernel file ./include/net/cfg80211.h
  • Introduction(9), Device registration(9)

🌸 the channel / rate / bss-type crew

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


πŸŽ€ Actions and configuration (the big vibe section)

Starting with the intro entry and the param structs:

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

Now literally the entire chandef extended family β€” she's iconic, she's everywhere, and yes, cfg80211_chandef_valid(9) is literally in this list, main character energy ✨:

Survey + crypto + all the beacon/ap structs πŸ’…:

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

Stations, links, rates, SAR β€” the whole roster, ngl this group is long:

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

Monitor / mesh / OCB / the bss-parameter squad 🌈:

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

Connecting, associating, deauthing, wowlan-ing, and honestly just so much:

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

πŸ’œ Neighbor Awareness Networking (NAN) β€” she has her own little clique

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

Then PMK / external auth / FTM / PMSR / OWE / mgmt frame regs:

  • 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 everything (the ops struct and all her flags)

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

The wiphy lifecycle squad πŸŽ€ (register her, lock her, unlock her, free her, respectfully):

The work-queue delegation, delayed and hrtimer flavoured:

And the wireless-dev girlies:


⭐ Utility functions

πŸ”₯ Data path helpers

🌈 Regulatory enforcement infrastructure (and the internal db, iykyk)

πŸ’– the scan/BSS notify marathon β€” still with me? 🫢

πŸ“ RFkill integration

πŸ’… Vendor commands

πŸŽ€ Test mode

🌸 connect / roam / mgmt / cqm / cac β€” the grand finale of this batch

and bestie, the list literally does not end there β€” there's more coming in the next part πŸ˜­πŸ’€ don't leave yet 🫢

okay so the rest of the SEE ALSO list β€” back to back, no skips, no "etc." shortcuts, because we do not do that here πŸ’…


that's the whole squad, bestie β€” every single one of them, still spelled exactly right, still got their (9) badge on πŸŽ€

also like… that's genuinely the end of the page, no secret bonus section hiding after this, i promise πŸ™ˆ

and for the little sign-off moment: this one lives over in ./include/net and it's stamped October 2026 β€” so like, future-core of the kernel docs πŸ’œ go read it, it ate, periodt ✨🫢

πŸ“¦ where this page comes from