Lines Matching +full:scan +full:- +full:interval +full:- +full:ms

1 /* SPDX-License-Identifier: GPL-2.0-only */
7 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
8 * Copyright 2013-2014 Intel Mobile Communications GmbH
9 * Copyright 2015-2017 Intel Deutschland GmbH
10 * Copyright (C) 2018-2024 Intel Corporation
72 * enum ieee80211_channel_flags - channel flags
167 * struct ieee80211_channel - channel definition
174 * @hw_value: hardware-specific value for the channel
212 * enum ieee80211_rate_flags - rate flags
245 * enum ieee80211_bss_type - BSS type filter
262 * enum ieee80211_privacy - BSS privacy filter
278 * struct ieee80211_rate - bitrate definition
285 * @flags: rate-specific flags from &enum ieee80211_rate_flags
298 * struct ieee80211_he_obss_pd - AP settings for spatial reuse
302 * @non_srg_max_offset: non-SRG maximum tx power offset
321 * struct cfg80211_he_bss_color - AP settings for BSS coloring
334 * struct ieee80211_sta_ht_cap - STA's HT capabilities
341 * @ampdu_factor: Maximum A-MPDU length factor
342 * @ampdu_density: Minimum A-MPDU spacing
354 * struct ieee80211_sta_vht_cap - STA's VHT capabilities
372 * struct ieee80211_sta_he_cap - STA's HE capabilities
390 * struct ieee80211_eht_mcs_nss_supp - EHT max supported NSS per MCS
392 * See P802.11be_D1.3 Table 9-401k - "Subfields of the Supported EHT-MCS
395 * @only_20mhz: MCS/NSS support for 20 MHz-only STA.
415 * struct ieee80211_sta_eht_cap - STA's EHT capabilities
432 /* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */
435 * This is used to mark the sband->iftype_data pointer which is supposed
446 * struct ieee80211_sband_iftype_data - sband data per interface type
473 * enum ieee80211_edmg_bw_config - allowed channel bandwidth configurations
509 * struct ieee80211_edmg - EDMG configuration
527 * struct ieee80211_sta_s1g_cap - STA's S1G capabilities
543 * struct ieee80211_supported_band - frequency band definition
582 * _ieee80211_set_sband_iftype_data - set sband iftype data array
596 sband->iftype_data = (const void __iftd __force *)iftd; in _ieee80211_set_sband_iftype_data()
597 sband->n_iftype_data = n_iftd; in _ieee80211_set_sband_iftype_data()
601 * ieee80211_set_sband_iftype_data - set sband iftype data array
609 * for_each_sband_iftype_data - iterate sband iftype data entries
615 for (i = 0, iftd = (const void __force *)&(sband)->iftype_data[i]; \
616 i < (sband)->n_iftype_data; \
617 i++, iftd = (const void __force *)&(sband)->iftype_data[i])
620 * ieee80211_get_sband_iftype_data - return sband data for a given iftype
640 if (data->types_mask & BIT(iftype)) in ieee80211_get_sband_iftype_data()
648 * ieee80211_get_he_iftype_cap - return HE capabilities for an sband's iftype
661 if (data && data->he_cap.has_he) in ieee80211_get_he_iftype_cap()
662 return &data->he_cap; in ieee80211_get_he_iftype_cap()
668 * ieee80211_get_he_6ghz_capa - return HE 6 GHz capabilities
681 if (WARN_ON(!data || !data->he_cap.has_he)) in ieee80211_get_he_6ghz_capa()
684 return data->he_6ghz_capa.capa; in ieee80211_get_he_6ghz_capa()
688 * ieee80211_get_eht_iftype_cap - return ETH capabilities for an sband's iftype
701 if (data && data->eht_cap.has_eht) in ieee80211_get_eht_iftype_cap()
702 return &data->eht_cap; in ieee80211_get_eht_iftype_cap()
708 * wiphy_read_of_freq_limits - read frequency limits from device tree
758 * struct vif_params - describes virtual interface parameters
761 * @use_4addr: use 4-address frames
768 * @vht_mumimo_groups: MU-MIMO groupID, used for monitoring MU-MIMO packets
769 * belonging to that MU-MIMO groupID; %NULL if not changed
770 * @vht_mumimo_follow_addr: MU-MIMO follow address, used for monitoring
771 * MU-MIMO packets going to the specified station; %NULL if not changed
782 * struct key_params - key information
807 * struct cfg80211_chan_def - channel definition
814 * If edmg is requested (i.e. the .channels member is non-zero),
833 * cfg80211_bitrate_mask - masks for bitrate control
849 * struct cfg80211_tid_cfg - TID specific configuration
878 * struct cfg80211_tid_config - TID configuration
890 * struct cfg80211_fils_aad - FILS AAD data
906 * struct cfg80211_set_hw_timestamp - enable/disable HW timestamping
918 * cfg80211_get_chandef_type - return old channel type from chandef
921 * Return: The old channel type (NOHT, HT20, HT40+/-) from a given
927 switch (chandef->width) { in cfg80211_get_chandef_type()
933 if (chandef->center_freq1 > chandef->chan->center_freq) in cfg80211_get_chandef_type()
943 * cfg80211_chandef_create - create channel definition using channel type
955 * cfg80211_chandef_identical - check if two channel definitions are identical
966 return (chandef1->chan == chandef2->chan && in cfg80211_chandef_identical()
967 chandef1->width == chandef2->width && in cfg80211_chandef_identical()
968 chandef1->center_freq1 == chandef2->center_freq1 && in cfg80211_chandef_identical()
969 chandef1->freq1_offset == chandef2->freq1_offset && in cfg80211_chandef_identical()
970 chandef1->center_freq2 == chandef2->center_freq2 && in cfg80211_chandef_identical()
971 chandef1->punctured == chandef2->punctured); in cfg80211_chandef_identical()
975 * cfg80211_chandef_is_edmg - check if chandef represents an EDMG channel
984 return chandef->edmg.channels || chandef->edmg.bw_config; in cfg80211_chandef_is_edmg()
988 * cfg80211_chandef_compatible - check if two channel definitions are compatible
1000 * nl80211_chan_width_to_mhz - get the channel width in MHz
1004 * is valid. -1 otherwise.
1009 * cfg80211_chandef_valid - check if a channel definition is valid
1016 * cfg80211_chandef_usable - check if secondary channels can be used
1027 * cfg80211_chandef_dfs_required - checks if radar detection is required
1039 * cfg80211_chandef_dfs_usable - checks if chandef is DFS usable and we
1051 * cfg80211_chandef_dfs_cac_time - get the DFS CAC time (in ms) for given
1056 * Returns: DFS CAC time (in ms) which applies for this channel definition
1063 * cfg80211_chandef_primary - calculate primary 40/80/160 MHz freq
1066 * @punctured: punctured sub-channel bitmap, will be recalculated
1069 * Returns: the primary 40/80/160 MHz channel center frequency, or -1
1077 * nl80211_send_chandef - sends the channel definition.
1086 * ieee80211_chanwidth_rate_flags - return rate flags for channel width
1089 * In some channel types, not all rates may be used - for example CCK
1109 * ieee80211_chandef_rate_flags - returns rate flags for a channel
1119 return ieee80211_chanwidth_rate_flags(chandef->width); in ieee80211_chandef_rate_flags()
1123 * ieee80211_chandef_max_power - maximum transmission power for the chandef
1127 * max_power for non-standard (20 MHz) channels.
1136 switch (chandef->width) { in ieee80211_chandef_max_power()
1138 return min(chandef->chan->max_reg_power - 6, in ieee80211_chandef_max_power()
1139 chandef->chan->max_power); in ieee80211_chandef_max_power()
1141 return min(chandef->chan->max_reg_power - 3, in ieee80211_chandef_max_power()
1142 chandef->chan->max_power); in ieee80211_chandef_max_power()
1146 return chandef->chan->max_power; in ieee80211_chandef_max_power()
1150 * cfg80211_any_usable_channels - check for usable channels
1163 * enum survey_info_flags - survey information flags
1167 * @SURVEY_INFO_TIME: active time (in ms) was filled in
1172 * @SURVEY_INFO_TIME_SCAN: scan time was filled in
1191 * struct survey_info - channel survey response
1198 * @time: amount of time in ms the radio was turn on (on the channel)
1206 * Used by dump_survey() to report back per-channel survey information.
1227 * struct cfg80211_crypto_settings - Crypto settings
1245 * @control_port_no_preauth: disables pre-auth rx over the nl80211 control
1247 * @psk: PSK (for devices supporting 4-way-handshake offload)
1254 * Not-specified, used to indicate userspace did not specify any
1259 * Allow hunting-and-pecking loop only
1262 * Allow hash-to-element only
1265 * Allow either hunting-and-pecking loop or hash-to-element
1286 * struct cfg80211_mbssid_config - AP settings for multi bssid
1299 * struct cfg80211_mbssid_elems - Multiple BSSID elements
1316 * struct cfg80211_rnr_elems - Reduced neighbor report (RNR) elements
1333 * struct cfg80211_beacon_data - beacon data
1353 * @ftm_responder: enable FTM responder functionality; -1 for no change
1395 * struct cfg80211_acl_data - Access control list data
1411 * struct cfg80211_fils_discovery - FILS discovery parameters from
1412 * IEEE Std 802.11ai-2016, Annex C.3 MIB detail.
1415 * @min_interval: Minimum packet interval in TUs (0 - 10000)
1416 * @max_interval: Maximum packet interval in TUs (0 - 10000)
1430 * struct cfg80211_unsol_bcast_probe_resp - Unsolicited broadcast probe
1434 * @interval: Packet interval in TUs. Maximum allowed is 20 TU, as mentioned
1435 * in IEEE P802.11ax/D6.0 26.17.2.3.2 - AP behavior for fast passive
1442 u32 interval; member
1448 * struct cfg80211_ap_settings - AP configuration
1454 * @beacon_interval: beacon interval
1526 * struct cfg80211_ap_update - AP configuration update
1541 * struct cfg80211_csa_settings - channel switch settings
1556 * MLO. 0 in case of non-MLO.
1573 * struct cfg80211_color_change_settings - color change settings
1584 * 0 in case of non-MLO.
1597 * struct iface_combination_params - input parameters for interface combinations
1601 * @radio_idx: wiphy radio index or -1 for global
1610 * @new_beacon_int: set this to the beacon interval of a new interface
1623 * enum station_parameters_apply_mask - station parameter values to apply
1628 * Not all station parameters have in-band "no change" signalling,
1638 * struct sta_txpwr - station txpower configuration
1643 * is not provided, the default per-interface tx power setting will be
1645 * power per-interface or per-station.
1658 * struct link_station_parameters - link station parameters
1663 * @link_id: the link id (-1 for non-MLD station)
1700 * struct link_station_del_parameters - link station deletion parameters
1718 * (TID-To-Link Mapping element) in Draft P802.11be_D4.0.
1720 * (TID-To-Link Mapping element) in Draft P802.11be_D4.0.
1728 * struct station_parameters - station parameters
1737 * @listen_interval: listen interval or -1 for no change
1750 * @local_pm: local link-specific mesh power save mode (no change when set
1789 * struct station_del_parameters - station deletion parameters
1798 * using; valid only for MLO, but can also be -1 for MLO to really
1809 * enum cfg80211_station_type - the type of station being modified
1839 * cfg80211_check_station_change - validate parameter changes
1857 * enum rate_info_flags - bitrate info flags
1864 * @RATE_INFO_FLAGS_SHORT_GI: 400ns guard interval
1885 * enum rate_info_bw - rate bandwidth information
1922 * struct rate_info - bitrate information
1931 * @he_gi: HE guard interval (from &enum nl80211_he_gi)
1935 * @n_bonded_ch: In case of EDMG the number of bonded channels (1-4)
1936 * @eht_gi: EHT guard interval (from &enum nl80211_eht_gi)
1955 * enum bss_param_flags - bitrate info flags
1971 * struct sta_bss_parameters - BSS parameters for the attached station
1977 * @beacon_interval: beacon interval
1986 * struct cfg80211_txq_stats - TXQ statistics for this TID
2017 * struct cfg80211_tid_stats - per-TID statistics
2039 * struct station_info - station information
2058 * @chain_signal: per-chain signal strength of last received packet in dBm
2059 * @chain_signal_avg: per-chain signal strength average in dBm
2066 * @rx_dropped_misc: Dropped for un-specified reason.
2082 * @nonpeer_pm: non-peer mesh STA power save mode
2092 * @pertid: per-TID statistics, see &struct cfg80211_tid_stats, using the last
2093 * (IEEE80211_NUM_TIDS) index for MSDUs not encapsulated in QoS-MPDUs.
2094 * Note that this doesn't use the @filled bit, but is used if non-NULL.
2111 * and non-MLO STA connections when the AP affiliated with an MLD.
2113 * For non-MLO STA connection, filled with all zeros.
2190 * struct cfg80211_sar_sub_specs - sub specs limit
2200 * struct cfg80211_sar_specs - sar limit specs
2213 * struct cfg80211_sar_freq_ranges - sar frequency ranges
2223 * struct cfg80211_sar_capa - sar limit capability
2239 * cfg80211_get_station - retrieve information about a given station
2255 return -ENOENT; in cfg80211_get_station()
2260 * enum monitor_flags - monitor flags
2284 * enum mpath_info_flags - mesh path information flags
2312 * struct mpath_info - mesh path information
2347 * struct bss_parameters - BSS parameters
2351 * @link_id: link_id or -1 for non-MLD
2353 * (0 = no, 1 = yes, -1 = do not change)
2355 * (0 = no, 1 = yes, -1 = do not change)
2357 * (0 = no, 1 = yes, -1 = do not change)
2362 * (0 = no, 1 = yes, -1 = do not change)
2364 * (u16 = opmode, -1 = do not change)
2365 * @p2p_ctwindow: P2P CT Window (-1 = no change)
2366 * @p2p_opp_ps: P2P opportunistic PS (-1 = no change)
2381 * struct mesh_config - 802.11s mesh configuration
2410 * @dot11MeshHWMPpreqMinInterval: the minimum interval of time (in TUs) during
2413 * @dot11MeshHWMPperrMinInterval: the minimum interval of time (in TUs) during
2416 * @dot11MeshHWMPnetDiameterTraversalTime: the interval of time (in TUs) that
2419 * @dot11MeshHWMPRannInterval: the interval of time (in TUs) between root
2427 * @dot11MeshForwarding: whether the Mesh STA is forwarding or non-forwarding
2428 * entity (default is TRUE - forwarding entity)
2437 * @dot11MeshHWMProotInterval: The interval of time (in TUs) between proactive
2439 * @dot11MeshHWMPconfirmationInterval: The minimum interval of time (in TUs)
2456 * @dot11MeshNolearn: Try to avoid multi-hop path discovery (e.g. PREQ/PREP
2458 * not be the optimal decision as a multi-hop route might be better. So
2497 * struct mesh_setup - 802.11s mesh setup configuration
2511 * @beacon_interval: beacon interval to use
2546 * struct ocb_setup - 802.11p OCB mode setup configuration
2556 * struct ieee80211_txq_params - TX queue parameters
2559 * @cwmin: Minimum contention window [a value of the form 2^n-1 in the range
2561 * @cwmax: Maximum contention window [a value of the form 2^n-1 in the range
2564 * @link_id: link_id or -1 for non-MLD
2579 * a bit of helper functionality. To start a scan, the scan operation will
2580 * be invoked with a scan definition. This scan definition contains the
2581 * channels to scan, and the SSIDs to send probe requests for (including the
2582 * wildcard, if desired). A passive scan is indicated by having no SSIDs to
2583 * probe. Additionally, a scan request may contain extra information elements
2585 * well-formed, and will not exceed the maximum length the driver advertised
2599 * struct cfg80211_ssid - SSID description
2609 * struct cfg80211_scan_info - information about completed scan
2610 * @scan_start_tsf: scan start time in terms of the TSF of the BSS that the
2611 * wireless device that requested the scan is connected to. If this
2614 * @aborted: set to true if the scan was aborted for any reason,
2624 * struct cfg80211_scan_6ghz_params - relevant for 6 GHz only
2626 * @short_ssid: short ssid to scan for
2627 * @bssid: bssid to scan for
2628 * @channel_idx: idx of the channel in the channel array in the scan request
2647 * struct cfg80211_scan_request - scan request description
2649 * @ssids: SSIDs to scan for (active scan only)
2651 * @channels: channels to scan on.
2652 * @n_channels: total number of channels to scan
2658 * @duration_mandatory: if set, the scan duration must be as specified by the
2663 * @scan_start: time (in jiffies) when the scan started
2664 * @wdev: the wireless device to scan for
2665 * @info: (internal) information about completed scan
2666 * @notified: (internal) scan request was notified as done or aborted
2672 * @scan_6ghz: relevant for split scan request only,
2673 * true if this is the second scan request
2676 * @bssid: BSSID to scan for (most commonly, the wildcard BSSID)
2678 * used for TSF reporting. Can be set to -1 to indicate no preference.
2725 * struct cfg80211_match_set - sets of attributes to match
2727 * @ssid: SSID to be matched; may be zero-length in case of BSSID match
2729 * @bssid: BSSID to be matched; may be all-zero BSSID in case of SSID match
2731 * @rssi_thold: don't report scan results below this threshold (in s32 dBm)
2740 * struct cfg80211_sched_scan_plan - scan plan for scheduled scan
2742 * @interval: interval between scheduled scan iterations. In seconds.
2743 * @iterations: number of scan iterations in this scan plan. Zero means
2745 * The last scan plan will always have this parameter set to zero,
2746 * all other scan plans will have a finite number of iterations.
2749 u32 interval; member
2754 * struct cfg80211_bss_select_adjust - BSS selection with RSSI adjustment.
2765 * struct cfg80211_sched_scan_request - scheduled scan request description
2768 * @ssids: SSIDs to scan for (passed in the probe_reqs in active scans)
2770 * @n_channels: total number of channels to scan
2774 * @match_sets: sets of parameters to be matched for a scan result
2782 * @scan_start: start time of the scheduled scan
2783 * @channels: channels to scan
2790 * @scan_plans: scan plans to be executed in this scheduled scan. Lowest
2792 * @n_scan_plans: number of scan plans, at least 1.
2796 * @nl_owner_dead: netlink owner socket was closed - this request be freed
2798 * @delay: delay in seconds to use before starting the first scan
2803 * @relative_rssi: Relative RSSI threshold in dB to restrict scan result
2850 * enum cfg80211_signal_type - signal type
2863 * struct cfg80211_inform_bss - BSS inform data
2870 * buffered on the device) and be accurate to about 10ms.
2877 * the BSS that requested the scan in which the beacon/probe was received.
2879 * @chain_signal: per-chain signal strength of last received BSS in dBm.
2905 * struct cfg80211_bss_ies - BSS entry IE data
2921 * struct cfg80211_bss - BSS description
2924 * for use in scan results and similar.
2928 * @beacon_interval: the beacon interval as from the frame
2931 * are well-formed!); this is a pointer to either the beacon_ies or
2933 * received. It is always non-%NULL.
2944 * points to the same data as hidden_beacon_bss->beacon_ies in that case.
2946 * non-transmitted one (multi-BSSID support)
2947 * @nontrans_list: list of non-transmitted BSS, if this is a transmitted one
2948 * (multi-BSSID support)
2951 * @chain_signal: per-chain signal strength of last received BSS in dBm.
2959 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
2993 * ieee80211_bss_get_elem - find element with given ID
2997 * Note that the return value is an RCU-protected pointer, so
3004 * ieee80211_bss_get_ie - find IE with given ID
3008 * Note that the return value is an RCU-protected pointer, so
3019 * struct cfg80211_auth_request - Authentication request data
3033 * the authentication frame body (non-IE and IE data), excluding the
3059 * struct cfg80211_assoc_link - per-link information for MLO association
3062 * @elems: extra elements for the per-STA profile for this link
3066 * @error: per-link error code, must be <= 0. If there is an error, then the
3078 * enum cfg80211_assoc_req_flags - Over-ride default behaviour in association.
3092 * @ASSOC_REQ_SPP_AMSDU: SPP A-MSDUs will be used on this connection (if any)
3106 * struct cfg80211_assoc_request - (Re)Association request data
3127 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
3128 * will be used in ht_capa. Un-supported values will be ignored.
3140 * @links: per-link information for MLO connections
3166 * struct cfg80211_deauth_request - Deauthentication request data
3187 * struct cfg80211_disassoc_request - Disassociation request data
3208 * struct cfg80211_ibss_params - IBSS parameters
3213 * @ssid: The SSID, will always be non-null.
3214 * @ssid_len: The length of the SSID, will always be non-zero.
3218 * @channel_fixed: The channel should be fixed -- do not search for
3222 * @beacon_interval: beacon interval to use
3235 * @mcast_rate: per-band multicast rate index + 1 (0: disabled)
3236 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
3237 * will be used in ht_capa. Un-supported values will be ignored.
3264 * struct cfg80211_bss_selection - connection parameters for BSS selection.
3280 * struct cfg80211_connect_params - Connection parameters
3285 * @channel: The channel to use or %NULL if not specified (auto-select based
3286 * on scan results)
3289 * @bssid: The AP BSSID or %NULL if not specified (auto-select based on scan
3300 * @privacy: indicates whether privacy-enabled APs should be used
3307 * @bg_scan_period: Background scan period in seconds
3308 * or -1 to indicate that default value is to be used.
3309 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
3310 * will be used in ht_capa. Un-supported values will be ignored.
3323 * @fils_erp_username: EAP re-authentication protocol (ERP) username part of the
3327 * @fils_erp_realm: EAP re-authentication protocol (ERP) realm part of NAI or
3333 * @fils_erp_rrk: ERP re-authentication Root Key (rRK) used to derive additional
3336 * @want_1x: indicates user-space supports and wants to use 802.1X driver
3337 * offload of 4-way handshake.
3378 * enum cfg80211_connect_params_changed - Connection parameters being updated
3395 * enum wiphy_params_flags - set_wiphy_params bitfield values
3396 * @WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed
3397 * @WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed
3398 * @WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed
3399 * @WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed
3428 * struct cfg80211_pmksa - PMK Security Association
3442 * @cache_id: 2-octet cache identifier advertized by a FILS AP identifying the
3443 * scope of PMKSA. This is valid only if @ssid_len is non-zero (may be
3470 * struct cfg80211_pkt_pattern - packet pattern
3487 * struct cfg80211_wowlan_tcp - TCP connection parameters
3498 * @data_interval: interval at which to send data packets
3522 * struct cfg80211_wowlan - Wake on Wireless-LAN support info
3525 * @any: wake up on any activity -- special trigger if device continues
3533 * @four_way_handshake: wake up on 4-way handshake
3537 * @nd_config: configuration for the scan to be used for net detect wake.
3550 * struct cfg80211_coalesce_rules - Coalesce rule parameters
3567 * struct cfg80211_coalesce - Packet coalescing settings
3579 * struct cfg80211_wowlan_nd_match - information about the match
3594 * struct cfg80211_wowlan_nd_info - net detect wake up information
3608 * struct cfg80211_wowlan_wakeup - wakeup report
3613 * @four_way_handshake: woke up by 4-way handshake
3615 * @pattern_idx: pattern that caused wakeup, -1 if not due to pattern
3643 * struct cfg80211_gtk_rekey_data - rekey data
3658 * struct cfg80211_update_ft_ies_params - FT IE Information
3673 * struct cfg80211_mgmt_tx_params - mgmt tx parameters
3686 * @link_id: for MLO, the link ID to transmit on, -1 if not given; note
3704 * struct cfg80211_dscp_exception - DSCP exception
3715 * struct cfg80211_dscp_range - DSCP range definition for user priority
3725 /* QoS Map Set element length defined in IEEE Std 802.11-2012, 8.4.2.97 */
3732 * struct cfg80211_qos_map - QoS Map Information
3748 * struct cfg80211_nan_conf - NAN configuration
3752 * @master_pref: master preference (1 - 255)
3763 * enum cfg80211_nan_conf_changes - indicates changed fields in NAN
3775 * struct cfg80211_nan_func_filter - a NAN function Rx / Tx filter
3786 * struct cfg80211_nan_func - a NAN function
3842 * struct cfg80211_pmk_conf - PMK configuration
3847 * @pmk_r0_name: PMK-R0 Name. NULL if not applicable (i.e., the PMK
3848 * is not PMK-R0). When pmk_r0_name is not NULL, the pmk field
3849 * holds PMK-R0.
3859 * struct cfg80211_external_auth_params - Trigger External authentication.
3900 * struct cfg80211_ftm_responder_stats - FTM responder statistics
3910 * @non_asap_num: number of non-ASAP FTM sessions
3911 * @total_duration_ms: total sessions durations - gives an indication
3913 * @unknown_triggers_num: number of unknown FTM triggers - triggers from
3916 * @reschedule_requests_num: number of FTM reschedule requests - initiator asks
3934 * struct cfg80211_pmsr_ftm_result - FTM result
3939 * in [0 .. num_bursts-1] of the burst that's being reported
4014 * struct cfg80211_pmsr_result - peer measurement result
4045 * struct cfg80211_pmsr_ftm_request_peer - FTM request data
4088 * struct cfg80211_pmsr_request_peer - peer data for a peer measurement request
4102 * struct cfg80211_pmsr_request - peer measurement request
4104 * @nl_portid: netlink portid - used by cfg80211
4115 * @peers: per-peer measurement request data
4134 * struct cfg80211_update_owe_info - OWE Information
4152 * by peer. This will be filled by driver for both MLO and non-MLO station
4153 * connections when the AP affiliated with an MLD. For non-MLD AP mode, it
4154 * will be -1. Used only with OWE update event (driver to user space).
4155 * @peer_mld_addr: For MLO connection, MLD address of the peer. For non-MLO
4157 * @assoc_link_id is not -1, i.e., the AP affiliated with an MLD. Used only
4170 * struct mgmt_frame_regs - management frame registrations data
4185 * struct cfg80211_ops - backend description for wireless configuration
4199 * be %NULL or contain the enabled Wake-on-Wireless triggers that are
4221 * the wdev->link[] data structure has been updated, so the new link
4226 * when adding a group key. @link_id will be -1 for non-MLO connection.
4227 * For MLO connection, @link_id will be >= 0 for group key and -1 for
4234 * not possible to retrieve the key, -ENOENT if it doesn't exist.
4235 * @link_id will be -1 for non-MLO connection. For MLO connection,
4236 * @link_id will be >= 0 for group key and -1 for pairwise key, @mac_addr
4240 * and @key_index, return -ENOENT if the key doesn't exist. @link_id will
4241 * be -1 for non-MLO connection. For MLO connection, @link_id will be >= 0
4242 * for group key and -1 for pairwise key, @mac_addr will be peer's MLD
4246 * for MLO connection and -1 for non-MLO connection.
4249 * @link_id will be >= 0 for MLO connection and -1 for non-MLO connection.
4252 * @link_id will be >= 0 for MLO connection and -1 for non-MLO connection.
4265 * might come to the driver in invalid combinations -- make sure to check
4269 * @dump_station: dump station callback -- resume dump at index @idx
4275 * @dump_mpath: dump mesh path callback -- resume dump at index @idx
4277 * @dump_mpp: dump mesh proxy path callback -- resume dump at index @idx
4309 * @scan: Request to do a scan. If returning zero, the scan request is given
4311 * For scan results, call cfg80211_inform_bss(); you can call this outside
4312 * the scan/scan_done bracket too.
4313 * @abort_scan: Tell the driver to abort an ongoing scan. The driver shall
4314 * indicate the status of the scan through cfg80211_scan_done().
4340 * In both the driver-initiated and new connect() call initiated roaming
4374 * always be %NULL unless the driver supports per-vif TX power
4385 * channel for the specified duration to complete an off-channel
4389 * @cancel_remain_on_channel: Cancel an on-going remain-on-channel operation.
4397 * @testmode_dump: Implement a test mode dump. The cb->args[2] and up may be
4399 * return error codes other than -ENOBUFS and -ENOENT will terminate the
4411 * @set_power_mgmt: Configure WLAN power management. A timeout value of -1
4425 * @sched_scan_start: Tell the driver to start a scheduled scan.
4426 * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan with
4427 * given request id. This call must stop the scheduled scan and be ready
4438 * reject TX/RX mask combinations they cannot support by returning -EINVAL
4444 * @tdls_oper: Perform a high-level TDLS operation (e.g. TDLS link setup).
4481 * @channel_switch: initiate channel-switch procedure (with CSA). Driver is
4510 * @tdls_channel_switch: Start channel-switching with a TDLS peer. The driver
4511 * is responsible for continually initiating channel-switching operations
4513 * @tdls_cancel_channel_switch: Stop channel-switching with a TDLS peer. Both
4534 * @set_pmk: configure the PMK to be used for offloaded 802.1X 4-Way handshake.
4701 int (*scan)(struct wiphy *wiphy, member
4957 * enum wiphy_flags - wiphy capability flags
4959 * @WIPHY_FLAG_SPLIT_SCAN_6GHZ: if set to true, the scan request will be split
4964 * by default -- this flag will be set depending on the kernel's default
4991 * responds to probe-requests in hardware.
4992 * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX.
4993 * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call.
5002 * @WIPHY_FLAG_SUPPORTS_EXT_KCK_32: The device supports 32-byte KCK keys.
5007 * @WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY: support connection to non-primary link
5041 * struct ieee80211_iface_limit - limit on certain interface types
5051 * struct ieee80211_iface_combination - possible interface combination
5062 * .. code-block:: c
5076 * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total:
5078 * .. code-block:: c
5092 * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total.
5096 * .. code-block:: c
5162 * any beacon interval for the interface part of this combination AND
5174 * enum wiphy_wowlan_support_flags - WoWLAN support flags
5176 * trigger that keeps the device operating as-is and
5186 * @WIPHY_WOWLAN_4WAY_HANDSHAKE: supports wakeup on 4-way handshake failure
5187 * @WIPHY_WOWLAN_RFKILL_RELEASE: supports wakeup on RF-kill release
5211 * struct wiphy_wowlan_support - WoWLAN support data
5218 * @max_nd_match_sets: maximum number of matchsets for net-detect,
5236 * struct wiphy_coalesce_support - coalesce support data
5255 * enum wiphy_vendor_command_flags - validation flags for vendor commands
5268 * enum wiphy_opmode_flag - Station's ht/vht operation mode information flags
5282 * struct sta_opmode_info - Station's ht/vht operation mode information
5296 #define VENDOR_CMD_RAW_DATA ((const struct nla_policy *)(long)(-ENODATA))
5299 * struct wiphy_vendor_command - vendor command definition
5303 * flags didn't ask for a wdev and non-%NULL otherwise; the data
5306 * @storage points to cb->args[5], ie. is preserved over the multiple
5329 * struct wiphy_iftype_ext_capab - extended capabilities per interface type
5335 * 802.11-2012 8.4.2.29 for the defined fields.
5351 * cfg80211_get_iftype_ext_capa - lookup interface type extended capability
5361 * struct cfg80211_pmsr_capabilities - cfg80211 peer measurement capabilities
5367 * @ftm.asap: ASAP-mode is supported
5368 * @ftm.non_asap: non-ASAP-mode is supported
5374 * (set to -1 if not limited; note that setting this will necessarily
5402 * struct wiphy_iftype_akm_suites - This structure encapsulates supported akm
5417 * struct wiphy_radio_freq_range - wiphy frequency range
5428 * struct wiphy_radio - physical radio of a wiphy
5430 * It is used to describe concurrent-channel capabilities. Only one channel
5451 * struct wiphy - wireless hardware description
5476 * -1 = fragmentation disabled, only odd values >= 256 used
5477 * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled
5482 * four bits are variable then set it to 00-00-00-00-00-0f. The actual
5489 * all-zeroes. In this case it is assumed that the device can handle
5491 * @registered: protects ->resume and ->suspend sysfs callbacks against
5515 * @max_scan_ssids: maximum number of SSIDs the device can scan for in
5516 * any given scan
5517 * @max_sched_scan_reqs: maximum number of scheduled scan requests that
5519 * @max_sched_scan_ssids: maximum number of SSIDs the device can scan
5520 * for in any given scheduled scan
5522 * when performing a scheduled scan, 0 if filtering is not
5524 * @max_scan_ie_len: maximum length of user-controlled IEs device can
5525 * add to probe request frames transmitted during a scan, must not
5529 * @max_sched_scan_plans: maximum number of scan plans (scan interval and number
5530 * of iterations) for scheduled scan supported by the device.
5531 * @max_sched_scan_plan_interval: maximum interval (in seconds) for a
5532 * single scan plan supported by the device.
5534 * scan plan supported by the device.
5560 * @max_remain_on_channel_duration: Maximum time a remain-on-channel operation
5569 * @ht_capa_mod_mask: Specify what ht_cap values can be over-ridden.
5570 * If null, then none can be over-ridden.
5571 * @vht_capa_mod_mask: Specify what VHT capabilities can be over-ridden.
5572 * If null, then none can be over-ridden.
5584 * 802.11-2012 8.4.2.29 for the defined fields. These are the default
5631 * @tid_config_support: describes the per-TID config support that the
5647 * in a multiple BSSID set. This field must be set to a non-zero value
5650 * the driver. Setting this field to a non-zero value indicates that the
5651 * driver supports enhanced multi-BSSID advertisements (EMA AP).
5662 * non-zero value indicates that the driver supports HW timestamping.
5756 /* fields below are read-only, assigned by cfg80211 */
5827 return read_pnet(&wiphy->_net); in wiphy_net()
5832 write_pnet(&wiphy->_net, net); in wiphy_net_set()
5836 * wiphy_priv - return priv from wiphy
5844 return &wiphy->priv; in wiphy_priv()
5848 * priv_to_wiphy - return the wiphy containing the priv
5860 * set_wiphy_dev - set device pointer for wiphy
5867 wiphy->dev.parent = dev; in set_wiphy_dev()
5871 * wiphy_dev - get wiphy dev pointer
5878 return wiphy->dev.parent; in wiphy_dev()
5882 * wiphy_name - get wiphy name
5889 return dev_name(&wiphy->dev); in wiphy_name()
5893 * wiphy_new_nm - create a new wiphy for use with cfg80211
5910 * wiphy_new - create a new wiphy for use with cfg80211
5928 * wiphy_register - register a wiphy with cfg80211
5932 * Return: A non-negative wiphy index or a negative error code.
5937 #define lockdep_assert_wiphy(wiphy) lockdep_assert_held(&(wiphy)->mtx)
5940 * rcu_dereference_wiphy - rcu_dereference with debug checking
5948 rcu_dereference_check(p, lockdep_is_held(&wiphy->mtx))
5951 * wiphy_dereference - fetch RCU pointer when updates are prevented by wiphy mtx
5955 * Return the value of the specified RCU-protected pointer, but omit the
5959 rcu_dereference_protected(p, lockdep_is_held(&wiphy->mtx))
5962 * get_wiphy_regdom - get custom regdomain for the given wiphy
5972 * wiphy_unregister - deregister a wiphy from cfg80211
5983 * wiphy_free - free wiphy
5996 * wiphy_lock - lock the wiphy
6012 __acquires(&wiphy->mtx) in wiphy_lock()
6014 mutex_lock(&wiphy->mtx); in wiphy_lock()
6015 __acquire(&wiphy->mtx); in wiphy_lock()
6019 * wiphy_unlock - unlock the wiphy again
6023 __releases(&wiphy->mtx) in wiphy_unlock()
6025 __release(&wiphy->mtx); in wiphy_unlock()
6026 mutex_unlock(&wiphy->mtx); in wiphy_unlock()
6040 INIT_LIST_HEAD(&work->entry); in wiphy_work_init()
6041 work->func = func; in wiphy_work_init()
6045 * wiphy_work_queue - queue work for the wiphy
6059 * wiphy_work_cancel - cancel previously queued work
6069 * wiphy_work_flush - flush previously queued work
6089 timer_setup(&dwork->timer, wiphy_delayed_work_timer, 0); in wiphy_delayed_work_init()
6090 wiphy_work_init(&dwork->work, func); in wiphy_delayed_work_init()
6094 * wiphy_delayed_work_queue - queue delayed work for the wiphy
6111 * wiphy_delayed_work_cancel - cancel previously queued delayed work
6122 * wiphy_delayed_work_flush - flush previously queued delayed work
6133 * wiphy_delayed_work_pending - Find out whether a wiphy delayable
6156 * mod_timer(wk->timer)
6157 * wiphy_delayed_work_pending(wk) -> true
6160 * expire_timers(wk->timer)
6161 * detach_timer(wk->timer)
6162 * wiphy_delayed_work_pending(wk) -> false
6163 * wk->timer->function() |
6166 * queue_work(cfg80211_wiphy_work) | wk->func() has not
6170 * wk->func() V
6177 * enum ieee80211_ap_reg_power - regulatory power for an Access Point
6192 * struct wireless_dev - wireless device state
6200 * unregistering netdevs if they pre-create any netdevs (in ops
6203 * For non-netdev uses, it must also be allocated by the driver
6233 * netdev and may otherwise be used by driver read-only, will be update
6239 * @is_running: true if this is a non-netdev device that has been started, e.g.
6249 * @disconnect_wk: (private) auto-disconnect work
6250 * @disconnect_bssid: (private) the BSSID to use for auto-disconnect
6268 * @links.cac_time_ms: CAC time in ms
6288 /* currently used for IBSS and SME - might be rearranged later */
6386 if (wdev->netdev) in wdev_address()
6387 return wdev->netdev->dev_addr; in wdev_address()
6388 return wdev->address; in wdev_address()
6393 if (wdev->netdev) in wdev_running()
6394 return netif_running(wdev->netdev); in wdev_running()
6395 return wdev->is_running; in wdev_running()
6399 * wdev_priv - return wiphy priv from wireless_dev
6407 return wiphy_priv(wdev->wiphy); in wdev_priv()
6411 * wdev_chandef - return chandef pointer from wireless_dev
6423 WARN_ON(link_id && !wdev->valid_links); in WARN_INVALID_LINK_ID()
6424 WARN_ON(wdev->valid_links && in WARN_INVALID_LINK_ID()
6425 !(wdev->valid_links & BIT(link_id))); in WARN_INVALID_LINK_ID()
6430 link_id < ((link_info)->valid_links ? \
6431 ARRAY_SIZE((link_info)->links) : 1); \
6433 if (!(link_info)->valid_links || \
6434 ((link_info)->valid_links & BIT(link_id)))
6443 * ieee80211_channel_equal - compare two struct ieee80211_channel
6453 return (a->center_freq == b->center_freq && in ieee80211_channel_equal()
6454 a->freq_offset == b->freq_offset); in ieee80211_channel_equal()
6458 * ieee80211_channel_to_khz - convert ieee80211_channel to frequency in KHz
6465 return MHZ_TO_KHZ(chan->center_freq) + chan->freq_offset; in ieee80211_channel_to_khz()
6469 * ieee80211_s1g_channel_width - get allowed channel width from @chan
6479 * ieee80211_channel_to_freq_khz - convert channel number to frequency
6487 * ieee80211_channel_to_frequency - convert channel number to frequency
6499 * ieee80211_freq_khz_to_channel - convert frequency to channel number
6506 * ieee80211_frequency_to_channel - convert frequency to channel number
6517 * ieee80211_get_channel_khz - get channel struct from wiphy for specified
6527 * ieee80211_get_channel - get channel struct from wiphy for specified frequency
6540 * cfg80211_channel_is_psc - Check if the channel is a 6 GHz PSC
6550 if (chan->band != NL80211_BAND_6GHZ) in cfg80211_channel_is_psc()
6553 return ieee80211_frequency_to_channel(chan->center_freq) % 16 == 5; in cfg80211_channel_is_psc()
6557 * cfg80211_radio_chandef_valid - Check if the radio supports the chandef
6568 * ieee80211_get_response_rate - get basic rate for a given rate
6584 * ieee80211_mandatory_rates - get mandatory rates for a given band
6593 * Radiotap parsing functions -- for controlled injection support
6596 * Documentation in Documentation/networking/radiotap-headers.rst
6616 * struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args
6678 * ieee80211_get_hdrlen_from_skb - get header length from data
6692 * ieee80211_hdrlen - get header length in bytes from frame control
6693 * @fc: frame control field in little-endian format
6699 * ieee80211_get_mesh_hdrlen - get mesh extension header length
6716 * ieee80211_data_to_8023_exthdr - convert an 802.11 data frame to 802.3
6723 * @is_amsdu: true if the 802.11 header is A-MSDU
6724 * Return: 0 on success. Non-zero on error.
6731 * ieee80211_data_to_8023 - convert an 802.11 data frame to 802.3
6735 * Return: 0 on success. Non-zero on error.
6744 * ieee80211_is_valid_amsdu - check if subframe lengths of an A-MSDU are valid
6746 * This is used to detect non-standard A-MSDU frames, e.g. the ones generated
6750 * @skb: The input A-MSDU frame without any headers.
6752 * 0: non-mesh A-MSDU length field
6753 * 1: big-endian mesh A-MSDU length field
6754 * 2: little-endian mesh A-MSDU length field
6760 * ieee80211_amsdu_to_8023s - decode an IEEE 802.11n A-MSDU frame
6762 * Decode an IEEE 802.11 A-MSDU and convert it to a list of 802.3 frames.
6764 * header-less before being passed in here; it is freed in this function.
6766 * @skb: The input A-MSDU frame without any headers.
6783 * ieee80211_get_8023_tunnel_proto - get RFC1042 or bridge tunnel encap protocol
6795 * ieee80211_strip_8023_mesh_hdr - strip mesh header from converted 802.3 frames
6803 * Return: 0 on success. Non-zero on error.
6808 * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame
6817 * cfg80211_find_elem_match - match information element and byte array in data
6844 * cfg80211_find_ie_match - match information element and byte array in data
6882 match_offset - 2 : 0); in cfg80211_find_ie_match()
6886 * cfg80211_find_elem - find information element in data
6907 * cfg80211_find_ie - find information element in data
6927 * cfg80211_find_ext_elem - find information element with EID Extension in data
6949 * cfg80211_find_ext_ie - find information element with EID Extension in data
6970 * cfg80211_find_vendor_elem - find vendor specific information element in data
6973 * @oui_type: vendor-specific OUI type (must be < 0xff), negative means any
6989 * cfg80211_find_vendor_ie - find vendor specific information element in data
6992 * @oui_type: vendor-specific OUI type (must be < 0xff), negative means any
7012 * enum cfg80211_rnr_iter_ret - reduced neighbor report iteration state
7024 * cfg80211_iter_rnr - iterate reduced neighbor report entries
7044 * cfg80211_defragment_element - Defrag the given element data into a buffer
7053 * Return: length of @data, or -EINVAL on error
7059 * element in-place.
7066 * cfg80211_send_layer2_update - send layer 2 update frame
7083 * regulatory_hint - driver hint to the wireless core a regulatory domain
7088 * set this to NULL you should still set rd->alpha2 to some accepted
7103 * an -ENOMEM.
7105 * Return: 0 on success. -ENOMEM.
7110 * regulatory_set_wiphy_regd - set regdom info for self managed drivers
7114 * Set the regulatory domain information for self-managed wiphys, only they
7118 * Return: 0 on success. -EINVAL, -EPERM
7124 * regulatory_set_wiphy_regd_sync - set regdom for self-managed drivers
7132 * Return: 0 on success. -EINVAL, -EPERM
7138 * wiphy_apply_custom_regulatory - apply a custom driver regulatory domain
7156 * freq_reg_info - get regulatory information for the given frequency
7168 * value will be -ERANGE if we determine the given center_freq does not even
7170 * See freq_in_rule_band() for our current definition of a band -- this is
7177 * reg_initiator_name - map regulatory request initiator enum to name
7188 * regulatory_pre_cac_allowed - check if pre-CAC allowed in the current regdom
7189 * @wiphy: wiphy for which pre-CAC capability is checked.
7191 * Pre-CAC is allowed only in some regdomains (notable ETSI).
7203 * reg_query_regdb_wmm - Query internal regulatory db for wmm rule
7204 * Regulatory self-managed driver can use it to proactively
7210 * Self-managed wireless drivers can use this function to query
7215 * an -ENODATA.
7217 * Return: 0 on success. -ENODATA.
7228 * cfg80211_scan_done - notify that scan finished
7230 * @request: the corresponding scan request
7231 * @info: information about the completed scan
7237 * cfg80211_sched_scan_results - notify that new scan results are available
7239 * @wiphy: the wiphy which got scheduled scan results
7240 * @reqid: identifier for the related scheduled scan request
7245 * cfg80211_sched_scan_stopped - notify that the scheduled scan has stopped
7247 * @wiphy: the wiphy on which the scheduled scan stopped
7248 * @reqid: identifier for the related scheduled scan request
7251 * scheduled scan had to be stopped, for whatever reason. The driver
7257 * cfg80211_sched_scan_stopped_locked - notify that the scheduled scan has stopped
7259 * @wiphy: the wiphy on which the scheduled scan stopped
7260 * @reqid: identifier for the related scheduled scan request
7263 * scheduled scan had to be stopped, for whatever reason. The driver
7270 * cfg80211_inform_bss_frame_data - inform cfg80211 of a received BSS frame
7304 * cfg80211_gen_new_bssid - generate a nontransmitted BSSID for multi-BSSID
7314 u64 mask = GENMASK_ULL(max_bssid - 1, 0); in cfg80211_gen_new_bssid()
7325 * cfg80211_is_element_inherited - returns if element ID should be inherited
7335 * cfg80211_merge_profile - merges a MBSSID profile if it is split between IEs
7351 * enum cfg80211_bss_frame_type - frame type that the BSS data came from
7366 * cfg80211_get_ies_channel_number - returns the channel number from ies
7371 * Return: the channel number, or -1 if none could be determined.
7377 * cfg80211_ssid_eq - compare two SSIDs
7388 if (a->ssid_len != b->ssid_len) in cfg80211_ssid_eq()
7390 return memcmp(a->ssid, b->ssid, a->ssid_len) ? false : true; in cfg80211_ssid_eq()
7394 * cfg80211_inform_bss_data - inform cfg80211 of a new BSS
7402 * @beacon_interval: the beacon interval announced by the peer
7440 * __cfg80211_get_bss - get a BSS reference
7450 * Return: Reference-counted BSS on success. %NULL on error.
7461 * cfg80211_get_bss - get a BSS reference
7472 * Return: Reference-counted BSS on success. %NULL on error.
7496 * cfg80211_ref_bss - reference BSS struct
7505 * cfg80211_put_bss - unref BSS struct
7514 * cfg80211_unlink_bss - unlink BSS from internal data structures
7519 * thereby making it no longer show up in scan results etc. Use this
7526 * cfg80211_bss_iter - iterate all BSS entries
7546 * cfg80211_rx_mlme_mgmt - notification of processed MLME management frame
7567 * cfg80211_auth_timeout - notification of timed out authentication
7577 * struct cfg80211_rx_assoc_resp_data - association response data
7585 * @links: per-link information indexed by link ID, use links[0] for
7586 * non-MLO connections
7607 * cfg80211_rx_assoc_resp - notification of processed association response
7620 * struct cfg80211_assoc_failure - association failure data
7622 * @bss: list of BSSes, must use entry 0 for non-MLO connections
7635 * cfg80211_assoc_failure - notification of association failure
7645 * cfg80211_tx_mlme_mgmt - notification of transmitted deauth/disassoc frame
7660 * cfg80211_rx_unprot_mlme_mgmt - notification of unprotected mlme mgmt frame
7677 * cfg80211_michael_mic_failure - notification of Michael MIC failure (TKIP)
7681 * @key_id: Key identifier (0..3). Can be -1 if missing.
7686 * received frame. This matches with MLME-MICHAELMICFAILURE.indication()
7694 * cfg80211_ibss_joined - notify cfg80211 that device joined an IBSS
7705 * with the locally generated beacon -- this guarantees that there is
7706 * always a scan result for this IBSS. cfg80211 will handle the rest.
7712 * cfg80211_notify_new_peer_candidate - notify cfg80211 of a new mesh peer
7745 * wiphy_rfkill_set_hw_state_reason - notify cfg80211 about hw block state
7760 * wiphy_rfkill_start_polling - start polling rfkill
7766 * wiphy_rfkill_stop_polling - stop polling rfkill
7771 rfkill_pause_polling(wiphy->rfkill); in wiphy_rfkill_stop_polling()
7780 * (typically closed-source) userspace and firmware, using nl80211 as
7790 * "normal" functionality that higher-level userspace like connection
7810 * cfg80211_vendor_cmd_alloc_reply_skb - allocate vendor command reply
7815 * This function allocates and pre-fills an skb for a reply to
7819 * The returned skb is pre-filled with some identifying data in
7830 * Return: An allocated and pre-filled skb. %NULL if any errors happen.
7840 * cfg80211_vendor_cmd_reply - send the reply skb
7854 * cfg80211_vendor_cmd_get_sender - get the current sender netlink ID
7864 * cfg80211_vendor_event_alloc - allocate vendor-specific event skb
7872 * This function allocates and pre-fills an skb for an event on the
7873 * vendor-specific multicast group.
7882 * Return: An allocated and pre-filled skb. %NULL if any errors happen.
7894 * cfg80211_vendor_event_alloc_ucast - alloc unicast vendor-specific event skb
7903 * This function allocates and pre-fills an skb for an event to send to
7915 * Return: An allocated and pre-filled skb. %NULL if any errors happen.
7929 * cfg80211_vendor_event - send the event
7946 * interact with driver-specific tools to aid, for instance,
7954 * cfg80211_testmode_alloc_reply_skb - allocate testmode reply
7959 * This function allocates and pre-fills an skb for a reply to
7963 * The returned skb is pre-filled with the wiphy index and set up in
7974 * Return: An allocated and pre-filled skb. %NULL if any errors happen.
7984 * cfg80211_testmode_reply - send the reply skb
8001 * cfg80211_testmode_alloc_event_skb - allocate testmode event
8007 * This function allocates and pre-fills an skb for an event on the
8019 * Return: An allocated and pre-filled skb. %NULL if any errors happen.
8025 NL80211_ATTR_TESTDATA, 0, -1, in cfg80211_testmode_alloc_event_skb()
8030 * cfg80211_testmode_event - send the event
8052 * struct cfg80211_fils_resp_params - FILS connection response params
8076 * struct cfg80211_connect_resp_params - Connection response params
8081 * from the AP) instead of an explicit rejection by the AP, -1 is used to
8100 * using @valid_links. For non-MLO connection, links[0] contains the
8104 * @links.bssid: For MLO connection, MAC address of the AP link. For non-MLO
8107 * For non-MLO connection, links[0].bss points to entry of bss to which STA
8114 * @links.status: per-link status code, to report a status code that's not
8138 * cfg80211_connect_done - notify cfg80211 of connection result
8156 * cfg80211_connect_bss - notify cfg80211 of connection result
8174 * from the AP) instead of an explicit rejection by the AP, -1 is used to
8216 * cfg80211_connect_result - notify cfg80211 of connection result
8247 * cfg80211_connect_timeout - notify cfg80211 of connection timeout
8269 cfg80211_connect_bss(dev, bssid, NULL, req_ie, req_ie_len, NULL, 0, -1, in cfg80211_connect_timeout()
8274 * struct cfg80211_roam_info - driver initiated roaming information
8285 * @valid_links. For non-MLO roaming, links[0] contains the new AP info.
8287 * @links.bssid: For MLO roaming, MAC address of the new AP link. For non-MLO
8292 * roamed. For non-MLO roaming, links[0].bss points to entry of bss to
8313 * cfg80211_roamed - notify cfg80211 of roaming
8326 * rdev->event_work. In case of any failures, the reference is released
8334 * cfg80211_port_authorized - notify cfg80211 of successful security association
8357 * cfg80211_disconnected - notify cfg80211 that connection was dropped
8374 * cfg80211_ready_on_channel - notification of remain_on_channel start
8387 * cfg80211_remain_on_channel_expired - remain_on_channel duration expired
8398 * cfg80211_tx_mgmt_expired - tx_mgmt duration expired
8408 * cfg80211_sinfo_alloc_tid_stats - allocate per-tid statistics.
8413 * Return: 0 on success. Non-zero on error.
8418 * cfg80211_sinfo_release_content - release contents of station info
8421 * Releases any potentially allocated sub-information of the station
8427 kfree(sinfo->pertid); in cfg80211_sinfo_release_content()
8431 * cfg80211_new_sta - notify userspace about station
8442 * cfg80211_del_sta_sinfo - notify userspace about deletion of a station
8452 * cfg80211_del_sta - notify userspace about deletion of a station
8465 * cfg80211_conn_failed - connection request failed notification
8484 * struct cfg80211_rx_info - received management frame info
8510 * cfg80211_rx_mgmt_ext - management frame notification with extended info
8526 * cfg80211_rx_mgmt_khz - notification of received, unprocessed management frame
8558 * cfg80211_rx_mgmt - notification of received, unprocessed management frame
8590 * struct cfg80211_tx_status - TX status for management frame information
8609 * cfg80211_mgmt_tx_status_ext - TX status notification with extended info
8622 * cfg80211_mgmt_tx_status - notification of TX status for management frame
8649 * cfg80211_control_port_tx_status - notification of TX status for control
8667 * cfg80211_rx_control_port - notification about a received control port frame
8670 * is 802.3 formatted (with 802.3 header). The skb can be non-linear.
8673 * skb->protocol is set appropriately.
8675 * @link_id: the link the frame was received on, -1 if not applicable or unknown
8690 * cfg80211_cqm_rssi_notify - connection quality monitoring rssi event
8704 * cfg80211_cqm_pktloss_notify - notify userspace about packetloss to peer
8707 * @num_packets: how many packets were lost -- should be a fixed threshold
8716 * cfg80211_cqm_txe_notify - TX error rate event
8721 * @intvl: interval (in s) over which the TX failure threshold was breached.
8725 * given interval is exceeded.
8731 * cfg80211_cqm_beacon_loss_notify - beacon loss event
8740 * __cfg80211_radar_event - radar detection event
8769 * cfg80211_sta_opmode_change_notify - STA's ht/vht operation mode change event
8783 * cfg80211_cac_event - Channel availability check (CAC) event
8792 * also by full-MAC drivers.
8800 * cfg80211_background_cac_abort - Channel Availability Check offchan abort event
8809 * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying
8819 * cfg80211_pmksa_candidate_notify - notify about PMKSA caching candidate
8823 * @preauth: Whether AP advertises support for RSN pre-authentication
8830 * cfg80211_rx_spurious_frame - inform userspace about a spurious frame
8845 * cfg80211_rx_unexpected_4addr_frame - inform about unexpected WDS frame
8861 * cfg80211_probe_status - notify userspace about probe status
8875 * cfg80211_report_obss_beacon_khz - report beacon from other APs
8890 * cfg80211_report_obss_beacon - report beacon from other APs
8910 * struct cfg80211_beaconing_check_config - beacon check configuration
8912 * @relax: allow IR-relaxation conditions to apply (e.g. another
8925 * cfg80211_reg_check_beaconing - check if beaconing is allowed
8938 * cfg80211_reg_can_beacon - check if beaconing is allowed
8959 * cfg80211_reg_can_beacon_relax - check if beaconing is allowed with relaxation
8966 * also checks if IR-relaxation conditions apply, to allow beaconing under
8985 * cfg80211_ch_switch_notify - update wdev channel and notify userspace
8988 * @link_id: the link ID for MLO, must be 0 for non-MLO
8998 * cfg80211_ch_switch_started_notify - notify channel switch start
9001 * @link_id: the link ID for MLO, must be 0 for non-MLO
9015 * ieee80211_operating_class_to_band - convert operating class to band
9026 * ieee80211_operating_class_to_chandef - convert operating class to chandef
9039 * ieee80211_chandef_to_operating_class - convert chandef to operation class
9050 * ieee80211_chandef_to_khz - convert chandef to frequency in KHz
9059 return MHZ_TO_KHZ(chandef->center_freq1) + chandef->freq1_offset; in ieee80211_chandef_to_khz()
9063 * cfg80211_tdls_oper_request - request userspace to perform TDLS operation
9082 * cfg80211_calculate_bitrate - calculate actual bitrate (in 100Kbps units)
9090 * cfg80211_unregister_wdev - remove the given wdev
9104 * cfg80211_register_netdevice - register the given netdev
9114 * Return: 0 on success. Non-zero on error.
9119 * cfg80211_unregister_netdevice - unregister the given netdev
9132 cfg80211_unregister_wdev(dev->ieee80211_ptr); in cfg80211_unregister_netdevice()
9137 * struct cfg80211_ft_event_params - FT Information Elements
9153 * cfg80211_ft_event - notify userspace about FT IE and RIC IE
9161 * cfg80211_get_p2p_attr - find and copy a P2P attribute from IE buffer
9172 * Return: A negative error code (-%EILSEQ or -%ENOENT) if the data is
9181 * ieee80211_ie_split_ric - split an IE buffer according to ordering (with RIC)
9186 * EID in the list is a sub-element of the EXTENSION IE.
9196 * It assumes that the given IE buffer is well-formed, this
9213 * ieee80211_ie_split - split an IE buffer according to ordering
9218 * EID in the list is a sub-element of the EXTENSION IE.
9226 * It assumes that the given IE buffer is well-formed, this
9244 * ieee80211_fragment_element - fragment the last element in skb
9256 * cfg80211_report_wowlan_wakeup - report wakeup from WoWLAN
9271 * cfg80211_crit_proto_stopped() - indicate critical protocol stopped by driver.
9283 * ieee80211_get_num_supported_channels - get number of channels device has
9291 * cfg80211_check_combinations - check interface combinations
9300 * Return: 0 if combinations are allowed. Non-zero on error.
9306 * cfg80211_iter_combinations - iterate over matching combinations
9317 * Return: 0 on success. Non-zero on error.
9326 * cfg80211_stop_iface - trigger interface disconnection
9341 * cfg80211_shutdown_all_interfaces - shut down all interfaces for a wiphy
9345 * calling dev_close() (and treating non-netdev interfaces as needed).
9355 * wiphy_ext_feature_set - set the extended feature flag
9368 ft_byte = &wiphy->ext_features[ftidx / 8]; in wiphy_ext_feature_set()
9373 * wiphy_ext_feature_isset - check the extended feature flag
9389 ft_byte = wiphy->ext_features[ftidx / 8]; in wiphy_ext_feature_isset()
9394 * cfg80211_free_nan_func - free NAN function
9402 * struct cfg80211_nan_match_params - NAN match parameters
9426 * cfg80211_nan_match - report a match for a NAN function.
9439 * cfg80211_nan_func_terminated - notify about NAN function termination.
9458 * cfg80211_external_auth_request - userspace request for authentication
9469 * cfg80211_pmsr_report - report peer measurement result data
9481 * cfg80211_pmsr_complete - report peer measurement completed
9494 * cfg80211_iftype_allowed - check whether the interface can be allowed
9511 * cfg80211_assoc_comeback - notification of association that was
9515 * @timeout: timeout interval value TUs.
9527 dev_printk(level, &(wiphy)->dev, format, ##args)
9529 dev_emerg(&(wiphy)->dev, format, ##args)
9531 dev_alert(&(wiphy)->dev, format, ##args)
9533 dev_crit(&(wiphy)->dev, format, ##args)
9535 dev_err(&(wiphy)->dev, format, ##args)
9537 dev_warn(&(wiphy)->dev, format, ##args)
9539 dev_notice(&(wiphy)->dev, format, ##args)
9541 dev_info(&(wiphy)->dev, format, ##args)
9543 dev_info_once(&(wiphy)->dev, format, ##args)
9546 dev_err_ratelimited(&(wiphy)->dev, format, ##args)
9548 dev_warn_ratelimited(&(wiphy)->dev, format, ##args)
9554 dev_dbg(&(wiphy)->dev, format, ##args)
9576 * cfg80211_update_owe_info_event - Notify the peer's OWE info to user space
9586 * cfg80211_bss_flush - resets all the scan entries
9592 * cfg80211_bss_color_notify - notify about bss color event
9597 * @link_id: valid link_id in case of MLO or 0 for non-MLO.
9599 * Return: 0 on success. Non-zero on error.
9606 * cfg80211_obss_color_collision_notify - notify about bss color collision
9609 * @link_id: valid link_id in case of MLO or 0 for non-MLO.
9611 * Return: 0 on success. Non-zero on error.
9622 * cfg80211_color_change_started_notify - notify color change start
9625 * @link_id: valid link_id in case of MLO or 0 for non-MLO.
9629 * Return: 0 on success. Non-zero on error.
9639 * cfg80211_color_change_aborted_notify - notify color change abort
9641 * @link_id: valid link_id in case of MLO or 0 for non-MLO.
9645 * Return: 0 on success. Non-zero on error.
9655 * cfg80211_color_change_notify - notify color change completion
9657 * @link_id: valid link_id in case of MLO or 0 for non-MLO.
9661 * Return: 0 on success. Non-zero on error.
9672 * cfg80211_links_removed - Notify about removed STA MLD setup links.
9677 * AP MLD removing the corresponding affiliated APs with Multi-Link
9685 * cfg80211_schedule_channels_check - schedule regulatory check if needed
9696 * wiphy_locked_debugfs_read - do a locked read in debugfs
9721 * wiphy_locked_debugfs_write - do a locked write in debugfs