cfg80211_rem...nnel_expired(9)
β¨ cfg80211_remain_on_channel_expired β¨
okay so bestie, welcome to the cfg80211_rem...nnel_expired(9) page β yeah the header's doing that truncated thing where the title got cut off, it's giving "my name is too long for the terminal" energy π but it's fine, we know her, it's the Kernel API Manual and she's iconic. This is part 1 of 3 so stay with me, we're only getting started π
πΈ NAME πΈ
cfg80211_remain_on_channel_expired β literally the moment your remain_on_channel duration runs out. time's up, channel era over, periodt π
π¦ SYNOPSIS π¦
void cfg80211_remain_on_channel_expired (struct wireless_dev *wdev , u64
cookie , struct ieee80211_channel *chan , gfp_t gfp );
no cap, that's the whole signature. she takes four things and returns void β so like, she doesn't hand you anything back, she just does the thing and leaves β¨ main character energy honestly.
π ARGUMENTS π
wdevβ the wireless device. your whole wireless-device struct, the star of the show, the one who's channel timer just expired π«Άcookieβ the request cookie πͺ like yes literally that's what it's called. it's the cookie that came with the request, so everybody knows which request we're talking about. iykykchanβ The current channel, and ngl the docs are very clear here: it comes from theremain_on_channelrequest, so it's not just some random channel she picked up off the street πgfpβ allocation flags π the classicgfp_tsituation, you know her, you love her, she's in like every other kernel function
that's the setup bestie, the stage is set β and there is SO much more coming, so don't go anywhere πΈ
π SEE ALSO π
okay bestie, this is the part of the page where it name-drops literally every cousin in the wifi kernel family π. It's giving yearbook superlatives, and every single one of these is a real cross-reference you can go read. No cap, I'm keeping all of them, because you might actually need them.
Kernel file ./include/net/cfg80211.h Introduction(9),Device registration(9)β the "start here" duo π«Άenum ieee80211_channel_flags(9),struct ieee80211_channel(9),enum ieee80211_rate_flags(9),enum ieee80211_bss_type(9),enum ieee80211_privacy(9)β the channel-and-rate mood board β¨struct ieee80211_rate(9),struct ieee80211_he_obss_pd(9),struct cfg80211_he_bss_color(9)β rates, HE OBSS PD, BSS color πstruct ieee80211_sta_ht_cap(9),struct ieee80211_sta_vht_cap(9),struct ieee80211_sta_he_cap(9)β the cap trilogy, no skips πstruct ieee80211_eht_mcs_nss_supp(9),struct ieee80211_sta_eht_cap(9),struct ieee80211_sta_uhr_cap(9)β EHT and UHR era stuff πstruct ieee80211_sband_iftype_data(9),enum ieee80211_edmg_bw_config(9),struct ieee80211_edmg(9),struct ieee80211_sta_s1g_cap(9)β band data plus EDMG plus S1G π¦struct ieee80211_supported_band(9),_ieee80211_set_sband_iftype_data(9),ieee80211_set_sband_iftype_data(9),for_each_sband_iftype_data(9)β supported band helpers, periodt π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)β the getter squad, all accounted for π₯wiphy_read_of_freq_limits(9)β DT freq limits, iconic πΈActions and configuration(9)β welcome to the big config zone βοΈstruct vif_params(9),struct key_params(9),struct cfg80211_chan_def(9),struct cfg80211_tid_cfg(9),struct cfg80211_tid_config(9)β config structs, lined up πstruct cfg80211_fils_aad(9),struct cfg80211_set_hw_timestamp(9)β FILS AAD and hw timestamp π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)β chandef crew, part one π«Άnl80211_chan_width_to_mhz(9),cfg80211_chandef_get_width(9),cfg80211_chandef_valid(9),cfg80211_chandef_usable(9)β width and validity, we love to see it β¨cfg80211_chandef_dfs_required(9),cfg80211_chandef_dfs_usable(9),cfg80211_chandef_dfs_cac_time(9)β the DFS trio, stay ready πcfg80211_chandef_primary(9),cfg80211_chandef_npca_valid(9),cfg80211_chandef_add_npca(9),cfg80211_chandef_add_dbe(9)β primary, NPCA, and DBE things π¦nl80211_send_chandef(9),ieee80211_chandef_max_power(9),cfg80211_chandef_s1g_pri_width(9),cfg80211_any_usable_channels(9)β send it, max power, S1G width, usable channels πenum survey_info_flags(9),struct survey_info(9)β survey saysβ¦ πstruct cfg80211_crypto_settings(9),struct cfg80211_mbssid_config(9),struct cfg80211_mbssid_elems(9),struct cfg80211_rnr_elems(9)β crypto plus MBSSID plus RNR, ate π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)β beacon, ACL, FILS discovery, unsolicited broadcast probe response, S1G short beacon πΈstruct cfg80211_ap_settings(9),struct cfg80211_ap_update(9),struct cfg80211_csa_settings(9),struct cfg80211_color_change_settings(9)β AP settings, AP update, CSA, color change π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)β iface combos and station params π¦struct cfg80211_ttlm_params(9),struct station_parameters(9),struct station_del_parameters(9),enum cfg80211_station_type(9),cfg80211_check_station_change(9)β TTLM, station types, and the station change check β¨enum rate_info_flags(9),enum rate_info_bw(9),struct rate_info(9),enum bss_param_flags(9),struct sta_bss_parameters(9)β rate info plus BSS params, no notes πstruct cfg80211_txq_stats(9),struct cfg80211_tid_stats(9),struct link_station_info(9),struct station_info(9)β stats and station info, we stan π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)β SAR everything plus get station πenum monitor_flags(9),enum mpath_info_flags(9),struct mpath_info(9)β monitor flags and mesh path info π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)β BSS params, mesh config, mesh setup, OCB setup, txq params π«ΆScanning and BSS list handling(9)β the scan zone, enter with caution πstruct cfg80211_ssid(9),struct cfg80211_scan_info(9),struct cfg80211_scan_6ghz_params(9),struct cfg80211_scan_request(9)β scan structs, all here πstruct cfg80211_match_set(9),struct cfg80211_sched_scan_plan(9),struct cfg80211_bss_select_adjust(9),struct cfg80211_sched_scan_request(9)β sched scan plans and BSS select adjust β¨enum cfg80211_signal_type(9),struct cfg80211_inform_bss(9),struct cfg80211_bss_ies(9),struct cfg80211_bss(9)β signal type, inform BSS, BSS IEs, BSS π¦ieee80211_bss_get_elem(9),ieee80211_bss_get_ie(9)β get that element, get that IE π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)β auth and assoc, ML reconf, assoc req flags πstruct cfg80211_deauth_request(9),struct cfg80211_disassoc_request(9),struct cfg80211_ibss_params(9),struct cfg80211_bss_selection(9)β deauth, disassoc, IBSS params, BSS selection πΈstruct cfg80211_connect_params(9),enum cfg80211_connect_params_changed(9),enum wiphy_params_flags(9),struct cfg80211_pmksa(9)β connect params, changed flags, wiphy params, PMKSA πstruct cfg80211_pkt_pattern(9),struct cfg80211_wowlan_tcp(9),struct cfg80211_wowlan(9)β packet patterns, WoWLAN TCP, WoWLAN π€struct cfg80211_coalesce_rules(9),struct cfg80211_coalesce(9)β coalesce rules and coalesce β¨struct cfg80211_wowlan_nd_match(9),struct cfg80211_wowlan_nd_info(9),struct cfg80211_wowlan_wakeup(9)β WoWLAN ND match, ND info, wakeup π«Άstruct cfg80211_gtk_rekey_data(9),struct cfg80211_update_ft_ies_params(9),struct cfg80211_mgmt_tx_params(9)β GTK rekey, FT IEs, mgmt TX params π₯struct cfg80211_dscp_exception(9),struct cfg80211_dscp_range(9),struct cfg80211_qos_map(9)β DSCP exception, DSCP range, QoS map πNeighbor Awareness Networking (NAN)(9)β NAN zone, we're aware πstruct cfg80211_nan_band_config(9),struct cfg80211_nan_conf(9),struct cfg80211_nan_channel(9)β NAN band config, NAN conf, NAN channel πstruct cfg80211_nan_local_sched(9),struct cfg80211_nan_peer_map(9),struct cfg80211_nan_peer_sched(9)β NAN local sched, peer map, peer sched β¨enum cfg80211_nan_conf_changes(9),struct cfg80211_nan_func_filter(9),struct cfg80211_nan_func(9)β NAN conf changes, func filter, func π¦struct cfg80211_pmk_conf(9),struct cfg80211_external_auth_params(9),struct cfg80211_ftm_responder_stats(9)β PMK conf, external auth params, FTM responder stats πΈ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)β the whole PMSR family, accounted for πstruct cfg80211_update_owe_info(9),struct mgmt_frame_regs(9),struct cfg80211_ops(9)β OWE info, mgmt frame regs, cfg80211 ops πenum wiphy_flags(9),struct ieee80211_iface_limit(9),struct ieee80211_iface_combination(9)β wiphy flags and iface limits/combos πenum wiphy_wowlan_support_flags(9),struct wiphy_wowlan_support(9),struct wiphy_coalesce_support(9)β WoWLAN support flags, WoWLAN support, coalesce support π€enum wiphy_vendor_command_flags(9),enum wiphy_opmode_flag(9),struct sta_opmode_info(9),struct wiphy_vendor_command(9)β vendor command flags, opmode flag, sta opmode info, wiphy vendor command ποΈstruct wiphy_iftype_ext_capab(9),cfg80211_get_iftype_ext_capa(9),struct cfg80211_pmsr_capabilities(9),struct wiphy_iftype_akm_suites(9)β iftype ext capab, getter, PMSR capabilities, AKM suites β¨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)β radio cfg, freq range, radio, NAN flags, NAN capa π»struct wiphy(9),wiphy_priv(9),priv_to_wiphy(9),set_wiphy_dev(9),wiphy_dev(9),wiphy_name(9)β the wiphy basics, love them π«Άwiphy_new_nm(9),wiphy_new(9),wiphy_register(9)β new, new_nm, register πrcu_dereference_wiphy(9),wiphy_dereference(9),get_wiphy_regdom(9)β RCU dereference and regdom getter πwiphy_unregister(9),wiphy_free(9),wiphy_lock(9),wiphy_unlock(9)β unregister, free, lock, unlock πwiphy_work_queue(9),wiphy_work_cancel(9),wiphy_work_flush(9)β work queue, cancel, flush βοΈwiphy_delayed_work_queue(9),wiphy_delayed_work_cancel(9),wiphy_delayed_work_flush(9),wiphy_delayed_work_pending(9)β delayed work everything β°wiphy_hrtimer_work_queue(9),wiphy_hrtimer_work_cancel(9),wiphy_hrtimer_work_flush(9),wiphy_hrtimer_work_pending(9)β hrtimer work everything β±οΈenum ieee80211_ap_reg_power(9),struct wireless_dev(9),wdev_priv(9),wdev_chandef(9)β AP reg power, wireless_dev, wdev_priv, wdev_chandef πΆUtility functions(9)β utility zone, come get your helpers π§°ieee80211_channel_equal(9),ieee80211_channel_to_khz(9),ieee80211_channel_to_freq_khz(9),ieee80211_channel_to_frequency(9)β channel equal and channel conversions πieee80211_freq_khz_to_channel(9),ieee80211_frequency_to_channel(9),ieee80211_get_channel_khz(9),ieee80211_get_channel(9)β freq to channel, get channel, both flavors β¨cfg80211_channel_is_psc(9),ieee80211_radio_freq_range_valid(9),cfg80211_radio_chandef_valid(9),cfg80211_wdev_channel_allowed(9)β PSC, radio freq range valid, radio chandef valid, wdev channel allowed βieee80211_get_response_rate(9),ieee80211_mandatory_rates(9)β response rate and mandatory rates πstruct ieee80211_radiotap_iterator(9),ieee80211_get_hdrlen_from_skb(9),ieee80211_hdrlen(9),ieee80211_get_mesh_hdrlen(9)β radiotap iterator plus hdrlen helpers π¦Data path helpers(9)β data path zone, big main character energy π£οΈieee80211_data_to_8023_exthdr(9),ieee80211_data_to_8023(9),ieee80211_is_valid_amsdu(9),ieee80211_amsdu_to_8023s(9)β data conversion and AMSDU checks π«ieee80211_get_8023_tunnel_proto(9),ieee80211_strip_8023_mesh_hdr(9),cfg80211_classify8021d(9)β tunnel proto, strip mesh hdr, classify 8021d πcfg80211_find_elem_match(9),cfg80211_find_ie_match(9),cfg80211_find_elem(9),cfg80211_find_ie(9)β find elem/IE, match flavor first πcfg80211_find_ext_elem(9),cfg80211_find_ext_ie(9),cfg80211_find_vendor_elem(9),cfg80211_find_vendor_ie(9)β ext and vendor finders, all four π¦enum cfg80211_rnr_iter_ret(9),cfg80211_iter_rnr(9),cfg80211_defragment_element(9),cfg80211_send_layer2_update(9)β RNR iter return, iter RNR, defragment element, layer2 update π¨Regulatory enforcement infrastructure(9)β regulatory zone, respect it πregulatory_hint(9),regulatory_set_wiphy_regd(9),regulatory_set_wiphy_regd_sync(9)β regulatory hint and the wiphy regd setters πΊοΈwiphy_apply_custom_regulatory(9),freq_reg_info(9),reg_initiator_name(9),regulatory_pre_cac_allowed(9)β custom regulatory, freq reg info, initiator name, pre-CAC allowed βοΈInternal regulatory db functions(9),reg_query_regdb_wmm(9)β internal regdb plus the WMM query ποΈcfg80211_scan_done(9),cfg80211_sched_scan_results(9),cfg80211_sched_scan_stopped(9),cfg80211_sched_scan_stopped_locked(9)β scan done and sched scan results/stopped/locked π‘cfg80211_inform_bss_frame_data(9),cfg80211_gen_new_bssid(9),cfg80211_is_element_inherited(9),cfg80211_merge_profile(9)β inform BSS frame data, gen new BSSID, element inherited, merge profile π§¬enum cfg80211_bss_frame_type(9),cfg80211_get_ies_channel_number(9),cfg80211_ssid_eq(9),cfg80211_inform_bss_data(9)β BSS frame type, IEs channel number, SSID eq, inform BSS data πΆ__cfg80211_get_bss(9),cfg80211_get_bss(9),cfg80211_ref_bss(9),cfg80211_put_bss(9)β get BSS, ref BSS, put BSS πcfg80211_unlink_bss(9),cfg80211_bss_iter(9),cfg80211_rx_mlme_mgmt(9),cfg80211_auth_timeout(9)β unlink BSS, BSS iter, RX MLME mgmt, auth timeout β³struct cfg80211_rx_assoc_resp_data(9),cfg80211_rx_assoc_resp(9),struct cfg80211_assoc_failure(9),cfg80211_assoc_failure(9)β assoc resp data, RX assoc resp, assoc failure struct and function π€cfg80211_tx_mlme_mgmt(9),cfg80211_rx_unprot_mlme_mgmt(9),cfg80211_michael_mic_failure(9)β TX MLME mgmt, RX unprotected MLME mgmt, Michael MIC failure πcfg80211_ibss_joined(9),cfg80211_notify_new_peer_candidate(9)β IBSS joined and new peer candidate notify π«RFkill integration(9),wiphy_rfkill_set_hw_state_reason(9),wiphy_rfkill_start_polling(9),wiphy_rfkill_stop_polling(9)β RFkill zone, hardware state reason, start/stop polling π΄Vendor commands(9),cfg80211_vendor_cmd_alloc_reply_skb(9),cfg80211_vendor_cmd_reply(9),cfg80211_vendor_cmd_get_sender(9)β vendor command alloc reply skb, reply, get sender ποΈcfg80211_vendor_event_alloc(9),cfg80211_vendor_event_alloc_ucast(9),cfg80211_vendor_event(9)β vendor event alloc, ucast alloc, vendor event πͺTest mode(9),cfg80211_testmode_alloc_reply_skb(9),cfg80211_testmode_reply(9),cfg80211_testmode_alloc_event_skb(9),cfg80211_testmode_event(9)β test mode everything, no cap π§ͺstruct cfg80211_fils_resp_params(9),struct cfg80211_connect_resp_params(9),cfg80211_connect_done(9),cfg80211_connect_bss(9)β FILS resp params, connect resp params, connect done, connect BSS πcfg80211_connect_result(9),cfg80211_connect_timeout(9),struct cfg80211_roam_info(9),cfg80211_roamed(9)β connect result, timeout, roam info, roamed πΆββοΈcfg80211_port_authorized(9),cfg80211_disconnected(9),cfg80211_ready_on_channel(9),cfg80211_tx_mgmt_expired(9)β port authorized, disconnected, ready on channel, TX mgmt expired πcfg80211_sinfo_alloc_tid_stats(9),cfg80211_link_sinfo_alloc_tid_stats(9),cfg80211_sinfo_release_content(9)β station info TID stats alloc, link version, release content π§Ήcfg80211_new_sta(9),cfg80211_del_sta_sinfo(9),cfg80211_del_sta(9),cfg80211_conn_failed(9)β new STA, del STA sinfo, del STA, conn failed πͺstruct cfg80211_rx_info(9),cfg80211_rx_mgmt_ext(9),cfg80211_rx_mgmt_khz(9),cfg80211_rx_mgmt(9)β RX info, RX mgmt ext, RX mgmt kHz, RX mgmt π₯struct cfg80211_tx_status(9),cfg80211_mgmt_tx_status_ext(9),cfg80211_mgmt_tx_status(9),cfg80211_control_port_tx_status(9)β TX status, mgmt TX status ext, mgmt TX status, control port TX status π€cfg80211_rx_control_port(9),cfg80211_cqm_rssi_notify(9),cfg80211_cqm_pktloss_notify(9),cfg80211_cqm_txe_notify(9)β RX control port, CQM RSSI notify, packet loss notify, TXE notify πΆcfg80211_cqm_beacon_loss_notify(9),__cfg80211_radar_event(9),cfg80211_sta_opmode_change_notify(9),cfg80211_cac_event(9)β beacon loss notify, radar event, STA opmode change notify, CAC event π‘cfg80211_background_cac_abort(9),cfg80211_gtk_rekey_notify(9),cfg80211_pmksa_candidate_notify(9)β background CAC abort, GTK rekey notify, PMKSA candidate notify πcfg80211_rx_spurious_frame(9),cfg80211_rx_unexpected_4addr_frame(9),cfg80211_probe_status(9)β spurious frame, unexpected 4addr frame, probe status π»cfg80211_report_obss_beacon_khz(9),cfg80211_report_obss_beacon(9),struct cfg80211_beaconing_check_config(9)β report OBSS beacon kHz, report OBSS beacon, beaconing check config π¨
β¦and that's where this chunk stops, bestie β the list literally keeps going in the next part, so hold that thought π
okay so. the cross-reference list on this page is absolutely unhinged β it's giving "the author hit tab-completion and never stopped". but bestie, every single one is here, in order, no skips. that's the whole assignment. π
cfg80211_reg_check_beaconing(9)cfg80211_reg_can_beacon(9)cfg80211_reg_can_beacon_relax(9)cfg80211_ch_switch_notify(9)cfg80211_ch_switch_started_notify(9)ieee80211_operating_class_to_band(9)ieee80211_operating_class_to_chandef(9)ieee80211_chandef_to_operating_class(9)ieee80211_chandef_to_khz(9)cfg80211_tdls_oper_request(9)cfg80211_calculate_bitrate(9)cfg80211_unregister_wdev(9)cfg80211_register_netdevice(9)cfg80211_unregister_netdevice(9)struct cfg80211_ft_event_params(9)cfg80211_ft_event(9)cfg80211_get_p2p_attr(9)ieee80211_ie_split_ric(9)ieee80211_ie_split(9)ieee80211_fragment_element(9)cfg80211_report_wowlan_wakeup(9)cfg80211_crit_proto_stopped(9)ieee80211_get_num_supported_channels(9)cfg80211_check_combinations(9)cfg80211_iter_combinations(9)cfg80211_get_radio_idx_by_chan(9)cfg80211_stop_link(9)cfg80211_stop_iface(9)cfg80211_shutdown_all_interfaces(9)wiphy_ext_feature_set(9)wiphy_ext_feature_isset(9)cfg80211_free_nan_func(9)struct cfg80211_nan_match_params(9)cfg80211_nan_match(9)cfg80211_nan_func_terminated(9)cfg80211_nan_sched_update_done(9)cfg80211_external_auth_request(9)cfg80211_pmsr_report(9)cfg80211_pmsr_complete(9)cfg80211_iftype_allowed(9)cfg80211_assoc_comeback(9)cfg80211_update_owe_info_event(9)cfg80211_bss_flush(9)cfg80211_bss_color_notify(9)cfg80211_obss_color_collision_notify(9)cfg80211_color_change_started_notify(9)cfg80211_color_change_aborted_notify(9)cfg80211_color_change_notify(9)cfg80211_6ghz_power_type(9)cfg80211_links_removed(9)struct cfg80211_mlo_reconf_done_data(9)cfg80211_mlo_reconf_add_done(9)cfg80211_schedule_channels_check(9)cfg80211_epcs_changed(9)cfg80211_next_nan_dw_notif(9)cfg80211_nan_cluster_joined(9)cfg80211_nan_ulw_update(9)cfg80211_nan_channel_evac(9)wiphy_locked_debugfs_read(9)wiphy_locked_debugfs_write(9)cfg80211_s1g_get_start_freq_khz(9)cfg80211_s1g_get_end_freq_khz(9)cfg80211_s1g_get_primary_sibling(9)cfg80211_incumbent_signal_notify(9)
and that's the whole list, bestie. sixty-four entries, zero shortcuts, my thumbs are sore π notice how two of them are literally struct pages (struct cfg80211_ft_event_params(9) and struct cfg80211_mlo_reconf_done_data(9))? yeah, don't sleep on those, structs get manual pages too and they deserve their moment β¨
ngl the vibe of this page is "we documented one thing and then shouted out the entire subsystem". honestly? iconic. if you're looking for a specific function and it's not saved here, that's a skill issue on your grep, not on the page π«Ά
go open whichever one you actually needed, read it properly, and don't just skim the SYNOPSIS like it's a text message preview. you got this π
πΈ quick sign-off before you close the tab: this page lives over at ./include/net, it's dated October 2026, and the header/footer line you'd normally see at the bottom is just the page name cfg80211_rem...nnel_expired(9) giving main character energy one last time. bye bestie, happy hacking ππ
π¦ 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