cfg80211_rx_control_port(9)
Okay so bestie, welcome to cfg80211_rx_control_port(9) from the Kernel API Manual ๐
โจ โ this is the part where the kernel gets all chatty about a control port frame that showed up.
โจ NAME โจ
cfg80211_rx_control_port โ notification about a received control port frame ๐๏ธ
๐ธ SYNOPSIS ๐ธ
bool cfg80211_rx_control_port (struct net_device *dev , struct sk_buff *skb , bool unencrypted , int link_id );
๐ ARGUMENTS ๐
devโ the device the frame matched to ๐ซถskbโ theskbufwith the control port frame. It is assumed that theskbufis 802.3 formatted (with 802.3 header) โญ. Theskbcan be non-linear. This function does not take ownership of theskb, so the caller is responsible for any cleanup ๐งน. The caller must also ensure thatskb->protocolis set appropriately.unencryptedโ whether the frame was received unencrypted ๐link_idโ the link the frame was received on,-1if not applicable or unknown ๐คทโโ๏ธ
๐ฆ DESCRIPTION ๐ฆ
This function is used to inform userspace about a received control port frame ๐. It should only be used if userspace indicated it wants to receive control port frames over nl80211 โ like, userspace has to have asked for this, okay? No surprise frames, bestie.
The frame is the data portion of the 802.3 or 802.11 data frame with all network layer headers removed (e.g. the raw EAPoL frame) ๐.
๐ RETURN ๐
true if the frame was passed to userspace โ
๐ SEE ALSO ๐
ok bestie, this is the part where the page just dumps every single related function, struct, enum and doc page at you, and honestly? it's giving "the whole friend group showed up to the party". ๐
No cap, it's a long list, but each one is a real page in section 9 and you can go read any of them with man 9 <name>. I've grouped them so your brain doesn't melt, but every single one from the original is here โ nothing dropped, periodt. ๐ซถ
๐ฑ the lore / where u actually are
- start here โ
Kernel file ./include/net/cfg80211.h,Introduction(9),Device registration(9)
๐ป channels, rates & the basic vibes
- flags & friends โ
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, the whole glow-up)
- caps, in order of evolution โ
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)
๐ฆ sband iftype data (iconic, lowkey underrated)
- the structs โ
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 helpers that fetch them for u โ
_ieee80211_set_sband_iftype_data(9),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 section itself + its 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)
๐ฅ the chandef gang (there are SO many of them, I warned u)
- get / create / compare โ
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) - validity & DFS โ
cfg80211_chandef_valid(9),cfg80211_chandef_usable(9),cfg80211_chandef_dfs_required(9),cfg80211_chandef_dfs_usable(9),cfg80211_chandef_dfs_cac_time(9) - npca / dbe / power / pri width โ
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 & the whole AP setup
- survey โ
enum survey_info_flags(9),struct survey_info(9) - crypto & mbssid & rnr โ
struct cfg80211_crypto_settings(9),struct cfg80211_mbssid_config(9),struct cfg80211_mbssid_elems(9),struct cfg80211_rnr_elems(9) - beacon & AP settings โ
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 parameter era
- params & masks โ
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)
๐ rate info & bss params
- go read these โ
enum rate_info_flags(9),enum rate_info_bw(9),struct rate_info(9),enum bss_param_flags(9),struct sta_bss_parameters(9)
๐ stats girlies
- txq, tid, link, full station โ
struct cfg80211_txq_stats(9),struct cfg80211_tid_stats(9),struct link_station_info(9),struct station_info(9)
๐ SAR (specific absorption rate) squad
- sub specs โ specs โ freq ranges โ capa โ
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)
๐ mesh, ocb & monitor vibes
- the misc corner โ
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 section + scan structs โ
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) - the bss itself โ
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 / deauth / disassoc
- the handshake besties โ
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)
๐ซ ibss, connect & the wowlan pile
- connect-adjacent โ
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) - wowlan / coalesce / patterns โ
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) โ yes it gets its own section
- the whole NAN friend group โ
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, external auth, FTM & PMSR
- ranging & auth adjacent โ
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)
๐ ops, wiphy flags & iface combos
- the big driver-facing ones โ
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 plumbing (priv, dev, register, lock โ the whole lifecycle)
- lifecycle girlies โ
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)
โฐ work queue & hrtimer work girlies
- queue / cancel / flush / pending โ
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) - and the hrtimer variants โ
wiphy_hrtimer_work_queue(9),wiphy_hrtimer_work_cancel(9),wiphy_hrtimer_work_flush(9),wiphy_hrtimer_work_pending(9)
๐ซถ wireless_dev corner
- wdev + its friends โ
enum ieee80211_ap_reg_power(9),struct wireless_dev(9),wdev_priv(9),wdev_chandef(9)
๐งฎ Utility functions
- channels โ freqs (the conversion station) โ
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) - rates & header lengths โ
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
- 802.3 โ 802.11 conversions & friends โ
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) - finding IEs like it's a scavenger hunt โ
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 besties โ
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 โ
Internal regulatory db functions(9),reg_query_regdb_wmm(9)
๐ก scan done, sched scan & informing the BSS list
- scan lifecycle โ
cfg80211_scan_done(9),cfg80211_sched_scan_results(9),cfg80211_sched_scan_stopped(9),cfg80211_sched_scan_stopped_locked(9) - bss bookkeeping โ
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),cfg80211_get_bss(9),cfg80211_ref_bss(9),cfg80211_put_bss(9),cfg80211_unlink_bss(9),cfg80211_bss_iter(9)
๐จ mlme mgmt events
- rx/tx of the serious stuff โ
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
- the switch-flippers โ
RFkill integration(9),wiphy_rfkill_set_hw_state_reason(9),wiphy_rfkill_start_polling(9),wiphy_rfkill_stop_polling(9)
๐๏ธ Vendor commands
- reply skb โ reply โ sender โ events โ
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
- for the tinkerers โ
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
- the whole connect story arc โ
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)
๐ฌ remain-on-channel & mgmt tx expiry
- roc vibes โ
cfg80211_ready_on_channel(9),cfg80211_remain_on_channel_expired(9),cfg80211_tx_mgmt_expired(9)
๐งพ station info lifecycle
- alloc โ release โ new/del โ
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)
๐ฒ rx mgmt / tx status
- rx & tx status girlies โ
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)
๐ notifications, radar, CAC & the rest
- cqm & radar & cac โ
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) - the final stretch (we made it) โ
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),cfg80211_reg_check_beaconing(9)
ngl, that's a lot of cross-references ๐ but every single one is a legit section-9 page, so if something above looked confusing, its own page probably explains it way better than I ever could. Go click around, bestie, it's giving wiki rabbit hole and honestly? iconic. ๐ซถโจ
cfg80211_reg_can_beacon(9)โ the regulatory beacon check, iconiccfg80211_reg_can_beacon_relax(9)โ same energy but chiller, "relax" is literally in the name ๐cfg80211_ch_switch_notify(9)cfg80211_ch_switch_started_notify(9)โ yes bestie, there's a started version too, they're a matching set ๐ieee80211_operating_class_to_band(9)ieee80211_operating_class_to_chandef(9)ieee80211_chandef_to_operating_class(9)โ the reverse trip, we love a two-way streetieee80211_chandef_to_khz(9)cfg80211_tdls_oper_request(9)cfg80211_calculate_bitrate(9)โ the math one, go get hercfg80211_unregister_wdev(9)cfg80211_register_netdevice(9)cfg80211_unregister_netdevice(9)โ the register/unregister trio, whole friend group fr frstruct cfg80211_ft_event_params(9)โ a whole struct, not just a function, look at her gocfg80211_ft_event(9)cfg80211_get_p2p_attr(9)ieee80211_ie_split_ric(9)ieee80211_ie_split(9)โ the ric-less sibling, lowkey the same vibeieee80211_fragment_element(9)cfg80211_report_wowlan_wakeup(9)โ wakeup reporting, wowlan girlies rise ๐ธcfg80211_crit_proto_stopped(9)ieee80211_get_num_supported_channels(9)โ counting, but make it wirelesscfg80211_check_combinations(9)cfg80211_iter_combinations(9)โ check it, then iterate it, that's the whole arccfg80211_get_radio_idx_by_chan(9)cfg80211_stop_link(9)cfg80211_stop_iface(9)cfg80211_shutdown_all_interfaces(9)โ ok this one sounds like she means business ๐wiphy_ext_feature_set(9)wiphy_ext_feature_isset(9)โ set / is-set, the classic duo, no capcfg80211_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)โ the NAN block is giving main character energy rncfg80211_external_auth_request(9)cfg80211_pmsr_report(9)cfg80211_pmsr_complete(9)โ report then complete, she finishes what she starts ๐ซถcfg80211_iftype_allowed(9)cfg80211_assoc_comeback(9)โ "assoc comeback", the name ate, honestlycfg80211_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)โ the whole color-change saga, start to abort to done, we stan a complete narrative โจcfg80211_6ghz_power_type(9)cfg80211_links_removed(9)struct cfg80211_mlo_reconf_done_data(9)โ another struct! MLO reconf data, very serious, very slaycfg80211_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)โ joining the cluster, literally the group chatcfg80211_nan_ulw_update(9)cfg80211_nan_channel_evac(9)wiphy_locked_debugfs_read(9)wiphy_locked_debugfs_write(9)โ read and write, balanced queen ๐งcfg80211_s1g_get_start_freq_khz(9)cfg80211_s1g_get_end_freq_khz(9)cfg80211_s1g_get_primary_sibling(9)โ "primary sibling", okay that's kind of adorablecfg80211_incumbent_signal_notify(9)โ last one bestie, we made it, take a bow ๐
And that's the whole list, every single one, no skips, no shortcuts โ that's the vibe check passed ๐
So yeah, that's cfg80211_rx_control_port(9), living in ./include/net, dated October 2026, and yes she's a real one. Go forth and pass those frames to the stack, bestie ๐ฆโจ
๐ฆ 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