cfg80211_ready_on_channel(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– cfg80211_ready_on_channel(9) πŸ’–

okay so this is from the Kernel API Manual bestie, and it's literally the cfg80211_ready_on_channel page β€” the function that's all about telling everyone "hey, the remain_on_channel thing just started" ✨


🌸 NAME 🌸

cfg80211_ready_on_channel β€” the notification that remain_on_channel has started, no cap 🫢


πŸŽ€ SYNOPSIS πŸŽ€

void cfg80211_ready_on_channel (struct wireless_dev *wdev , u64 cookie ,
struct ieee80211_channel *chan , unsigned int duration , gfp_t gfp );

look at her. she takes five whole arguments. main character energy fr fr πŸ’…


✨ ARGUMENTS ✨

  • wdev β€” the wireless device πŸ’œ like, the actual device doing the thing, that's her
  • cookie β€” the request cookie πŸͺ ngl this is the little identifier that ties this notification back to the remain_on_channel request it belongs to, iykyk
  • chan β€” The current channel (from the remain_on_channel request) πŸ”₯ so it's the channel you're sitting on right now, straight out of that remain_on_channel request
  • duration β€” Duration in milliseconds that the driver intends to remain on the channel ⭐ milliseconds, bestie, milliseconds β€” that's how long the driver is planning on staying parked on this channel
  • gfp β€” allocation flags 🌈 the flags that get used for allocation, periodt

okay that's part 1, more coming and I am not done talking about this function πŸ’–

πŸ‘€ SEE ALSO πŸ‘€

okay bestie, this is the part where the page flexes its whole friend group πŸ’… like genuinely, if you ever wondered how much stuff is cosplaying as "related" β€” it's a lot. Every single one of these is a real manual page, no cap, so here's the whole roster fr fr ✨

  • The source-of-truth file and the big-picture intros 🫢
    • Kernel file ./include/net/cfg80211.h
    • Introduction(9)
    • Device registration(9)
  • Channels, rates, and the fundamental BSS enums 🌸 (these are the little building blocks everything else sits on)
    • enum ieee80211_channel_flags
    • struct ieee80211_channel
    • enum ieee80211_rate_flags
    • enum ieee80211_bss_type
    • enum ieee80211_privacy
    • struct ieee80211_rate
    • struct ieee80211_he_obss_pd
    • struct cfg80211_he_bss_color
  • Capability central ✨ HT / VHT / HE / EHT / UHR and the whole sband-adjacent situation β€” this is giving "I contain multitudes", and honestly? iconic πŸ‘‘
    • struct ieee80211_sta_ht_cap
    • struct ieee80211_sta_vht_cap
    • struct ieee80211_sta_he_cap
    • struct ieee80211_eht_mcs_nss_supp
    • struct ieee80211_sta_eht_cap
    • struct ieee80211_sta_uhr_cap
    • struct ieee80211_sband_iftype_data
    • enum ieee80211_edmg_bw_config
    • struct ieee80211_edmg
    • struct ieee80211_sta_s1g_cap
    • struct ieee80211_supported_band
    • _ieee80211_set_sband_iftype_data
    • ieee80211_set_sband_iftype_data
    • for_each_sband_iftype_data
    • ieee80211_get_sband_iftype_data
    • ieee80211_get_he_iftype_cap
    • ieee80211_get_he_6ghz_capa
    • ieee80211_get_eht_iftype_cap
    • ieee80211_get_uhr_iftype_cap
    • wiphy_read_of_freq_limits
  • Actions and configuration πŸŽ€ β€” the "actually do the thing" section, and yes it brought every last struct with it
    • Actions and configuration(9)
    • struct vif_params
    • struct key_params
    • struct cfg80211_chan_def
    • struct cfg80211_tid_cfg
    • struct cfg80211_tid_config
    • struct cfg80211_fils_aad
    • struct cfg80211_set_hw_timestamp
    • cfg80211_get_chandef_type
    • cfg80211_chandef_create
    • cfg80211_chandef_identical
    • cfg80211_chandef_is_edmg
    • cfg80211_chandef_is_s1g
    • cfg80211_chandef_compatible
    • nl80211_chan_width_to_mhz
    • cfg80211_chandef_get_width
    • cfg80211_chandef_valid
    • cfg80211_chandef_usable
    • cfg80211_chandef_dfs_required
    • cfg80211_chandef_dfs_usable
    • cfg80211_chandef_dfs_cac_time
    • cfg80211_chandef_primary
    • cfg80211_chandef_npca_valid
    • cfg80211_chandef_add_npca
    • cfg80211_chandef_add_dbe
    • nl80211_send_chandef
    • ieee80211_chandef_max_power
    • cfg80211_chandef_s1g_pri_width
    • cfg80211_any_usable_channels
    • enum survey_info_flags
    • struct survey_info
    • struct cfg80211_crypto_settings
    • struct cfg80211_mbssid_config
    • struct cfg80211_mbssid_elems
    • struct cfg80211_rnr_elems
    • struct cfg80211_beacon_data
    • struct cfg80211_acl_data
    • struct cfg80211_fils_discovery
    • struct cfg80211_unsol_bcast_probe_resp
    • struct cfg80211_s1g_short_beacon
    • struct cfg80211_ap_settings
    • struct cfg80211_ap_update
    • struct cfg80211_csa_settings
    • struct cfg80211_color_change_settings
    • struct iface_combination_params
    • enum station_parameters_apply_mask
    • struct sta_txpwr
    • struct link_station_parameters
    • struct link_station_del_parameters
    • struct cfg80211_ttlm_params
    • struct station_parameters
    • struct station_del_parameters
    • enum cfg80211_station_type
    • cfg80211_check_station_change
    • enum rate_info_flags
    • enum rate_info_bw
    • struct rate_info
    • enum bss_param_flags
    • struct sta_bss_parameters
    • struct cfg80211_txq_stats
    • struct cfg80211_tid_stats
    • struct link_station_info
    • struct station_info
    • struct cfg80211_sar_sub_specs
    • struct cfg80211_sar_specs
    • struct cfg80211_sar_freq_ranges
    • struct cfg80211_sar_capa
    • cfg80211_get_station
    • enum monitor_flags
    • enum mpath_info_flags
    • struct mpath_info
    • enum wiphy_bss_param_flags
    • struct bss_parameters
    • struct mesh_config
    • struct mesh_setup
    • struct ocb_setup
    • struct ieee80211_txq_params
  • Scanning and BSS list handling πŸ” β€” the "who's out there" section, lowkey the most relatable one
    • Scanning and BSS list handling(9)
    • struct cfg80211_ssid
    • struct cfg80211_scan_info
    • struct cfg80211_scan_6ghz_params
    • struct cfg80211_scan_request
    • struct cfg80211_match_set
    • struct cfg80211_sched_scan_plan
    • struct cfg80211_bss_select_adjust
    • struct cfg80211_sched_scan_request
    • enum cfg80211_signal_type
    • struct cfg80211_inform_bss
    • struct cfg80211_bss_ies
    • struct cfg80211_bss
    • ieee80211_bss_get_elem
    • ieee80211_bss_get_ie
    • struct cfg80211_auth_request
    • struct cfg80211_assoc_link
    • struct cfg80211_ml_reconf_req
    • enum cfg80211_assoc_req_flags
    • struct cfg80211_assoc_request
    • struct cfg80211_deauth_request
    • struct cfg80211_disassoc_request
    • struct cfg80211_ibss_params
    • struct cfg80211_bss_selection
    • struct cfg80211_connect_params
    • enum cfg80211_connect_params_changed
    • enum wiphy_params_flags
    • struct cfg80211_pmksa
    • struct cfg80211_pkt_pattern
    • struct cfg80211_wowlan_tcp
    • struct cfg80211_wowlan
    • struct cfg80211_coalesce_rules
    • struct cfg80211_coalesce
    • struct cfg80211_wowlan_nd_match
    • struct cfg80211_wowlan_nd_info
    • struct cfg80211_wowlan_wakeup
    • struct cfg80211_gtk_rekey_data
    • struct cfg80211_update_ft_ies_params
    • struct cfg80211_mgmt_tx_params
    • struct cfg80211_dscp_exception
    • struct cfg80211_dscp_range
    • struct cfg80211_qos_map
  • Neighbor Awareness Networking (NAN) πŸ¦‹ β€” NAN has its own friend group and honestly they're all so cute
    • Neighbor Awareness Networking (NAN)(9)
    • struct cfg80211_nan_band_config
    • struct cfg80211_nan_conf
    • struct cfg80211_nan_channel
    • struct cfg80211_nan_local_sched
    • struct cfg80211_nan_peer_map
    • struct cfg80211_nan_peer_sched
    • enum cfg80211_nan_conf_changes
    • struct cfg80211_nan_func_filter
    • struct cfg80211_nan_func
    • struct cfg80211_pmk_conf
    • struct cfg80211_external_auth_params
    • struct cfg80211_ftm_responder_stats
    • struct cfg80211_pmsr_ftm_result
    • struct cfg80211_pmsr_result
    • struct cfg80211_pmsr_ftm_request_peer
    • struct cfg80211_pmsr_request_peer
    • struct cfg80211_pmsr_request
    • struct cfg80211_update_owe_info
    • struct mgmt_frame_regs
  • The wiphy / wireless_dev era πŸ’œ β€” main character energy, obviously
    • struct cfg80211_ops
    • enum wiphy_flags
    • struct ieee80211_iface_limit
    • struct ieee80211_iface_combination
    • enum wiphy_wowlan_support_flags
    • struct wiphy_wowlan_support
    • struct wiphy_coalesce_support
    • enum wiphy_vendor_command_flags
    • enum wiphy_opmode_flag
    • struct sta_opmode_info
    • struct wiphy_vendor_command
    • struct wiphy_iftype_ext_capab
    • cfg80211_get_iftype_ext_capa
    • struct cfg80211_pmsr_capabilities
    • struct wiphy_iftype_akm_suites
    • struct wiphy_radio_cfg
    • struct wiphy_radio_freq_range
    • struct wiphy_radio
    • enum wiphy_nan_flags
    • struct wiphy_nan_capa
    • struct wiphy
    • wiphy_priv
    • priv_to_wiphy
    • set_wiphy_dev
    • wiphy_dev
    • wiphy_name
    • wiphy_new_nm
    • wiphy_new
    • wiphy_register
    • rcu_dereference_wiphy
    • wiphy_dereference
    • get_wiphy_regdom
    • wiphy_unregister
    • wiphy_free
    • wiphy_lock
    • wiphy_unlock
    • wiphy_work_queue
    • wiphy_work_cancel
    • wiphy_work_flush
    • wiphy_delayed_work_queue
    • wiphy_delayed_work_cancel
    • wiphy_delayed_work_flush
    • wiphy_delayed_work_pending
    • wiphy_hrtimer_work_queue
    • wiphy_hrtimer_work_cancel
    • wiphy_hrtimer_work_flush
    • wiphy_hrtimer_work_pending
    • enum ieee80211_ap_reg_power
    • struct wireless_dev
    • wdev_priv
    • wdev_chandef
  • Utility functions 🧰 β€” the little helpers that carry the whole operation ngl
    • Utility functions(9)
    • ieee80211_channel_equal
    • ieee80211_channel_to_khz
    • ieee80211_channel_to_freq_khz
    • ieee80211_channel_to_frequency
    • ieee80211_freq_khz_to_channel
    • ieee80211_frequency_to_channel
    • ieee80211_get_channel_khz
    • ieee80211_get_channel
    • cfg80211_channel_is_psc
    • ieee80211_radio_freq_range_valid
    • cfg80211_radio_chandef_valid
    • cfg80211_wdev_channel_allowed
    • ieee80211_get_response_rate
    • ieee80211_mandatory_rates
    • struct ieee80211_radiotap_iterator
    • ieee80211_get_hdrlen_from_skb
    • ieee80211_hdrlen
    • ieee80211_get_mesh_hdrlen
  • Data path helpers πŸ“ β€” packets go in, packets go out, you literally cannot explain that
    • Data path helpers(9)
    • ieee80211_data_to_8023_exthdr
    • ieee80211_data_to_8023
    • ieee80211_is_valid_amsdu
    • ieee80211_amsdu_to_8023s
    • ieee80211_get_8023_tunnel_proto
    • ieee80211_strip_8023_mesh_hdr
    • cfg80211_classify8021d
    • cfg80211_find_elem_match
    • cfg80211_find_ie_match
    • cfg80211_find_elem
    • cfg80211_find_ie
    • cfg80211_find_ext_elem
    • cfg80211_find_ext_ie
    • cfg80211_find_vendor_elem
    • cfg80211_find_vendor_ie
    • enum cfg80211_rnr_iter_ret
    • cfg80211_iter_rnr
    • cfg80211_defragment_element
    • cfg80211_send_layer2_update
  • Regulatory enforcement infrastructure 🌈 β€” the vibes are "rules are rules", and yes it's a whole squad
    • Regulatory enforcement infrastructure(9)
    • regulatory_hint
    • regulatory_set_wiphy_regd
    • regulatory_set_wiphy_regd_sync
    • wiphy_apply_custom_regulatory
    • freq_reg_info
    • reg_initiator_name
    • regulatory_pre_cac_allowed
  • Internal regulatory db functions 🌸 β€” yes, "internal", so bestie pls don't go poking around in there πŸ™ˆ
    • Internal regulatory db functions(9)
    • reg_query_regdb_wmm
    • cfg80211_scan_done
    • cfg80211_sched_scan_results
    • cfg80211_sched_scan_stopped
    • cfg80211_sched_scan_stopped_locked
    • cfg80211_inform_bss_frame_data
    • cfg80211_gen_new_bssid
    • cfg80211_is_element_inherited
    • cfg80211_merge_profile
    • enum cfg80211_bss_frame_type
    • cfg80211_get_ies_channel_number
    • cfg80211_ssid_eq
    • cfg80211_inform_bss_data
    • __cfg80211_get_bss
    • cfg80211_get_bss
    • cfg80211_ref_bss
    • cfg80211_put_bss
    • cfg80211_unlink_bss
    • cfg80211_bss_iter
    • cfg80211_rx_mlme_mgmt
    • cfg80211_auth_timeout
    • struct cfg80211_rx_assoc_resp_data
    • cfg80211_rx_assoc_resp
    • struct cfg80211_assoc_failure
    • cfg80211_assoc_failure
    • cfg80211_tx_mlme_mgmt
    • cfg80211_rx_unprot_mlme_mgmt
    • cfg80211_michael_mic_failure
    • cfg80211_ibss_joined
    • cfg80211_notify_new_peer_candidate
  • RFkill integration πŸ’€ β€” the off switch, respectfully
    • RFkill integration(9)
    • wiphy_rfkill_set_hw_state_reason
    • wiphy_rfkill_start_polling
    • wiphy_rfkill_stop_polling
  • Vendor commands πŸ”₯ β€” driver-specific era, go off
    • Vendor commands(9)
    • cfg80211_vendor_cmd_alloc_reply_skb
    • cfg80211_vendor_cmd_reply
    • cfg80211_vendor_cmd_get_sender
    • cfg80211_vendor_event_alloc
    • cfg80211_vendor_event_alloc_ucast
    • cfg80211_vendor_event
  • Test mode ⭐ β€” for the testing girlies
    • Test mode(9)
    • cfg80211_testmode_alloc_reply_skb
    • cfg80211_testmode_reply
    • cfg80211_testmode_alloc_event_skb
    • cfg80211_testmode_event
  • Connection / roaming / notification goodies πŸŽ€ β€” the "tell everyone what just happened" gang, and they are dramatic
    • struct cfg80211_fils_resp_params
    • struct cfg80211_connect_resp_params
    • cfg80211_connect_done
    • cfg80211_connect_bss
    • cfg80211_connect_result
    • cfg80211_connect_timeout
    • struct cfg80211_roam_info
    • cfg80211_roamed
    • cfg80211_port_authorized
    • cfg80211_disconnected
    • cfg80211_remain_on_channel_expired
    • cfg80211_tx_mgmt_expired
    • cfg80211_sinfo_alloc_tid_stats
    • cfg80211_link_sinfo_alloc_tid_stats
    • cfg80211_sinfo_release_content
    • cfg80211_new_sta
    • cfg80211_del_sta_sinfo
    • cfg80211_del_sta
    • cfg80211_conn_failed
    • struct cfg80211_rx_info
    • cfg80211_rx_mgmt_ext
    • cfg80211_rx_mgmt_khz
    • cfg80211_rx_mgmt
    • struct cfg80211_tx_status
    • cfg80211_mgmt_tx_status_ext
    • cfg80211_mgmt_tx_status
    • cfg80211_control_port_tx_status
    • cfg80211_rx_control_port
    • cfg80211_cqm_rssi_notify
    • cfg80211_cqm_pktloss_notify
    • cfg80211_cqm_txe_notify
    • cfg80211_cqm_beacon_loss_notify
    • __cfg80211_radar_event
    • cfg80211_sta_opmode_change_notify
    • cfg80211_cac_event
    • cfg80211_background_cac_abort
    • cfg80211_gtk_rekey_notify
    • cfg80211_pmksa_candidate_notify
    • cfg80211_rx_spurious_frame
    • cfg80211_rx_unexpected_4addr_frame
    • cfg80211_probe_status
    • cfg80211_report_obss_beacon_khz
    • cfg80211_report_obss_beacon
    • struct cfg80211_beaconing_check_config
and that's genuinely the entire list, πŸ’– not one single page left out, periodt. more coming in the next part bestie 🫢

okay so the SEE ALSO list keeps going and honestly it's giving "the entire group chat got added to the call" energy πŸ’€ β€” here's the rest of the crew, every single one of them, no cap:

then the whole operating-class-to-chandef pipeline, which is lowkey iconic:

the TDLS / bitrate / device-registration girlies ✨:

fast-transition + P2P + IE-parsing squad 🫢:

power-save wakeups, critical protocol, and channel bookkeeping (main character energy fr):

ext features, because we love a feature flag πŸŽ€:

NAN hive, a whole little friend group:

external auth, PMSR, iftype rules, and OWE updates 🌸:

BSS flush + the entire colour-change cinematic universe 🌈:

6 GHz power types, MLO link drama, and scheduling the channel checks πŸ’…:

more NAN, we're literally never leaving the NAN section:

debugfs (locked, bestie), S1G frequency math, and the incumbent signal heads-up ⭐:


and that's the whole page, bestie, you ate that πŸ‘‘ no skimming, no skipping, every last reference accounted for, periodt.

so this little beauty lives out of ./include/net, it's stamped October 2026, and the whole thing is filed under cfg80211_ready_on_channel(9) β€” go forth and slay your channel-ready notifications πŸ¦‹πŸ’–

πŸ“¦ where this page comes from