STRUCT CFG80211_FILS_RESP_PARAMS(9)
π struct cfg80211_fils_resp_params π
okay bestie, welcome to the Kernel API Manual, section 9 β yes we're in the kernel-API girlies part of the manual, and today's main character is struct cfg80211_fils_resp_params, aka the FILS connection response params. no cap, this one's a lil struct and she's carrying a lot of responsibility π«Ά
πΈ NAME πΈ
struct cfg80211_fils_resp_params β FILS connection response params β¨
π¦ SYNOPSIS π¦
literally the whole vibe, verbatim:
struct cfg80211_fils_resp_params {
const u8 *kek;
size_t kek_len;
bool update_erp_next_seq_num;
u16 erp_next_seq_num;
const u8 *pmk;
size_t pmk_len;
const u8 *pmkid;
};
like, that's her. that's the struct. π
π Members π
okay so let's go member by member, because every single one of these matters and i'm not skipping a single one, periodt π
kekβ the KEK, and it's derived from a successful FILS connection. important: it may beNULLπkek_lenβ the length offils_kekin octets. yes bestie, the doc literally spells itfils_kekhere, that's exactly what it says, i'm not touching it, iykyk πupdate_erp_next_seq_numβ a Boolean value, and what it's telling you is whether the value sitting inerp_next_seq_numis valid or not. so like, a vibe check for the next field βerp_next_seq_numβ the next sequence number to use in the ERP message in FILS Authentication. and listen, this one is special: this value should be specified irrespective of the status for a FILS connection. like, regardless of how the connection went, you still fill this in π₯pmkβ a new PMK, but only if it was derived from a successful FILS connection. and yeah, it may beNULLtoo πpmk_lenβ the length ofpmkin octets β¨pmkidβ a new PMKID if it was derived from a successful FILS connection, or the PMKID used for this FILS connection. either way, heads up: it may beNULLπ
quick recap bestie: three of these pointers are allowed to beNULLβkek,pmk, andpmkidβ anderp_next_seq_numis the one you fill in no matter what the status is. don't forget it, i'm begging π
and that's only part 1, there's more coming ππ
π SEE ALSO π
okay bestie, buckle up, because this is the part where the manual page just... spills the whole friend group π
. Everything below is literally the cross-reference list for this page β every single one lives in Kernel file ./include/net/cfg80211.h territory, and every one of them is (9) because that's just how the kernel-doc girlies roll. I'm keeping them in the exact order they were handed to me, no shuffling, no cap. β¨
Introduction(9),Device registration(9)β the lil orientation tour and the "how do I even get a device in here" entry point π«Ά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 classics: channel flags, the channel itself, rate flags, BSS type, privacy, and the rate struct. the OGs of the band πstruct ieee80211_he_obss_pd(9),struct cfg80211_he_bss_color(9)β HE OBSS PD and the HE BSS color situation. highkey niche, lowkey important β¨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)β the whole capability glow-up timeline: HT β‘οΈ VHT β‘οΈ HE β‘οΈ EHT MCS/NSS β‘οΈ EHT β‘οΈ UHR. she evolved, fr fr π₯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)β sband iftype data, EDMG bandwidth config, EDMG, S1G caps, and supported band. the band-info besties π_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)β not me listing the underscore version and the normal setter, because they are two different functions and I respect them both π€ also getters for days pluswiphy_read_of_freq_limits(9)hanging out at the end πΈActions and configuration(9)β the big section vibe check, this is where the doing-stuff lives π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)β vif params, key params, channel def, the tid cfg duo, FILS AAD (hi bestie, we're literally on your page π₯Ή), and the hw timestamp settercfg80211_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),cfg80211_chandef_valid(9),cfg80211_chandef_usable(9),cfg80211_chandef_dfs_required(9),cfg80211_chandef_dfs_usable(9),cfg80211_chandef_dfs_cac_time(9),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)β the entire chandef cinematic universe π get the type, create it, check if identical, is it EDMG, is it S1G, is it compatible, width in MHz, get the width, is it valid, is it usable, is DFS required, is DFS usable, DFS CAC time, primary, NPCA valid, add NPCA, add DBE, send it, max power, S1G pri width, any usable channels. that's the whole squad, nobody left behind π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)β survey flags + survey info, crypto settings, MBSSID config + elems, RNR elems, beacon data, ACL data, FILS discovery, unsolicited broadcast probe response, S1G short beacon, AP settings, AP update, CSA settings, color change settings, and iface combination params. the whole AP-era friend group, iconic π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)β station parameter hours π«Ά apply mask, tx power, link station params (add + del), TTLM params, station params, station del params, station type, and the station change checker. clocking in π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)β rate info flags + bw + the struct, BSS param flags, sta BSS parameters, txq stats, tid stats, link station info, and station info. stats girlies rise π¦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)β the full SAR quartet (sub specs, specs, freq ranges, capa), get_station, monitor flags, mpath info flags + struct, wiphy BSS param flags, BSS parameters, mesh config, mesh setup, OCB setup, and txq params. we contain multitudes β¨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)β scanning szn πΈ SSID, scan info, 6GHz scan params, scan request, match set, sched scan plan, BSS select adjust, sched scan request, signal type, inform BSS, BSS IEs, BSS, and both BSS get-element/get-IE bestiesstruct 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)β auth β‘οΈ assoc link β‘οΈ ML reconf req β‘οΈ assoc req flags β‘οΈ assoc req β‘οΈ deauth β‘οΈ disassoc β‘οΈ IBSS params β‘οΈ BSS selection β‘οΈ connect params β‘οΈ connect params changed β‘οΈ wiphy params flags β‘οΈ PMKSA. the whole situationship pipeline π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)β packet pattern, WoWLAN TCP, WoWLAN, coalesce rules + coalesce, WoWLAN ND match + ND info, WoWLAN wakeup, GTK rekey data, update FT IEs params, mgmt TX params, DSCP exception, DSCP range, and the QoS map. sleep-mode slay π€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)β NAN nation rise π¦ band config, conf, channel, local sched, peer map, peer sched, conf changes, func filter, and func. finding each other, no capstruct 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)β PMK conf, external auth params, FTM responder stats, the PMS R trio-ish (FTM result, result, FTM request peer, request peer, request), update OWE info, and mgmt frame regs π₯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)β ops, wiphy flags, iface limit + combination, WoWLAN support flags + support, coalesce support, vendor command flags, opmode flag, sta opmode info, wiphy vendor command, iftype ext capab, get iftype ext capa, PMSR capabilities, iftype AKM suites, radio cfg + freq range + radio, NAN flags + NAN capa, and finallystruct wiphy(9)itself. the main character π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)β wiphy priv access, priv back to wiphy, set/get dev, name, new_nm, new, register, the RCU dereference duo, get regdom, unregister, free, lock, unlock. lifecycle girlie π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),wiphy_hrtimer_work_queue(9),wiphy_hrtimer_work_cancel(9),wiphy_hrtimer_work_flush(9),wiphy_hrtimer_work_pending(9)β the scheduling family reunion π work queue/cancel/flush, delayed work queue/cancel/flush/pending, hrtimer work queue/cancel/flush/pending. they're booked and busyenum ieee80211_ap_reg_power(9),struct wireless_dev(9),wdev_priv(9),wdev_chandef(9)β AP regulatory power, wireless dev, wdev priv, wdev chandef. wdev era π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),ieee80211_get_response_rate(9),ieee80211_mandatory_rates(9)β the utility drawer β¨ channel equal, channelβ‘οΈkHz, channelβ‘οΈfreq kHz, channelβ‘οΈfrequency, freq kHzβ‘οΈchannel, frequencyβ‘οΈchannel, get channel kHz, get channel, is PSC, radio freq range valid, radio chandef valid, wdev channel allowed, get response rate, mandatory rates. tools, all of them π§°struct ieee80211_radiotap_iterator(9),ieee80211_get_hdrlen_from_skb(9),ieee80211_hdrlen(9),ieee80211_get_mesh_hdrlen(9)β radiotap iterator, header length from skb, header length, mesh header length. headers, but make it fashion π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)β data path squad π«Ά dataβ‘οΈ8023 with exthdr, dataβ‘οΈ8023, is valid AMSDU, AMSDUβ‘οΈ8023s, get 8023 tunnel proto, strip 8023 mesh hdr, and classify 8021d. frames getting converted, respectfullycfg80211_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)β find elem match, find IE match, find elem, find IE, find ext elem, find ext IE, find vendor elem, find vendor IE, RNR iter return enum, iter RNR, defragment element, send layer2 update. searching high and low π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(9),reg_query_regdb_wmm(9)β regulatory enforcement infrastructure, regulatory hint, set wiphy regd, set wiphy regd sync, apply custom regulatory, freq reg info, reg initiator name, regulatory pre-CAC allowed, internal regulatory db functions, and reg query regdb WMM. rules are rules, bestie πcfg80211_scan_done(9),cfg80211_sched_scan_results(9),cfg80211_sched_scan_stopped(9),cfg80211_sched_scan_stopped_locked(9),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),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)β scan done, sched scan results, sched scan stopped (+ the locked variant), inform BSS frame data, gen new BSSID, is element inherited, merge profile, BSS frame type enum, get IEs channel number, SSID eq, inform BSS data,__cfg80211_get_bss(9)andcfg80211_get_bss(9)(both of them, because underscores matter), ref BSS, put BSS, unlink BSS, BSS iter, rx MLME mgmt, auth timeout, rx assoc resp data struct, rx assoc resp, assoc failure struct, assoc failure, tx MLME mgmt, rx unprotected MLME mgmt, Michael MIC failure, IBSS joined, and notify new peer candidate. massive list, massive slay πRFkill integration(9),wiphy_rfkill_set_hw_state_reason(9),wiphy_rfkill_start_polling(9),wiphy_rfkill_stop_polling(9)β RFkill integration, set hw state reason, start polling, stop polling. turning radios off is also self-care π§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)β vendor commands, alloc reply skb, reply, get sender, vendor event alloc, vendor event alloc ucast, and vendor event. vendor besties get their own section, as they should π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, alloc reply skb, reply, alloc event skb, event. testing era π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)β connect resp params, connect done, connect BSS, connect result, connect timeout, roam info, roamed, port authorized, disconnected. the connect-to-disconnect character arc πcfg80211_ready_on_channel(9),cfg80211_remain_on_channel_expired(9),cfg80211_tx_mgmt_expired(9)β ready on channel, remain on channel expired, tx mgmt expired. timers, timers, timers β³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)β sinfo alloc tid stats, link sinfo alloc tid stats, sinfo release content, new STA, del STA sinfo, del STA, and conn failed. station bookkeeping szn π¦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),cfg80211_rx_control_port(9)β rx info, rx mgmt ext, rx mgmt kHz, rx mgmt, tx status struct, mgmt tx status ext, mgmt tx status, control port tx status, rx control port. rx and tx, living in harmony β¨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),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)β CQM RSSI notify, CQM pktloss notify, CQM tx e notify, CQM beacon loss notify,__cfg80211_radar_event(9), sta opmode change notify, CAC event, background CAC abort, GTK rekey notify, PMKSA candidate notify, rx spurious frame, rx unexpected 4addr frame, probe status, report OBSS beacon kHz, report OBSS beacon, and the beaconing check config struct. that's the list, bestie β every single one, in order, no skips π
okay so the reading list does NOT stop, and honestly? this is the part where the SEE ALSO section really pops off π so many icons, one page. grab a snack, we're going through all of them, and no we are not skipping any π
the regulatory + channel girlies first, they're the ones with opinions about where you're allowed to exist
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)
the interface + device + assorted household names
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)
the IE girlies π splitting, fragmenting, and generally being extra about elements
cfg80211_get_p2p_attr(9)ieee80211_ie_split_ric(9)ieee80211_ie_split(9)ieee80211_fragment_element(9)
wakeups, crit protos, and the channel-combination math besties
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)
feature flags and the NAN cinematic universe π (it has lore, fr)
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)
auth, PMSR, and the "is this even allowed" committee
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)
BSS housekeeping + the color change saga (drama, honestly)
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)
MLO + channel checking, the main character energy section
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)
more NAN (told you, lore), then debugfs and the S1G girlies
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)
and the very last one, saving the best for the end bestie
β¨ and that's the whole reading list, bestie β you ate that. this one lives over in ./include/net, it's the October 2026 edition of the struct cfg80..._resp_params(9) page (yes, that's the truncated title, it's giving mysterious), so go forth and cross-reference responsibly ππ¦π
π¦ 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